共用方式為


使用 gMSA 設定適用於身分識別的 Defender 目錄服務帳戶

本文說明如何建立 群組受控服務帳戶 (gMSA), 以作為適用於身分識別的 Defender DSA 專案。

如需詳細資訊,請參閱 適用於身分識別的 Microsoft Defender 的目錄服務帳戶。

提示

在多樹系、多網域環境中,建議您為每個樹系或網域建立具有唯一名稱的 gMSA。 此外,在每個網域中建立通用群組,其中包含所有感測器的計算機帳戶,讓所有感測器都能擷取 gMSA 的密碼,並執行跨網域驗證。

必要條件:授與許可權以擷取 gMSA 帳戶的密碼

建立 gMSA 帳戶之前,請考慮如何指派許可權以擷取帳戶的密碼。

使用 gMSA 專案時,感測器必須從 Active Directory 擷取 gMSA 的密碼。 這可以藉由指派給每個感測器或使用群組來完成。

  • 在單一樹系的單一網域部署中,如果您不打算在任何 AD FS / AD CS 伺服器上安裝感測器,您可以使用內建的域控制器安全組。

  • 在具有多個網域的樹系中,使用單一 DSA 帳戶時,建議您建立通用群組,並將每個域控制器和 AD FS / AD CS 伺服器新增至通用群組。

如果您在電腦收到 Kerberos 票證之後,將電腦帳戶新增至通用群組,則在收到新的 Kerberos 票證之前,將無法擷取 gMSA 的密碼。 Kerberos 票證有實體在發出票證時所屬的群組清單。

在這種情況下,請執行下列其中一項作業:

  • 等候發行新的 Kerberos 票證。 Kerberos 票證通常有效 10 小時。

  • 重新啟動伺服器。 重新啟動伺服器時,會要求新的 Kerberos 票證與新的群組成員資格。

  • 清除現有的 Kerberos 票證。 這會強制域控制器要求新的 Kerberos 票證。

    若要清除票證,請從域控制器上的系統管理員命令提示字元執行下列命令: klist purge -li 0x3e7

建立 gMSA 帳戶

本節說明如何建立可擷取帳戶密碼、建立 gMSA 帳戶,然後測試帳戶已準備好使用的特定群組。

注意

如果您之前從未使用過 gMSA 帳戶,您可能需要為 Active Directory 內的 Microsoft 群組金鑰發佈服務 (KdsSvc) 產生新的根密鑰。 每個樹系只需要此步驟一次。

若要產生新的根金鑰以供立即使用,請執行下列命令:

Add-KdsRootKey -EffectiveImmediately

使用您環境的變數值更新下列程序代碼。 然後,以系統管理員身分執行 PowerShell 命令:

# 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

授與必要的 DSA 許可權

DSA 需要 Active Directory 中所有物件的唯讀許可權,包括已刪除的物件容器

[已刪除的物件] 容器上的只讀許可權可讓適用於身分識別的 Defender 偵測從 Active Directory 刪除使用者。

使用下列程式代碼範例可協助您授與已刪除物件容器上所需的讀取許可權,不論您是否使用 gMSA 帳戶。

提示

如果您想要授與許可權的 DSA 是群組受控服務帳戶 (gMSA),您必須先建立安全組、將 gMSA 新增為成員,並將許可權新增至該群組。 如需詳細資訊,請參閱 使用 gMSA 設定適用於身分識別的 Defender 目錄服務帳戶。

# 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 感測器服務 Azure 進階威脅防護感測器會以 LocalService 的形式執行,並執行 DSA 帳戶的模擬。 如果 已設定登入即服務 原則,但許可權尚未授與 gMSA 帳戶,則模擬將會失敗。 在這種情況下,您會看到下列健康情況問題: 目錄服務用戶認證不正確。

如果您看到此警示,建議您檢查是否已 設定 [以服務方式登入] 原則 。 如果您需要設定 [以服務 身分登入] 原則,請在組策略設定或本機安全策略中執行此動作。

  • 若要檢查本機原則,請執行 secpol.msc 並選取 [ 本機原則]。 在 [用戶權力指派] 底下,移至 [以服務身分登入] 原則設定。 例如:

    以服務屬性登入的螢幕快照。

    如果啟用原則,請將 gMSA 帳戶新增至可以服務身分登入的帳戶清單。

  • 若要檢查設定是否在組策略中設定:執行rsop.msc,並查看是否已選取 [計算機設定 - Windows 設定 -> 安全性設定> -> 本機>原則 - 使用者權力指派 -> 以服務方式登入] 原則。 例如:

    組策略管理編輯器中 [以服務身分登入] 原則的螢幕快照。

    如果已設定此設定,請將 gMSA 帳戶新增至可在組策略管理編輯器中以服務身分登入的帳戶清單。

注意

如果您使用組策略管理編輯器來設定 [以服務 身分登入] 設定,請務必同時新增 NT Service\All Services 和您所建立的 gMSA 帳戶。

在 Microsoft Defender 全面偵測回應 中設定目錄服務帳戶

若要將感測器與 Active Directory 網域連線,您必須在 Microsoft Defender 全面偵測回應 中設定目錄服務帳戶。

  1. Microsoft Defender 全面偵測回應 中,移至 [設定>身分識別]。 例如:

    Microsoft Defender 全面偵測回應 中 [身分識別] 設定的螢幕快照。

  2. 選取 [目錄服務帳戶]。 您會看到哪些帳戶與哪些網域相關聯。 例如:

    [目錄服務帳戶] 頁面的螢幕快照。

  3. 若要新增目錄服務帳戶認證,請選取 [新增認證 ],然後輸入 您稍早建立之帳戶的 [帳戶名稱]、 [網域] 和 [密碼 ]。 您也可以選擇其是否為 群組受控服務帳戶 (gMSA),以及它是否屬於單一 卷標網域。 例如:

    [新增認證] 窗格的螢幕快照。

    欄位 註解
    帳戶名稱 (必要) 輸入唯讀 AD 用戶名稱。 例如: DefenderForIdentityUser

    - 您必須使用 標準 AD 使用者或 gMSA 帳戶。
    - 請勿 將 UPN 格式用於您的用戶名稱。
    - 使用 gMSA 時,使用者字串應該以 $ 符號結尾。 例如:mdisvc$

    注意: 建議您避免使用指派給特定用戶的帳戶。
    密碼 (標準 AD 使用者帳戶的必要密碼) 若為僅限 AD 用戶帳戶,請為唯讀用戶產生強密碼。 例如: PePR!BZ&}Y54UpC3aB
    群組受控服務帳戶 (gMSA 帳戶的必要專案) 僅針對 gMSA 帳戶,選取 [ 群組受管理的服務帳戶]。
    網域 (必要) 輸入唯讀使用者的網域。 例如:contoso.com

    請務必輸入使用者所在網域的完整 FQDN。 例如,如果使用者的帳戶位於網域 corp.contoso.com,您必須輸入 corp.contoso.com 不是 contoso.com

    如需詳細資訊,請參閱 單一卷標網域Microsoft支援。
  4. 選取儲存

  5. (選擇性)如果您選取帳戶,將會開啟詳細數據窗格,其中包含該帳戶的設定。 例如:

    帳戶詳細數據窗格的螢幕快照。

注意

您可以使用這個相同的程式來變更標準 Active Directory 使用者帳戶的密碼。 gMSA 帳戶沒有密碼設定。

疑難排解

如需詳細資訊,請參閱 感測器無法擷取 gMSA 認證

後續步驟