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

时间:2021-04-27 10:39:55

标签: azure azure-active-directory azure-ad-b2c azure-authentication

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

效果很好,用户可以登录并调用 API 一切正常!

现在我想从其他 Web 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

所以我像这样改变了我的设置: enter image description here

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

我如何配置颁发者网址,以便它在两个流程中都有效:当用户通过 b2c 和外部 API 注册流程时使用客户端凭据流程?

1 个答案:

答案 0 :(得分:0)

这里有一个样本

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 门户中的身份验证选项来实现这一点,因为它只允许一个颁发者。