请教个问题,SSO(单点登录)能不能用 JWT 实现? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wanghaa
V2EX    Java

请教个问题,SSO(单点登录)能不能用 JWT 实现?

  •  
  •   wanghaa 2017-11-09 16:54:36 +08:00 11569 次点击
    这是一个创建于 2894 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有没有相关的 demo,感觉 CAS 略复杂了点
    14 条回复    2020-06-24 16:11:44 +08:00
    hezhou920
        1
    hezhou920  
       2017-11-09 17:09:15 +08:00
    显然是可以的
    janxin
        2
    janxin  
       2017-11-09 17:09:41 +08:00
    可以
    wanghaa
        3
    wanghaa  
    OP
       2017-11-10 09:04:24 +08:00
    @hezhou920 @janxin 用 jwt(token)的话,假如 A 系统已经登录了,在访问 B 系统的时候是怎么知道已经登录的呢?
    K1W1
        4
    K1W1  
       2017-11-15 19:39:00 +08:00
    @wanghaa #3 因为认证与验证是分开的,用户通过 A 服务器登录得到了签名 token (认证),然后用户再请求 B 把 token 一起发过去,B 拿到约定好的 token 就会是验证是否是有效,有效就是登录用户,无效重新登录
    wanghaa
        5
    wanghaa  
    OP
       2017-11-16 08:21:41 +08:00 via Android
    @K1W1 访问 B 系统的时候用户怎么知道 token 在哪
    K1W1
        6
    K1W1  
       2017-11-16 09:49:26 +08:00
    @wanghaa #5 看你们约定了,一般放在 cookie 或者请求头,甚至请求参数带过来就行了,参数放在哪、参数名称是什么这都是要约定好的
    wanghaa
        7
    wanghaa  
    OP
       2017-11-16 17:35:37 +08:00
    @K1W1
    问题 1. 不同的域名怎么可能还放在 cookie 里呢?
    问题 2. 在 A 系统登陆过之后,访问 B 系统的时候是没有带 Token 的
    K1W1
        8
    K1W1  
       2017-11-16 17:59:40 +08:00
    @wanghaa #7 问题 1.看你怎么做吧,一般不同服务,至少我们只是子域名不同。根域名下的 cookie 是共用的。问题 2.对接 sso 相应服务是肯定要修改的,不然不可能实现
    andymee
        9
    andymee  
       2017-11-30 23:05:42 +08:00   2
    不管是访问 A 系统 还是 B 系统 都是要跳转到 认证系统 AUTH 去的 比如 auth.app.com 可以在这个域下 创建 COOKIE 这样 在 A 系统跳转到 AUTH 时 创建 cookie token=tk1 然后跳会 A 系统 a.app1.com 带上发给 A 的 cookie token=tk2 之后访问 b.app2.com 发现没有 token 需要登录 那么就跳转到 auth.app.com 这时候 发现已经有 cookie token=tk1 了 那验证登录有效后 带上签发给 B 的 token tk3 跳转 B . 这样访问 B 系统就只是一个跳转 不需要登录了..
    abcbuzhiming
        10
    abcbuzhiming  
       2017-12-01 10:29:44 +08:00
    @wanghaa
    1.为什么不能放,能不能放是由客户端决定的,cookie 这玩意是个客户端能拿到就能放在任何地方的东西
    2.访问 A 系统的目的就是为了生成 token,这个 token 是会返还给客户端的,客户端要拿着这个 token 去访问 B,B 系统得到这个 token 后,可能会去找 A 系统问询,也可能会去找统一的 token 校验服务器问询。这才是整个流程
    kba977
        11
    kba977  
       2017-12-04 22:47:36 +08:00
    可以的, 推荐一个连接 [Single Sign On (SSO), Scalable Authentication Example with JSON Web Token (JWT) and Spring Boot]( https://hellokoding.com/hello-single-sign-on-sso-with-json-web-token-jwt-spring-boot/)
    snakejia
        12
    snakejia  
       2017-12-12 14:32:32 +08:00
    @andymee 偶然间看帖子,解了困扰我半天的问题,3Q
    ivydom
        13
    ivydom  
       2019-10-10 16:36:25 +08:00
    用 authing 可以快速实现单点登录,快速体验: https://sample.authing.cn
    Shikyou
        14
    Shikyou  
       2020-06-24 16:11:44 +08:00
    实现单点登录最快的方式,可以用国内的 Authing,国外的 Auth0 / AWS Cognto 这一类用户身份验证的云服务,给应用添加注册、登录和访问控制功能很快
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3470 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 04:40 PVG 12:40 LAX 21:40 JFK 00:40
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86