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