【问题标题】:B2B API Authentication with OpenID connect使用 OpenID 连接的 B2B API 身份验证
【发布时间】:2021-04-02 20:58:26
【问题描述】:
我们使用用户凭据流为 UI 前端登录实现了 OpenId Connect,它将用户重定向到登录页面。
我们希望在没有重定向流的情况下将 OpenId Connect 用于我们的 B2B API。
- B2B API 用户不受信任,无法提供客户端密码
- B2B API 是机械化的,需要登录而不重定向到登录 UI 页面
是否存在第三方用户可以登录并接收访问/ID 令牌并将其传递给我们的 API 的流程?
这种情况的最佳做法是什么?
谢谢
【问题讨论】:
标签:
oauth-2.0
authorization
openid-connect
【解决方案1】:
要正确回答这个问题,重要的是要确定精确的客户端使用情况,因为解决方案总是以此为基础。
场景 1:OAUTH 客户端是业务合作伙伴的后端
B2B API 通常由业务合作伙伴编写的代码调用,可能是在他们自己的 Web API 中。在这种情况下,Client Credentials Grant 被使用,并且可以使用基于相互 TLS 的形式来获得更高的安全性。
一个常见的设置是业务合作伙伴 UI 调用业务合作伙伴 API,然后它可以从您的 B2B API 返回数据。
场景 2:OAUTH 客户端是您自己的 UI,由业务合作伙伴用户使用
在这种情况下,运动部件如下:
- 用户被重定向以对您的应用进行身份验证
- 您的授权服务器处理重定向并颁发令牌
- 您的 UI 和 API 使用来自此授权服务器的令牌
授权服务器可以执行进一步的重定向,以便业务合作伙伴的用户可以使用熟悉的凭据登录。我的Federated Logins Blog Post 描述了这是如何配置的。
您的场景?
如果以上内容不能回答您的问题,请更详细地描述您的情况:
- 为什么要避免重定向?
- 用户是否已经登录到自己的应用?