认证——SSO 与 CAS

SSO 全称 Single Sign On,单点登录。
CAS 全称 Central Authentication Service,中心认证服务。

CAS 是实现 SSO 的一种著名的方案。

使用情景:为了在多个不同的系统使用同一用户和密码,从而实现一处登录,处处登录。

实现机制

  • 用户首次登录系统 A,会重定向到 CAS。
  • 用户在 CAS 渲染的表单填写账号密码,如果认证通过,CAS 将会做几件事:
    • 建立会话。
    • 生成一个 ticket 。
    • 把 ticket 放在 URL 中,重定向到系统 A,同时把 cookie 发给浏览器。
  • 系统 A 收到 ticket 后向 CAS 认证,如果认证通过,则认为用户已经登录。
  • 系统 A 再给用户发送 cookie,这样用户就可以访问系统 A 中受保护的页面。

注意:第一个 cookie 是用来标记用户已经登录,第二个 cookie 是系统 A 发给用户的,用来让用户可以访问受保护页面,而其他系统是不能接触到这个 cookie 的。

如果用户在此基础上要登录系统 B,流程与登录系统 A 差不多,只是少了填写表单这一步:

  • 用户首次登录系统 B,会带有已登录的 cookie 重定向到 CAS。
  • 认证已通过,CAS 将会做几件事:
    • 建立会话。
    • 生成一个 ticket 。
    • 把 ticket 放在 URL 中,重定向到系统 B 。
  • 系统 B 收到 ticket 后向 CAS 认证,如果认证通过,则认为用户已经登录。
  • 系统 B 再给用户发送 cookie,这样用户就可以访问系统 B 中受保护的页面。

单点退出

实现效果,一处退出,处处退出。

当系统 A 向 CAS 认证 ticket 时,如果认证通过,除了系统 A 认为用户已登录外,CAS 也会注册系统 A 。
当用户在任一个系统退出时,认证服务器会通知已注册的所有系统,把用户的 cookie 干掉。

你可能感兴趣的:(认证——SSO 与 CAS)