使用 Azure Managed Identity 针对应用服务进行身份验证

Use Azure Managed Identity to authenticate against App Service

我有一个 .NET Azure 应用服务,其 Web API 端点受 [Authorize] 保护,以及相应的应用注册。这工作正常并允许 Azure AD 用户帐户访问 API.

现在我想构建一个逻辑应用程序来访问 Web API 在其系统分配的托管标识下,但这会导致 403(禁止访问)。

我已经为逻辑应用程序启用了系统分配的托管标识,并且在 HTTP 连接器的身份验证参数中,我在“受众”字段中输入了应用程序注册的资源 ID (api://<guid>)。

缺少什么?

我找到了丢失的东西。

  1. 我必须将“允许的成员类型”设置为“应用程序”的应用程序角色添加到应用程序注册中。

  2. 然后我使用 Azure Powershell 添加了一个服务应用程序角色分配:

Connect-AzureAD
New-AzureADServiceAppRoleAssignment -objectid {managed-identity-object-id} -principalid {managed-identity-object-id} -id {app-role-id} -resourceid {enterprise-application-object-id-of-app-service}