Confluence Data Center で SAML をバイパスするデフォルトのログイン ページを有効化する
この記事は SSO for Atlassian Data Center アプリのバージョン 4.0 に適用されます。ご利用の Confluence バージョンにバンドルされているアプリ バージョンは異なる場合があります。
以降で古いバージョン用のドキュメントをご確認ください。
目的
SSO プラグインでは、構成済みの IdP を利用せずに Confluence に直接ログインできるバイパス パラメーターがサポートされています。このクエリ パラメーター auth_fallback
はデフォルトでは無効化されており、ログイン ページの URL でのみ動作します。SSO の問題のトラブルシューティングに便利です。この Confluence URL の例は次のとおりです。http://confluence.com/login.action?auth_fallback。SSO 認証のバイパスを許可するようにアプリケーションが構成されている場合、ユーザーはこのパラメーターを提供することでデフォルトのログイン ページに直接アクセスできるようになります。
SSO 2.0 の構成で [ログイン モード] を [OpenID Connect/SAML をセカンダリ認証として利用] に設定することで、すべてのユーザーとすべての URL で SSO バイパスを有効化することもできます。このオプションを有効化すると、すべてのユーザーがデフォルトのログイン ページを通じてログインでき、https://<ベース URL>/plugins/servlet/external-login に移動することで IdP 経由のログインを行えるようになります。
この設定を有効化すると、ユーザーが Confluence にアクセスするときに IdP 経由のログインに自動的に転送されることはなくなります。これは望ましくない場合があります。対象をアクティブなユーザーのみに設定したい場合は以降のアプローチをご確認ください。
REST API を利用してデフォルトのログイン ページを有効化する
この機能を利用するには、REST API 経由で allow-redirect-override フラグを有効化する必要があります。これは他の REST クライアントや cURL 経由で行えますが、ユーザー フレンドリーな方法は次のとおりです。
1. ご利用のブラウザ用に Postman をダウンロードします (別の REST クライアントをお持ちの場合はご自身のものを使えます)
2. Postman を開きます。
3. ドロップダウン メニューから GET を選択し、[Authorization] タブで [Basic Auth] を選択します (Confluence の管理用の資格情報を入力)。
4. ご利用の環境に合わせて変更した次の URL を入力します。http(s)://<ベース URL>/rest/authconfig/1.0/sso (例: https://confluence.com/rest/authconfig/1.0/sso)
5. OIDC が構成されている場合、SEND をクリックすると次のような内容が返されます。
{
"sso-type": "OIDC",
"redirect-on-login": true,
"allow-redirect-override": false,
"include-customer-logins": false,
"enable-remember-me": true,
"issuer-url": "https://<redacted>-testing.okta.com",
"client-id": "<redacted>gUe4x5",
"discovery-enabled": true,
"username-claim": "preferred_username"
}
SAML が構成されている場合は次のような出力になります。
6. これを行うには、Postman で新しいタブを開きます。
7. ドロップダウンから [PATCH] を選択し、次の URL を入力します。http(s)://<ベース URL>/rest/authconfig/1.0/sso (例: https://confluence.com/rest/authconfig/1.0/sso)
- Confluence の一部のバージョンではこの操作を試行したときに 405 - Method Not Allowed エラーが返される可能性があります。この場合は PATCH の代わりに PUT を使うか、逆方向の入れ替えを行ってください。以降のすべての情報が引き続き適用されます。
415 - Unsupported Media Type クライアント エラーが表示される場合、ペイロードのフォーマットがサポート対象外であるためにサーバーがリクエストの受け入れを拒否しています。Header で Content-type が application/json に設定されていることをご確認ください。
8. [Authorization] タブで [Basic Auth] を選択し、管理アカウントの資格情報を入力します。
9. [Body] タブに移動し、ラジオ ボタンから [raw] を選択します。ドロップダウン メニューから [JSON (application/json)] を選択します。
10. 以降の JSON 本文を利用して関連するパラメーターを true に設定します。
11. [Send] ボタンをクリックすると 200 または 304 ステータスが返されます。
12. これで、http://confluence.com/login.action?auth_fallback にアクセスして SSO をバイパスできるようになります。意図された挙動を復元するため、メンテナンスが完了したらこのフラグを false に戻すことを忘れないようにしてください。これを行うには、同じ PATCH リクエストを true ではなく false で発行します。
13. これが完了したら、同じ GET リクエストを前述の次の URL に送信することで allow-redirect-override が false に戻ったことを確認します。http(s)://<ベース URL>/rest/authconfig/1.0/sso
データベース
SSO 構成は次のクエリを通じてデータベースで直接確認することもできます。
select * from bandana where bandanakey like 'com.atlassian.plugins.authentication.sso.config.allow-redirect-override';
bandanakey com.atlassian.plugins.authentication.sso.config.allow-redirect-override
について、返される値は "false" であることが期待されます。
UPDATE BANDANA SET BANDANAVALUE='<string>true</string>' WHERE BANDANAKEY='com.atlassian.plugins.authentication.sso.config.allow-redirect-override';
上記の更新クエリを実行して値を true に変更できます。しかしながら、データベースでの値の直接変更は推奨されません。REST API のエンドポイントを使うほうが安全ですが、上記の SELECT 句は必要に応じて現在の設定を確認するのに利用できます。
アプリ バージョン 3.2 以前の場合
SSO for Atlassian Data Center アプリのバージョン 3.2 以前を実行している場合、手順が異なります。