如何使用傳入信任型流程為 Microsoft Entra 識別碼設定 Windows 驗證
本文說明如何實作傳入信任型驗證流程,以允許加入 Active Directory (AD) 且執行 Windows 10、Windows Server 2012 或更高 Windows 版本的用戶端,使用 Windows 驗證向 Azure SQL 受控執行個體進行驗證。
本文也包括 Microsoft Entra ID (之前稱為 Azure Active Directory) 中服務帳戶和受信任網域物件的 Kerberos 金鑰輪替步驟,以及移除受信任網域物件和所有 Kerberos 設定的步驟 (如有需要)。
啟用傳入信任型驗證流程是使用 Microsoft Entra ID 和 Kerberos 為 Azure SQL 受控執行個體設定 Windows 驗證中的一個步驟。 運行 Windows 10 20H1、Windows Server 2022 或更高版本 Windows 的用戶端,只要啟用了現代互動式流程,就能使用。
注意
Microsoft Entra ID 先前稱為 Azure Active Directory (Azure AD)。
權限
若要完成本文所述的步驟,您需要下列項目:
- 內部部署的 Active Directory 管理員使用者名稱和密碼。
- Microsoft Entra 全域系統管理員帳戶使用者名稱和密碼。
必要條件
若要實作傳入信任型驗證流程,請先確定已符合下列必要條件:
必要條件 | 描述 |
---|---|
用戶端必須執行 Windows 10、Windows Server 2012 或更新版本的 Windows。 | |
用戶端必須已加入 Azure AD。 網域必須具有 Windows Server 2012 或更新版本的功能等級。 | 您可以執行 dsregcmd 命令來判斷用戶端是否已加入 AD:dsregcmd.exe /status |
Azure AD 混合式驗證管理模組。 | 此 PowerShell 模組提供內部部署設定的管理功能。 |
Azure 租用戶。 | |
您打算用於驗證的相同 Microsoft Entra 租用戶下的 Azure 訂用帳戶。 | |
已安裝 Microsoft Entra Connect。 | Microsoft Entra 識別碼和 AD 中同時存在身分識別的混合式環境。 |
建立及設定 Microsoft Entra Kerberos 受信任網域物件
若要建立及設定 Microsoft Entra Kerberos 受信任網域物件,您會安裝 Azure AD 混合式驗證管理 PowerShell 模組。
接著,您將使用 Azure AD 混合式驗證管理 PowerShell 模組,在內部部署 AD 網域中設定受信任網域物件,並向 Microsoft Entra ID 註冊信任資訊。 這會在內部部署 AD 中建立輸入信任關係,讓 Microsoft Entra ID 能夠信任內部部署 AD。
設定受信任的網域物件
若要設定受信任的網域物件,請先安裝 Azure AD 混合式驗證管理 PowerShell 模組。
安裝 Azure AD 混合式驗證管理 PowerShell 模組
利用 [以系統管理員身分執行] 選項來啟動 Windows PowerShell 工作階段。
使用下列指令碼安裝 Azure AD 混合式驗證管理 PowerShell 模組。 此指令碼會:
- 啟用 TLS 1.2 來進行通訊。
- 安裝 NuGet 套件提供者。
- 註冊 PSGallery 存放庫。
- 安裝 PowerShellGet 模組。
- 安裝 Azure AD 混合式驗證管理 PowerShell 模組。
- Azure AD 混合式驗證管理 PowerShell 會使用 AzureADPreview 模組來提供進階的 Microsoft Entra 管理功能。
- 若要避免與 AzureAD PowerShell 模組發生不必要的安裝衝突,此命令會包含 –AllowClobber 選項旗標。
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -Force
if (@(Get-PSRepository | Where-Object { $_.Name -eq "PSGallery" }).Count -eq -1) {
Register-PSRepository -Default
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted
}
Install-Module -Name PowerShellGet -Force
Install-Module -Name AzureADHybridAuthenticationManagement -AllowClobber
建立受信任的網域物件
利用 [以系統管理員身分執行] 選項來啟動 Windows PowerShell 工作階段。
設定一般參數。 在執行之前,請先自定義下列腳本。
- 將
$domain
參數設定為內部部署的 Active Directory 網域名稱。 - 當出現
Get-Credential
的提示時,請輸入內部部署的 Active Directory 管理員使用者名稱和密碼。 - 將
$cloudUserName
參數設定為全域管理員特殊權限帳戶的使用者名稱,以存取 Microsoft Entra 雲端。
注意
如果您想要將目前 Windows 登入帳戶用於內部部署的 Active Directory 存取,您可以略過指派認證給
$domainCred
參數的步驟。 如果您採用此方法,請勿-DomainCredential
在此步驟之後的 PowerShell 命令中包含 參數。$domain = "your on-premesis domain name, for example contoso.com" $domainCred = Get-Credential $cloudUserName = "Azure AD user principal name, for example admin@contoso.onmicrosoft.com"
- 將
檢查目前的 Kerberos 網域設定。
執行下列命令來檢查您網域目前的 Kerberos 設定:
Get-AzureAdKerberosServer -Domain $domain ` -DomainCredential $domainCred ` -UserPrincipalName $cloudUserName
如果這是第一次呼叫任何 Microsoft Entra Kerberos 命令,系統會提示您存取 Microsoft Entra 雲端。
- 輸入 Microsoft Entra 全域系統管理員帳戶的密碼。
- 如果您的組織使用其他新式驗證方法,例如 Microsoft Entra 多重要素驗證或智慧型卡片,請依照登入的要求指示操作。
如果這是您第一次設定 Microsoft Entra Kerberos 設定,Get-AzureAdKerberosServer Cmdlet 會顯示空白資訊,如下列範例輸出所示:
ID : UserAccount : ComputerAccount : DisplayName : DomainDnsName : KeyVersion : KeyUpdatedOn : KeyUpdatedFrom : CloudDisplayName : CloudDomainDnsName : CloudId : CloudKeyVersion : CloudKeyUpdatedOn : CloudTrustDisplay :
如果您的網域已經支援 FIDO 驗證,
Get-AzureAdKerberosServer
Cmdlet 會顯示 Microsoft Entra 服務帳戶資訊,如下列範例輸出所示。CloudTrustDisplay
欄位會傳回空值。ID : 25614 UserAccount : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net ComputerAccount : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net DisplayName : krbtgt_25614 DomainDnsName : aadsqlmi.net KeyVersion : 53325 KeyUpdatedOn : 2/24/2022 9:03:15 AM KeyUpdatedFrom : ds-aad-auth-dem.aadsqlmi.net CloudDisplayName : krbtgt_25614 CloudDomainDnsName : aadsqlmi.net CloudId : 25614 CloudKeyVersion : 53325 CloudKeyUpdatedOn : 2/24/2022 9:03:15 AM CloudTrustDisplay :
新增受信任的網域物件。
執行 Set-AzureAdKerberosServer PowerShell Cmdlet 以新增受信任的網域物件。 請務必包含
-SetupCloudTrust
參數。 如果沒有 Microsoft Entra 服務帳戶,此命令會建立新的 Microsoft Entra 服務帳戶。 此命令只有在有Microsoft Entra 服務帳戶時,才會建立要求的 Trusted Domain 物件。Set-AzureADKerberosServer -Domain $domain -UserPrincipalName $cloudUserName -DomainCredential $domainCred -SetupCloudTrust
注意
在多重網域樹系上,為了避免在子網域上執行命令時發生 LsaCreateTrustedDomainEx 0x549 錯誤:
- 在根網域上執行命令 (包含
-SetupCloudTrust
參數)。 - 在子網域上執行相同命令,但不要包含
-SetupCloudTrust
參數。
建立受信任的網域物件之後,您可以使用
Get-AzureAdKerberosServer
PowerShell Cmdlet 來檢查已更新的 Kerberos 設定,如上一個步驟所示。Set-AzureAdKerberosServer
如果 Cmdlet 以-SetupCloudTrust
參數成功執行,CloudTrustDisplay
字段現在應該會傳回Microsoft.AzureAD.Kdc.Service.TrustDisplay
,如下列範例輸出所示:ID : 25614 UserAccount : CN=krbtgt-AzureAD, CN=Users, DC=aadsqlmi, DC=net ComputerAccount : CN=AzureADKerberos, OU=Domain Controllers, DC=aadsqlmi, DC=net DisplayName : krbtgt_25614 DomainDnsName : aadsqlmi.net KeyVersion : 53325 KeyUpdatedOn : 2/24/2022 9:03:15 AM KeyUpdatedFrom : ds-aad-auth-dem.aadsqlmi.net CloudDisplayName : krbtgt_25614 CloudDomainDnsName : aadsqlmi.net CloudId : 25614 CloudKeyVersion : 53325 CloudKeyUpdatedOn : 2/24/2022 9:03:15 AM CloudTrustDisplay : Microsoft.AzureAD.Kdc.Service.TrustDisplay
注意
Azure 主權雲端需要設定
TopLevelNames
屬性,預設會設定為windows.net
。 SQL 受控執行個體的 Azure 主權雲端部署會使用不同的最上層網域名稱,例如 Azure 美國政府會採用usgovcloudapi.net
。 使用下列 PowerShell 命令,將 [受信任的網域物件] 設為網域名稱:Set-AzureADKerberosServer -Domain $domain -DomainCredential $domainCred -CloudCredential $cloudCred -SetupCloudTrust -TopLevelNames "usgovcloudapi.net,windows.net"
。 您可以使用下列 PowerShell 命令來確認設定:Get-AzureAdKerberosServer -Domain $domain -DomainCredential $domainCred -UserPrincipalName $cloudUserName | Select-Object -ExpandProperty CloudTrustDisplay
。- 在根網域上執行命令 (包含
設定群組原則物件 (GPO)
識別您的 Microsoft Entra 租用戶 ID。
使用傳入信任型流程,將下列群組原則設定部署至用戶端電腦:
編輯 [系統管理範本]\[系統]\[Kerberos]\[指定 Kerberos 用戶端的 KDC Proxy 伺服器] 原則設定。
選取 [啟用] 。
在 [選項] 底下,選取 [顯示...]。這會開啟 [顯示內容] 對話方塊。
使用對應定義 KDC Proxy 伺服器設定,如下所示。 以您的 Microsoft Entra 租用戶識別碼取代
your_Azure_AD_tenant_id
預留位置。 請注意值對應中https
之後以及結尾/
之前的空格。值名稱 值 KERBEROS.MICROSOFTONLINE.COM <https login.microsoftonline.com:443: your_Azure_AD_tenant_id
/kerberos />按一下 [確定] 以關閉 [顯示內容] 對話方塊。
選取 [指定 Kerberos 用戶端的 KDC Proxy 伺服器] 對話方塊上的 [套用]。
輪替 Kerberos 金鑰
您可以定期輪替所建立Microsoft Entra 服務帳戶的 Kerberos 金鑰,以及用於管理目的的受信任網域物件。
Set-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName -SetupCloudTrust `
-RotateServerKey
輪替金鑰之後,在 Kerberos KDC 伺服器之間傳播已變更的金鑰需要數小時的時間。 由於此金鑰散發時間安排,您在 24 小時內可以輪替金鑰一次。 如果您需要在 24 小時內再次輪替金鑰,(例如建立受信任網域物件之後),您可以新增 -Force
參數:
Set-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName -SetupCloudTrust `
-RotateServerKey -Force
移除受信任的網域物件
您可以使用下列命令來移除新增的受信任網域物件:
Remove-AzureADKerberosServerTrustedDomainObject -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName
此命令只會移除受信任的網域物件。 如果您的網域支援 FIDO 驗證,您可以移除受信任的網域物件,同時維護 FIDO 驗證服務所需的 Microsoft Entra 服務帳戶。
移除所有 Kerberos 設定
您可以使用下列命令來同時移除 Microsoft Entra 服務帳戶和受信任的網域物件:
Remove-AzureAdKerberosServer -Domain $domain `
-DomainCredential $domainCred `
-UserPrincipalName $cloudUserName