Azure active directory Azure AD中自定义API的开发者托管身份支持

Azure active directory Azure AD中自定义API的开发者托管身份支持,azure-active-directory,azure-managed-identity,Azure Active Directory,Azure Managed Identity,我已经创建了一个在Azure web app托管API之间实现托管标识的方案。所有API共享一个应用程序标识。此应用已定义角色。此角色分配给所有服务,因此每个api都可以调用其他api,而无需配置任何密码。 每个应用程序都会验证受众、发行人和权限 services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(o => {...

我已经创建了一个在Azure web app托管API之间实现托管标识的方案。所有API共享一个应用程序标识。此应用已定义角色。此角色分配给所有服务,因此每个api都可以调用其他api,而无需配置任何密码。 每个应用程序都会验证受众、发行人和权限

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(o =>
                {...
每个调用者都使用

azureServiceTokenProvider.GetAccessTokenAsync().
这样做之后,现在的挑战是如何让开发人员能够做到这一点。
当调用和被调用的API或其中一个都在我的visual studio中时,调用方没有系统定义的标识,也没有可从中获取令牌的“identity\u ENDPOINT”头。

因为您说所有API共享一个应用程序标识,这意味着您使用的是用户分配的托管标识,而不是系统标识。无论哪种方式,托管标识基本上都是锁定到azure服务的一种特殊类型的服务主体,这意味着只有azure服务可以使用它们。因此,对于开发人员来说,您基本上需要一个azure服务,在本例中,需要一个web应用/应用服务来部署内容,以便使用托管身份进行测试。如果您使用的是托管标识,则无法解决此问题

但是,正如使用appauthentication库一样,使用您的开发人员凭据在本地开发环境中运行。因此,如果您授予角色/访问所有开发人员身份的权限,那么本地测试就可以了

其他选项包括创建自己的应用程序注册/服务主体,以及配置API/应用程序等以使用它们。理论上,您也可以这样做,例如创建单个应用程序注册,并公开/授予所有API的权限,然后创建客户端机密,并使所有API使用该单个应用程序注册。然后使用secret/cert which方法作为azureservicetokenprovider的连接字符串。

谢谢您的详细回答。这就是我正在尝试的方法。