# AD FSの設定

{% hint style="info" %}
AD FSとの完全なクラウドベースの統合については、[KeeperクラウドSSOコネクト](https://app.gitbook.com/o/-LO5CAzoigGmCWBUbw9z/s/-Mfd2v-YT48Ljtykb8qm/)をご参照ください
{% endhint %}

### Microsoft AD FS

#### フェデレーションメタデータXMLを取得 <a href="#obtain-federation-metadata-xml" id="obtain-federation-metadata-xml"></a>

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FMTUau9uKtnlifJoQfVKw%2Fimage.png?alt=media&#x26;token=d9c90751-03a7-4a50-9c34-55c85d2098c6" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FUZMkDizkykGACNRTMzPZ%2Fimage.png?alt=media&#x26;token=08720870-0052-4660-93fb-a0391ac13a5a" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2F3TAovJ8Mz3K2c7ui8bnq%2Fimage.png?alt=media&#x26;token=abca9515-2cdc-4210-ae41-d744cd9e19b5" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2Fp79qUzGpZHnvMlwlA1Cd%2Fimage.png?alt=media&#x26;token=4976d4bf-e035-41dd-a950-74a70e19739a" alt=""><figcaption></figcaption></figure>

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

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

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

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FVtFPGXy0RfcprW7t8Ww1%2Fimage.png?alt=media&#x26;token=7a4e4c54-74d2-4fe6-8e1f-776c1a245dc0" alt=""><figcaption></figcaption></figure>

#### AD FSの設定を完了 <a href="#finish-adfs-config" id="finish-adfs-config"></a>

#### 証明書利用者信頼を作成

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FqTG3Gl6YgvDpm0xyZteB%2Fimage.png?alt=media&#x26;token=1f114e1d-acb0-4f98-83c6-b20d94325f3e" alt=""><figcaption></figcaption></figure>

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

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FCTqYmr7PguBpZiTVWyWl%2Fimage.png?alt=media&#x26;token=c0b28364-72b7-44ee-b2f8-beb816ef8f0f" alt=""><figcaption><p>要求に対応するアプリケーション</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FZtOPMl3bWYJGrUHfEMF6%2Fimage.png?alt=media&#x26;token=04331cdf-a99d-4f7d-a9fa-8c26ccfcd3e7" alt=""><figcaption><p>データをインポート - フェデレーションメタデータファイルの場所</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2F5W7JfgzzheOduexkscUL%2Fimage.png?alt=media&#x26;token=81374b7c-e863-4e59-9694-19381143bc2d" alt=""><figcaption><p>表示名を入力</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FPNrELK7zoA5BFrMi0Gha%2Fimage.png?alt=media&#x26;token=a710d369-88f7-4b0b-9d99-898a716af9ad" alt=""><figcaption><p>アクセス制御ポリシーを選択</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FOZse6RFInWUNMArEumFB%2Fimage.png?alt=media&#x26;token=2dd5e703-ff46-4638-ac6c-00c0297b1390" alt=""><figcaption><p>SAMLログアウトエンドポイント</p></figcaption></figure>

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FBPJc0jxw6hIrzO4GvQKf%2Fimage.png?alt=media&#x26;token=a1f17f5b-2393-4ade-960a-3186f524c180" alt=""><figcaption><p>要求発行ポリシーを設定</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FmPPj5J6EeSvQZYCmZb0F%2Fimage.png?alt=media&#x26;token=afe27865-0d53-4f5b-a526-1f1e1331d0be" alt=""><figcaption><p>証明書利用者信頼</p></figcaption></figure>

#### 要求発行ポリシー規則を作成 <a href="#claim-issuance-policy" id="claim-issuance-policy"></a>

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2Fh0R5PCIArewPbJIYsGES%2Fimage.png?alt=media&#x26;token=6ad62dfd-915a-451c-aa3b-5b9e53a9bbc2" alt=""><figcaption><p>要求発行ポリシーを編集</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FGLKkKlxXhMeiLZgeGB5J%2Fimage.png?alt=media&#x26;token=6546fa65-b301-4639-9c73-9ac9ef121490" alt=""><figcaption><p>規則を追加...</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FOpSNhenGvXjLHpZ3r4q7%2Fimage.png?alt=media&#x26;token=a7eb917a-b67b-48fd-ae55-f682ce59127b" alt=""><figcaption><p>規則のタイプを選択</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FE6oXZEZa4WAPZMqwuNqH%2Fimage.png?alt=media&#x26;token=af569000-f51e-487e-b994-433b851ca3c0" alt=""><figcaption><p>要求規則名 - マッピング</p></figcaption></figure>

{% hint style="info" %}
**3つの属性 (「名 (First）」 「姓 (Last）」 「メール (Email）」) が上記のように正確なスペルで設定されていることを確認してください**。
{% endhint %}

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FogtL1Pd1fYn4o9bsGVrK%2Fimage.png?alt=media&#x26;token=680f5df0-2e9f-452a-be4d-db9edf7a6597" alt=""><figcaption><p>発行変換規則</p></figcaption></figure>

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FTFhp7zobbWpln5U2qlQK%2Fimage.png?alt=media&#x26;token=0db253c7-3f63-4b82-9d36-a5ec417354ed" alt=""><figcaption><p>カスタム規則を使用して要求を送信</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FzpB6pGfgFywh4YFqAoZU%2Fimage.png?alt=media&#x26;token=62d0fa36-0dee-4937-8751-57baa1934ba1" alt=""><figcaption><p>不透明な永続識別子を作成</p></figcaption></figure>

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

```
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);
```

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FjRVkesIoRSJLfUrAJ34i%2Fimage.png?alt=media&#x26;token=e9c04595-0551-4d9a-b9e5-7e9f956b94ef" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2Fksg6tBGDSirtV2inCqnk%2Fimage.png?alt=media&#x26;token=e4bc99be-74a5-4e1a-ad9f-d5dc1db41b5a" alt=""><figcaption><p>入力方向の要求を変換</p></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FiltmKs2gDDn4y97tFXXK%2Fimage.png?alt=media&#x26;token=54c9b48f-d089-45d4-856a-9df3b9c7eef4" alt=""><figcaption><p>永続的な名前の識別子を作成</p></figcaption></figure>

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

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

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FPvkkaKAGTbovdxgTXHgD%2Fimage.png?alt=media&#x26;token=345e1438-796f-49c0-9be0-3dcafd88c8c9" alt=""><figcaption><p>送信方向の要求と名前識別子の形式を設定</p></figcaption></figure>

#### 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サービスを再起動します。

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FZ5yBkzRoZPKzktC7qP2l%2Fimage.png?alt=media&#x26;token=d74c6938-ae06-4162-80c1-22f63c0122d1" alt=""><figcaption><p>AD FSを再起動</p></figcaption></figure>

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

#### トラブルシューティング

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

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2Fo3OmzfIM4sF2euDnZSEZ%2Fimage.png?alt=media&#x26;token=ce63008a-357e-42bb-a318-688f963180a4" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2257682436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpnnyqlSSLL0TJdycg6le%2Fuploads%2FGitJS885zQK6l4B6cKGu%2Fimage.png?alt=media&#x26;token=e980309c-11da-44ca-880e-d4324bf393de" alt=""><figcaption></figcaption></figure>

考えられる根本原因\
\
タイムスキュー\
\
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メタデータの交換が必要になる場合があります。
