共用方式為


開始使用群組受管理的服務帳戶

適用於:Windows Server 2022、Windows Server 2019、Windows Server 2016

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

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

注意

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

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

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

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

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

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

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

  • 使用應用程式集區的 IIS 管理員來設定身分識別的服務

  • 使用「工作排程器」的工作

必要條件

下表列出使用 gMSA 讓 Kerberos 驗證與服務搭配運作的作業系統需求。 Active Directory 需求列在這個表格之後。

若要執行用來管理群組「受管理的服務帳戶」的 Windows PowerShell 命令,必須有 64 位元架構。

作業系統

元素 需求
用戶端應用程式主機 RFC 相容的 Kerberos 用戶端
使用者帳戶的網域 DC RFC 相容的 KDC
共用服務成員主機
成員主機的網域 DC RFC 相容的 KDC
gMSA 帳戶的網域 DC 可供主機用來擷取密碼的 Windows Server 2012 DC
後端服務主機 RFC 相容的 Kerberos 應用程式伺服器
後端服務帳戶的網域 DC RFC 相容的 KDC
適用於 Active Directory 的 Windows PowerShell Active Directory Domain Services 遠端伺服器管理員工具

Active Directory 網域服務

群組受管理的服務帳戶在 Active Directory Domain Services (AD DS) 中具有下列需求。

  • Active Directory 網域與樹系功能等級必須是 Windows Server 2012 或更新版本。 若要深入瞭解如何更新結構描述,請參閱提高 Active Directory 網域與樹系功能等級

  • 如果是依群組管理要使用 gMSA 的服務主機權限,則需要新的或現有的安全性群組。

  • 如果是依群組管理服務存取控制,則需要新的或現有的安全性群組。

  • 適用於 Active Directory 的金鑰發佈服務 KDS 根金鑰必須在網域中建立。 您可以在 KdsSvc 作業記錄 (Event ID 4004) 中確認該金鑰的建立結果。 若要深入瞭解如何建立 KDS 根金鑰,請參閱建立金鑰發佈服務 KDS 根金鑰

如需如何建立金鑰的指示,請參閱建立金鑰發佈服務 KDS 根金鑰。 Microsoft 金鑰發佈服務 (kdssvc.dll) 可管理 AD 的根金鑰。

部署新伺服器陣列

使用 gMSA 功能建立和管理伺服器陣列的程序通常涉及下列工作。

  • 部署新伺服器陣列

  • 將成員主機新增到現有的伺服器陣列

  • 將成員主機從現有的伺服器陣列解除委任

  • 將現有的伺服器陣列解除委任

  • 將已不安全的成員主機從伺服器陣列移除 (如有必要)

當服務管理員部署新的伺服器陣列時,他們需要確定以下資訊。

  • 服務支援使用 gMSA

  • 服務需要已驗證的輸入或輸出連線

  • 使用 gMSA 之服務的成員主機電腦帳戶名稱

  • 服務的 NetBIOS 名稱

  • 服務的 DNS 主機名稱

  • 服務的服務主體名稱 (SPN)

  • 密碼變更間隔 (預設值為 30 天)

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

只有當樹系結構描述是 Windows Server 2012 或更新版本時,您才能建立 gMSA。 您也必須部署適用於 Active Directory 的 KDS 根金鑰,而且在您想要建立 gMSA 的網域中至少有一個 Windows Server 2012 或更新版本的網域控制站。

重要

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

若要完成下列程序,至少需要 Domain Admins 的成員資格或是建立 msDS-GroupManagedServiceAccount 物件的能力。

