单点登录的机制

单点登录全称是Single Sign On,简称SSO,是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录和单点注销两个部分。

一、单系统登录机制

  1、http无状态协议:web应用采用B/S架构,http作为通信协议,是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联;这时就意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,就必须鉴别浏览器请求,响应合法请求,忽略非法请求;要鉴别浏览器请求就必须清楚浏览器请求状态,这时就要用到会话机制。

  2、会话机制:浏览器第一次请求服务器,服务器创建一个会话,并将会话的id作为响应的一部分发送给浏览器,浏览器会存储会话id,并在后续第二次和第三次请求中带上id,服务器取得请求中的会话id就知道是不是同一个用户了。

  服务器在内存中保存会话对象,浏览器使用cookie机制来保存会话id,cookie是浏览器用来存储少量数据的一种机制,数据以“key/value”形式存储,浏览器发送http请求时自动附带cookie信息。

  3、登录状态:假设浏览器第一次请求服务器需要输入用户名和密码验证身份,服务器拿到用户名密码去数据库比对,正确的话说明当前持有这个会话的用户是合法用户,应该将这个会话标记为“已授权”或“已登录”状态,Tomcat在会话对象中设置登录状态为true;用户再次访问时,Tomcat在会话对象中查看登录状态。

  每次请求受保护资源时都会检查会话对象中的登录状态,只有登录状态为true的会话才能访问,单系统登录机制就实现了。

二、多系统应用群中登录机制

  1、登录:相比于单系统登录机制,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统登录方式相同。

  2、注销:在一个子系统中注销,所有子系统的会话都将被注销。

posted @ 2018-09-11 21:47  菠菜汤圆  阅读(376)  评论(0编辑  收藏  举报