认证服务器是怎么知道同一个用户从应用B访问的?
来源:6-10 基于JWT实现SSO单点登录1

大番薯93
2017-11-12
老师您好,
我有点不太明白一点。
当用户小明先访问应用A并登陆后,此时认证服务器已经给小明登陆了。那么,此时小明再跳转去应用B,应用B也会给认证服务器发送认证请求。视频中说此时认证服务器就已经知道是小明从应用B请求了,所以不用再登录一次。我不明白为什么认证服务器会识别从应用B发送的请求就是小明的呢?具体是通过什么方式得知的呢? 如果小明先从Chrome浏览器登录应用A,继而用火狐浏览器转向B,那么认证服务器也能识别吗(我猜不能,但是还请老师讲解一下)?
十分感谢!
写回答
1回答
-
JoJo
2017-11-14
你就把认证服务器当成普通的账号密码登录来想,为什么我登录一次以后,以后再访问就不用登录了,因为session是相同的啊。虽然我先访问应用A,再访问应用B,但这俩应用都把我引导到认证服务器去了,实际上我是访问了两次认证服务器啊。我第一次访问时登录了,那么后面再访问认证服务器只要session不过期当然就不用登录了。认证服务器并不是知道访问应用B的是小明,认证服务器只是知道从应用B跳过来的请求,和之前从应用A跳过来的请求,是一个session,然后从session里一找,找到了第一次访问时登录的小明的信息。第二个问题你猜的对,是不能的,因为服务器从哪个session里读信息,是由浏览器cookie里的JSESSIONID决定的,你换了浏览器,服务器肯定拿不到之前的session了,当然就不能识别了。
30
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题