2015-11-03 26 views
2

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

当我运行下面的PowerShell命令,它会尝试查找服务主体在订阅的默认目录,并没有找到它。

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

我发现an article描述如何更改默认的目录在管理门户网站订阅,但不知道该怎么办了使用PowerShell相同。

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

回答

4

主要Vault可以只授权应用程序(客户端)与Azure订阅相关的目录登记,唯一的办法(目前)更改与订阅相关联的“家”目录是通过Azure管理门户。

+1

这是相当有限的,尤其是在开发情况下,有多个目录并不少见。你知道有没有计划解决这个问题? – MvdD

+1

@MvdD我不知道任何已被广泛分享的计划。获得团队反馈的最佳方式是使用Azure反馈论坛。有一个项目已经为此,所以只需投票:https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/10510773-allow-key-vault-creation-in-non- default-directory –

+0

有趣的是,如果您在默认目录中成功设置访问权限,然后使用相同的clientID和秘密更改默认目录加密和解密,并继续从我的测试中运行。所以,这只是授予对默认目录必须进行访问的步骤。 – GregGalloway

0

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

的Azure订阅连接到它的Azure中的Active Directory,这是它会用反对,每当有人试图访问资源认证目录。

虽然您可以创建信任到其他活动目录只是建立一个新的AAD不会自动启用域通过Azure的信任。

密钥保险库旨在为经认证的用户提供访问权限,旨在为这些用户提供安全数据。由于您创建的多个目录之间没有认证机制,Key Vault无法确定这些目录属于哪个机制。

重点库需要通过连接到它在其下运行订阅的Active Directory来解决服务的原则(这是否是直接通过该目录中,或通过它信任另一个域)。其他任何东西都会产生额外的攻击媒介并大大削弱产品。

+1

虽然我理解您的观点(并且它是有效的),但有很多情况(认为拥有企业协议的大型公司)将拥有有效的业务案例,以便为需要单独访问Key Vault以获取LOB应用程序的内部实体。要求单个目录容纳数百个LOB应用程序,这为EA团队创造了管理和维护的噩梦。毫无疑问,微软可以提供一种安全机制,允许来自“关联”AAD的应用程序对Key Vault进行身份验证。 – MichaelMilom