我需要以编程方式使用 Azure 服务主体:
1. 添加/删除其他服务主体的密码,以及
2. 为自身添加/删除密码
1很容易做到。
但由于以下错误,我似乎无法执行 2。 #2可能吗?如何?
graphrbac.PasswordCredentialsUpdateParameters failed:
graphrbac.ApplicationsClient#UpdatePasswordCredentials: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="Unknown" Message="Unknown service error"
Details=[{"odata.error":{"code":"Authorization_RequestDenied","date":"2019-06-06T22:19:35","message":{"lang":"en","value":"Insufficient privileges to complete the operation."},"requestId":"<ID>"}}]
#2可能吗?如何?
对的,这是可能的。
只需将您的服务主体添加到Application Administrator租户中的目录角色,无需添加其他权限,它就会起作用(可能会有一些延迟)。
导航至Azure Active Directory
在门户中->Roles and administrators
-> 单击Application administrator
-> Add assignment
-> 按您的 AD 应用程序名称(服务主体名称)搜索 -> 选择它 ->Select
.
我的测试样本:
我用powershell测试了一下,在其他语言中,应该也可以。
添加密码:
Connect-AzureAD -TenantId "<TenantId>" -ApplicationId "<ApplicationId>" -CertificateThumbprint "D0F0B179xxxxx6E41833FDE5947"
New-AzureADApplicationPasswordCredential -ObjectId <ObjectId>
删除密码(成功时不返回任何内容):
$password = Get-AzureADApplicationPasswordCredential -ObjectId <ObjectId>
Remove-AzureADApplicationPasswordCredential -ObjectId <ObjectId> -KeyId $password.KeyId
Besides,您可以检查我的测试示例中的屏幕截图以及门户中的屏幕截图,确保服务主体添加/删除密码为自己.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)