服务与支持 |咨询热线 0931-8733767
  • 金城在线
  • 公司简介
  • 发展历程
  • 企业文化
  • 售后服务
  • 工作机会
  • 联系我们

Web应用单点登录

来源:发布时间:2018-2-6 9:57:52

SSO服务设计,Single Sign On(单点登录)即只要用户在经过该服务的认证后,那么在所属的应用范围下都无需再次进行登录操作就能被认证,无论是否跨域。

介绍一下本人接触过的SSO服务最简单的一种流程:

1、用户的登录请求被跳转到SSO,SSO进行常规账户名及密码匹配,匹配成功则继续。

2、SSO根据用户账户信息生成HMAC码,生成方法是利用SSO和所属应用相同的算法计算后得到的一个字符串。具体算法是使用一个密钥,然后将用户的账户信息、有效时间戳等串起来进行散列计算(如使用MD5)得到HMAC码。

3、SSO通过网页跳转将用户重定向到目标应用,重定向内容附带用户的账户信息(不包含密码)、HMAC码及有效时间戳。

4、目标应用通过读取用户跳转传入的账户信息、HMAC码、有效时间戳,运行与SSO一致的计算过程得到自己的值。

5、目标应用将得到的HMAC码与传入的进行比较,如果两个码相等,则检查有效时间戳是否超时,如果未超时则认为该用户通过认证,直接利用传入的账户信息为该用户创建会话数据。


通过以上流程可以知道:

1、用户的用户名密码等账户信息是保存在SSO的数据库上面的。

2、其他应用只是通过跳转获得了账户信息,如果校验成功就认证创建会话。

3、SSO与所属的应用使用了一致的HMAC生成算法和密钥,这样在无法知道密钥和生成算法的情况下无法伪造相关信息。

4、有效时间戳是为了保证该信息在有效时间外不会被重复使用。

5、更安全的做法是将相关数据存放在SSO上,跳转时只生成传递一个唯一令牌给其他应用,其他应用拿到该令牌后需要通过接口远程调用SSO来进行校验,当然SSO的校验接口还需要对来源地址进行限定等,流程更加复杂。


相关文章
  • 预约专家

    为您提供一对一解决方案
    立即预约
  • 售前咨询

    周一至周五9:00——17:30
    立即咨询
  • 联系方式

    13919049954

    全国7×24小时热线服务
  • 免费报价

    专属专业顾问1对1报价
    免费报价