AD FSの設定

KeeperオンプレミスSSOコネクトをMicrosoft AD FSと連携するように設定して、シームレスで安全なSAML 2.0認証を実現する方法。

AD FSとの完全なクラウドベースの統合については、KeeperクラウドSSOコネクトをご参照ください

Microsoft AD FS

フェデレーションメタデータXMLを取得

AD FS管理アプリケーション内で、フェデレーションメタデータxmlファイルを見つけます。 これは、AD FS > サービス (Service) > エンドポイント (Endpoints) をクリックし、「メタデータ (Metadata)」セクションでURLのパスを探せば確認できます。 パスは通常、以下に示すように /FederationMetadata/2007-06/FederationMetadata.xml です。

メタデータファイルをダウンロードするには、通常、サーバーのブラウザにURLを読み込めば入手できます。 例: https://<ご利用のホスト名 (your hostname) >/FederationMetadata/2007-06/FederationMetadata.xml このファイルをダウンロードして、コンピュータに保存します。

フェデレーションメタデータをインポート

FederationMetadata.xmlファイルをドラッグアンドドロップして、Keeper SSOコネクトの設定画面にインポートします。

保存 (Save) を選択して設定を保存します。

ADFSの署名証明書の有効期限は、通常1年間のみです。 ADFSは、最新の証明書に自動的にローテーションする場合があります。 これにより、Keeper SSOコネクトとADFS間の信頼関係が崩れます。 動作を保証するために、新しいfederationMetadata.xmlファイルを生成して、Keeper SSOコネクトにアップロードする必要があります。 この手順を実行して動作を維持できるように、証明書が失効する前にリマインダーを設定することを強くお勧めします。

Keeper SSOコネクトメタデータをエクスポート

Keeper SSO Connectのメタデータをエクスポート (Export Metadata) リンクを選択し、sso_connect.xmlファイルをご利用のIdPにコピーします。

AD FSの設定を完了

証明書利用者信頼を作成

Keeper SSOコネクトを証明書利用者信頼として作成します。

Keeperメタデータをインポート

以下の手順に示すように、証明書利用者信頼ウィザードを完了して、Keeper SSOコネクトから前もってエクスポートしたKeeperメタデータをインポートします。

要求に対応するアプリケーション
データをインポート - フェデレーションメタデータファイルの場所
表示名を入力
アクセス制御ポリシーを選択
SAMLログアウトエンドポイント

ログアウトエラーを防ぐには、証明書利用者信頼のSAMLログアウトエンドポイントをhttps://<ご利用のADFSサーバーのドメイン名 (YourADFSserverDomain) >/adfs/ls/?wa=wsignout1.0に変更します。

要求発行ポリシーを設定
証明書利用者信頼

要求発行ポリシー規則を作成

AD FSとKeeperの間で属性をマッピングするには、LDAP属性を要求として送信 (Send LDAP Attributes as Claims) を使用して、要求発行ポリシーを作成し、LDAPの属性をKeeperコネクトの属性にマッピングする必要があります。

要求発行ポリシーを編集
規則を追加...
規則のタイプを選択
要求規則名 - マッピング

3つの属性 (「名 (First)」 「姓 (Last)」 「メール (Email)」) が上記のように正確なスペルで設定されていることを確認してください

発行変換規則

ログアウトをサポートするために、さらに2つの要求発行ポリシー規則を追加する必要があります。

カスタム規則を使用して要求を送信
不透明な永続識別子を作成

要求規則に追加する構文をコピーするには、以下のテキストをコピーして、カスタム規則に貼り付けます。

c1:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname"]
 && c2:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant"]
 => add(store = "_OpaqueIdStore", types = ("http://mycompany/internal/sessionid"), query = "{0};{1};{2};{3};{4}", param = "useEntropy", param = c1.Value, param = c1.OriginalIssuer, param = "", param = c2.Value);
入力方向の要求を変換
永続的な名前の識別子を作成

入力方向の要求の種類: http://mycompany/internal/sessionid

そこに自分の会社名を入力するのですか。いいえ、実際には文字通り 「http://mycompany/internal/sessionid」 を入力します

送信方向の要求の種類: 名前ID (Name ID) 送信方向の名前識別子 (Name ID) の形式: 一時識別子

送信方向の要求と名前識別子の形式を設定

SAML署名の設定

a. AD FSサーバーで管理者としてPowershellを開きます。 b. 以下のコマンドを実行して取得できるSSOコネクト証明書利用者信頼の「識別子 (Identifier)」の文字列を特定します。

Get-ADFSRelyingPartyTrust

このコマンドを実行すると、長い出力リストが生成されます。SSOコネクトセクションと「識別子 (Identifier)」の文字列を探します。 この文字列は以下のようになります。 https://xyx.company.com:8443/sso-connect

c. 以下のコマンドを実行し、<識別子 (Identifier) >を手順(b)で見つけた文字列に置き換えます。

Set-ADFSRelyingPartyTrust -TargetIdentifier <識別子(Identifier)> -samlResponseSignature MessageAndAssertion

Get-ADFSRelyingPartyTrustを再度実行すると、SamlResponseSignatureセクションが「MessageAndAssertion」に設定されていることが確認できます。

AD FSサービスを再起動

サービスマネージャから、AD FSサービスを再起動します。

AD FSを再起動

SAMLアサーションの署名は、AD FS環境で適切に設定する必要があります。 署名が設定されていない場合は、署名を設定し、再設定後にAD FSとKeeper SSOコネクト間でメタデータを再度交換する必要があります。

トラブルシューティング

Keeper SSOコネクトの設定後に、SSOが設定されていません (未定義) (SSO is not configured (undefined)) と表示される場合の根本原因としては、CRLの設定がないか、または間違っていると考えられます。 簡単な修正/回避策は、証明書失効チェックをすべて無効にすることです。

考えられる根本原因 タイムスキュー KeeperコネクトとIdPのシステム時刻が同じ (1秒以内) であることを確認してください。 ntp同期を設定 PS C:\Windows\system32>w32tm /config /syncfromflags:manual /manualpeerlist:0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org,3.pool.ntp.org,0x8 /reliable:yes /update 証明書有効性確認の失敗

  • 設定を確認します。管理者としてPowerShellを実行し、ADFSRelyingPartyTrustを確認します。

  • 上記の「SAML署名の設定」の手順に従います。

テスト目的または内部PKI証明書のために、IdPでの証明書の有効性確認を無効にする必要がある場合は、以下のPowershellコマンドをご使用ください。 <識別子 (Identifier) >を上記の 「SAML署名の設定」 の手順で見つけた文字列に置き換えます。

Set-ADFSRelyingPartyTrust -TargetIdentifier 
<識別子(Identifier)> -EncryptionCertificateRevocationCheck None
Set-ADFSRelyingPartyTrust -TargetIdentifier 
<識別子(Identifier)> -SigningCertificateRevocationCheck None

署名設定に何らかの変更を加えると、IdPとSSOコネクトの間でXMLメタデータの交換が必要になる場合があります。

Last updated