单点登入正常情况下是用一个数据库的,你可能对这个有点误解,就是一个单点登入的服务端,这正常情况下是一个单独的应用,专门用来登入身份验证的。优点是只要有一个账号,便可登入所有系统,缺点便是只要有一个账号密码泄露,就全完了。
单点登入按我的理解应该有一下几步,希望能够帮助你。
(1)对应用系统(这边一般称是service)发起请求, 发现系统没有相应的登入状态。
(2)客户端(指浏览器,不是cas-client)会重定向到cas认证中心。
然后这边分为两种情况。
1)cas已经登入,全局会话已经存在。这时候不用登入。直接附上票据。
2)假如全局会话不存在,则会到cas登入页面经行登入。登入成功后,建立全局会话。
(3)认证中心会携带票据,根据回调服务的地址,经行重定向。票据是cas服务端生成的,并且存储在cas服务端的。
(4)应用系统会验证票据的合法性(必须是cas服务端生成的, 而不是伪造的),然后会跟cas服务端进行一次验票交互。校验通过后,会给应用系统返回用户的相关信息。
(5)应用系统跟浏览器建立会话。
一般权限啥的,可以在cas服务端做,当然也可以在你应用本身的那个系统做,那是需要你要把所有用户同步过来。如果每个系统都这么搞,不是更麻烦?
希望能够帮到你。