【发布时间】:2020-05-28 14:37:41
【问题描述】:
我们有一个客户端应用程序,希望通过 OIDC 启用 SSO。客户端应用程序是具有专用后端 API 的 SPA。目前,身份验证是通过 cookie 实现的,并且在后端根据 Auth_Cookie 的用户执行授权。 OIDC 身份验证完成后,我们希望继续利用这些现有的基于本地 cookie 的代码/逻辑,这也避免了将令牌与 SPA 一起存储的需要。
在完成 Auth Code PKCE 流程后,前端 SPA 将直接从 OP 的 /token 端点接收 ID_Token 和 Access_Token。要从 ID/Access_Token 到 Auth_Cookie,方法可能是:
- 前端 SPA 调用后端 API 进行身份验证(例如
/authenticate),传递 Access_Token - 后端验证 Access_Token 并发出 Auth_Cookie
由于 ID_Token 仅适用于客户端应用程序(在此上下文中是前端 SPA),我的假设是它在此序列中没有任何作用(尽管从逻辑上讲,您会认为调用后端 - end API 的/authenticate 端点应该提供类似于凭据的东西,例如 ID_Token)。
上述方法是否有意义,是否存在任何安全问题/担忧?是否有替代/更好的方法可以将前端 OIDC 身份验证的上下文转换为 cookie?
任何见解或帮助将不胜感激。谢谢。
【问题讨论】:
标签: oauth-2.0 single-sign-on single-page-application access-token openid-connect