在Azure中整合托管身份与身份验证/授权身份

时间:2020-05-15 01:22:33

标签: azure azure-active-directory azure-functions

我遇到一种需要管理资源标识的情况,但是我发现自己需要为该资源创建两个clientID。

我有一个要访问Azure密钥库的功能应用程序。为了使功能应用程序能够使用@ Microsoft.KeyVault(ServiceUri ='{url}')在应用程序设置中引用密钥库数据,我需要两个步骤。

  1. 打开托管身份

enter image description here

  1. 在“密钥保险库”中,授予资源访问权限。

这很好用,门户网站说资源现在已在Azure AD中注册。

但是,我还需要运行用于访问密钥库的代码,并且需要打开验证/授权。这会在Azure AD中创建 second 注册,这次是已注册的应用程序,并带有第二个ClientId。我还需要给这个新创建的资源访问密钥库。

enter image description here

是否可以合并在Azure AD中创建的这两个资源?有没有办法说此资源需要具有托管身份,并且还必须是身份验证的注册应用程序?

1 个答案:

答案 0 :(得分:0)

它们实际上是两个不同的东西。受管身份不是像应用程序注册那样的全面服务主体。它只能用于访问其另一类型对象的“ azure服务”。这么快的答案就不会了,实际上没有办法将这两件事变成1。

如果您要做的只是尝试从代码访问密钥库,则实际上不需要打开身份验证。 就实际屏幕而言,这可能有点过时了,但是想法是一样的:https://integration.team/blog/retrieve-azure-key-vault-secrets-using-azure-functions-and-managed-service-identity/ 。您基本上可以在代码中获取托管身份的令牌,并使用该令牌从代码内部访问密钥库。

但是,如果您要求进行身份验证并且在功能应用程序应用程序设置中具有密钥库引用,那么您将两者都需要,因为应用程序设置中的密钥库引用只能由系统管理的身份来完成,并且只能进行身份验证通过应用程序注册。