Jira アプリケーションのクッキー (cookie)
認証 cookie
Jira は、HTTP クッキー認証にオープン ソース フレームワーク Seraph を使っています。Jira は、ユーザー認証に 2 種類の cookie を使っています。
- JSESSIONID cookie は、アプリケーション・サーバーによって作成され、セッションのトラッキングのために使用されます。この cookie はランダムな文字列を含み、セッション終了の度、またはブラウザーが閉じられる際に有効期限が切れます。
- "ログイン情報を記憶する" cookie (別名 "remember me" cookie)、
seraph.rememberme.cookie
は、ユーザーがログイン ページの [このコンピューターでのログイン情報を記憶] チェックボックスを選択すると、Jira によって生成されます。
Cookie についての詳しい内容は、ウィキペディアの HTTP cookie に関するページに記載されています。
「ログイン情報を記憶する」 cookie
"ログイン情報を記憶する" cookie、seraph.rememberme.cookie
は永続的な HTTP cookie です。この cookie は非認証セッションを認証するのに使用します。ユーザーがログイン ページの [このコンピューターでのログイン情報を記憶] チェックボックスを選択すると、Jira がこの cookie を生成します。
cookie キーとコンテンツ
既定では、この cookie のキーは seraph.rememberme.cookie
で、Jira インストール ディレクトリの <jira-application-dir>/WEB-INF/classes/seraph-config.xml
ファイルにある login.cookie.key
パラメーターで定義されています。
cookie には、独自の識別子と、トークン等の安全に生成されたランダムな文字列が含まれています。このトークンは Jira で生成され、ユーザーに対してデータベースに格納されます。
認証に cookie を利用する
ユーザーが Web ページをリクエストすると、リクエストがセッションベースまたはその他の認証方法で認証されてない場合、Jira は "remember my login" cookie (存在する場合) と、Jira データベースに保存されているユーザーのトークン (存在する場合) を照合します。
cookie のトークンとデータベースに保存されているトークンが一致し、cookie が期限切れでなければ、ユーザーは認証されます。
「ログインを記憶する」cookie の有効期限
cookie には有効期限を設定出来ます。期限を設定するには、Jira インストール ディレクトリの <jira-application-dir>/WEB-INF/classes/seraph-config.xml
ファイルを変更し、init-param
要素の下に次の行を挿入します。
<init-param>
<param-name>autologin.cookie.age</param-name>
<param-value>2147483</param-value> <!-- The value of ~25 days in seconds -->
</init-param>
最大値
上記のコード スニペットに示す値は、"ログイン情報を記憶する" cookie で使用できる最大値です。これを超える値ではエラーが発生します。このバグの詳細をご確認ください。
その他の cookie
Jira では、セキュリティ強化、最近使った検索バーおよびその他のプレゼンテーション ステータスを含む基本プレゼンテーションやブラウザ性能の保存などのために、複数の cookie を使用しています。これらの cookie には Jira ユーザーの認証情報は含まれません。
cookie キー | 目的 | cookie の内容 | 期限 |
atlassian.xsrf.token | XSRF 攻撃を防ぐ場合に使います。ユーザー セッション中、Jira サーバーに送信されるブラウザ リクエストが、そのサーバーで作成されていることを確認します。XSRF 照合についての詳細は、アトラシアンのデベロッパー サイトの「フォーム トークン詳細」をご参照ください。 | Jira サーバーのサーバー ID、セキュアに生成されたランダムな文字列 (トークン)、トークンの生成日時にログインしたかどうかを示すフラグ | セッションの終了時、またはブラウザを閉じた時 |
jira.issue.navigator.type | 最後に使用された検索ビューのタイプのトラック (即ち単純検索または詳細検索) | お使いのブラウザが、ローカルストレージをサポートしていない状態を示す文字列 | 設定された日、または最終更新日から 10 年程度 |
AJS.conglomerate.cookie | 最後に使用した全般タブ (Jira プラグイン マネージャー等)、または最後に開いた / 閉じた拡張エレメントの追跡 | 前回の一般タブ ビューまたは拡張要素の状態を示す1つ以上のkey-value型文字列 | 設定された日、または最終更新日から1年 |
UNSUPPORTED_BROWSER_WARNING | ユーザーのブラウザが Jira でサポートされていないことを示す Jira メッセージをユーザーが確認したことの確認 | メッセージを読み、なおかつサポートされていないブラウザーを使っている状態でボタンをクリックしたことを示す文字列 | セッションの終了時、またはブラウザを閉じた時 |
AJS.thisPage | ユーザーのブラウザがローカル ストレージをサポートしていないことを示す。これは、ユーザーがブラウザの [戻る] ボタンをクリックしたときに検索ビューでフィールド情報を保存するときに、Jira が使用するメカニズムに関連します。 | ユーザーのブラウザが、ローカルストレージをサポートしていない状態を示す文字列 | セッションの終了時、またはブラウザを閉じた時 |