# Active Directory

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FKxLZInR2ENYA2Hx2JOFn%2Fimage.png?alt=media&#x26;token=f2c68cac-b9bb-446d-bcd7-064a5dec9fc6" alt=""><figcaption></figcaption></figure>

## 概要

このガイドでは、KeeperPAMを使用して Active Directory ユーザーアカウントをリモートでローテーションする方法を説明します。

## 要件

このガイドを実施する前に、次の条件を満たしている必要があります。

* 自身のロールに[ローテーションの強制適用](/keeperpam/jp/privileged-access-manager/getting-started/enforcement-policies.md)が設定されている
* Keeperシークレットマネージャーの[アプリケーション](/keeperpam/jp/privileged-access-manager/getting-started/applications.md)が作成されている
* [Keeperゲートウェイ](/keeperpam/jp/privileged-access-manager/getting-started/gateways.md)がオンラインになっている
* KeeperゲートウェイがLDAPS (ポート 636) 経由でActive Directoryに接続できる状態になっている

### 1. PAMユーザーレコードを設定する

Keeperのローテーション機能は、このPAMユーザーレコード内の認証情報を使用して、ディレクトリ内の他のアカウントをローテーションします。このアカウントはドメイン管理者である必要はありませんが、他のアカウントのパスワードを正常に変更できる権限を持っている必要があります。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FTME8FdEQ3g6vPlQ2Py85%2Fimage.png?alt=media&#x26;token=f8dee5e1-00e0-41d5-8d59-00445a0612ab" alt=""><figcaption><p>AD管理者用PAMユーザーレコード</p></figcaption></figure>

{% hint style="info" %}
PAMユーザーレコードは、要件で作成したKSMアプリケーションに共有されている共有フォルダ内に配置する必要があります。この特権アカウントへのアクセスが必要なのはKSMアプリケーションのみであり、ユーザーと共有する必要はありません。
{% endhint %}

#### PAMユーザーレコードのフィールド

<table><thead><tr><th width="166.9921875">項目</th><th>説明</th></tr></thead><tbody><tr><td>レコードタイプ</td><td>PAMユーザー</td></tr><tr><td>タイトル</td><td>Keeperレコードのタイトル</td></tr><tr><td>ログイン</td><td>Active Directory 管理者のユーザー名。ユーザー名の形式は、対象システムやサービスの種類によって異なります。<br><br>例: <code>Administrator Administrator@domain.local</code></td></tr><tr><td>パスワード</td><td>Active Directory上の管理者ユーザーのパスワード。</td></tr><tr><td>識別名</td><td>Active Directory上の管理者ユーザーの完全な識別名 (DN)。</td></tr></tbody></table>

### 2. PAM構成のセットアップ

[PAM構成](/keeperpam/jp/privileged-access-manager/getting-started/pam-configuration.md)は、環境とKeeperゲートウェイおよび認証情報を関連付けるものです。この事例用のPAM構成がまだ設定されていない場合は、新しく作成してください。

| 項目            | 説明                                            |
| ------------- | --------------------------------------------- |
| タイトル          | 構成名。例: My Active Directory                    |
| 環境            | Domain Controller を選択                         |
| ゲートウェイ        | ディレクトリサーバーにアクセスできる Gateway を選択                |
| アプリケーションフォルダ  | 手順1で作成した PAM ユーザーレコードを含む共有フォルダを選択             |
| 管理用認証情報       | 手順1で作成した PAM ユーザーレコードを選択                      |
| ホスト名またはIPアドレス | Active Directory ドメインのドメイン名またはIPアドレスを入力       |
| ポート           | 636 (LDAPS) を入力。389 (LDAP) はローテーションに対応していません。 |
| SSLを使用        | このチェックボックスがオンになっていることを確認                      |

### 3. PAMユーザーレコードのセットアップ

KeeperPAMは、PAMユーザーレコードにリンクされた認証情報を使用して、環境内の他のPAMユーザーレコードをローテーションします。PAMユーザーの認証情報は、シークレットマネージャーアプリケーションに割り当てられた共有フォルダに保存する必要があります。以下の例では、ADユーザー「demouser」をローテーションします。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FvTtdHYHBMUU1fZjoWDyt%2Fimage.png?alt=media&#x26;token=f9d70be4-f496-4a36-806c-2b097df2284f" alt=""><figcaption><p>Active Directoryアカウントのパスワードローテーションの例</p></figcaption></figure>

#### PAMユーザーレコードのフィールド

<table><thead><tr><th width="164.71484375">項目</th><th>説明</th></tr></thead><tbody><tr><td>レコードタイプ</td><td>PAM ユーザー</td></tr><tr><td>タイトル</td><td>Keeper レコードのタイトル。例: AD User - demouser</td></tr><tr><td>ログイン</td><td>ローテーション対象アカウントのユーザー名。ユーザー名の形式は、対象システムやサービスの種類によって異なります。<br><br>例:<br><code>demouser</code><br><code>demouser@domain.local</code></td></tr><tr><td>パスワード</td><td>アカウントのパスワード (任意)。多くの場合、既存のパスワードを入力しなくてもローテーションを実行できますが、プロトコルやシナリオによっては必要になる場合があります。</td></tr><tr><td>識別名</td><td>ユーザーのLDAP DN。<br>例: <code>CN=Demo User,CN=Users,DC=lureydemo,DC=local</code></td></tr></tbody></table>

