JupyterHubのCookie有効期限を設定する手順
はじめに
JupyterHubでcookieの有効期限を設定する方法について説明します。
この記事では、JupyterHubのcookie有効期限を1時間に設定する具体的な手順を解説します。
デフォルト設定の課題
JupyterHubのデフォルト設定では、cookieの有効期限は比較的長期間に設定されています。
1時間設定の実装
JupyterHubのcookie有効期限を1時間に設定するには、以下の設定をjupyterhub_config.py
ファイルに追加します:
# Cookie の有効期限を1時間(1/24日)に設定
c.JupyterHub.cookie_max_age_days = 1 / 24
設定手順
-
設定ファイルの場所を確認
# 通常は以下の場所にあります /etc/jupyterhub/jupyterhub_config.py # または ~/jupyterhub_config.py
-
設定を追加
上記のコードを設定ファイルに追加します。 -
JupyterHubを再起動
sudo systemctl restart jupyterhub # または jupyterhub --config=jupyterhub_config.py
設定の詳細解説
cookie_max_age_daysパラメータ
c.JupyterHub.cookie_max_age_days
は、認証cookieの最大有効期間を日単位で指定するパラメータです。
参考:Cookie有効期限の制御について
JupyterHubでは、cookieの有効期限が2つの方法で制御されています:
-
ブラウザ側のCookie有効期限
- 役割: ブラウザがCookieを物理的に削除するタイミング
- 影響: この期限を超えるとブラウザからCookie自体が消失
-
サーバー側の署名検証期限(今回の設定対象)
- 制御:
c.JupyterHub.cookie_max_age_days
パラメータ - 役割: JupyterHubがCookieの署名を有効と判断する期間
- 影響: この期限を超えるとサーバー側で認証が拒否される
- 制御:
c.JupyterHub.cookie_max_age_days
は、認証cookieの最大有効期間を日単位で指定するパラメータです。
計算式の理解
# 1時間 = 3600秒
# 1日 = 24時間 = 86400秒
# したがって 1時間 = 1/24日
c.JupyterHub.cookie_max_age_days = 1 / 24 # 1時間
他の時間設定例
# 5分
c.JupyterHub.cookie_max_age_days = 5 / 1440
# 10分
c.JupyterHub.cookie_max_age_days = 1 / 144
# 30分
c.JupyterHub.cookie_max_age_days = 0.5 / 24
# 2時間
c.JupyterHub.cookie_max_age_days = 2 / 24
# 24時間(1日)
c.JupyterHub.cookie_max_age_days = 1
# 48時間(2日)
c.JupyterHub.cookie_max_age_days = 2
# 30分(分数で表現)
c.JupyterHub.cookie_max_age_days = 1 / 48
計算式の詳細
- 5分:
5 / 1440
(1日=1440分なので、5分÷1440分=5/1440日) - 10分:
1 / 144
(10分÷1440分=10/1440日=1/144日)
内部的な動作
JupyterHubは内部的に以下のような変換を行います:
- 設定値(日)を秒に変換:
1/24 × 24 × 3600 = 3600秒
- cookieのMax-Age属性に3600を設定
- ブラウザは3600秒後にcookieを自動的に削除
まとめ
JupyterHubのセッション設定を検討される際の参考にしてください。