# Active DirectorユーザーまたはOpenLDAPユーザー

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FybQt6yfU1yUFe0IU62tM%2Fimage.png?alt=media&#x26;token=6cd189f0-ead0-4ece-8f8b-03b5bf9fe001" alt=""><figcaption></figcaption></figure>

## 概要

本ページでは、KeeperPAMを使用してActive DirectoryまたはOpenLDAPのユーザーアカウントをリモートでローテーションする方法を取り扱います。

## 要件

以下がすでに実行されていることを前提としています。

* ロールに対してローテーションポリシーが適用されていること。
* Keeperシークレットマネージャー[アプリケーション](/keeperpam/jp/privileged-access-manager/references/creating-ksm-app-for-rotation.md)が作成済みであること。
* Keeperゲートウェイがオンラインであること。
* Keeperゲートウェイは、LDAPS (ポート636) またはLDAP (ポート389) を通じてディレクトリと通信できること。

## 1. PAMディレクトリ認証情報を設定

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

{% hint style="info" %}
リンクされた管理者認証情報は、事前準備で作成したKSMアプリケーションに共有されている共有フォルダに保存する必要があります。この特権アカウントへのアクセスはKSMアプリケーションのみに必要であり、ユーザーと共有する必要はありません。
{% endhint %}

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FdvABpJ6uSoLTkwzD3iIO%2Fimage.png?alt=media&#x26;token=2f7c25b5-74b8-4597-ba02-f9bbb36e348c" alt=""><figcaption><p>PAMディレクトリレコード</p></figcaption></figure>

#### PAMディレクトリレコードのフィールド