ユーザーのDNが分からない場合は、次のPowerShellコマンドで確認できます。

```
Get-ADUser -Identity <username> -Properties DistinguishedName
```

### 4. レコードでローテーションを構成する

PAMユーザーレコードを選択し、レコードの編集画面から **\[パスワードローテーション設定]** を開きます。

PAMユーザーレコードの編集権限を持ち、かつローテーションを許可する[強制適用ポリシー](/keeperpam/jp/privileged-access-manager/getting-started/enforcement-policies.md)が適用されているユーザーであれば、そのレコードに対してローテーションを設定できます。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2F5iCYlNHq4KurbxDC2p6x%2Fimage.png?alt=media&#x26;token=4a4081c4-2255-4869-8294-005a948f45a8" alt=""><figcaption><p>PAMユーザーのスケジュールローテーション</p></figcaption></figure>

* 「ローテーション」は「IAMユーザー」タイプに設定します。
* 「PAM構成」フィールドには、手順2で作成したActive DirectoryのPAM構成を指定します。
* 任意のスケジュールとパスワードの複雑度を選択します。
* 保存すると、ローテーションボタンが有効になり、オンデマンドまたは選択したスケジュールでローテーションを実行できるようになります。

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

LDAPが正しく構成されているかを確認する簡単な方法は、「LDP.exe」を実行して接続をテストすることです。この接続が成功すれば、Keeperのローテーションも正常に実行できるはずです。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FgYjA1drAgeNk7DqfxCY8%2Fimage.png?alt=media&#x26;token=415b73ab-93e3-41e2-9a01-446902afcfd9" alt=""><figcaption><p>LDP.exe を使用した LDAP 接続のテスト</p></figcaption></figure>

### 自己署名証明書を使用したテスト

KeeperでActive Directoryユーザーアカウントのローテーションをテストする場合は、LDAPS接続が有効であり、正しい証明書を使用していることを確認する必要があります。テスト目的であり、本番環境用の証明書をお持ちでない場合は、以下の手順で自己署名証明書を作成できます。

{% hint style="warning" %}
Active Directoryで自己署名証明書を使用するのはテスト目的のみにしてください。本番環境では使用しないでください。
{% endhint %}

{% stepper %}
{% step %}
**証明書の作成**

管理者として実行しているPowerShellから、自己署名証明書を作成します。証明書のサブジェクト名および代替名は、サーバーのホスト名と一致している必要があります。この例では、プライマリ名が「XYZ123.company.local」、代替名が「company.local」と「company」です。

{% code overflow="wrap" %}

```
New-SelfSignedCertificate -DnsName XYZ123.company.local,company.local,company, -CertStoreLocation cert:\LocalMachine\My
```

{% endcode %}
{% endstep %}

{% step %}
**証明書のインストール**

このスクリプトは、証明書マネージャーの個人セクションにある証明書を検出し、それを信頼済みドメインにコピーします。スクリプトの1行目にある `company` パラメーターは、手順1のドメインに合わせて置き換えてください。

{% code overflow="wrap" %}

```
# 作成した証明書を取得
$cert = Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object {$_.Subject -like "*company*"}
$thumbprint = ($cert.Thumbprint | Out-String).Trim()

# レジストリを介して NTDS にコピー
$certStoreLoc = 'HKLM:/Software/Microsoft/Cryptography/Services/NTDS/SystemCertificates/My/Certificates'
if (!(Test-Path $certStoreLoc)) {
    New-Item $certStoreLoc -Force
}
Copy-Item -Path HKLM:/Software/Microsoft/SystemCertificates/My/Certificates/$thumbprint -Destination $certStoreLoc

# 信頼されたルートストアにコピー
$rootStore = New-Object System.Security.Cryptography.X509Certificates.X509Store([System.Security.Cryptography.X509Certificates.StoreName]::Root, 'LocalMachine')
$rootStore.Open('ReadWrite')
$rootStore.Add($cert)
$rootStore.Close()
```

{% endcode %}
{% endstep %}

{% step %}
**NTDSの再起動**

NTDSサービスを再起動した後、証明書がインストールされます。

```
Restart-Service NTDS -force
```

{% endstep %}

{% step %}
**接続チェック**

「LDP.exe」を実行し、SSLを有効にした状態でポート636を使用してローカルドメインに接続できることを確認します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FVTUP2ookEDAIE6TYHkcK%2Fimage.png?alt=media&#x26;token=9e4ba349-a030-481d-8d43-a7fa804a461e" alt=""><figcaption><p>LDP.exeを使用して接続</p></figcaption></figure>
{% endstep %}
{% endstepper %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/privileged-access-manager/password-rotation/rotation-use-cases/active-directory.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
