`
desert3
  • 浏览: 2139843 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

SAML简介、Pingfederate

阅读更多
SAML(Security Assertion Markup Language)即安全断言标记语言,是为了解决Web浏览器单点登陆的问题而产生的(使用SAML标准作为安全认证和共享资料的中间语言,能够在多个站点之间实现单点登录),是OASIS组织安全服务技术委员会(Security Services Technical Committee)的产品。它是一个XML框架,也就是一组协议和规范,用于在不同的安全域(security domain)之间交换认证和授权数据。SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML建立在XML、XML Schema、XML Signature、XML Encryption、HTTP、SOAP等一系列既存的标准下,可以建立在SOAP上传输,也可以建立在其他协议上传输(HTTP, SMTP, FTP等)。 SAML依靠一批制定完善的安全标准,包括SSL、TLS、X.509,来保护SAML源站点和目标站点之间通信的安全。源站点和目标站点之间的所有通信都经过了加密。为确保参与SAML交互的双方站点都能验证对方的身份,还使用了证书。SAML使用XML Signature和XML Encryption保证消息层面的安全(加密保证机密性、签名保证完整性)。

SAML 1.1 vs SAML 2
SAML是为了解决Web浏览器单点登陆的问题而产生的,使用SAML标准作为安全认证和共享资料的中间语言,能够在多个站点之间实现单点登录。但是,SAML1.1就这个目的而言是有局限的,事实上,SAML1.1通过使用SAML作为WS-Security令牌,更有效地解决的问题是SOAP Web服务的身份认证和授权。SAML 2明确包含了用于解决Web浏览器进行多网站验证问题的新特性。




SAML是一种基于XML语言用于传输认证及授权信息的框架,以与主体相关的断言形式表达。在这里,主体是一个实体(人或计算机),这个实体在某个安全域中拥有一个特定身份,断言可传递主体执行的认证信息、属性信息及关于是否允许主体访问其资源的授权决定。

SAML定义三种元件:断言(SAML Assertion)、协议(SAML Prototol)以及约束(SAML binding)。
SAML存在多种断言:认证断言(Authentication Assertion)、属性断言(Attribute Assertion)、授权断言(Authorization Assertion)、决定断言(Decision Assertion)。 认证断言确认用户的身份,表明用户是否已经登录,通常用于单点登录; 属性断言包含特定的主题信息; 授权断言确认特定主题是否得到授权。 决定断言报告了一个具体授权请求的结果。一个断言可以以如下格式描述: Assertion A was issued at time t by issuer R regarding subject S provided conditions C are valid.
协议定义SAML如何请求和接收断言。
约束定义如何将SAML消息交换映射成简单对象访问协议(SOAP)的对象。

Saml使用流程
简单地说, SAML就是一方向另一方发送SAML 请求,然后另一方返回SAML响应。发送方和请求方之间传递的是用户认证和授权数据。传输的数据必须符合SAML规范要求。连接中的任何一方都可以发起请求,根据身份不同,分为:IDP init请求,和SP init 请求。 例子:公司(idp)的用户要访问SAAS 应用(sp),为了保证身份安全,我们可以采用除了加密签名等措施,还要采用SAML规范来传输,传输的数据以XML形式,内容符合SAML的推荐标准,这样我们就可以不要求idp和sp采用什么样的系统,只要求能理解SAML规范即可,显然比传统的方式更好。

SP init: 就是用户去访问服务提供者SP提供的服务,服务提供者发现用户没有登陆,系统重定向到身份提供者Idp的登陆页面让用户登陆,然后再自动重定向到服务提供者的初始请求页面,用户就能正常使用服务了
Idp init: 就是用户先在身份提供者Idp上登陆,然后重定向到服务提供者SP的一个landing页面开始使用服务。

Pingfederate, 基于Java平台,除了支持SAML 2.0和1.1外, 还支持WS-Federation (微软主推),近两年又推出支持Oauth的版本(6.6以后)。

参考:
Saml - 百度百科
saml - 百度文库
Web 单点登录系统
Security Assertion Markup Language - 维基百科
  • 大小: 83.3 KB
  • 大小: 61.5 KB
  • 大小: 83.9 KB
分享到:
评论

相关推荐

    SAML.rar_Java 8_saml_saml webservice_saml2.0_saml协议

    1、什么是SAML 2、SAML标准&协议 3、SAML2.0特性分析 4、SAML:集中身份管理的秘诀 5、SAML:企业级的IdP 6、SAML:IdP和SP用户存储库 7、XML安全:使用SAML确保可移植的信任 8、揭开SAML的神秘面纱 9、安全地共享...

    SAML2.0 简介

    wikipedia SAML2.0

    spring-boot-security-saml, Spring Security saml与 Spring Boot的集成.zip

    spring-boot-security-saml, Spring Security saml与 Spring Boot的集成 spring-boot-security-saml这个项目在处理 spring-security-saml 和 Spring Boot 之间的平滑集成的同时,在处理内部的配置的gritty和锅炉板的...

    SAML的标准与协议

    SAML是OASIS制定的一种安全性断言标记语言,它用于在复杂的环境下交换用户的身份识别信息。在SAML诞生之前,如果想在Websphere、Weblogic和SunONE等之间实现SSO,我们必须分别实现一个适配层,来达成一种相互理解的...

    saml协议所需jar包

    里边是saml所需要的jar包,包括sp和idp端均可使用,核心jar包为open-saml

    基于SAML 2.0 SSO单点登录

    基于SAML 2.0 SSO单点登录,包括VS2005,VS2008,VS2010。有部分Java代码。含文档。 client发送saml请求---sso响应验证client是否可信任---可信响应saml----加密saml---发送到client---client解密成功--验证信息...

    saml-profiles-2.0-os

    SAML profile

    SAML协议交互,实现工程Demo(有注释)

    SAML协议的交互将在这二者之间展开。项目启动之后,访问如下网址: http://localhost:8080/webprofile-ref-project/app/appservlet 这是一个SP的模拟,第一次访问该网址时将会跳转到IDP,进行认证流程。

    php-saml, PHP简单的SAML工具包.zip

    php-saml, PHP简单的SAML工具包 onelogin工具包的SAML 使用这个库向你的PHP软件添加SAML支持。 忘记那些复杂的库并使用OneLogin公司提供和支持的开源库。警告警告更新php到 2.10.4,这个版本包含一个与 logoutreque

    saml-client_java_saml_client_

    Example code for a saml client in Java using org.opensaml.

    saml-idp, node的简单SAML身份提供程序( IdP ).zip

    saml-idp, node的简单SAML身份提供程序( IdP ) 简介这个应用程序提供一个简单的标识提供者( IdP ) 来测试使用 SAML 2.0网络浏览器SSO配置文件的SAML 2.0服务提供者( SPs ) 。本示例不打算与生产系统一起使用 ! ...

    SAML2.0核心协议规范saml-core-2.0-os

    SAML2.0核心协议规范 saml-core-2.0-os

    saml2, SimpleSAMLphp低级别 SAML2 PHP库.zip

    saml2, SimpleSAMLphp低级别 SAML2 PHP库 SimpleSAMLphp SAML2库 用于SAML2相关功能的PHP库。 从 SimpleSAMLphp 提取,由 OpenConext使用。 这个库作为和的合作开始,但是每个人都被邀请贡献这个库。在使用之前除非...

    SAML2完整规范

    SAML2.0资料,轻松实现SSO

    SAML v2 and XACML v2 Integration

    Jboss 平台中的SAML和XACML集成说明。

    单点登录saml

    用人话翻译saml就是 用安全的方式表达断言一种语言。 先看它的核心概念“断言”。 断言是什么? 就是做出判断的语言。比如一句话: 小明是超级管理员。 这就是一个断言。再来一个例子:小红没有权限读取根目录。...

    SAML2.0协议翻译.doc

    SAML2.0协议翻译 其实就是把维基百科英文版搞成了中文

    Laravel开发-laravel-saml

    Laravel开发-laravel-saml 基于OneLogin工具包的用于作为SP(服务提供商)的SAML2集成的Laravel包

    java-saml:从One Login的Java SAML分叉,以修复一些问题

    java-saml 最初是从One Login的Java SAML派生的,但是它增加了对以下内容的支持: 注销请求(SLO) ...使用此功能集,您可以轻松实现SAML作为ADFS,PingFederate,PingOne,OneLogin和Okta的SP。

    devise_saml_authenticatable, 设计 SAML 2.0认证策略.zip

    devise_saml_authenticatable, 设计 SAML 2.0认证策略 DeviseSamlAuthenticatable设计 SAML Authenticatable是一种依赖于SAML的Single-Sign-On认证策略。 它使用 ruby 来处理所有相关的内容。安装将此行添加到你的...

Global site tag (gtag.js) - Google Analytics