无法将凭据添加到 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
如果您被标记为所有者,您应该有权访问和更新应用程序的这一部分。
请注意,此处的证书是全局证书,可用于在任何租户的上下文中进行身份验证,而不是服务主体上的租户特定证书。
希望对您有所帮助!
我正在尝试使用以下 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
如果您被标记为所有者,您应该有权访问和更新应用程序的这一部分。
请注意,此处的证书是全局证书,可用于在任何租户的上下文中进行身份验证,而不是服务主体上的租户特定证书。
希望对您有所帮助!