SAML概述

SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议,可以用来传输安全声明。比如,两台远程机器之间要通讯,为了保证安全,我们可以采用加密等措施,也可以采用SAML来传输,传输的数据以XML形式,符合SAML规范,这样我们就可以不要求两台机器采用什么样的系统,只要求能理解SAML规范即可,显然比传统的方式更好。SAML 规范是一组Schema 定义。
  可以这么说,在Web Service 领域,schema就是规范,在Java领域,API就是规范。
 SAML 主要包括三个方面:
  1.认证申明。表明用户是否已经认证,通常用于单点登录。
  2.属性申明。表明 某个Subject 的属性。
  3.授权申明。表明 某个资源的权限。

  SAML就是客户向服务器发送SAML 请求,然后服务器返回SAML响应。数据的传输以符合SAML规范的XML格式表示。
  SAML 可以建立在SOAP上传输,也可以建立在其他协议上传输。
  因为SAML的规范由几个部分构成:SAML Assertion,SAML Prototol,SAML binding等。

OpenSAML是一个SAML工具包,可用来建立用户自己的SAML源站点和目标站点。Shibboleth更进一步,它提供了一个构建在 OpenSAML之上的“基于SAML 1.1的跨域Web单点登录平台”。SourceID为Java 和.NET中的SAML 1.1提供了一套开源工具包。在Apache项目下没有完整的SAML工具包,但WSS4J项目包含了对OpenSAML的一些支持。

猜你喜欢

转载自kevinzmyers.iteye.com/blog/1111666