JupyterHubのCookie有効期限を設定する手順

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

設定手順

  1. 設定ファイルの場所を確認

    # 通常は以下の場所にあります
    /etc/jupyterhub/jupyterhub_config.py
    # または
    ~/jupyterhub_config.py
  2. 設定を追加
    上記のコードを設定ファイルに追加します。

  3. 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つの方法で制御されています:

  1. ブラウザ側のCookie有効期限

    • 役割: ブラウザがCookieを物理的に削除するタイミング
    • 影響: この期限を超えるとブラウザからCookie自体が消失
  2. サーバー側の署名検証期限(今回の設定対象)

    • 制御: 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. 設定値(日)を秒に変換: 1/24 × 24 × 3600 = 3600秒
  2. cookieのMax-Age属性に3600を設定
  3. ブラウザは3600秒後にcookieを自動的に削除

まとめ

JupyterHubのセッション設定を検討される際の参考にしてください。

Last modified: 2025-09-09

Author