Azure 身份验证(经典):AAD 多颁发者 url

Azure Authentication (classic): AAD multiple issuer url

我已经为我的 azure 函数设置了 B2C Azure 身份验证,工作正常,如下所示:

它运行良好,用户可以登录并调用 API 一切正常!

现在我想从其他网站 API 调用相同的 API。我用 client_credentials 实现了它,即我用客户端 ID 和密码调用 https://login.microsoftonline.com/<b2c>.onmicrosoft.com/oauth2/v2.0/token 并获取令牌。

API 响应失败,返回 401 You do not have permission to view this directory or page.。我发现这是因为发行者不同(显然),如果我从登录用户调用 API 发行者是 https://<b2c>.b2clogin.com/<tenant id>/v2.0/ VS 客户端凭证流发行者是 https://login.microsoftonline.com/<tenant id>/v2.0.

所以我像这样更改了我的设置:

现在从外部网络应用调用不会失败。但是对于以 b2c 流程登录的用户来说,它失败了!

我如何配置 Issuer Url,以便它在两种流程中工作:当用户通过 b2c 注册流程和外部 API 使用客户端凭据流程时?

这里有样本

https://github.com/azure-ad-b2c/apps/blob/master/apps/spa-hellojs-popup/source-code/.Net-Core-API-RBAC/MultiBearerAPI/Startup.cs#L30

这 api 允许来自两个不同发行者的令牌。

您无法使用 Azure 门户中的身份验证选项实现此目的,因为它只允许一个颁发者。