1 a, b, c, d 都是内网,服务也都是部署在内网,d 保存用户信息。 2 用户在浏览器用正确的用户名密码请求 a 服务,a 到 d 上验证通过,生成 session,并且把 sessionid 保存在浏览器 cookie 中,这时候浏览器去访问 b,c,用已经保存的 cookie 这时候也可以拿到正确的 session,这不也是单点登录成功了。
1
piecehealth 2019-12-17 15:48:12 +08:00 via Android
cookie 不跨域
|
2
randyo 2019-12-17 15:53:43 +08:00 via Android
有同样的根域名是可以
|
3
Aruforce 2019-12-17 16:04:28 +08:00 via Android
域名一致可以啊
|
4
piecehealth 2019-12-17 16:24:04 +08:00 via Android
域名一致的话 cookie 不加密(不安全),或者所有服务加密 cookie 的秘钥算法都一致
|
5
littleylv 2019-12-17 17:05:52 +08:00
前提是你 abc3 个网址都是同一个域名下才可以互相访问 cookie,否则“浏览器去访问 b,c,用已经保存的 cookie ”这里就已经走不通了
正常考虑的单点登录大多是不同域名的情况(比如某宝 . com 某猫 . com ) |
6
netnr 2019-12-17 17:18:38 +08:00
前面刚玩:不同域名,主站登录保存 Cookie,其他站点直接带主站 Cookie 发起访问,可以通过授权
有几个点:后台开启跨域和接收 Cookie,配置写入 Cookie 的 SameSite 属性,当然开启后会有 CSRF 攻击的风险 这个是写的总结: https://www.netnr.com/home/list/138 |
7
sunziren 2019-12-18 10:34:51 +08:00
真是活到老学到老
|
8
OctopusGO 2019-12-18 17:33:01 +08:00
没有毛病
|
9
Shikyou 2020-06-24 16:53:22 +08:00
这一类实现单点登录的云服务已经很多了,为什么还要自行开发呢?
比如国内的 Authing,还有美国的 Auth0 和 AWS Cognito 都行的(国内由于政策原因用不了)。 用了以后就回不去了,再也无需开发、运维用户系统~ |