<table><thead><tr><th width="194.5">フィールド</th><th>説明</th></tr></thead><tbody><tr><td><strong>レコードタイプ</strong></td><td>PAMディレクトリ</td></tr><tr><td><strong>タイトル</strong></td><td>Keeperレコードの名前</td></tr><tr><td><strong>ホスト名またはIPアドレス</strong></td><td>ディレクトリサーバーのIPアドレス、ホスト名、FQDN (例: <code>10.10.10.10</code>、<code>dc01.mydomain.local</code>)</td></tr><tr><td><strong>ポート</strong></td><td><code>636</code> (LDAPSはActive Directoryでのローテーションに必要です。<br>ポート<code>389</code>でのLDAPは安全でないため避けるべきです。)</td></tr><tr><td><strong>SSLを使用</strong></td><td>Active Directoryでの使用のために有効にします。</td></tr><tr><td><strong>管理者認証情報</strong></td><td>LDAPローテーション用に使用するPAMユーザー認証情報 (例: <code>rotationadmin</code>)</td></tr><tr><td><strong>ドメイン名</strong></td><td>Active Directoryのドメイン名 (例: <code>mydomain.local</code></td></tr><tr><td><strong>ディレクトリタイプ</strong></td><td><code>Active Directory</code>または<code>OpenLDAP</code>に設定</td></tr></tbody></table>

## 2. PAM構成を設定

注: 環境に対して既にPAM構成を設定済みの場合は、この手順を省略できます。

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

<table><thead><tr><th width="200">フィールド</th><th>説明</th><th data-hidden></th></tr></thead><tbody><tr><td><strong>タイトル</strong></td><td>構成名 (例: <code>My Active Directory</code>)</td><td></td></tr><tr><td><strong>環境</strong></td><td><code>Local Network</code>を選択</td><td></td></tr><tr><td><strong>ゲートウェイ</strong></td><td>ディレクトリサーバーへアクセスできるゲートウェイを選択</td><td></td></tr><tr><td><strong>アプリケーションフォルダ</strong></td><td>PAMディレクトリレコードが格納された共有フォルダを選択</td><td></td></tr><tr><td><strong>その他のフィールド</strong></td><td>事例によって変わります。PAM構成のセクションをご参照ください。</td><td></td></tr></tbody></table>

## 3. PAMユーザーレコードを設定

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%2Fk1B7noEX29M0GyTKk3Nv%2Fimage.png?alt=media&#x26;token=c7bea255-77e0-4536-a0f9-33e9bce65990" alt=""><figcaption><p>Active Directoryアカウントのパスワードローテーション例</p></figcaption></figure>

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

<table><thead><tr><th width="194.5">フィールド</th><th>説明</th></tr></thead><tbody><tr><td><strong>レコードタイプ</strong></td><td>PAMユーザー</td></tr><tr><td><strong>タイトル</strong></td><td>Keeperレコードの名前 (例: <code>AD User - demouser</code>)</td></tr><tr><td><strong>ログイン</strong></td><td>ローテーションするアカウントのユーザー名。ユーザー名の形式は対象のシステムとサービスタイプに依存します。<br><br>例:<br><code>demouser</code><br><code>demouser@domain.local</code></td></tr><tr><td><strong>パスワード</strong></td><td>アカウントパスワードはオプションです。ほとんどの場合、パスワードローテーションには既存のパスワードは必要ありません。しかしながら、一部の状況やプロトコルでは必要となる場合があります。</td></tr><tr><td><strong>識別名</strong></td><td><p>Active DirectoryおよびOpenLDAPディレクトリに必要です。<br><br>ユーザーのLDAP識別名の例:</p><p><code>CN=Demo User,CN=Users,DC=lureydemo,DC=local</code></p></td></tr></tbody></table>

ユーザーのDNが不明な場合は、以下のPowerShellコマンドで確認できます。

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

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

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

PAMユーザーレコードの編集権限が付与されていて、かつローテーションを許可するポリシーが適用されているユーザーであれば、そのレコードに対してローテーションを構成できます。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FmYOjKvp7OKedl2stHdkb%2Fimage.png?alt=media&#x26;token=90455f1e-0e3b-498c-b9dd-1c916f9c2a60" alt=""><figcaption><p>PAMユーザースケジュールローテーション</p></figcaption></figure>

* ローテーションの種類は **\[一般]** を選択します。
* **\[PAMリソース]** フィールドには、事前に設定した **\[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%2FcZqA7JQ6DoK5v9xRPnBV%2Fimage.png?alt=media&#x26;token=9fe0788f-08bf-42b3-b342-026e0ccf9a3d" 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 %}
**証明書のインストール**

このスクリプトで、証明書マネージャーの個人セクションから証明書を検索し、信頼されたドメインにコピーします。このスクリプトの最初の行の `company` パラメータを、手順1で使用したドメインに置き換えてください。

{% code overflow="wrap" %}

```powershell
# 先ほど作成した証明書を取得
$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を実行し、ポート636でSSLが有効になっている状態でローカルドメインに接続できることを確認します。

<figure><img src="https://859776093-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPL6k1aGsLiFiiJ3Y7zCl%2Fuploads%2FIOY2J1Kq59sXrO7EPFtT%2Fimage.png?alt=media&#x26;token=cdc8daf5-2863-475b-b8a8-18090f78c4ce" alt=""><figcaption><p>LDP .exeを使用して接続</p></figcaption></figure>
{% endstep %}
{% endstepper %}

## 本番環境向けLDAPS証明書

本番環境では、KeeperPAMの利用にあたり、信頼された認証局 (CA) が発行した証明書を使用したLDAPS接続が必要です。

対応しているLDAPS証明書については、以下の表をご参照ください。

<table><thead><tr><th width="277.23828125">証明書発行元の種類</th><th>説明</th></tr></thead><tbody><tr><td>エンタープライズ内部認証局 (CA)</td><td>Microsoft AD CSなどの内部PKIにより証明書を発行・管理します。大規模なエンタープライズ環境では一般的であり、証明書ライフサイクルを集中管理できますが、複数の独立したドメインが存在する環境では運用負荷が高くなる場合があります。</td></tr><tr><td>公開認証局 (CA)</td><td>DigiCert、GlobalSign、Entrustなどの信頼された公開認証局により証明書を発行します。内部PKI基盤を構築する必要がなく、複数ドメインや分散管理環境で利用しやすい方式です。</td></tr><tr><td>サーバー認証</td><td>LDAPSをサポートするため、証明書には「Server Authentication」の拡張キー使用法が含まれている必要があります。これは発行元の種類にかかわらず必要となる標準要件です。</td></tr><tr><td>ドメインコントローラーのFQDN</td><td>TLS検証エラーを防ぐため、証明書はドメインコントローラーの完全修飾ドメイン名 (FQDN) に対して発行されている必要があります。複数のドメインコントローラーがある環境では、各DCごとに証明書が必要になる場合があります。</td></tr></tbody></table>

なお、自己署名証明書はテスト用途に限って使用できますが、本番環境での使用は推奨されません。


---

# 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/local-network/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.
