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



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

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

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

我发现一篇文章描述了如何在管理门户中更改订阅的默认目录,但我想知道如何使用PowerShell进行更改。

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

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

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

Azure订阅附加了一个Azure Active Directory,每当有人试图访问资源时,它都会使用该目录进行身份验证。

虽然您可以创建对其他Active Directory的信任,但简单地创建一个新的AAD并不能自动使Azure信任该域。

密钥保管库设计为只有经过身份验证的用户才能访问,它旨在为这些用户提供安全的数据。由于您创建的多个目录之间没有身份验证机制,因此密钥保管库没有确定这些目录属于谁的机制。

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

相关内容

  • 没有找到相关文章

最新更新