想了解下各位 V 友公司目前采用的单点登录方案是哪种?我列了 4 种,如果有更好的方案大家可以发出来。
![]() | 1 cheneydog 2024-07-10 15:29:09 +08:00 封一个模块都支持上最好 |
2 zealotxxxx 2024-07-10 15:40:29 +08:00 其实你要实现用户登出的话,最好还是带状态 |
3 zealotxxxx 2024-07-10 15:41:19 +08:00 jwt 是不带状态的,Oauth2 默认不带,可以带。 实现登出和强制下线都需要带状态的实现 |
4 ChoateYao 2024-07-10 15:44:22 +08:00 建议你看看 Cas Server 的方案,很多 SSO 系统都是按照这个方案去实现的 |
![]() | 5 cxhello OP @zealotxxxx 是的,退出看有的方案认证中心和其他子系统采用一套 redis ,我觉得这个不太靠谱。 |
6 snipking 2024-07-10 16:04:00 +08:00 你是为了做 sso server ,让别的应用来接,还是为了自己的应用能接入 sso server 呢? 业内已经有广泛使用的标准协议了呀,OpenID ,SAML ,OIDC ,OAuth2 ,如果是为了做 sso server ,当然是各种协议都要支持,建议直接用现成的比如 keycloak ,因为还涉及协议间转换的问题。 如果是自己做应用,建议做一个 OAuth2 足矣。 JWT 只是 token ,和上述协议无可比性,比如 OAuth2 issue 的 token 就可以是 JWT 。 |
7 mirrornighth 2024-07-10 16:19:31 +08:00 @snipking 我也觉得是和 jwt ,cookie 等这些无关 |
9 Ayanokouji 2024-07-10 16:33:48 +08:00 OIDC |
10 ny562kPWNJK9g86f 2024-07-10 16:58:31 +08:00 1 和 2 需要混合起来用 |
11 jiakme 2024-07-10 17:09:25 +08:00 需要区分应用场景: 1. 小型(集中/分布式)应用: 建议 session 模式, 而非 token, 维护成本远低于 token 2. 中型分布式应用: 两者均可, 分布式 session 可做两层缓存, 同步也不成问题; token 模式需要考虑登出, 黑名单等等场景, 成本不低. 3. 大型分布式应用: 建议 token 模式, 此时 session 同步会成为问题. 不论何种模式, 一定要封装前端请求组件和后端拦截器组件, 方便后期调整维护. |
![]() | 12 zzl22100048 2024-07-10 17:23:00 +08:00 OIDC oauth2 只是个授权协议,OIDC 才是用来做认证的 |
14 Mikex88 2024-07-10 17:30:21 +08:00 |
15 lucifer4he 2024-07-10 17:31:50 +08:00 微软的 AAD 接入了直接用,不自己实现啥 |
![]() | 17 Jasckcc 2024-07-10 17:41:55 +08:00 CAS 可以 |
18 zealotxxxx 2024-07-11 10:14:40 +08:00 @cxhello 你可以有两个模式:session 模式和 token 模式,token 模式是无状态的,用于给业务之间的授权逻辑。 session 模式处理用户登陆的。 |