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 使用客户端凭据流程时?
这里有样本
这 api 允许来自两个不同发行者的令牌。
您无法使用 Azure 门户中的身份验证选项实现此目的,因为它只允许一个颁发者。
我已经为我的 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 使用客户端凭据流程时?
这里有样本
这 api 允许来自两个不同发行者的令牌。
您无法使用 Azure 门户中的身份验证选项实现此目的,因为它只允许一个颁发者。