ローカルのリバース プロキシからのセッションが DefaultRememberMeService に却下される

お困りですか?

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

コミュニティに質問

プラットフォームについて: 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 は除く

要約

Bitbucket Server は、ユーザー セッションを記憶し、同じ IP アドレスからユーザー セッションを受け取ったときに再認証を要求しないように構成できます。リバース プロキシが含まれる場合、アドレスがクライアントとプロキシの IP に一致する必要があります。これは、クライアントの IP とプロキシの IP が一貫している限りは動作します。ホスト名の解決を受け、プロキシで別の IP を利用した転送が行われる可能性があります。プロキシの IP が変更されると、セッションは却下されます。これは期待された動作です。 

診断

$BITBUCKET_HOME/log/atlassian-bitbucket.log で次のログ メッセージが確認できます。 

2021-04-05 22:32:24,357 INFO http-nio-7990-exec-385 192.168.10.32,0:0:0:0:0:0:0:1 "GET /projects/PROJ1/repos/REPO/browse HTTP/1.0" c.a.s.i.a.DefaultRememberMeService Remember-me token detected for series '8fae4af1c41335e0bb51c03bebb24a0b3ce7e6d1' for user 'username' (used from '192.168.10.32,127.0.0.1'). Current request is from a different address ('192.168.10.32,0:0:0:0:0:0:0:1')! As a safety precaution, all (3) tokens from that series have been canceled.

クライアント IP は同じですが、転送されたプロキシ IP が 127.0.0.1 または 0:0:0:0:0:0:0:1 である点をご確認ください。

原因

IPv4 アドレス 127.0.0.1 と IPv6 アドレス 0:0:0:0:0:0:0:1 の両方が localhost を参照するため、Bitbucket によってセッションが却下されるのは望ましくありません。リバース プロキシでは localhost 用に 1 つのアドレスのみが使われるのが理想的です。

このインスタンスでは、リバース プロキシである nginx はローカルにインストールされており、トラフィックをポート 7990 にリダイレクトするよう構成されています。

proxy_pass http://localhost:7990;

/etc/host  には localhost の定義が複数含まれ、localhost の候補のアドレスが複数存在するのはこのためです。

127.0.0.1 localhost
::1 localhost


ソリューション

もっとも簡単な修正は、ローカルのリバース プロキシが同じ IP アドレスを利用した転送を行うことです。例:

proxy_pass http://127.0.0.1:7990;



最終更新日 2021 年 6 月 21 日

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

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