无法设置AzureRmKeyVaultAccessPolicy

时间:2017-11-16 09:36:23

标签: powershell azure azure-active-directory azure-keyvault

我们最近购买了Azure App服务证书。我在此证书的设置过程中创建了一个新的密钥保管库存储,并导入了证书。

现在,我尝试使用此处提供的powershell脚本创建应用服务证书的本地副本:https://blogs.msdn.microsoft.com/appserviceteam/2017/02/24/creating-a-local-pfx-copy-of-app-service-certificate/

然而,我收到错误:

  

Set-AzureRmKeyVaultAccessPolicy:找不到Active Directory对象''在租户中我的租户ID#39;请确保您授权的用户或应用程序服务主体已在电流中注册   订阅的Azure Active目录。 cmdlet显示的TenantID' Get-AzureRmContext'是目前的子公司   ription的Azure Active目录。   在C:\ Projekt \ Certificates \ Azure \ copyasc.ps1:22 char:1 ...

我不确定还有什么相关内容,但这里有一些注释:

  • 我发送到失败的Set-AzureRmKeyVaultAccessPolicy -UserPrincipalName temp@outlook.com的用户名对应于我在Azure Active Directory的默认目录中看到的唯一用户的用户名。

  • 此用户的ObjectId位于keyvault的访问策略列表中(我通过将-Debug添加到失败的cmdlet来看到这一点。)

  • keyvault中没有密钥。有一个(非托管)秘密,证书。

有些线程提到了有关AD应用程序的内容。我不确定我理解我读到的这些内容。这是我在创建keyvault时需要做的事情吗?

希望有人可以帮助我吗? :)

1 个答案:

答案 0 :(得分:2)

根据错误日志,您的UserPrincipalName值错误。请执行以下命令以获取UserPrincipalName

Get-Azureaduser

temp@outlook.com不是Azure AD帐户,其userprincipalname应为temp@outlook.com#EXT#@<your AD>

或者您可以将UserPrincipalName替换为用户的对象ID。

Set-AzureRmKeyVaultAccessPolicy -ResourceGroupName $keyVaultResourceGroupName -VaultName $keyVaultName -ObjectId $userobjectid -PermissionsToSecrets get