開始使用群組受管理的服務帳戶
在本文中,了解如何在 Windows Server 中啟用和使用群組受管理的服務帳戶 (gMSA)。
除非所有服務執行個體都使用相同的主體,否則無法使用支援相互驗證 (例如 Kerberos) 的驗證通訊協定。 例如,當用戶端電腦連線到服務,而該伺服器使用網路負載平衡或是另一個讓所有伺服器在用戶端看來都是相同服務的方法時。 這表示每個服務必須使用相同的密碼或金鑰來證明其身分識別。 群組受管理的服務帳戶是一種可搭配多部伺服器使用的帳戶類型。 gMSA 是一種網域帳戶,可用於在多個伺服器上執行服務,而無需管理密碼。 gMSA 提供自動密碼管理和簡化的服務主體名稱 (SPN) 管理,包含將管理委派給其他管理員。
注意
容錯移轉叢集不支援 gMSA。 不過,在叢集服務上執行的服務如果是 Windows 服務、應用程式集區、排定的工作或原生支援 gMSA 或 sMSA,便可使用 gMSA 或 sMSA。
服務可以選擇要使用的主體。 每個主體類型支援不同的服務,並有不同的限制。
Principals | 支援的服務 | 密碼管理 |
---|---|---|
Windows 系統的電腦帳戶 | 僅限一部加入網域的伺服器 | 電腦管理 |
沒有 Windows 系統的電腦帳戶 | 任何加入網域的伺服器 | 無 |
虛擬帳戶 | 僅限一部伺服器 | 電腦管理 |
Windows 獨立受管理的服務帳戶 | 僅限一部加入網域的伺服器 | 電腦管理 |
使用者帳戶 | 任何加入網域的伺服器 | 無 |
群組受控服務帳戶 | 任何已加入網域的 Windows Server 伺服器 | 網域控制站管理,主機抓取 |
Windows 電腦帳戶、Windows 獨立「受管理的服務帳戶」(sMSA) 或虛擬帳戶無法跨多個系統共用。 使用虛擬帳戶時,身分識別也是電腦的本機身分識別,且網域無法辨識。 如果您為伺服器陣列上的服務設定一個要共用的帳戶,則除了 Windows 系統以外,您還必須選擇一個使用者帳戶或電腦帳戶。 不論哪一種方式,這些帳戶都不會擁有單一控制點密碼管理的功能。 如果沒有密碼管理,每個組織都需要更新 Active Directory 中服務的金鑰,並將這些金鑰分發到這些服務的所有執行個體。
使用 Windows Server,當使用 gMSA 時,服務系統管理員就不需要管理服務執行個體之間的密碼同步化。 您在 Active Directory 中建立 gMSA,然後設定支援「受管理的服務帳戶」的服務。 gMSA 的使用範圍限定於任何能夠使用 LDAP 來擷取 gMSA 認證的電腦。 您可以使用屬於 Active Directory 模組的 New-ADServiceAccount
cmdlet 來建立 gMSA。 下列服務支援主機上的服務識別設定。
與 sMSA 相同的 API,因此支援 sMSA 的產品也將支援 gMSA
使用服務控制管理員來設定登入身分識別的服務
使用應用程式集區的 IIS 管理員來設定身分識別的服務
使用「工作排程器」的工作
必要條件
下表列出使用 gMSA 讓 Kerberos 驗證與服務搭配運作的作業系統需求。 Active Directory 需求列在這個表格之後。
若要執行用來管理 gMSA 的 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 (kdssvc.dll) 根金鑰,請參閱建立金鑰發佈服務 KDS 根金鑰。
部署新伺服器陣列
使用 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,請依照下列步驟執行。
在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。
在 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。 允許服務使用 SPNhttp/ITFarm1.contoso.com/contoso.com
、http/ITFarm1.contoso.com/contoso
、http/ITFarm1/contoso.com
和http/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 Admins、Account Operators 的成員資格,或是建立 msDS-GroupManagedServiceAccount
物件的能力。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 Active Directory 安全性群組。
若要僅使用 PowerShell 建立 gMSA 以進行輸出驗證,請依照下列步驟執行。
在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。
在 [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的成員資格或是將成員新增到安全性群組物件的能力。
方法 1:Active Directory 使用者和電腦
若要使用 Active Directory 使用者和電腦嵌入式管理單元,請參閱新增電腦帳戶到群組和在 Active Directory 管理中心管理不同的網域。
方法 2:
dsmod
要使用命令列,請參閱新增電腦帳戶到群組。
方法 3:Windows PowerShell Active Directory Cmdlet
Add-ADPrincipalGroupMembership
若要使用 PowerShell,請參閱 Add-ADPrincipalGroupMembership。
如果是使用電腦帳戶,請尋找現有的帳戶,然後新增電腦帳戶。
若要完成此程序,至少需要 Domain Admins、Account Operators 的成員資格,或是管理 msDS-GroupManagedServiceAccount
物件的能力。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 本機與網域的預設群組。
使用 PowerShell 新增成員主機
在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。
在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
Get-ADServiceAccount [-Identity] <string> -Properties PrincipalsAllowedToRetrieveManagedPassword
在 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$
更新 gMSA 屬性
若要完成這些程序,至少需要 Domain Admins、 Account 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 使用者和電腦
若要使用 Active Directory 使用者和電腦 嵌入式管理單元,請參閱刪除電腦帳戶和在 Active Directory 管理中心管理不同的網域。
方法 2:
drsm
若要使用命令列,請參閱刪除電腦帳戶。
方法 3:Windows PowerShell Active Directory Cmdlet
Remove-ADPrincipalGroupMembership
若要使用 PowerShell,請參閱 TechNet Library 中的 Remove-ADPrincipalGroupMembership,或在 [Windows PowerShell 的 Active Directory 模組] 命令提示字元中輸入
Get-Help Remove-ADPrincipalGroupMembership
,然後按 ENTER。
如果列出電腦帳戶,請抓取現有的帳戶,然後新增除了移除之電腦帳戶以外的所有帳戶。
若要完成此程序,至少需要 Domain Admins、Account Operators 的成員資格,或是管理 msDS-GroupManagedServiceAccount
物件的能力。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 本機與網域的預設群組。
使用 PowerShell 移除成員主機
在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。
在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
Get-ADServiceAccount [-Identity] <string> -Properties PrincipalsAllowedToRetrieveManagedPassword
在 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$
從系統移除 gMSA
使用 Uninstall-ADServiceAccount
或主機系統上的 NetRemoveServiceAccount
API 將快取 gMSA 認證從成員主機移除。
若要完成這些程序,至少需要 Administrators的成員資格或同等權限。
使用 PowerShell 移除 gMSA
在 Windows Server 2012 網域控制站上,從工作列執行 Windows PowerShell。
在 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 資訊。