我在一家 B2B SaaS 公司工作,该公司为拥有不同单点登录提供商的公司提供服务。我们正在使用 Open Id Connect 和 OAuth2.0 协议将 SSO 集成到移动和服务器端。
我只是在仔细检查我是否正确理解了流程,所以如果我错了,请纠正我:
预期流量为:
- 用户打开移动应用程序并输入他们的电子邮件
- 使用租户发现,我们确定他们正在使用哪个 IDP(如果有)并使用 CustomTab 将他们重定向到登录页面(我们在 iOS 和 Android 上使用 AppAuth 库)
- 他们输入他们的凭证,这些凭证通过 PKCE 进入他们的 IDP
- AppAuth 收到一个 AuthToken,然后它与 PKCE 的 code_verification 一起使用以获取访问令牌。
- 移动应用程序获取访问令牌并将其与用户电子邮件一起在登录帖子中传递给我们的服务器。
- 服务器使用访问令牌与 IDP 进行反向对话,并通过获取用户的电子邮件地址来验证用户。
- 验证用户的电子邮件地址,然后我们生成我们的身份验证和跨站点伪造 cookie,这些 cookie 返回给客户端。