SAML (ADFS)

ADFSとSUSE® Securityの統合設定

このセクションでは、最初にADFSの設定手順を説明し、その後SUSE® Securityコンソールの設定を説明します。

ADFSの設定

  1. AD FS管理から、"`Relying Party Trusts`"を右クリックし、"`Add Relying Party Trust…​`"を選択します。

    adfsSetup

  2. ウェルカムステップから"`Start`"ボタンを選択します。

    adfsSetup

  3. "`Enter data about the relying party manually`"を選択し、"`Next`"を選択します。

    adfsSetup

  4. 表示名フィールドにユニークな名前を入力し、"`Next`"を選択します。

    adfsSetup

  5. トークン暗号化をスキップするには、"`Next`"を選択します。

    adfsSetup

  6. "`Enable support for the SAML 2.0 WebSSO protocol`"を確認し、SUSE® Securityの設定>SAML設定ページからSAMLリダイレクトURIを"`Relying party SAML 2.0 SSO service URL`"フィールドに入力します。 続行するには"`Next`"を選択します。

    adfsSetup

  7. 同じSAMLリダイレクトURIを"`Relying party trust identifier`"フィールドに入力し、"`Add`"をクリックします。その後、続行するには"`Next`"を選択します。

    adfsSetup

  8. アクセス制御をカスタマイズし、その後"`Next`"を選択して続行します。

    adfsSetup

  9. 続行するには"`Next`"を選択します。

    adfsSetup

  10. 完了するには"`Close`"を選択します。

  11. クレーム発行ポリシーの編集を選択します…​

    adfsSetup

  12. "`Add Rule…​`"を選択し、"`Send LDAP Attributes as Claims`"を選択します。その後、"`Next`"を選択します。 ルールに名前を付け、属性ストアとしてActive Directoryを選択します。デフォルトのロールが設定されている場合、認証にはユーザー名の送信クレームのみが必要です。それ以外の場合、ロールマッピングにはグループが必要です。 メールは任意です。

    • SAMアカウント名 → ユーザー名

    • Eメールアドレス → メール

    • トークングループ — 未資格名 → グループ

    adfsSetup

  13. "`Add Rule…​`"を選択し、"`Transform an Incoming Claim`"を選択します。その後、"`Next`"を選択します。 ルールに名前を付け、以下のスクリーンショットにキャプチャされたフィールドを設定してください。 送信者名ID形式は、一時識別子である必要があります。

    adfsSetup

SUSE® Security セットアップ

  1. アイデンティティプロバイダ シングルサインオンURL

    • AD FS管理 > サービスからエンドポイントを表示し、"`SAML 2.0/WS-Federation`"エンドポイントURLを使用します。

    • 例: https://<adfs-fqdn>/adfs/ls

  2. アイデンティティプロバイダ発行者

    • AD FS管理コンソールのAD FSを右クリックし、"`Edit Federation Service Properties…​`"を選択します; "`Federation Service identifier`"を使用します。

    • 例: http://<adfs-fqdn>/adfs/services/trust

  3. X.509証明書

    • AD FS管理から、サービス > 証明書を選択し、トークン署名証明書を右クリックして"`View Certificate…​`"を選択します。

    • 詳細タブを選択し、"`Copy to File`"をクリックします。

    • Base-64エンコードされたx.509(.CER)ファイルとして保存します。

    • ファイルの内容をコピーして、X.509証明書フィールドに貼り付けます。

  4. グループクレーム

    • グループのための送信クレーム名を入力してください。

    • 例: グループ

  5. デフォルトロール

    • 認証されたユーザーにデフォルトの役割を許可したくない限り、"`None`"であることをお勧めします。

  6. 役割マップ

    • 適切な役割のユーザーのグループ名を設定します。 (以下のスクリーンショット例を参照してください。)

      NVadfsSetup

グループを役割とネームスペースにマッピングする

グループをプリセットおよびカスタム役割、ならびにSUSE® Securityのネームスペースにマッピングする方法については、ユーザーと役割セクションをご覧ください。

トラブルシューティング

  1. ADFS SamlResponseSignatureは、MessageOnlyまたはMessageAndAssertionのいずれかである必要があります。 Get-AdfsRelyingPartyTrustコマンドを使用して、それを確認または更新します。

    adfsTroubleshooting

  2. KubernetesノードとADFSサーバー間の時間同期

成功した認証のためには、KubernetesノードとADFSサーバー間の時間が同じである必要があり、時間同期やクロックドリフトの問題を避けることができます。

すべてのサーバーで同じ時間設定を持つ NTPサーバーの使用をお勧めします。

ADFSとSUSE® Securityホストの両方が同期されており、潜在的な遅延が10秒を超えないことを確認してください。LinuxおよびWindowsコマンドを使用して、日付、時刻、NTPサーバーのアクティビティを確認できます。

次のように、SUSE® Security UIで設定を無効にして再度有効にすることで、認証時間を再読み込みできます。

  • 管理者ユーザーでSUSE® Securityにログインします。

  • 設定に移動します。

  • SAML設定を無効にして再度有効にするボタンをクリックします。

    • 設定を保持することを確認してください!

設定が再度有効になったら、ADFSユーザーでログインを試みることができます。これが機能すれば、問題はKubernetesノードとADFSサーバー間の時間同期エラーによるものであることが確認されます。

  1. SAML文字はSUSE® Security UIで大文字と小文字を区別する必要があります。

    属性名は大文字と小文字を区別します。ここに設定されたSAML属性名がアプリケーション設定と完全に一致することを確認してください。SAMLは認証のために正しいURLを指す必要があります。

    `SUSE® Security UI → Settings → SAML Settings`のすべてのフィールドは大文字と小文字を区別します。

    SUSE® Securityコントローラーログには、ADFSサーバーとの認証に関する関連情報と、根本原因を特定するのに役立つエラーが含まれています。失敗したログイン条件を再現し、ログを確認することをお勧めします。

  2. 正しいグループ、証明書、およびプロトコルを入力してください。

    SAML設定は以下の設定と一致する必要があります:

    設定

    アイデンティティプロバイダ シングルサインオンURL

    HTTPSプロトコルが必要です。

    アイデンティティプロバイダ発行者

    HTTPプロトコルが必要です。

    ADFS SamlResponseSignature

    MessageOnlyまたはMessageAndAssertionのいずれかである必要があります。

これらの設定は、あなたのADFSサーバーとSUSE® Security UIで検証する必要があります。

選択した証明書は有効で正しく生成されている必要があり、その`CA Root`と`Intermediate Certificates`を含む必要があります。信頼できる証明書機関、Windows、または LetsEncryptのような自動化ツールを使用して生成できます。

これらのパラメータのいずれかが不正確な場合、SAML認証を使用してADFSユーザーでSUSE® Securityにログインしようとすると、`Authentication Failed`エラーが発生します。