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_fallbackSSO 認証のバイパスを許可するようにアプリケーションが構成されている場合、ユーザーはこのパラメーターを提供することでデフォルトのログイン ページに直接アクセスできるようになります。

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 をクリックすると次のような内容が返されます。

OIDC 構成の出力例
{
    "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 が構成されている場合は次のような出力になります。 

SSO for Atlassian Data Center アプリのバージョン 4.2.x 以降でのレスポンス...
SAML 構成の出力例
{
    "show-login-form": false,
    "enable-authentication-fallback": true,
    "show-login-form-for-jsm": false,
    "last-updated": "2021-12-13T15:43:25.388+01:00"
}

enable-authentication-fallback フィールドを true に設定する必要があります。


SSO for Atlassian Data Center アプリのバージョン 4.1.x 以前でのレスポンス...
SAML 構成の出力例
{
    "certificate": "-----BEGIN CERTIFICATE-----<redacted>==-----END CERTIFICATE-----",
    "sso-type": "SAML",
    "redirect-on-login": false,
    "allow-redirect-override": false,
    "include-customer-logins": false,
    "enable-remember-me": true,
    "idp-type": "GENERIC",
    "sso-url": "https://<redacted>-testing.okta.com/app/atlassianorg621049_samltest_1/<redacted>/sso/saml",
    "sso-issuer": "http://www.okta.com/<redacted>"
}

allow-redirect-override フィールドを true に設定する必要があります。



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 に設定します。

アプリ バージョン 4.2.x 以降向けの JSON 本文...
{
  "enable-authentication-fallback": true
}


11. [Send] ボタンをクリックすると 200 または 304 ステータスが返されます。

12. これで、http://confluence.com/login.action?auth_fallback にアクセスして SSO をバイパスできるようになります。意図された挙動を復元するため、メンテナンスが完了したらこのフラグを false に戻すことを忘れないようにしてください。これを行うには、同じ PATCH リクエストを true ではなく false で発行します。

13. これが完了したら、同じ GET リクエストを前述の次の URL に送信することで allow-redirect-overridefalse に戻ったことを確認します。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 以前を実行している場合、手順が異なります。 

アプリ バージョン 3.2 用のドキュメントを確認...

REST API を利用してデフォルトのログイン ページを有効化するためのソリューション

この機能を利用するには、REST API 経由で allow-saml-redirect-override フラグを有効化する必要があります。これは他の REST クライアントや cURL 経由で行えますが、ユーザー フレンドリーな方法は次のとおりです。

1. ご利用のブラウザ用に Postman をダウンロードします (別の REST クライアントをお持ちの場合はご自身のものを使えます)

2. Postman を開きます。

3. ドロップダウン メニューから GET を選択し、[Authorization] タブで [ Basic Auth ] を選択します (管理用の資格情報を入力)。

4. ご利用の環境に合わせて変更した次の URL を入力します。https://localhost:PORT/contextPath/rest/authconfig/1.0/saml (例: https://confluence.com/rest/authconfig/1.0/saml)

5. SEND をクリックすると次のような内容が返されます。

{
  "sso-url": "https://dev-486166.oktapreview.com/app/jeancodev486166_confdc_1/exk9awjfupbFE8VQp0h7/sso/saml",
  "sso-issuer": "http://www.okta.com/exk9awjfupbFE8VQp0h7",
  "certificate": "MIIDpDCCAoygAwIBAgIGAVl1EwJVUzETMBEG\nA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU\nMBIGA1UECwwLU1NPUHJvdmlkZXIxEzARBgNVBAMMCmRldi00ODYxNjYxHDAaBgkqhkiG9w0BCQEW\nDWluZm9Ab2t0YS5jb20wHhcNMTcwMTA2MjExMjExWhcNMjcwMTA2MjExMzExWjCBkjELMAkGA1UE\nBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDTALBgNV\nBAoMBE9rdGExFDASBgNVBAsMC1NTT1Byb3ZpZGVyMRMwEQYDVQQDDApkZXYtNDg2MTY2MRwwGgYJ\nKoZIhvcNAQkBFg1pbmZvQG9rdGEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nn5+MbxEb0rRA5kDBxVvzNRO3otJS7UMB3ldTEqivmieXvkXiSLjVYQJr7gbg+OYAX12V35HmrIs6\nRiT/d4trsePI09hRjQD2eMXsd11v1eKmoyAbsV026LZTHoVpXZQyeK383chJLEp2G6lRVdA/uFpP\nj5OCSiB5jVhEdRXymbfeESecMbh5YJu9H025sDBiqyzDHmZXunPdmJ0fyFpY9Q98bMfi7KUICHff\nlncSYQRDYax17wTO/2Nu4akWVESiBaedBlXAKuEOoB26ysxbQiUATOJTKodiGydyxLAlk2DV+Uzz\nDAeN8mQw7y4MArrSDqTWnTbtg3SJl6e0Ho/CGQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQBNy/LR\nG85t3nuk4bnh2XRWtOXlSKtq6fVMAtJ4kd8vxB8M8DyFWDIaoXTd35COs1p2LX176hdBKjgau8Ux\nNUOJ3MIOw8qQAwFWguBHFWYhrcgDCVtCvz3wLIBRZehW/tX2ah+M8ATsn8oLPHaL2W11Z0JOiEcV\nIdAu6CyR1iDcVjCT7DV3h8aUWaLjfnfcJasEqiTEs2DH1d8E+GdW/lWaGiAdVlnxmxv5rvkwFxvZ\nDJyk2VPxZmFVdK16cUbPgnk5Bge7wnNaQZOUBmUZKAKmzeA+22lhKPpv8IGTIwEpcoUHggAdhvrT\nHfcvAs4OyFQgeaBA5//UjZVa/MfAFmqP",
  "user-attribute": null,
  "allow-saml-redirect-override": false,
  "include-customer-logins": false,
  "redirect-on-login": false,
  "enable-remember-me": false
}

allow-saml-redirect-override フィールドを true に設定する必要があります。

6. これを行うには、Postman で新しいタブを開きます。

7. ドロップダウンから [PUT] を選択し、次の URL を入力します。http://localhost:PORT/contextPath/rest/authconfig/1.0/saml (例: https://confluence.com/rest/authconfig/1.0/saml)

8. [Authorization] タブで [Basic Auth] を選択し、管理アカウントの資格情報を入力します。

9. [Body] タブに移動し、ラジオ ボタンから [Raw] を選択します。ドロップダウン メニューから [JSON] を選択します。

10. コマンドの結果を参考に、allow-saml-redirect-overridetrue に設定します。

{
  "allow-saml-redirect-override": true
}

11. [Send] ボタンをクリックすると 200 または 304 ステータスが返されます。

12. これで、http://confluence.com/login.action?auth_fallback にアクセスして SSO をバイパスできるようになります。意図された挙動を復元するため、メンテナンスが完了したらこのフラグを false に戻すことを忘れないようにしてください。

13. 歯車 > [全般設定] > [SAML 認証] ページでプライマリ認証に SAML を設定できるようになります。

データベース

SAML 構成は次のクエリを通じてデータベース側で確認することもできます。

select * from bandana where bandanakey like '%samlconfig%';

しかしながら、 データベースでの値の直接変更は推奨されません 。 REST API のエンドポイントを使うほうが安全です。上記のクエリは必要に応じて現在の設定を確認するのに利用できます。



最終更新日: 2021 年 12 月 23 日

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

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