【发布时间】:2018-06-08 10:54:59
【问题描述】:
根据this documentation,B2C不支持代流:
Azure AD B2C 不支持 Web API 链(代表)。
许多架构都包含一个需要调用另一个下游 Web API 的 Web API,两者都由 Azure AD B2C 保护。这种情况在具有 Web API 后端的本机客户端中很常见,后端又调用 Microsoft 在线服务,例如 Azure AD Graph API。
可以通过使用 OAuth 2.0 JWT Bearer Credential 授权(也称为 On-Behalf-Of 流)来支持这种链式 Web API 场景。但是,目前尚未在 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
【问题讨论】:
-
不,您不应该将一个应用用于两个真正的应用。在这种情况下,第一个应用程序(前端)没有限制访问最终资源。代表流量使这成为不可能。前端只能访问一些 web-ap - 并且只有那个 web-api 可以联系最终资源。