Web应用单点登录

网站建设知识 phpacg 3年前 (2018-04-24) 174次浏览 0个评论

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的校验接口还需求对来源地址停止限定等,流程愈加复杂。

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址