この記事では、ID ディレクトリ サービス アカウント エントリのMicrosoft Defenderとして使用するグループマネージド サービス アカウント (gMSA) を作成する方法について説明します。
前提条件
Active Directory で gMSA とセキュリティ グループを作成するためのアクセス許可があることを確認します。
センサーが gMSA パスワードを取得できるようにするアクセス許可を割り当てます。
パスワード取得を構成する方法を選択します。
gMSA アカウントを各センサーに直接割り当てます。
gMSA アカウントを使用する必要があるすべてのセンサーを含むグループを使用します。
デプロイに基づいて適切なグループを選択します。
単一フォレスト、単一ドメインの展開: Active Directory フェデレーション サービス (AD FS) (AD FS) サーバーまたは Active Directory Certificate Services (AD CS) サーバーにセンサーをインストールしていない場合は、組み込みのドメイン コントローラー セキュリティ グループを使用します。
複数のドメインを持つフォレスト: 1 つのディレクトリ サービス アカウント (DSA) を使用する場合は、ユニバーサル グループを作成し、各ドメイン コントローラーと AD FS または AD CS サーバーをユニバーサル グループに追加することをお勧めします。
マルチフォレスト環境またはマルチドメイン環境では、gMSA を作成するドメインがセンサーのコンピューター アカウントを信頼していることを確認します。
すべてのセンサーが gMSA のパスワードを取得し、クロスドメイン認証を実行できるように、すべてのセンサー コンピューター アカウントを含むユニバーサル グループを各ドメインに作成します。
gMSA アカウントを作成する
これまで gMSA アカウントを使用したことがない場合は、Active Directory 内のMicrosoft グループ キー配布サービス (KdsSvc) の新しいルート キーを生成する必要がある場合があります。 この手順は、フォレストごとに 1 回だけ必要です。 すぐに使用するために新しいルート キーを生成するには、次のコマンドを実行します。
Add-KdsRootKey -EffectiveImmediately管理者として PowerShell コマンドを実行します。 このスクリプトでは、次の操作を行います。
- gMSA アカウントを作成します。
 - gMSA アカウントのグループを作成します。
 - 指定したコンピューター アカウントをそのグループに追加します。
 
スクリプトを実行する前に、
- 環境に合わせて変数の値を更新します。
 - 各 gMSA に、フォレストまたはドメインごとに一意の名前を付けます。
 
