无法将凭据添加到 Azure AD 中的服务主体

Unable to add Credential to a Service Principal in Azure AD

我正在尝试使用以下 powershell 脚本向服务主体(Azure AD 应用程序)添加凭据

connect-msolservice
$cer = New-ObjectSystem.Security.Cryptography.X509Certificates.X509Certificate
$cer.Import($location)
$binCert = $cer.GetRawCertData()
$credValue = [System.Convert]::ToBase64String($binCert);
New-MsolServicePrincipalCredential -AppPrincipalId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Type asymmetric -Value $credValue -Usage verify

但是我收到以下错误:访问被拒绝。您没有调用此应用程序的权限。

我不是此应用程序的所有者,但实际所有者已将我设为所有者之一。
对于我创建的另一个应用程序,上面的代码 运行 很顺利。我错过了什么吗?我需要任何其他身份验证机制吗?

只有租户的全局管理员才有权在该租户中创建或更新服务主体。

作为此应用程序的所有者,您想要添加新凭据的操作是通过应用程序清单更新应用程序对象。

这里有关于将 X509 添加到您的应用程序对象的说明(在为您的应用程序配置 X.509 public 证书部分): http://blogs.msdn.com/b/exchangedev/archive/2015/01/21/building-demon-or-service-apps-with-office-365-mail-calendar-and-contacts-apis-oauth2-client-credential-flow.aspx

如果您被标记为所有者,您应该有权访问和更新应用程序的这一部分。

请注意,此处的证书是全局证书,可用于在任何租户的上下文中进行身份验证,而不是服务主体上的租户特定证书。

希望对您有所帮助!