Powershell 使用应用程序ID自动执行无缝SSO kerberos解密密钥滚动

Powershell 使用应用程序ID自动执行无缝SSO kerberos解密密钥滚动,powershell,azure-active-directory,kerberos,Powershell,Azure Active Directory,Kerberos,我想自动化用于无缝SSO的kerberos描述码的滚动。在这样做时,我不能使用全局管理员用户帐户,因为它们可能会受到喷射攻击(我不能使用域ID,因为有这么多域,因此我必须创建这么多全局管理员)。我认为通过使用应用程序ID和证书,我可以安全地自动化这项工作 问题是,我能找到的每个示例代码都使用了“AuthenticationContext”。大概是这样的: New-AzureADSSOAuthenticationContext -CloudCredentials $CloudCredentials

我想自动化用于无缝SSO的kerberos描述码的滚动。在这样做时,我不能使用全局管理员用户帐户,因为它们可能会受到喷射攻击(我不能使用域ID,因为有这么多域,因此我必须创建这么多全局管理员)。我认为通过使用应用程序ID和证书,我可以安全地自动化这项工作

问题是,我能找到的每个示例代码都使用了“AuthenticationContext”。大概是这样的:

New-AzureADSSOAuthenticationContext -CloudCredentials $CloudCredentials
Update-AzureADSSOForest -OnPremCredentials $OnpremCredentials
是否可以使用应用程序ID自动化此过程?如果是,我该如何编码


谢谢您的帮助。

恐怕您无法使用服务主体(即应用程序ID)来完成此操作

目前,我们可以在计划任务中使用域管理员和租户全局管理员凭据

您可以参考以下内容:


除了,Azure团队还致力于实现自动化,请参阅反馈:


因此,在我们的案例中,我们必须创建一个具有全局管理员角色的服务ID,它可能会受到喷射攻击……这远远不够理想。谢谢你的回答。@beadaman是的,但这是目前唯一的选择,azure团队正在努力实现自动化。
# Requirements:
# Microsoft Online Services Sign-In Assistant.
# 64-bit Azure Active Directory module for Windows PowerShell.

$CloudUser = 'service_account@domain.com'
$CloudEncrypted = Get-Content "C:\Scripts\Cloud_Encrypted_Password.txt" | ConvertTo-SecureString
$CloudCred = New-Object System.Management.Automation.PsCredential($CloudUser,$CloudEncrypted)
$OnpremUser = 'DOMAIN\service_account'
$OnpremEncrypted = Get-Content "C:\Scripts\Onprem_Encrypted_Password.txt" | ConvertTo-SecureString
$OnpremCred = New-Object System.Management.Automation.PsCredential($OnpremUser,$OnpremEncrypted)

Import-Module 'C:\Program Files\Microsoft Azure Active Directory Connect\AzureADSSO.psd1'
New-AzureADSSOAuthenticationContext -CloudCredentials $CloudCred
Update-AzureADSSOForest -OnPremCredentials $OnpremCred