最近在看OpenSaml,发觉真是国内的资料太少,整理下自己的理解:
1. 单点登录:不同站点使用共同的认证平台,比如,sina weibo和Sina News,Sina News
2. 微软后来提出passport服务,由微软统一提供账号和认证服务,这就是Web SSO的理念。随着发展,SAML成为Web 单点登录的执行标准,目前是Saml2.0.
3.SAML安全断言标记语言:随着越来越多的系统通过Web服务、门户和集成化应用程序彼此链接,对于保证信息安全交换标准的需求也随之增多。
Saml提供了一个健壮且可扩展的数据格式集,在各种环境下交换数据和身份识别信息。
4. Saml的出现大大简化了Web SSO,并被组织化结构信息标准促成组织(OASIS)批准为Web SSO的执行标准。
一个关键概念是身份联邦,它可满足SAML的定义,也就是可使用独立、管理的各个信息来源中的信息。
5. 利用SAML构造的SSO模型:
在利用Saml构造的SSO模型中,安全认证机构采用SAML断言作为会话令牌,令牌中包含的用户凭证通常由安全机构进行数据签名,这样收到此令牌的网络服务可知令牌发行者的身份,解开令牌便可看到认证断言,从而间接认证了申请服务的用户身份。
在这种情况下如果用户再次申请别的网络服务,只需将SAML机构颁布给他的认证令牌出示给新的网络服务即可。
用户---》 安全认证机构 //1.认证请求
安全认证机构 --》 用户 //2.认证凭证/令牌
用户 --》网络服务 //3. 包含安全凭证/令牌的网络服务请求
网络服务----》用户 //4. 网络服务响应
6. Web安全方面最具挑战的一个问题是维持一次无缝操作和安全环境时,使各不相同的安全系统达到一体化。比如在电子商务活动过程中,经常需要通过网络来交换机密的资料或数据,因此,对于安全功能要求十分严格。
7. OASIS建立的安全标准--- SAML是基于XML(可扩展标记语言)、面向Web服务的架构。Saml通过互联网对不同安全系统的信息交换进行处理。
8. SAML是一种语言,进行单一的XML描述,允许不同安全系统产生的信息进行交换。通常来说,一个企业在物理或逻辑的范围已经界定了企业的IT安全;然而,由于在线合作需要共享更可靠的安全服务环境,因此IT安全越来越成为关注的重点;
9. SAML正式为解决网络安全性问题而发挥作用。Saml传统意义上的安全界定是与商务站点之间建立一种安全信息的交换渠道。
10. SAML作为安全信息交换的中间人,促使一个站点上的业务交易能够在另一个信任的站点上得到处理完成。
由此可见,实现交易双方商业协议或作为合作的一个先决条件是:要求使用Saml作为共享安全架构的一部分。
11. Saml在标准行业传输协议环境里工作,比如HTTP、SMTP、FTP,同时也服务于各种各样的XML文件交换框架,例如SOAP和BizTalk。
12. Saml具备了一个最突出的好处是:使用户能够通过互联网进行安全证书移动。也就是说,使用SAML标准作为安全认证和共享资料的中间语言,能够在多个站点中间实现单点登录。
13. SAML是一种基于XML语言传输认证及授权信息的框架,以与主体相关的断言形式表达。
在这里,主体是一个实体(人或计算机),这个实体在某个安全域中拥有一个特定身份,断言可传递主体执行的认证信息、属性信息及关于是否允许主体访问其资源的授权决定。
针对以上不同目的,SAML提供了一下几种不同类型的断言类型:
a. 认证断言(Authentication Assertion):认证断言用来声称消息发布者已经认证特定的主体。
b.属性断言(Attribute Assertion): 属性断言声称特定主体具有特定的属性。属性可通过URI(统一资源标识)或用来定义结构化属性的一种扩展模式进行详细说明。
c. 决定断言(Decision Assertion): 一个决定断言报告了一个具体授权请求的结果。
d.授权断言(Authorization Assertion): 授权断言声称一个主体被给予访问一个或多个资源的特别许可。
14. SAML断言以XML结构描述且具有嵌套结构,由此一个断言可能包含几个关于认证,授权和属性的不同内在断言(包含认证声明的断言仅仅描述那些先前发生的认证行为)。
15. 2005年随着监控,移动设备,宽带业务以及应用安全领域的四家主要厂商通过了最后一回合的联邦身份互操作性测试,发布了SAML2.0
16. SAML 2.0工作原理:
联邦身份标准SAML2.0使网站能顾允许另一个域认证用户。
用户-- 网站 --- 本地联邦服务器-- 远程联邦服务器(LDAP JDBC...)--SAML断言 --- 用户 -- 本地联邦服务器--- 网站
解释:
一个用户试图访问网站,由于这个用户没有得到认证,网站将他的浏览器重定向链接到本地联邦服务器上。
本地联邦服务器将用户重定向到远程联邦服务器上,后者询问用户的身份。用户提供自己的用户名和口令。
远程联邦服务器利用其LDAP服务器验证用户。如果用户的证书得到验证,远程联邦服务器生成SAML断言,把断言嵌入在用户的浏览器中,然后将它交给本地联邦服务器。
本地联邦服务器提取SAML断言,创建一个用于该网站的会话cookie.然后本地联邦服务器将用户的浏览器引导到该网站。
17. 有一些互联网公司,拥有众多账号,比如Google、Yahoo、Facebook,希望别人的系统使用它们的账号登陆。
它们希望一种足够简单的WEB SSO规范,于是选择一种草根网络协议 OpenID。
OpenID,从名字就知道要干什么,国内也有类似的比如腾讯,豆瓣。OpenID足够简单,但是协议本身不完善,可能需要一些补充协议才能满足业务需求。比如Google采用OpenID+OAuth。目前支持OpenID的有Google, Windows live, Github;
18. OpenID和SAML两种规范,都将会减少系统间交互的成本,当我们提供OpenAPI时,应该支持其中一种或者两种规范。
参考:http://blog.csdn.net/shanyou/article/details/5372233