关于SSO-阿里云开发者社区

开发者社区> 数据库> 正文

关于SSO

简介: 再好的技术方案仅仅是为了解决问题。那SSO是为了解决用户登陆输入用户名和密码的问题、更准确的说,在大型网站发展的过程中会衍生出很多个子系统、而这些子系统都需要输入用户名和密码进行登陆。 问题来了?为什么那些子系统需要登陆、回答这个问题需要知道系统发展演变的过程、不同的子系统可能代表着不同的业务线的发展、原有系统都存在用户状态验证过程,那在子系统跳转过程中势必要让用户去重新登陆。

再好的技术方案仅仅是为了解决问题。那SSO是为了解决用户登陆输入用户名和密码的问题、更准确的说,在大型网站发展的过程中会衍生出很多个子系统、而这些子系统都需要输入用户名和密码进行登陆、当然现在一个综合性的应用系统也是如此、可能部分子系统模块是H5形式、部分子系统是原生态语言形式。

问题来了?为什么那些子系统需要登陆、回答这个问题需要知道系统发展演变的过程、不同的子系统可能代表着不同的业务线的发展、原有系统都存在用户状态验证过程,那在子系统跳转过程中势必要让用户去重新登陆。另外、频繁输入用户的账户体系,无疑增大了被攻破的危险。

那么SSO意义就在于让用户经过统一的认证,然后畅游于各个系统之间。


微软的Passport方案和自由联盟方案的对比

1 微软的Passport单点登录采用的是在重定向信息中包含加密后的验证信息来进行交。

1.1 主体定义:N/A

1.2 流程:N/A

1.3 涉及算法:三重DES加密算法加密 加密密钥:Passport认证服务器 和服务提供服务器约定

1.4 涉及到协议:SSL、Kerberos认证机制

备注:

(Kerberos机制、http://blog.csdn.net/wulantian/article/details/42418231)、我觉的了解即可

(DES算法机制、https://my.oschina.net/ydsakyclguozi/blog/540648)

2 联盟的单点登录规范是采用安全声明标记语言(SAML)来进行交互的。

备注:SAML具备的一个最突出的好处,是使用户能够通过因特网进行安全证书移动,SMAL的工作原理参见相关文档(http://baike.baidu.com/link?url=KJ2-5Eos5xViO23aTROPo97YFceysUzI22Dnhty22bIFffidaHur6LFZIcpmqXmhbv5iKqf7IBYEB506ZKtVua)

2.1 主体定义:N/A

2.2 流程:N/A


上述的Kerberos认证机制、和SAML都是统一身份认证的机制原理、包含与SSO的统一定义中。


常见的一些问题:

1 利用Cookie作为SSO方案、如何解决跨域登陆的问题?

A:首先这是一个淘汰性的早期方案、这是因为本身Cookie就会带来这样的局限性、目前无法解决。

2 如何高效存储大量临时性的信任数据?

A:利用Memched或者Redis之类的内存式数据库进行管理

3 如何防止信息传递过程被篡改?(会话安全)

A:获取ticket的时候进行验证、从服务系统到SSO系统时候还需要进行一次验证

4 如何让SSO系统信任登录系统和免登系统?

A:白名单机制


目前第三方开源框架实现SSO的方案有

1 CAS

2 OAuth

3 JOSSO


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章