单点登录(SSO):解决方案之CAS

为何要单点登录?

  • 对于一些大企业,内部有很多系统,比如说几十个(这里有python、java、php、c#等不同编程语言写的),员工需要记住这几十个系统的账户和密码,这个是非常头疼的一个事。现在的需求,能否登录一次就使用所有的系统。

解决方案

  • 建立一个认证中心系统。用户必须在这登录,才能使用所有的系统。原理如下:
    在这里插入图片描述
  • 当用户访问A系统的时候,发现未登录,就重定向到验证中心,返回浏览器登录页面,登录后,请求发送到验证中心,
  • 如果正确,登录成功,在验证中心建立会话,生成一个字符串ticket(这里的关键点在于用户每次请求新系统都会携带ticket),并返回cookie到浏览器,重定向到A系统,A系统建立局部会话然后返回cookie到浏览器。
  • 这里有两个会话,验证中心的会话是用于用户登录后,访问另一个系统时,无需再次输入登录密码,直接验证用户所携带的ticket即可,如果令牌对的上,就证明登录过了。例如下面访问B系统。
  • 局部会话,每个系统都会建立这样一个会话,这个直接用于,用户访问这个系统不同页面时验证是否登录。
  • 每访问一个系统都要在验证中心记录这个系统(注册系统),当用户点击退出的时候,验证中心可以告诉各个系统销毁局部会话和自己的全局会话。
发布了134 篇原创文章 · 获赞 91 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/weixin_44588495/article/details/102248963