共用方式為


管理群組受管理的服務帳戶

在本文中,瞭解如何在 Windows Server 中啟用和使用群組受管理的服務帳戶 (gMSA)。

除非所有服務執行個體都使用相同的主體,否則無法使用支援相互驗證 (例如 Kerberos) 的驗證通訊協定。 例如,當用戶端電腦連線到服務,而該伺服器使用網路負載平衡或是另一個讓所有伺服器在用戶端看來都是相同服務的方法時。 這表示每個服務必須使用相同的密碼或金鑰來證明其身分識別。 群組受管理的服務帳戶是一種可搭配多部伺服器使用的帳戶類型。 gMSA 是一種網域帳戶,可用於在多個伺服器上執行服務,而無需管理密碼。 gMSA 提供自動密碼管理和簡化的服務主體名稱 (SPN) 管理,包含將管理委派給其他管理員。

Note

容錯移轉叢集不支援 gMSA。 不過,在叢集服務之上執行的服務,如果是 Windows 服務、應用程式集區、排程工作,或原生支援 gMSA 或 sMSA,則可以使用 gMSA 或 sMSA。

服務可以選擇要使用的主體。 每個主體類型支援不同的服務,並有不同的限制。

Principals 支援的服務 密碼管理
Windows 系統的電腦帳戶 僅限一部加入網域的伺服器 電腦進行管理
沒有 Windows 系統的電腦帳戶 任何加入網域的伺服器 None
虛擬帳戶 僅限一個伺服器 電腦進行管理
Windows 獨立受管理的服務帳戶 僅限一部加入網域的伺服器 電腦進行管理
使用者帳戶 任何加入網域的伺服器 None
群組受控服務帳戶 任何已加入網域的 Windows Server 伺服器 網域控制器進行管理,主機進行抓取。

Windows 電腦帳戶、Windows 獨立「受管理的服務帳戶」(sMSA) 或虛擬帳戶無法跨多個系統共用。 使用虛擬帳戶時,身分也是電腦本機身分,而網域無法辨識。 如果您為伺服器陣列上的服務設定一個要共用的帳戶,則除了 Windows 系統以外,您還必須選擇一個使用者帳戶或電腦帳戶。 不論哪一種方式,這些帳戶都不會擁有單一控制點密碼管理的功能。 如果沒有密碼管理,每個組織都必須更新 Active Directory (AD) 中服務的金鑰,並將這些金鑰散發給這些服務的所有實例。

使用 Windows Server,當使用 gMSA 時,服務系統管理員就不需要管理服務執行個體之間的密碼同步化。 您可以在 AD 中建立 gMSA,然後設定支援受控服務帳戶的服務。 gMSA 的使用範圍限於任何能夠使用輕量型目錄存取通訊協定 (LDAP) 來擷取 gMSA 認證的電腦。 您可以使用屬於 AD 模組的 cmdlets New-ADServiceAccount 來建立 gMSA。 下列服務支援主機上的服務識別設定。

  • 與 sMSA 相同的 API,因此支援 sMSA 的產品也將支援 gMSA

  • 使用 服務控制管理員 設定登入身分識別的服務

  • 使用 Internet Information Services (IIS) 管理員進行 應用程式集 區設定身分識別的服務

  • 工作排程器的使用任務。

Prerequisites

若要管理 gMSA,您的裝置必須符合下列需求:

Tip

若要控制哪些主機或服務可以使用 gMSA,請將電腦帳戶新增至指定的安全組(新的或現有的),並將必要的許可權指派給此群組。 同樣地,使用安全組來管理在 gMSA 下執行之服務的存取權,確保群組具有服務作業和資源存取的所有必要許可權。

若要使用 gMSAs 讓 Kerberos 驗證在各項服務中運作,需具備以下條件:

  • 請確定每個服務的 SPN 已正確使用 gMSA 註冊。 這可讓 Kerberos 識別及驗證服務。

  • 請確定 DNS 記錄已正確設定為名稱解析,Kerberos 依賴此記錄來尋找網域服務。

  • 確定防火牆和網路原則允許 Kerberos 流量和必要的服務通訊。

  • 針對 Kerberos 票證存留期設定,請根據您的安全性和作需求設定票證到期和更新原則。

  • 驗證程式所涉及的所有系統都必須有同步處理時鐘。 Kerberos 對時間設定很敏感,而且不一致可能會導致驗證失敗。

如果您是從非域控制器的電腦管理 AD,請安裝遠端伺服器管理工具 (RSAT) 以存取必要的管理功能。 RSAT 提供 PowerShell 的 AD 模組。 安裝 RSAT 之後,以系統管理員身分開啟 PowerShell,然後執行 Import-Module ActiveDirectory 以啟用 AD 管理 Cmdlet。 這可讓系統管理員從遠端且安全地管理AD,將域控制器上的負載降到最低。

建立 gMSA

若要使用 PowerShell 建立 gMSA,請在具有提升許可權的 PowerShell 視窗中,依照下列步驟進行:

Important

