SAML是由爱尔兰网络安全公司巴尔的摩技术Baltimore Technologies、行业权威认证机构Entrust、电子商务安全管理软件公司Netegrity、美国软件开发商Oblix、美国电子商务安全软件开发商OpenNetwork、美国日立旗下的Quadrasis、美国网络安全公司RSA Security、全球最大
域名注册机构Verisign、美国应用基础结构软件公司BEA Systems、美国电子商务软件公司Computer Associates、日立、惠普、IBM以及Sun等公司共同合作开发的。如何提高跨越企业边界的安全信息互操作性,使得交易企业可从其他企业获取有关用户和交易等授权参考数据,是国际工业界和学术界所致力解决的关键问题之一。
安全声明标记语言(SAML)是现在最好的解决方法,并且支持一致性管理的概念,对保护
Web服务起重要的作用。因此,有眼光的卖主和工具包都支持安全声明标记语言(SAML)。
建立联合身份、实现联合商务需要实施一种标准化的、多厂商的、基于Web架构的通用技术,如LibertyAllianceProject的自由架构。一次登录(Singlesign-on,SSO)就是一个Web服务用来向另一个Web服务传达有关用户认证信息的技术。安全声明标记语言(SecurityAssertionMarkupLanguage,SAML)则为一次登录的实现提供了技术框架。
利用SAML,用户可以登录到一家网站,如果该用户得到授权的话,这位用户的认证信息就会被转发给各合作公司的站点,这就使得该用户能够很容易地得到各种服务。以预约服务为例,如果一位用户成功登录到一家航空公司的门户站点后,这位用户不必费力就可以迅速完成其他公司站点的登录过程,进行租车和预定客房服务。
SAML使交换用户、设备以及任何可识别的实体(即SAML标准术语中所谓的“对象”)的认证和授权成为可能。SAML是利用XML的子集来定义系统用来接受或拒绝对象“声明”的请求回答协议。
SAML定义了认证、授权和属性三种声明。认证表明一个对象以前曾得到某种手段(如口令、硬件令牌或X.509公共密钥)的认证;授权表明应当准予或拒绝一个对象使用资源;属性表明对象与属性相关联。
SAML没有规定声明的信任程度,声明的信任程度是由本地系统决定,这会导致由于声明不准确而造成损失。避免这一点需要基于Web的企业之间建立信任关系和达成运营协议,在这类关系或协议中,企业同意在接受一次声明前进行一种验证。
SAML可以与多种通信和传输协议捆绑在一起。它可以与HTTP上的
简单对象访问协议相链接。SAML无需cookie就在下列两种配置文件中的一个文件中运行:浏览器/artifact和浏览器/post。在使用浏览器/artifact时,一个SAMLartifact作为一个URL查询串的组成部分传输。SAMLartifact是指向一个声明的指针。在使用浏览器/post时,SAML声明在一个HTML表格内被上载给浏览器,并作为一次HTTPpost的有效载荷的组成部分传送给目的站点。
SAML的影响将是多方面的。它使得一个口令就可以访问多个门户网站成为现实,使得访问
Web服务变得不再那么耗费时间和令人厌烦。同时利用SAML,各企业将能够建立起新型的业务合作伙伴关系,创建多样化、易于控制和便利的Web服务。