Active Directory

KeeperPAMを使用してActive Directoryのユーザーアカウントを遠隔でローテーション

概要

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

要件

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

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

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

AD管理者用PAMユーザーレコード

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

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

項目
説明

レコードタイプ

PAMユーザー

タイトル

Keeperレコードのタイトル

ログイン

Active Directory 管理者のユーザー名。ユーザー名の形式は、対象システムやサービスの種類によって異なります。 例: Administrator [email protected]

パスワード

Active Directory上の管理者ユーザーのパスワード。

識別名

Active Directory上の管理者ユーザーの完全な識別名 (DN)。

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

PAM構成は、環境と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」をローテーションします。

Active Directoryアカウントのパスワードローテーションの例

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

項目
説明

レコードタイプ

PAM ユーザー

タイトル

Keeper レコードのタイトル。例: AD User - demouser

ログイン

ローテーション対象アカウントのユーザー名。ユーザー名の形式は、対象システムやサービスの種類によって異なります。 例: demouser [email protected]

パスワード

アカウントのパスワード (任意)。多くの場合、既存のパスワードを入力しなくてもローテーションを実行できますが、プロトコルやシナリオによっては必要になる場合があります。

識別名

ユーザーのLDAP DN。 例: CN=Demo User,CN=Users,DC=lureydemo,DC=local

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

Get-ADUser -Identity <username> -Properties DistinguishedName

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

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

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

PAMユーザーのスケジュールローテーション
  • 「ローテーション」は「IAMユーザー」タイプに設定します。

  • 「PAM構成」フィールドには、手順2で作成したActive DirectoryのPAM構成を指定します。

  • 任意のスケジュールとパスワードの複雑度を選択します。

  • 保存すると、ローテーションボタンが有効になり、手動または指定したスケジュールでローテーションを実行できるようになります。

トラブルシューティング

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

LDP.exe を使用した LDAP 接続のテスト

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

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

1

証明書の作成

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

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

証明書のインストール

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

# 作成した証明書を取得
$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()
3

NTDSの再起動

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

Restart-Service NTDS -force
4

接続チェック

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

LDP.exeを使用して接続

最終更新