如何将Open ID Connect令牌安全地转换为Cookie

谢尔曼

我们有一个客户端应用程序,我们希望通过OIDC启用SSO。客户端应用程序是带有专用后端API的SPA。当前,身份验证是通过Cookie来实现的,并且根据Auth_Cookie的用户在后端实施授权。OIDC身份验证完成后,我们希望继续利用这些现有的基于本地cookie的代码/逻辑,这也避免了将令牌存储在SPA中的需求。

完成身份验证代码PKCE流程后,前端SPA将直接从OP的/token端点接收ID_Token和Access_Token 要从ID / Access_Token到达Auth_Cookie,可以采用以下方法:

  1. 前端SPA/authenticate通过Access_Token进行后端API身份验证调用(例如
  2. 后端验证Access_Token并发出Auth_Cookie

由于ID_Token仅适用于客户端应用程序(在此情况下为前端SPA),因此我假设它在此序列中不起作用(尽管从逻辑上讲,您会认为对后端API/authenticate端点的调用应该提供类似于凭证的内容,例如ID_Token)。

上面的方法是否有意义,是否存在任何安全问题/担忧?是否有其他替代方法/更好的方法来将前端OIDC身份验证上下文实质上转换为cookie?

任何见识或帮助将不胜感激。谢谢。

简·哈拉沙(JánHalaša)

我认为让您的后端进程进行auth重定向会更容易-使它成为OAuth2客户端而不是SPA。您的SPA不需要令牌,也不需要将访问令牌转移到后端。后端处理程序将接收身份验证代码,它将获取令牌并创建身份验证cookie(具有所有安全性参数)。

如果您需要将SPA保留为OAuth2客户端,那么建议的解决方案可能很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何安全地转换整数?

如何将int转换为id?

将嵌套列表安全地转换为数据框,其中某些值是奇异的而某些是向量

如何在Java / Scala中将MD5哈希安全地转换为存储桶?

如何在旧版代码中从char *安全地转换为字符串?

如何将字符串转换为 ID?

如何将<input> id编号转换为var(Math)

如何将Span ID值转换为Excel VBA?

如何将Long ID散列为整数ID是安全的?

如何测试指针类型是否可以安全地转换为另一种指针类型?

如何将正常的CrudRepository <T,ID>转换为ReactiveCrudRepository <T,ID>

如何将id,值数组列表转换为[id]:[value]类型的对象

如何将Cookie会话ID置于截击请求中?

如果将OpenID Connect id_token和access_token标记为仅HTTP,是否可以安全地将其存储在cookie中?

如何将 pygame 图像转换为 Open CV 图像?

尝试将p_thread id转换为int时,将int *无效地转换为int

如何在C ++ / Ocaml之间安全地转换树数据结构?

如何将数据库表上的行ID转换为枚举?

如何将document.getElementById(id)元素转换为jquery对象?

如何将逗号分隔的 ID 列表转换为其名称?

如何将String转换为其资源ID(Android Studio)

如何将 data.table 转换为按 ID 更改的列列表

如何将ng-option角度中的id转换为对象?

如何将标签 ID 转换为聚合物属性?

如何将18个字符串转换为唯一ID?

如何将保存int的iOS id类型转换为NSString?

如何将标准Noda时区ID从英语转换为本地化语言?

MongoDB 3.6如何将字符串转换为对象ID

拥有ID时如何将User对象转换为Discord Member对象