# Variables:
# Specify the name of the gMSA you want to create:
$gMSA_AccountName = 'mdiSvc01'
# Specify the name of the group you want to create for the gMSA,
# or enter 'Domain Controllers' to use the built-in group when your environment is a single forest, and will contain only ___domain controller sensors.
$gMSA_HostsGroupName = 'mdiSvc01Group'
# Specify the computer accounts that will become members of the gMSA group and have permission to use the gMSA. 
# If you are using the 'Domain Controllers' group in the $gMSA_HostsGroupName variable, then this list is ignored
$gMSA_HostNames = 'DC1', 'DC2', 'DC3', 'DC4', 'DC5', 'DC6', 'ADFS1', 'ADFS2'
# Import the required PowerShell module:
Import-Module ActiveDirectory
# Set the group
if ($gMSA_HostsGroupName -eq 'Domain Controllers') {
    $gMSA_HostsGroup = Get-ADGroup -Identity 'Domain Controllers'
} else {
    $gMSA_HostsGroup = New-ADGroup -Name $gMSA_HostsGroupName -GroupScope DomainLocal -PassThru
    $gMSA_HostNames | ForEach-Object { Get-ADComputer -Identity $_ } |
        ForEach-Object { Add-ADGroupMember -Identity $gMSA_HostsGroupName -Members $_ }
}
# Create the gMSA:
New-ADServiceAccount -Name $gMSA_AccountName -DNSHostName "$gMSA_AccountName.$env:USERDNSDOMAIN" `
 -PrincipalsAllowedToRetrieveManagedPassword $gMSA_HostsGroup
グループ メンバーシップを変更した後に Kerberos チケットを更新する
Kerberos チケットには、チケットの発行時にエンティティがメンバーになっているグループの一覧があります。 Kerberos チケットを既に受信した後にコンピューター アカウントをユニバーサル グループに追加した場合、新しいチケットを取得するまで gMSA のパスワードを取得できません。
Kerberos チケットを更新するには、次のことができます。
新しい Kerberos チケットが発行されるまで待ちます。 Kerberos チケットは通常、10 時間有効です。
サーバーを再起動して、 新しいグループ メンバーシップを使用して新しい Kerberos チケットを要求します。
既存の Kerberos チケットを消去 して、ドメイン コントローラーに新しい Kerberos チケットの要求を強制します。 次のコマンドを実行して、ドメイン コントローラーの管理者コマンド プロンプトからチケットを消去します。
klist purge -li 0x3e7
必要なディレクトリ サービス アカウントのアクセス許可を付与する
DSA には、Active Directory 内のすべての オブジェクト ( 削除されたオブジェクト コンテナーを含む) に対する読み取り専用アクセス許可が必要です。
削除済みオブジェクト コンテナーに対する読み取り専用アクセス許可を使用すると、Defender for Identity は Active Directory からのユーザーの削除を検出できます。
次のコード サンプルを使用して、gMSA アカウントを使用しているかどうかに関係なく、 削除済みオブジェクト コンテナーに必要な読み取りアクセス許可を付与するのに役立ちます。
ヒント
アクセス許可を付与する DSA がグループ管理サービス アカウント (gMSA) の場合は、まずセキュリティ グループを作成し、gMSA をメンバーとして追加し、そのグループにアクセス許可を追加する必要があります。 詳細については、「 gMSA を使用して Defender for Identity のディレクトリ サービス アカウントを構成する」を参照してください。
# Declare the identity that you want to add read access to the deleted objects container:
$Identity = 'mdiSvc01'
# If the identity is a gMSA, first to create a group and add the gMSA to it:
$groupName = 'mdiUsr01Group'
$groupDescription = 'Members of this group are allowed to read the objects in the Deleted Objects container in AD'
if(Get-ADServiceAccount -Identity $Identity -ErrorAction SilentlyContinue) {
    $groupParams = @{
        Name           = $groupName
        SamAccountName = $groupName
        DisplayName    = $groupName
        GroupCategory  = 'Security'
        GroupScope     = 'Universal'
        Description    = $groupDescription
    }
    $group = New-ADGroup @groupParams -PassThru
    Add-ADGroupMember -Identity $group -Members ('{0}$' -f $Identity)
    $Identity = $group.Name
}
# Get the deleted objects container's distinguished name:
$distinguishedName = ([adsi]'').distinguishedName.Value
$deletedObjectsDN = 'CN=Deleted Objects,{0}' -f $distinguishedName
# Take ownership on the deleted objects container:
$params = @("$deletedObjectsDN", '/takeOwnership')
C:\Windows\System32\dsacls.exe $params
# Grant the 'List Contents' and 'Read Property' permissions to the user or group:
$params = @("$deletedObjectsDN", '/G', ('{0}\{1}:LCRP' -f ([adsi]'').name.Value, $Identity))
C:\Windows\System32\dsacls.exe $params
  
# To remove the permissions, uncomment the next 2 lines and run them instead of the two prior ones:
# $params = @("$deletedObjectsDN", '/R', ('{0}\{1}' -f ([adsi]'').name.Value, $Identity))
# C:\Windows\System32\dsacls.exe $params
詳細については、「 削除されたオブジェクト コンテナーに対するアクセス許可の変更」を参照してください。
gMSA アカウントに必要な権限があることを確認する
Defender for Identity センサー サービス である Azure Advanced Threat Protection センサーは、DSA アカウントを偽装する LocalService として実行されます。 サービスとしてのログオン ポリシーが構成されていても、gMSA アカウントにアクセス許可が付与されていない場合、偽装は失敗します。 その場合、次の正常性の問題が発生します。 ディレクトリ サービスのユーザー資格情報が正しくありません。
このアラートが表示された場合は、グループ ポリシー設定またはローカル セキュリティ ポリシーで [サービスとしてのログオン] ポリシーが構成されているかどうかを確認チェック。
ローカル セキュリティ ポリシーを確認する
secpol.mscを実行します。[ローカル ポリシー>ユーザー権利の割り当て] を選択します
[サービスとしてログオン] ポリシー設定を開きます。
              
              
            
ポリシーが有効になったら、サービスとしてログオンできるアカウントの一覧に gMSA アカウントを追加します。
グループ ポリシー設定を確認する
rsop.mscを実行します。[コンピューターの構成] -> [Windows 設定] -> [セキュリティ設定] -> [ローカル ポリシー] -> [ユーザー権利の割り当て] -> [サービスとしてログオン] に移動します。
設定が構成されたら、グループ ポリシー管理エディターでサービスとしてログオンできるアカウントの一覧に gMSA アカウントを追加します。
注:
グループ ポリシー管理エディターを使用してサービスとしてログオンする設定を構成する場合は、NT Service\All Services と作成した gMSA アカウントの両方を必ず追加してください。
Microsoft Defender XDRでディレクトリ サービス アカウントを構成する
センサーを Active Directory ドメインに接続するには、Microsoft Defender XDRでディレクトリ サービス アカウントを構成します。
Microsoft Defender XDRで、[設定] > [ID] に移動します。
[ ディレクトリ サービス アカウント] を選択して、どのドメインに関連付けられているアカウントを確認します。
[資格情報の追加] を選択します
次の詳細を入力します:
- アカウント名
 - ドメイン
 - Password
 
グループ管理サービス アカウント (gMSA) か、単一ラベル ドメインに属しているかどうかを選択できます。
フィールド 注釈 アカウント名 (必須) 読み取り専用 AD ユーザー名を入力します。 たとえば、 DefenderForIdentityUser です。 
- 標準 の AD ユーザーまたは gMSA アカウントを使用する必要があります。
- ユーザー名に UPN 形式を使用しないでください。
- gMSA を使用する場合、ユーザー文字列は$記号で終わる必要があります。 例:mdisvc$
手記: 特定のユーザーに割り当てられたアカウントを使用しないことをお勧めします。パスワード (標準の AD ユーザー アカウントに必要) AD ユーザー アカウントの場合のみ、読み取り専用ユーザーの強力なパスワードを生成します。 例: PePR!BZ&}Y54UpC3aB。グループ管理サービス アカウント (gMSA アカウントに必要) gMSA アカウントの場合のみ、[ グループ管理サービス アカウント] を選択します。 ドメイン (必須) 読み取り専用ユーザーのドメインを入力します。 例: contoso.com。 
ユーザーが配置されているドメインの完全な FQDN を入力することが重要です。 たとえば、ユーザーのアカウントがドメイン corp.contoso.com にある場合は、contoso.comcorp.contoso.com入力する必要があります。
詳細については、「 単一ラベル ドメインの Microsoft サポート」を参照してください。[保存] を選択します。
(省略可能)アカウントを選択して詳細ウィンドウを開き、その設定を表示します。
注:
同じ手順を使用して、標準の Active Directory ユーザー アカウントのパスワードを変更できます。 gMSA アカウントにはパスワードは必要ありません。
トラブルシューティング
詳細については、「 センサーが gMSA 資格情報を取得できませんでした」を参照してください。