繁体   English   中英

使用Azure KeyVault,无法在Azure Active Directory租户中找到对象

[英]Using Azure KeyVault, cannot find object in Azure Active Directory tenant

使用Azure KeyVault我按照本指南设置了ResourceGroup,KeyVault和Key:

https://azure.microsoft.com/en-gb/documentation/articles/key-vault-get-started/

我在Active Directory中设置了应用程序客户端。 但是当我尝试使用时:

Set-AzureKeyVaultAccessPolicy

授予服务主体帐户权限时出现以下错误:

“无法在租户' tenantId '中找到Active Directory对象' clientId '。请确保您授权的应用程序服务主体的用户已在当前订阅的Azure Active目录中注册。”

clientId是正确的,因为它是从门户网站中的应用程序配置页面复制的。 租户ID是当前订阅的租户ID,但不是活动目录的租户ID。

问题似乎是Active Directory的租户ID与我正在使用的订阅的租户ID不同。 如何更改Azure门户中Active Directory的租户ID以匹配订阅租户ID?

租户ID是指Azure AD目录的唯一标识符。 每个Azure订阅都与目录(或“租户”)相关联。

听起来您已将应用程序创建在与您在其中创建密钥保管库的Azure订阅关联的目录的不同目录中。

注册应用程序时,当您转到Azure管理门户的“Active Directory”部分时,请确保选择与您订阅的目录(创建Azure密钥库的订阅)相关联的目录。

您可以在https://docs.microsoft.com/en-us/azure/key-vault/key-vault-get-started#a-idauthorizeaauthorize-the-application-to-找到的文档有两个问题。 使用最关键还是秘密

1)-ServicePrincipalName参数不应该(如链接中的示例所示)是客户端ID(Guid),而是AD应用标识符Uri(您可以在AD App的属性页面上找到它)

2)如果您未使用门户创建AD应用程序,但是已从Powershell Azure Resource Manager脚本创建AD应用程序,则尚未为您的AD应用程序创建服务主体。 在运行Set-AzureRmKeyVaultAccessPolicy之前,必须使用New-AzureRmADServicePrincipal cmdlet执行此操作。

总的来说,你应该拥有

$app =  New-AzureRmADApplication -DisplayName "Test" -HomePage "http://myapp.contoso.com" -IdentifierUris "http://myapp.contoso.com" -Password "password" 

New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId

Set-AzureRmKeyVaultAccessPolicy -VaultName "vaultname" -ServicePrincipalName "http://myapp.contoso.com" -PermissionsToSecrets Get 

你也可以在https://social.msdn.microsoft.com/Forums/azure/en-US/ae8d2782-ecf7-4d35-9859-d4455e65a668/setazurermkeyvaultaccesspolicy-cannot-find-the-active-directory上找到讨论的问题。 -object-的租客?论坛= AzureKeyVault

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM