我正在尝试向Azure目录中的Web App / API类型应用程序授予权限以使用Azure Key Vault。
当我需要权限时>添加API访问权限>选择一个API,然后在那儿找不到Azure Key Vault。我记得以前在那里,但现在不在那里。在哪里可以找到它?
答案 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具有自己的访问管理(访问策略)。