9

使用 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 Directory 中注册。”

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

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

4

2 回答 2

4

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

听起来你在与创建 Key Vault 的 Azure 订阅关联的目录不同的目录中创建了应用程序。

注册应用程序时,当您转到 Azure 管理门户的“Active Directory”部分时,请务必选择与您订阅的目录(您创建 Azure Key Vault 的订阅)关联的目录。

于 2015-07-19T15:40:04.863 回答
4

您可以在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 应用程序的属性页面上找到它)

2) 如果您没有使用门户创建您的 AD 应用程序,而是从 Powershell Azure 资源管理器脚本创建的,则尚未为您的 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-in-tenant-?forum=AzureKeyVault

于 2017-01-03T09:48:04.853 回答