若要使用 PowerShell 建立 gMSA,請依照下列步驟執行。

  1. 在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。

  2. 在 Windows PowerShell 的命令提示字元中,輸入下列命令,然後按下 ENTER。 (Active Directory 模組會自動載入。)

    New-ADServiceAccount [-Name] <string> -DNSHostName <string> [-KerberosEncryptionType <ADKerberosEncryptionType>] [-ManagedPasswordIntervalInDays <Nullable[Int32]>] [-PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>] [-SamAccountName <string>] [-ServicePrincipalNames <string[]>]

    注意

    一律需要 -Name 參數的值 (不論您是否指定 -Name),而 -DNSHostName-RestrictToSingleComputer-RestrictToOutboundAuthentication 是三個部署案例的次要需求。

    參數 String 範例
    名稱 帳戶的名稱 ITFarm1
    DNSHostName 服務的 DNS 主機名稱 ITFarm1.contoso.com
    KerberosEncryptionType 主機伺服器支援的任何加密類型 無、RC4、AES128、AES256
    ManagedPasswordIntervalInDays 密碼變更間隔 (單位為天) (如果未提供,則預設值為 30 天) 90
    PrincipalsAllowedToRetrieveManagedPassword 成員主機的電腦帳戶或成員主機所屬的安全性群組 ITFarmHosts
    SamAccountName 服務的 NetBIOS 名稱 (如果與 Name 不相同) ITFarm1
    ServicePrincipalNames 服務的服務主體名稱 (SPN) http/ITFarm1.contoso.com/contoso.com, http/ITFarm1.contoso.com/contoso, http/ITFarm1/contoso.com, http/ITFarm1/contoso, MSSQLSvc/ITFarm1.contoso.com:1433, MSSQLSvc/ITFarm1.contoso.com:INST01

    重要

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

    例如,若要為群組建立名為 ITFarm1 的新 gMSA,請使用下列命令。 gMSA 可讓服務使用 Kerberos 加密類型 RC4、AES128 和 AES256。 允許服務使用 SPN http/ITFarm1.contoso.com/contoso.comhttp/ITFarm1.contoso.com/contosohttp/ITFarm1/contoso.comhttp/ITFarm1/contoso

    請以單行輸入命令,即使由於格式限制,此處可能會顯示為換行成數行也一樣。

     New-ADServiceAccount ITFarm1 -DNSHostName ITFarm1.contoso.com -PrincipalsAllowedToRetrieveManagedPassword ITFarmHosts$ -KerberosEncryptionType RC4, AES128, AES256 -ServicePrincipalNames http/ITFarm1.contoso.com/contoso.com, http/ITFarm1.contoso.com/contoso, http/ITFarm1/contoso.com, http/ITFarm1/contoso
    

若要完成此程序,至少需要 Domain AdminsAccount Operators 的成員資格,或是建立 msDS-GroupManagedServiceAccount 物件的能力。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 Active Directory 安全性群組

若要僅使用 PowerShell 建立 gMSA 以進行輸出驗證,請依照下列步驟執行。

  1. 在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。

  2. 在 [Windows PowerShell Active Directory 模組] 命令提示字元中輸入下列命令:

    New-ADServiceAccount [-Name] <string> -RestrictToOutboundAuthenticationOnly [-ManagedPasswordIntervalInDays <Nullable[Int32]>] [-PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>]

    下列範例會使用表格中的參數來建立 gMSA。

    參數 String 範例
    名稱 帳戶的名稱 ITFarm1
    ManagedPasswordIntervalInDays 密碼變更間隔 (單位為天) (如果未提供,則預設值為 30 天) 75
    PrincipalsAllowedToRetrieveManagedPassword 成員主機的電腦帳戶或成員主機所屬的安全性群組 ITFarmHosts

    重要

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

    使用這些參數的範例命令,如下所示。

    New-ADServiceAccount ITFarm1 -RestrictToOutboundAuthenticationOnly - PrincipalsAllowedToRetrieveManagedPassword ITFarmHosts$
    

設定服務識別應用程式服務

若要設定 Windows Server 中的服務,請參閱下列文章:

其他服務可以支援 gMSA。 如需有關如何設定這些服務的詳細資料,請參閱適當的產品文件。

將成員主機新增到現有的伺服器陣列

如果是使用安全性群組來管理成員主機,請使用下列其中一個方法,將新成員主機的電腦帳戶新增到安全性群組 (gMSA 成員主機所屬的群組)。

若要完成這些程序,至少需要 Domain Admins的成員資格或是將成員新增到安全性群組物件的能力。

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

若要完成此程序,至少需要 Domain AdminsAccount Operators的成員資格或是管理 msDS-GroupManagedServiceAccount 物件的能力。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 本機與網域的預設群組。

使用 PowerShell 新增成員主機

  1. 在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。

  2. 在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:

    Get-ADServiceAccount [-Identity] <string> -Properties PrincipalsAllowedToRetrieveManagedPassword

  3. 在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:

    Set-ADServiceAccount [-Identity] <string> -PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>

下列範例會使用表格中的參數,將成員新增至伺服器陣列。

參數 String 範例
名稱 帳戶的名稱 ITFarm1
PrincipalsAllowedToRetrieveManagedPassword 成員主機的電腦帳戶或成員主機所屬的安全性群組 Host1、Host2、Host3

下列範例取得陣列 ITFarm1 的目前成員。

