微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 powershell 重置 Azure 服务主体的客户端机密

如何解决使用 powershell 重置 Azure 服务主体的客户端机密

我想使用 powershell 命令重置服务主体客户端密码。

我按照文章 https://docs.microsoft.com/en-us/powershell/azure/create-azure-service-principal-azureps?view=azps-5.8.0 中的以下步骤操作 但它没有重置密码

Remove-AzADSpCredential -displayName ServicePrincipalName
$newCredential = New-AzADSpCredential -ServicePrincipalName ServicePrincipalName

你能告诉我我做错了什么吗?我只想重置秘密并拥有新的秘密

我执行了上述命令,然后转到该服务主体的应用注册,然后转到证书和机密,我看到它没有创建新的机密。

使用 bash 我可以通过执行以下命令来重置密码,但我希望它使用 powershell 命令来完成

az ad sp credential reset --name

解决方法

我去了那个服务主体的应用注册,然后我去了证书和机密,我看到它没有创建新的机密。

嗯,实际上命令 New-AzADSpCredential 确实为您创建了一个新的秘密。 首先,您需要了解应用注册(AD App)和服务主体的关系,参见Application and service principal objects in Azure Active Directory

简而言之,服务主体是特定租户中 AD 应用程序的本地表示。当您为服务主体创建机密时,它不会出现在 Certificates & secrets 刀片中,您可以使用 Get-AzADSpCredential 获取它。

如果要重置可以在门户中找到的密钥,则需要通过Remove-AzADAppCredentialNew-AzADAppCredential 重置 AD 应用(即应用注册)的密钥。

您可以参考下面的示例,它会重置值为 ce96a0ed-5ae8-4a5a-9b3c-630da9ea3023 的机密,有效期为一年,您可以在门户中找到。

$obj = (Get-AzADApplication -DisplayName joyappv2).ObjectId
Remove-AzADAppCredential -ObjectId $obj -Force
$azurePassword = ConvertTo-SecureString "ce96a0ed-5ae8-4a5a-9b3c-630da9ea3023" -AsPlainText -Force
$date = Get-Date
$newCredential = New-AzADAppCredential -ObjectId $obj -Password $azurePassword -StartDate $date -EndDate $date.AddYears(1)

注意:创建后无法再次获取secret值,请在创建时保存。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。