如何将非默认目录中的客户端授权给KeyVault

时间:2015-11-03 05:12:54

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

我在Azure订阅中创建了一个KeyVault,在我的一个Azure AD目录中创建了一个客户端应用程序。但是,客户端应用程序未在订阅的默认目录中注册。

当我运行以下PowerShell cmdlet时,它会尝试在订阅的默认目录中查找服务主体,但无法找到它。

PS > Set-AzureKeyVaultAccessPolicy -VaultName <vaultname> 
       -ServicePrincipalName <principal guid> -PermissionsToSecrets Get

我发现an article描述了如何在管理门户中更改订阅的默认目录,但是想知道如何使用PowerShell执行相同操作。

Select-AzureSubscription”cmdlet似乎不支持更改默认目录。 “Set-AzureKeyVaultAccessPolicy”也不支持一个参数来指示它应该在哪个目录中。

2 个答案:

答案 0 :(得分:4)

密钥保管库只能授权在与Azure订阅关联的目录中注册的应用程序(客户端),以及(当前)更改“家庭”的唯一方法。与订阅关联的目录是通过Azure管理门户。

答案 1 :(得分:0)

我认为这是设计行为,无法想象它会如何/为什么会改变。

Azure订阅附加了一个Azure Active Directory,这是用户在尝试访问资源时进行身份验证的目录。

虽然您可以创建对其他活动目录的信任,但只是创建新的AAD不会自动使该域受Azure信任。

Key Vault旨在仅供经过身份验证的用户访问,旨在为这些用户提供安全数据。由于您创建的多个目录之间没有身份验证机制,因此Key Vault没有用于确定这些目录所属的机制。

密钥保管库需要通过附加到其运行的订阅的Active Directory来解析服务原则(无论是直接通过该目录,还是通过其信任的其他域)。任何其他东西都会产生额外的攻击媒介并大大削弱产品。