Get-ADServiceAccount [-Identity] ITFarm1 -Properties PrincipalsAllowedToRetrieveManagedPassword

下列範例會將成員主機新增至現有的伺服器陣列 ITFarm1

Set-ADServiceAccount [-Identity] ITFarm1 -PrincipalsAllowedToRetrieveManagedPassword Host1$,Host2$,Host3$

更新群組受管理的服務帳戶屬性

若要完成這些程序,至少需要 Domain AdminsAccount Operators的成員資格或是寫入 msDS-GroupManagedServiceAccount 物件的能力。

開啟「適用於 Windows PowerShell 的 Active Directory 模組」,並使用 Set-ADServiceAccount Cmdlet 設定任何屬性。

如需有關如何設定這些屬性的詳細資訊,請參閱 TechNet 文件庫中的 Set-ADServiceAccount,或是在「適用於 Windows PowerShell 的 Active Directory 模組」的命令提示字元中輸入 Get-Help Set-ADServiceAccount,然後按下 ENTER。

將成員主機從現有的伺服器陣列移除

若要完成這些程序,至少需要 Domain Admins的成員資格或是將成員從安全性群組物件移除的能力。

如果是使用安全性群組來管理成員主機,請使用下列其中一個方法,將已解除委任之成員主機的電腦帳戶從安全性群組 (gMSA 成員主機所屬的群組) 移除。

  • 方法 1:Active Directory 使用者和電腦

    如需有關如何使用這個方法的程序,請參閱使用 Windows 介面 刪除電腦帳戶 ,以及 管理 Active Directory 管理中心的不同網域

  • 方法 2:drsm

    如需有關如何使用這個方法的程序,請參閱使用命令列 刪除電腦帳戶

  • 方法 3:Windows PowerShell Active Directory Cmdlet Remove-ADPrincipalGroupMembership

    如需有關如何將成員從群組受管理的服務帳戶移除的詳細資訊,請參閱 TechNet 文件庫中的 Remove-ADPrincipalGroupMembership ,或是在「適用於 Windows PowerShell 的 Active Directory 模組」的命令提示字元中輸入 Get-Help Remove-ADPrincipalGroupMembership ,然後按下 ENTER。

如果列出電腦帳戶,請抓取現有的帳戶,然後新增除了移除之電腦帳戶以外的所有帳戶。

若要完成此程序,至少需要 Domain AdminsAccount Operators的成員資格或是管理 msDS-GroupManagedServiceAccount 物件的能力。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 本機與網域的預設群組。

使用 PowerShell 移除成員主機

  1. 在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。

  2. 在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:

    Get-ADServiceAccount [-Identity] <string> -Properties PrincipalsAllowedToRetrieveManagedPassword

  3. 在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:

    Set-ADServiceAccount [-Identity] <string> -PrincipalsAllowedToRetrieveManagedPassword <ADPrincipal[]>

下列範例會使用表格中的參數,移除伺服器陣列的成員。

參數 String 範例
名稱 帳戶的名稱 ITFarm1
PrincipalsAllowedToRetrieveManagedPassword 成員主機的電腦帳戶或成員主機所屬的安全性群組 Host1、Host3

下列範例取得陣列 ITFarm1 的目前成員。

Get-ADServiceAccount [-Identity] ITFarm1 -Properties PrincipalsAllowedToRetrieveManagedPassword

下列範例會從現有的伺服器陣列 ITFarm1 移除成員主機。

Set-ADServiceAccount [-Identity] ITFarm1 -PrincipalsAllowedToRetrieveManagedPassword Host1$,Host3$

將群組受管理的服務帳戶從系統移除

使用 Uninstall-ADServiceAccount 或主機系統上的 NetRemoveServiceAccount API 將快取 gMSA 認證從成員主機移除。

若要完成這些程序,至少需要 Administrators的成員資格或同等權限。

使用 PowerShell 移除 gMSA

  1. 在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。

  2. 在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:

    Uninstall-ADServiceAccount <ADServiceAccount>

    下列範例會從電腦解除安裝 Active Directory 受管理的服務帳戶。

    Uninstall-ADServiceAccount ITFarm1
    

如需有關 Uninstall-ADServiceAccount Cmdlet 的詳細資訊,請在「適用於 Windows PowerShell 的 Active Directory 模組」的命令提示字元中輸入 Get-Help Uninstall-ADServiceAccount,然後按 ENTER 鍵,或參閱 TechNet 網站上的 Uninstall-ADServiceAccount資訊。