2015年7月11日土曜日

[MIM]Active Directoryの特権アカウント管理環境を構築する~実施編

こんにちは、富士榮です。

今回は、前回に引き続きMicrosoft Identity Manager 2016(MIM)を使ったActive Directoryの特権アカウントの管理についてです。今回はいよいよ管理対象の特権アカウントを登録し、権限管理をしてみます。

 参考)
  [MIM]特権アカウント管理機能の概要
  http://idmlab.eidentity.jp/2015/06/mim.html

  [MIM]Active Directoryの特権アカウント管理環境を構築する~環境構築編
  http://idmlab.eidentity.jp/2015/07/mimactice-directory.html


◆ロール、特権、ユーザの準備

前々回のポストでも紹介した通り、MIMの中で特権アカウントは以下の図の様に扱われます。


つまり、やるべきことはMIM上に①特権ロール(PAM-Role)を定義する、②特権ロールに対応する特権グループ(PAM-Group)の作成と紐づけ、③特権ロールが利用できるユーザ(PAM-User)の作成と紐づけ、の3点です。

以下の通りPowerShellを使って順番に行います。(実際は特権グループの作成、特権利用ユーザの作成、特権ロールの作成と紐づけという順番なので②⇒③⇒①の順で実行します)

・既存ドメインアカウントの準備
 Shadowアカウントを特権アカウント管理サーバ側のドメインに作成するため、[ドメイン名$$$]という名称のセキュリティグループを既存ドメイン上に作成しておきます。

Import-Module ActiveDirectory
New-ADGroup -name ‘EIDENTITY$$$' -GroupCategory Security -GroupScope DomainLocal -SamAccountName ‘EIDENTITY$$$'

 また、既存ドメイン上の特権として利用するセキュリティグループ(ここではCorpAdmins)の作成および特権利用ユーザの元となるユーザ(ここではJen)を作成しておきます。
 特権利用申請をMIMで行うと、ここで作ったセキュリティグループの持つ権限が付与されることになります。

New-ADGroup -name CorpAdmins -GroupCategory Security -GroupScope Global -SamAccountName CorpAdmins
New-ADUser -SamAccountName Jen -name Jen 
Add-ADGroupMember -identity CorpAdmins -Members Jen
$jp = ConvertTo-SecureString "P@ssw0rd" -asplaintext -force
Set-ADAccountPassword -identity Jen -NewPassword $jp
Set-ADUser -identity Jen -Enabled 1 -DisplayName "Jen"

・特権アカウント管理サーバ側の準備
※PowerShellのモジュール読み込み、既存ドメインへの接続

Import-Module MIMPAM
Import-Module ActiveDirectory
$ca = get-credential -UserName eidentity\Administrator -Message "eidentity forest domain admin credentials"

・特権グループの作成(既存ドメイン上のCorpAdminsグループのSIDをコピーして作成)
$pg = New-PAMGroup -SourceGroupName "CorpAdmins" -SourceDomain eidentity.local -SourceDC dc.eidentity.local -Credentials $ca

※dc.eidentity.localは既存ドメインの任意のドメインコントローラ
※New-PAMGroupを実行した段階で特権アカウント管理サーバのドメイン上に[ソースドメイン名].[グループ名]というグループオブジェクト(Shadowアカウント)が作成される。

・特権利用ユーザの作成(既存ドメイン上のユーザ/jenをベースに作成)
$sj = New-PAMUser -SourceDomain eidentity.local -SourceAccountName Jen
$jp = ConvertTo-SecureString "P@ssw0rd" -asplaintext -force
Set-ADAccountPassword -identity priv.Jen -NewPassword $jp
Set-ADUser -identity priv.Jen -Enabled 1
Add-ADGroupMember "Protected Users" priv.Jen

※New-PAMUserを実行した段階で特権アカウント管理サーバのドメイン上にPRIV.[ユーザ名]というユーザが自動的に作成される


・特権ロールへ特権グループ、特権利用ユーザの紐づけ
$pr = New-PAMRole -DisplayName "CorpAdmins" -Privileges $pg -Candidates $sj


これで準備は完了です。
Get-PAMRoleコマンドレットで設定状況が確認できます。
(MIMポータルをインストールした場合は、ポータル上からも確認できます)



◆権限を付与してみる

では、実際に特権の付与をしてみましょう。
権限付与に成功すると、既存ドメイン上のCorpAdminsの権限が特権アカウント管理ドメインのpriv.jenに付与される、つまりpyramid\priv.jenユーザがeidentity\CorpAdminsグループに登録されます。
ですから、eidentity\CorpAdminsグループでないとできないことを定義しておき、権限の付与の前後で出来ることが変わっていればOKです。

今回は、他のユーザのパスワードリセット権限を付与してみます。
やり方としては、既存ドメインのActive Directoryユーザとコンピュータより、CorpAdminsグループにパスワードリセット権限を委譲します。



・特権付与前の状態
 既存ドメイン側で「runas /user:priv.jen@pyramid.local powershell」を実行し、特権付与前の状態でpowershellを起動し、MMCを起動、Active Directoryユーザとコンピュータを立ち上げます。
 この状態だとパスワードのリセットができません。


・特権付与と権限の確認
 では、特権を与えてみましょう。
 特権管理ポータルへアクセスし、pyramid\priv.jenでログインします。Edgeを使ってみました(笑)


 特権の利用を申請します。



 再び、「runas /user:priv.jen@pyramid.local powershell」を起動し、Active Directoryユーザとコンピュータを起動します。
 今度はパスワードのリセットが実行できました。



尚、所定の時間が過ぎると特権が取り消され、priv.jenアカウントがCorpAdminsグループのメンバから外れます。この時、MIMサーバのイベントログに以下のエントリが記録されます。(バッチが走るタイミングに依存するので、ロールに設定したTTLより少し遅れ気味になります)


尚、Windows Server 2016からはKerberosの仕様が変更され、TGTのTTLのコントロールができるようになるため、実際のメンバシップ登録・削除ではなく、Foreign Principalとして仮想的にグループメンバとして登録される形になる予定なので、明示的なグループメンバの削除ジョブが実行されることはなくなる見込みです。こうなれば特権が外れるタイミングがTTLとぴったり合うと思われます。

0 件のコメント: