这个设计应该是上海设计院设计的,我发出来的文档内容来自互联星空规范2.0版本,因为保密关系所以只截取概念部分,具体实现细节和编程文档就不发出来了
以下内容来自中国电信互联星空规范ver2.0,只是很少一部分:}
---------------------------------------------------------------------------------------------
6.4 认证授权
认证功能必须支持互联星空用户的一点认证特性。
授权信息是指用户对已经订购、在有效期内不再需要付费的服务所具有的使用权信息。SP在用户认证通过后,可以获得用户在该SP的授权信息。SP可以将该授权信息进行缓存处理,当用户请求访问已经授权的服务时,SP系统不必每次向互联星空系统提交授权查询请求即可自行判断,直接提供服务。
6.4.1 登录方式
用户可以通过以下方式登录到互联星空:
1) 用户在互联星空网站上点击“登录互联星空”的LOGO;
2) 用户尚未登录,直接访问互联星空网站上的互联星空服务;
3) 用户在SP网站上点击“登录互联星空”的LOGO;
4) 用户尚未登录,直接访问SP网站上的互联星空服务。
5) 用户通过中国电信的拨号客户端直接自动登录互联星空。
6.4.2 认证令牌
互联星空系统通过使用 UserToken和SPToken实现一点认证的功能。 UserToken和SPToken均为临时的身份凭证。其中, UserToken由互联星空系统生成并颁发给用户,作为中国电信赋予用户的临时身份凭证,其中包含了用户的详细登录信息; SPToken由SP系统根据互联星空系统提供的信息生成并颁发给用户,作为SP赋予用户的临时身份凭证,其中包含了用户的登录信息和在该SP上的授权信息。
当用户登录到互联星空后,互联星空平台根据用户信息生成并颁发UserToken。当用户访问某个SP时,该SP系统如果不能辨别用户的身份,则通过重定向技术向互联星空平台提交身份验证请求,互联星空平台判断用户拥有合法的UserToken,则将相关信息返回给SP系统,SP系统生成并向用户颁发SPToken,并为之提供服务。当用户再次访问该SP时,SP系统通过判断用户是否拥有SPToken,即可自行决定用户是否有权限使用收费服务。
6.4.3 令牌的有效期
SPToken是一个临时的身份凭证,具有有效期属性,超过指定的时间后,SPToken不再有效。此时SP系统需要在用户下一次访问其系统时再次向互联星空系统发出认证请求并根据认证结果生成新的SPToken。
同样,UserToken也是一个临时的身份凭证,具有有效期属性,当超过指定的时间后,UserToken不再有效。互联星空系统需要再次验证用户的身份,以生成并颁发新的UserToken。为使用户获得较好的使用体验,互联星空系统生成一个新的SPToken时,可以同时延长UserToken的有效期。
-------------------------------------------------------------------------------------------
主要是上午在海纳百川的post里面说了大话,所以不得不放点东西出来,如果老兄看到的话请笑纳。
现在的Passport差不多都是这样子的重定向在两头生成票据的方式。不过由于本人有限的智慧实在想不出有更好的方式。不过在安全性上因为很多信息是加密在URL上传输的,虽然不能被篡改,但是URL被截获的话也可能造成安全问题,所以我在后来自己用的SSO模块里面就在URL里头加入了时间戳,每次登录后所分派的值都不一样,这样子截获了URL也没用,就能最大程度的保证安全了。