在授予AD应用程序权限的同时,为什么Azure门户不再具有Azure Key Vault功能?

时间:2018-11-07 12:06:23

标签: azure azure-devops azure-active-directory azure-web-sites azure-keyvault

我正在尝试向Azure目录中的Web App / API类型应用程序授予权限以使用Azure Key Vault。

当我需要权限时>添加API访问权限>选择一个API,然后在那儿找不到Azure Key Vault。我记得以前在那里,但现在不在那里。在哪里可以找到它?

图片: https://ibb.co/dswdXq

2 个答案:

答案 0 :(得分:1)

图像中显示的行为-“选择API”刀片中缺少Azure Key Vault

仅当到目前为止,Azure订阅中没有链接到该Azure Active Directory的密钥保管库时,我才看到图像显示的行为。

一旦创建了一个新的密钥保管库(甚至不需要添加任何密钥),便会在向Azure AD中的应用程序注册添加权限时显示“ Azure Key Vault”(与图像相同的步骤)。至少在我的情况下就是这样。

值得一提的特殊情况

您可以在Azure订阅中创建多个Azure AD,并在其中任何一个中注册您的应用程序。 Azure Key Vault尽管以特殊方式工作并且仅链接到一个Azure AD,但这是您的Azure订阅信任的Azure AD(Azure订阅也仅信任一个Azure AD)。因此,如果您在与Azure订阅信任的Azure AD不同的Azure AD中注册应用程序,则还可能遇到图像中显示的行为。

授予您的Web App / API使用Key Vault的权限

在大多数情况下,甚至不需要执行图像中显示的步骤,仅使Web应用程序能够访问密钥保管库,因为该操作由Azure密钥保管库访问策略控制。 @junnas已经很好地解释了这一部分,因此您可以参考。

答案 1 :(得分:0)

您可以转到Key Vault->访问策略->添加,然后为该应用程序创建新策略。 选择应用程序作为 principal ,并为其提供所需的访问权限。 您无需触摸授权应用选项。

然后,您应该能够使用客户端ID和机密(或证书)来获取Key Vault的令牌。 除非您想进行委派访问,否则Key Vault不需要将其分配给应用程序。 实际上,任何应用都可以为租户中作为服务主体存在的任何API获取令牌(Key Vault可以这样做)。 当然,令牌本身将不包含任何权限,但是Key Vault具有自己的访问管理(访问策略)。