网关统一鉴权+SSO 单点登录的架构中,网关是 SSO Client 吗?

2021-09-01 15:01:46 +08:00
 sola97

目前项目的架构是
有一个登录服务,生成 token 写入 redis
然后有几个 web 应用,每个 web 应用都需要调用登录服务登录后,带上 token 调用其他服务
想要改造成 SSO 单点登录,实现网关鉴权+日志等功能

目前我找到的两篇文章有
微服务-API 网关-身份验证 多模块 web 系统登录设计

这种架构中如果认证服务器颁发 ticket 后,是网关来根据 ticket 登录,也就是 SSO Client?

2693 次点击
所在节点    Java
8 条回复
xiaoyanbot
2021-09-01 17:58:54 +08:00
正常的 jwt token 不用写入 redis

只有 ban,或者用户主动注销的 jwt token 才写入一个 未过期的 token 禁止列表
meshell
2021-09-01 18:39:05 +08:00
网关鉴权是不是只能针对 url 鉴权?我现在系统里面如果弄成网关鉴权就只能针对 url 处理,不能根据业务来。
ccde8259
2021-09-01 19:05:22 +08:00
CAS 的 SSO 优势主要是基于 HTTP 协议完成单点登录,也就是即使你的 Web 应用是 polyglot 的场景也能完成鉴权。
一个简单的实现是,让你的 Web 应用如何成为 SSO Client 。缺陷就是各个 Web 应用这个场景下并不是共享 Session 的,因为 CAS 只负责鉴权。
实现共享 Session 就是让 Gateway 成为 SSO Client,由 Gateway 控制 Session 。
securityCoding
2021-09-01 19:30:17 +08:00
@meshell 理论上网关都是根据 url path 匹配路由规则 , 每条路由规则可以做各种定制化的配置
xuanbg
2021-09-01 19:56:42 +08:00
网关已经实现认证 /鉴权了,微服务都在网关后面了,还要什么 token 。
THESDZ
2021-09-02 16:45:51 +08:00
@xuanbg #5 是不用 token,但是要当前用户信息
meshell
2021-09-03 12:22:34 +08:00
@securityCoding 如果是这样的话,等于系统开始设计的时候 url 这些就要想好了。不然网关里面的规则经常改。 我们现在还是在不同的服务里面做鉴权这样就是每个服务都重复了三个文件这些文件有变动就是所有的服务又要 copy 一遍。
norristong2
2022-01-29 18:45:14 +08:00
- https://cdn.authing.co/authing-docs-v2/1.1.72/assets/img/app-device-logout-6.f739ed29.png
- https://docs.authing.cn/v2/concepts/single-sign-on-and-single-sign-out.html

可以参考这家公司的设计方案,“返回一个授权码 code ,再使用 code 在业务后端换取 Access token ,再用 Access token 获取用户信息。”

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/799269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX