根据this documentation,B2C不支持代表流:
Azure AD B2C不支持Web API链(On-Behalf-Of)。
许多架构都包含一个需要调用另一个下游Web API的Web API,这两个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
答案 0 :(得分:3)
OAuth 2.0 On-Behalf-Of流与第一个资源相关," https://resourceserver1"从客户端接收访问令牌;然后将此访问令牌交换为另一个访问令牌,以便由委派的身份访问第二个资源," https://resourceserver2"没有任何用户互动;然后将该访问令牌发送到第二个资源。
This Azure AD documentation解释了On-Behalf-Of流程。
鉴于此,两个不同的资源需要两个不同的应用程序,这反过来可能需要两个不同的范围。
您可以在B2C Support for on-behalf-of flow投票赞成此功能。