Jira Server でユーザーのログアウトを回避するためにデフォルトのセッション タイムアウトを変更する

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このページの情報は、Jira アプリケーションのカスタマイズに関連しています。アトラシアン サポートの提供内容にカスタマイズは含まれていないため、アトラシアン サポートでは、このページで記載されている手順に対するサポートを保証できません。この資料は情報提供のみを目的としており、記載内容は自己責任の下で行っていただく必要があります。

また、ファイルの直接変更によって行われるカスタマイズは、アップグレード プロセスには含まれない点にご注意ください。このような変更は、アップグレード後のインスタンスで手動で再適用する必要があります。

プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Fisheye および Crucible は除く

要約

デフォルトでは、 Jira はユーザー セッションの管理に 2 つの cookie を使用します。

セッション cookie は、現在のセッションが終わると削除されます。「現在のセッション」がいつ終了するかはブラウザが定義し、一部のブラウザは再起動時に セッションの復元 を使用します。これにより、セッション cookie が無期限に持続する可能性があります。

  • Seraph Framework を通してアプリケーションによって管理される seraph.rememberme.cookie
    • このクッキーは、ログイン時に「ログイン情報を記憶する」オプションを選択した場合に使用されます。
    • このオプションは、「SSO for Atlassian Server and Data Center App」で説明されているように SSO をデフォルト設定で設定する場合にも適用されます。
    • デフォルトでは、これは永続的な cookieと見なされます。

永続的な cookie は、Expires 属性で指定された日付、または、Max-Age 属性で指定された期間後に削除されます。

seraph.rememberme.cookie が設定されておらず、セッションを識別する唯一の cookie が JSESSIONID の場合、セッションは失われます。そのため、ユーザーは次の場合に再認証する必要があります。

  • ユーザーがブラウザを閉じた
  • アプリケーション ノードが再起動された
  • クラスター化された Data Center 上の別のアプリケーション ノードにユーザーが送られた
  • ユーザーがログアウトした
  • ユーザーが 5 時間アイドル状態である(デフォルト設定は 300 分)

これは、ユーザーがダッシュボードで作業していて、ガジェットが自動更新されている場合は当てはまりません。この場合、ユーザーがいずれかのダッシュボードで 60 分以上アイドル状態になっていても、セッションは失われません。

seraph.rememberme.cookie が設定されている場合、 max-age デフォルトは 14 日 (1,209,600 秒) に設定されています。その後、ブラウザは自動的に cookie を削除するため、上記のルールが適用されます

しかし、この cookie が有効な間、JSESSIONID よりも優先されます。つまり、次の場合にセッションは失われません。

  • ブラウザが閉じられた
  • アプリケーション ノードが再起動された
  • クラスター化された Data Center 上の別のアプリケーション ノードにユーザーが送られた
  • ユーザーがブラウザでアイドル状態である

Jira 管理者がユーザーのセッション タイムアウトを調整する必要がある場合、目的に応じてこれら 2 つの cookie の設定を調整できます。

管理者は、以下の設定ファイルを変更できます。

  • <jira-install>/conf/web.xml
    • Web サーバーでグローバルに割り当てられる Tomcat セッション cookie (JSESSIONID) はここで管理されます。

  • <jira-install>/atlassian-jira/WEB-INF/web.xml
    • Jira アプリケーションに割り当てられる Tomcat セッション cookie (JSESSIONID) はここで管理されます。
    • ここで調整された値は前述のファイルよりも優先されます。
  • <jira-install>/atlassian-jira/WEB-INF/classes/seraph-config.xml
    • このファイルで調整された値は、 seraph.rememberme.cookie に適用されます。

XML ファイルでセッション タイムアウトを変更した場合、変更はダッシュボード セッションには適用されません。そのため、ユーザーがダッシュボードの 1 つで 60 分以上アイドル状態になっていても、これらのセッションは失われません。

環境

Jira Data Center および Server (Core、Software, およびService Management)

ソリューション

セッションのタイムアウトを変更する方法のいくつかを確認してください。

アイドル タイムアウトを変更する

たとえば、「ログイン情報を記憶する」オプションが選択されていない限り、ユーザーが 2 時間アイドル状態のときにセッションを無効化したいと仮定します (これは一例で、必要に応じて値を変更する必要があります)。

その場合、修正する必要があるファイルは <jira-install>/atlassian-jira/WEB-INF/web.xml のみです。必要な手順は次のとおりです。

  1. <jira-install>/atlassian-jira/WEB-INF/web.xml を編集し、次のようなブロックを検索してください (これはデフォルトの設定です)。

        <!-- session config -->
        <session-config>
            <session-timeout>300</session-timeout>
        </session-config>
  2. 構成を次のように調整します。セッションのタイムアウトは分単位で設定されます。

        <!-- session config -->
        <session-config>
            <session-timeout>120</session-timeout>
        </session-config>
  3. Jira を再起動して変更を適用します。ローリング リスタートで十分ですので、完全なダウンタイムは発生しません。

Jira をクラスターで実行している場合は、すべてのノードに変更を適用してください。

remember me cookie の有効期間を変更する

seraph.rememberme.cookie cookie の有効期間を 2 日間に変更したいとしましょう (これは一例で、必要に応じて値を変更する必要があります)。

その場合、修正する必要があるファイルは <jira-install>/atlassian-jira/WEB-INF/classes/seraph-config.xml のみです。

