我们有几个 Web 应用程序,所有这些应用程序都将适应使用基于 IdentityServer4 和 OpenId Connect 的单个身份验证端点。
我想要一些关于我正在考虑的以下(简化)流程的有争议的建议。
饼干:
- 用户访问app1并点击登录
- 用户被带到 IdP 登录页面
- 用户登录并返回到app1
- app1提供到app2的链接,用户点击该链接
- app2将她带到 IdP 登录页面
- IdP cookie尚未过期,因此不需要用户凭据。因此,用户会自动登录并返回到app2。
基于令牌的身份验证:
- 用户访问app1并点击登录
- 用户被带到 IdP 登录页面
- 用户登录并返回到app1
- app1提供到app2的链接,用户点击该链接
- app1将用户重定向到app2,但也提供了之前从 IdP 获得的id_token (上文第 2.3 项)
- app2验证id_token是否有效并自动让用户登录。
问题:
- 哪一个更好?(Cookie 与 Token “共享”)
- 我应该实施不同的(即更好的)流程吗?