系统对接单点登录问题

Blade 已结 1 1856

现在有个业务场景,客户的一个协同办公系统需要单点登录到我们的BlaexBoot系统中。客户那边统一登录用CAS协议认证登录。


CAS认证登录之后,会生成一个token信息,然后访问我们的系统页面链接地址后面带上生成的token信息跳转到我们系统实现单点登录。


他们还提供了一个接口根据token获取登录用户信息的接口,针对这种情况,我们原有的鉴权需要怎么改造呢,麻烦请给点思路。

1条回答
  •  admin
    admin (最佳回答者)
    2020-11-18 10:21

    这个原理类似第三方登录,目前bladex的第三方登录流程是这样的:
     1. 登录页点击第三方按钮,这里比如选择 github

     2. 跳转到github,输入账号密码后授权

     3. 授权后自动跳转回bladex登录页并携带token

     4. 登录页截取token,调用登录认证接口,返回框架本身的token

     5. 前端获取token成功,跳转到主页面


    现在集成CAS后,CAS也会返回token信息并且携带跳转,那么就可以直接跳转到上述第四步然后这么操作:

     1. 登录页截取CAS的token,调用CAS认证接口

     2. 模仿SocialTokenGranter,写一个CasTokenGranter,根据token调用外部接口获取用户信息的逻辑

     3. 获取到用户信息后,组装BladeUser并且返回bladex本身系统的token

     4. 前端获取token成功,跳转至主页面

     5. 如此一来就可以不用改造bladex内部业务系统了

    8 讨论(1)
提交回复