通常、これはセッション タイムアウトを変更する必要があるときに変更すべき構成です。

  1. <jira-install>/atlassian-jira/WEB-INF/classes/seraph-config.xml を編集し、次のような設定を検索してください(これはデフォルトの設定です)。

            <!-- This property sets the default remember me cookie max age in seconds.  It is currently set to 2 weeks -->
            <init-param>
                <param-name>autologin.cookie.age</param-name>
                <param-value>1209600</param-value>
            </init-param>
  2. 構成を次のように調整します。値は秒単位で調整されます。

            <!-- This property sets the default remember me cookie max age in seconds.  It is currently set to 2 days -->
            <init-param>
                <param-name>autologin.cookie.age</param-name>
                <param-value>172800</param-value>
            </init-param> 
  3. Jira を再起動して変更を適用します。ローリング リスタートで十分ですので、完全なダウンタイムは発生しません。

Jira をクラスターで実行している場合は、すべてのノードに変更を適用してください。

認証後、一定時間経過後にユーザーのログアウトを強制する

たとえば、厳格なセキュリティ ポリシーがあり、ユーザーがアイドル状態であるかどうかにかかわらず、ユーザーが認証されてから 8 時間後にセッションを期限切れにする必要があるとしましょう (これは一例で、必要に応じて値を変更する必要があります)。

このような場合、ダッシュボード上でアイドル状態のときでもユーザーをログアウトできます。しかし、これは望ましくない挙動である場合もあるので、この解決策を選ぶときは注意が必要です。上記の両方の解決策を適用しても問題が解決しない場合にのみ、それを試してください。

各ファイルで推奨される構成変更は次のとおりです。

  1. <jira-install>/conf/web.xml を編集し、次のようなブロックを検索してくださいこれはデフォルトの設定です。

        <session-config>
            <session-timeout>30</session-timeout>
        </session-config>
  2. 構成を次のように調整します。

        <session-config>
            <session-timeout>480</session-timeout>
            <tracking-mode>COOKIE</tracking-mode>
            <cookie-config> 
              <max-age>28800</max-age> 
            </cookie-config>
        </session-config>
    • session-timeout は分単位で設定され、 max-age は秒単位で設定されます。
    • max-ageJSESSIONID に追加すると、永続的 cookie に変わります。
    • ユーザーがセッション タイムアウト分の間アイドル状態になると、ユーザー セッションはクリアされます。
    • max-age の期限が切れると、ユーザーは強制的にログアウトされます。
    • max-age はセッション タイムアウトとは異なる値に設定できます
  3. <jira-install>/atlassian-jira/WEB-INF/web.xml を編集し、次のようなブロックを検索してくださいこれはデフォルトの設定です。

        <!-- session config -->
        <session-config>
            <session-timeout>300</session-timeout>
        </session-config>
  4. 構成を次のように調整します。

        <!-- session config -->
    	<session-config>
            <session-timeout>480</session-timeout>
            <tracking-mode>COOKIE</tracking-mode>
            <cookie-config> 
              <max-age>28800</max-age> 
            </cookie-config>
        </session-config>
  5. <jira-install>/atlassian-jira/WEB-INF/classes/seraph-config.xml を編集し、以下の初期化パラメータを追加します。

             <!-- This property sets the default remember me cookie max age in seconds. It is currently set to 8 hours -->
            <init-param>
                <param-name>autologin.cookie.age</param-name>
                <param-value>28800</param-value>
            </init-param> 
  6. Jira を再起動して変更を適用します。ローリング リスタートで十分ですので、完全なダウンタイムは発生しません。

Jira をクラスターで実行している場合は、すべてのノードに変更を適用してください。

更なる詳細

他のアトラシアン製品に関する同様の文書をお探しの場合は、次の記事をご確認ください。


実施した変更がうまくいかなかった場合に考えられる原因

  1. There is a known issue that the set timeout might be changed by the Atlassian Bot Session Killer, as described here.

    If that happens, you should first disable the bot and then change the session again. Refer to When using a third-party authenticator, user sessions may terminate earlier than expected when idle for additional details.

    If you're running multiple Atlassian applications on the same server, Jira users may still get consistently logged out. In this case, you should try to change the context path according to the Logging into Another Atlassian Application Logs Me Out of Confluence.

     Also, check the following tickets for more details:

    JRA-60844 - Getting issue details... STATUS
    JRASERVER-73080 - Getting issue details... STATUS
  2. It is possible for 3rd party apps to interfere with this behavior. You can temporarily enable Safe Mode (disables all installed apps) and check if the behaviour persists to confirm if this applies to you: Disabling and enabling apps \- Disabling or enabling all apps (using Safe Mode)
  3. Jira の seraph-config.xml ファイルを変更している。
    このファイルの変更は通常、カスタム SSO の実装のために行われます。カスタム SSO の実装には、Jira のデフォルトのタイムアウト設定と干渉する独自のタイムアウト設定がある場合があります。これを解消するには、次のいずれかを行う必要があります。
    1. seraph-config.xml に加えた変更を元に戻して、カスタムSSO を無効にする。または
    2. SSO アプリケーションのタイムアウトを設定する。たとえば、Crowd SSOを使用している場合、次のドキュメントに基づいてセッションのタイムアウトを設定できます。Crowd - Session configuration


Last modified on Mar 5, 2024

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.