Azure AD B2C中的Web API链(On-Behalf-Of)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Azure AD B2C中的Web API链(On-Behalf-Of)相关的知识,希望对你有一定的参考价值。

根据this documentation的说法,B2C不支持代表流程:

Azure AD B2C不支持Web API链(On-Behalf-Of)。

许多体系结构包括需要调用另一个下游Web API的Web API,两者都由Azure AD B2C保护。这种情况在具有Web API后端的本机客户端中很常见,后者又调用Microsoft在线服务,如Azure AD Graph API。

可以使用OAuth 2.0 JWT Bearer Credential授权来支持此链式Web API方案,也称为On-Behalf-Of流。但是,Azure AD B2C中当前未实现On-Behalf-Of流。


我不能从第一个Web API请求中提取JWT并将其传递给下一个Web API吗?我在技术上知道,我可以,但是有一个我不想要的理由吗?

只有在为同一个B2C应用程序配置了两个Web API时,此方法才有效。也许这就是差异。文档是否涉及2个独立的B2C应用程序?


参考:Access the JWT bearer token when using the JWT middleware in ASP.NET Core

答案

OAuth 2.0 On-Behalf-Of流与第一个资源“https://resourceserver1”相关,从客户端接收访问令牌;然后将此访问令牌交换为另一个访问令牌,以便委托身份访问第二个资源“https://resourceserver2”而无需任何用户交互;然后将该访问令牌发送到第二个资源。

This Azure AD documentation解释了On-Behalf-Of流程。

鉴于此,两个不同的资源需要两个不同的应用程序,这反过来可能需要两个不同的范围。

您可以在B2C Support for on-behalf-of flow投票赞成此功能。

以上是关于Azure AD B2C中的Web API链(On-Behalf-Of)的主要内容,如果未能解决你的问题,请参考以下文章

使用 azure AD B2C 进行 blazor web api 身份验证

Azure AD B2C 连接的用户使用 Graph AD API 更改密码

会话超时后 Azure AD B2C 注销

Azure AD B2C 图形 API 401 未经授权

[OAuth2 / Azure AD B2C参数已从iOS的外部Web浏览器中剥离

哪个图形 API 应与 Azure AD B2C 一起使用