gMSA 帳戶名稱在樹系層級 (而不只是網域) 中必須是唯一的。 嘗試建立名稱重複的 gMSA 帳戶失敗,即使在不同的網域中也是如此。

  1. 如果 KDS 根金鑰不存在,請遵循 建立金鑰散發服務 KDS 根金鑰中的指引來建立 KDS 根密鑰。 如果金鑰已經存在,請略過此步驟。

  2. 若要建立 gMSA,請執行下列命令。 將<gMSAName>替換為您期望的 gMSA 名稱,並將<domain>替換為您的網域名稱。 將 <SecurityGroup> 替換為擁有擷取 gMSA 密碼存取權的安全群組或電腦帳戶名稱。

    New-ADServiceAccount -Name <gMSAName> -DNSHostName <gMSAName>.<domain> -PrincipalsAllowedToRetrieveManagedPassword <SecurityGroup>
    

    若要建立僅限輸出驗證的 gMSA,請執行下列命令。 將 <Days> 取代為數值。 如果未提供值,則預設為 30 天。

    New-ADServiceAccount -Name <gMSAName> -DNSHostName <gMSAName>.<domain> -RestrictToOutboundAuthenticationOnly -ManagedPasswordIntervalInDays <Days> -PrincipalsAllowedToRetrieveManagedPassword <SecurityGroup>
    

    Important

    只有在建立時,才能設定密碼變更間隔。 如果您需要變更此間隔,就必須建立新的 gMSA,然後在建立時設定它。

  3. 執行下列命令,確認目標裝置是否具有擷取 gMSA 密碼的存取權。

    Test-ADServiceAccount -Identity <gMSAName>
    

需要適當安全組的成員資格或具有建立 msDS-GroupManagedServiceAccount 物件所需的委派許可權,才能完成此程式。 雖然 帳戶操作員 的成員可以在 AD (Active Directory) 中管理特定使用者和群組物件,但是除非這些許可權委派給他們,否則他們沒有建立管理服務帳戶 (gMSA) 的默認許可權。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 Active Directory 安全性群組

您也可以使用 Set-ADServiceAccount Cmdlet 來更新 gMSA 屬性。 例如,若要更新電腦的顯示名稱,請執行下列命令,並分別將 <gMSAName><NewDisplayName> 替換為您的值。

Set-ADServiceAccount -Identity "<gMSAName>" -DisplayName "<NewDisplayName>"

如需如何設定 gMSA 其他屬性的詳細資訊,請參閱 Set-ADServiceAccount

確認 gMSA 的變更

對 gMSA 進行變更之後,您可以確認 gMSA 是否已正確更新。 這些變更包括新增、移除和卸載 gMSA。 您也可以在對 gMSA 屬性進行更新時,隨時執行此步驟。

執行下列命令,將 <gMSAName> 替換為您建立的 gMSA 名稱:

Get-ADServiceAccount -Identity "<gMSAName>" | Select-Object *

將成員主機新增至安全組

Note

  • 以群組為中心的管理Add-ADGroupMember / Remove-ADGroupMember):當您想要管理特定群組的成員資格時,請使用這些 Cmdlet。 它們最適合在單一群組中有效新增或移除多個用戶、計算機或其他物件。

  • 以主體為中心的管理Add-ADPrincipalGroupMembership / Remove-ADPrincipalGroupMembership):當您的目標是管理特定使用者或計算機在多個群組中的成員時,請選擇這些 Cmdlet。 它們可讓您在單一作業中新增或移除數個群組中的主體,讓您更輕鬆地更新個別帳戶的群組關聯性。

如果您使用安全組來管理成員主機,請將新成員主機的計算機帳戶新增至包含 gMSA 成員主機的安全組。 您可以使用下列其中一種方法進行:

若要使用 Active Directory 使用者和電腦 (ADUC) 嵌入式管理單元,請參閱 將電腦帳戶新增至群組 ,以及 管理 Active Directory 使用者和計算機中的用戶帳戶

如果是使用電腦帳戶,請尋找現有的帳戶,然後新增電腦帳戶。

從安全群組中移除成員主機

若要使用ADUC嵌入式管理單元,請參閱 刪除電腦帳戶移除用戶帳戶

從系統卸載 gMSA

雖然您無法在ADUC中卸載 gMSA,但您可以在 受控服務帳戶 容器中找到 gMSA,並像任何其他 AD 對象一樣刪除 gMSA。 不過,請記住,這不會在 PowerShell 中執行與 Uninstall-ADServiceAccount 相同的清除作業。

若要卸載 gMSA,請開啟提升許可權的 PowerShell 視窗,並遵循下列步驟。

  1. 若要從您的環境中移除單一 gMSA,請執行下列命令,將 <gMSAName> 取代為您的值:

    Uninstall-ADServiceAccount -Identity <gMSAName>
    
  2. 若要從您的環境中移除多個 gMSA,請執行下列命令,將 <gMSA#$> 取代為您的值:

    $gMSANames = @("gMSA1$", "gMSA2$", "gMSA3$")
    
    foreach ($gMSAs in $gMSANames) {
      Uninstall-ADServiceAccount -Identity $gMSAs
    }
    

如需有關 Uninstall-ADServiceAccount cmdlet 的更多資訊,請參閱 Uninstall-ADServiceAccount

另請參閱