`
newleague
  • 浏览: 1492856 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

SAML

 
阅读更多

SAML即安全断言标记语言,英文全称是Security Assertion Markup Language。它是一个基于XML的标准,用于在不同的安全域(security domain)之间交换认证和授权数据。在SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML是OASIS组织安全服务技术委员会(Security Services Technical Committee)的产品。

目录

定义
背景
SAML 作用
SAML框架
安全
BEA WebLogic Server中的SAML

<script type="text/javascript"></script>

编辑本段定义

  SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议,可以用来传输安全声明。比如,两台远程机器之间要通讯,为了保证安全,我们可以采用加密等措施,也可以采用SAML来传输,传输的数据以XML形式,符合SAML规范,这样我们就可以不要求两台机器采用什么样的系统,只要求能理解SAML规范即可,显然比传统的方式更好。SAML 规范是一组Schema 定义。   可以这么说,在Web Service 领域,schema就是规范,在Java领域,API就是规范。

编辑本段背景

  安全是所有Web项目在设计时都要考虑的一个重要因素。无论是选择最短口令,决定何时使用SSL加密HTTP会话,还是通过自动登录cookie来识别用户,都经常要付出重大的设计努力,以保护用户的身份信息和他们可能存放于Web站点的其他资料。糟糕的安全性可能带来公关灾难。当最终用户努力保持对其个人信息的控制时,他们要面临令人迷惑的隐私政策,需要牢记众多站点的不同口令,以及遭遇“钓鱼式攻击”事件。在宏观层次上,数字身份引起了许多复杂的技术和社会问题,业界一些团体如Liberty Alliance和IdentityGang都正试图通过开发新的技术标准来解决它们。在较小的规模上,可以使用一些工具来为用户提供更好的安全性。请考虑口令管理问题。用户访问他们保存个人资料的Web站点,在可以存取他们的资料之前必须经过验证。通过验证来鉴别用户,确保他们是所声称的用户。进行验证最简单方式是使用口令。然而,若每个站点都需要各自的一套口令,用户将有难以控制的大量口令。1998年微软首先尝试通过其Passport network提供该问题的全球解决方案。Passport使得任意Web站点使用用户提交给Passport的个人资料(如用户名、地址、信用卡号)成为可能。Passport是单点登录(single sign-on,SSO)的第一次电子商务尝试。它没有流行起来,部分原因是由于人们对系统封闭性的担心。然而,SSO的理念非常引人注目,许多开放标准和商业计划都追随Passport其后。通过SSO,某个Web站点可以与其他站点共享用户身份信息。 SSO对于使用应用服务提供商(Application Service Provider,ASP)软件服务的企业特别有用。ASP在自己的服务器上宿主应用程序,出售其访问权作为服务。公司可以在它的标准目录服务器里管理自己的用户和口令,然后通过SSO授予用户访问ASP应用程序的权限。SSO允许公司管理自己用户的信息,不必为每一员工维护多个用户账号。对用户来说,SSO的好处在于他们可以在多个应用程序中使用一个用户名和口令,并且在应用程序之间切换时无需重新验证。SSO不仅仅用于Web应用程序,它可用于任何类型的应用程序,只要有安全地传送身份信息的协议。这种通信方式的开放标准就是安全性断言标记语言(SAML)。

编辑本段SAML 作用

  SAML 主要包括三个方面:   1.认证申明。表明用户是否已经认证,通常用于单点登录。   2.属性申明。表明 某个Subject 的属性。   3.授权申明。表明 某个资源的权限。

编辑本段SAML框架

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

编辑本段安全

  由于SAML在两个拥有共享用户的站点间建立了信任关系,所以安全性是需考虑的一个非常重要的因素。SAML中的安全弱点可能危及用户在目标站点的个人信息。SAML依靠一批制定完善的安全标准,包括SSL和X.509,来保护SAML源站点和目标站点之间通信的安全。源站点和目标站点之间的所有通信都经过了加密。为确保参与SAML交互的双方站点都能验证对方的身份,还使用了证书。

编辑本段BEA WebLogic Server中的SAML

  BEA WebLogic Server 9.0是第一个包含了对SAML支持的WebLogic Server版本。WebLogic Server 9.1中进一步加强了对SAML的支持。WebLogic Server把SAML作为WebLogic Security Service的一部分使用。SAML用来为WebLogic Web services和跨WebLogic域共享验证信息提供SSO支持。除SAML外,WebLogic Server也为Windows桌面SSO支持Simple and Protected Negotiate (SPNEGO)协议。SAML可用来提供访问Web应用程序和Web service的权限。   对于一些应用程序,您仅需付出很少甚至无需付出额外的程序设计努力,就能使用WebLogic Server中的SAML支持。如果用户应用程序使用配置为WebLogic 安全域一部分的安全设置,那么集成SAML是一个首要的系统管理任务。WebLogic server可配置作为SAML源站点或SAML目标站点。要使服务器成为SAML源站点,需配置一个SAML Credential Mapper。要使服务器成为SAML目标站点,需配置一个SAML Identity Asserter.   如果用户应用程序安全模式为与WebLogic Security Service进行交互,包含了自己的特定于WebLogic的代码,可以使用WebLogic的SAML API把该定制扩展到SAML。该API提供对WebLogic SAML服务主要组件的编程式访问。用户可以使用应用程序自身的业务逻辑来扩展诸如SAMLCredentialNameMapper和 SAMLIdentityAssertionNameMapper这样的类。一旦用户有了自己的定制类,WebLogic管理控制台就允许用户配置其 SAML Credential Mapper(源站点)或SAML Identity Asserter(目标站点),以便使用那些类。惟一的要求是用户的定制类需要在系统类路径中,非常类似于WebLogic启动类,这可能对用户部署策略产生影响。   最后,如果应用程序安全模式完全独立于WebLogic Security Service,用户将不能从WebLogic的SAML工具中获益。用户要使其应用程序支持SAML就需要做更多工作,要么实现WebLogic所提供的某些服务的简化版本,要么集成那些服务的第三方版本。但是,用户仍将受益于可在任何J2EE应用服务器或在如Tomcat这样的Java Web服务器应用程序上使用SAML。有商业和开源的SAML支持可供选择。开源的选择中有OpenSAML和相关的Shibboleth项目。 OpenSAML是一个SAML工具包,可用来建立用户自己的SAML源站点和目标站点。Shibboleth更进一步,它提供了一个构建在 OpenSAML之上的“基于SAML 1.1的跨域Web单点登录平台”。SourceID为Java 和.NET中的SAML 1.1提供了一套开源工具包。在Apache项目下没有完整的SAML工具包,但WSS4J项目包含了对OpenSAML的一些支持。
我来完善 “SAML”相关词条:
分享到:
评论

相关推荐

    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核心协议规范saml-core-2.0-os

    SAML 2.0(Security Assertion Markup Language 2.0)是一种开放标准,用于在不同的安全域(通常是企业和服务提供商)之间交换身份验证和授权数据。这一规范被广泛应用于网络身份管理,特别是在单点登录(Single ...

    SAML v2.0 开发指南 SSO必备

    SAML(安全断言标记语言)v2.0是一种开放标准,用于实现Web浏览器中的单点登录(SSO)。SAML提供了一种机制,允许用户通过使用现有的身份验证凭证从一个地方安全地访问多个应用程序。这种方式可以改善用户体验并降低...

    SAML2完整规范

    **SAML2.0全称Security Assertion Markup Language 2.0,是一种基于XML的协议,用于在不同的安全域之间交换身份验证和授权数据。它在单点登录(Single Sign-On, SSO)场景中扮演了核心角色,允许用户通过一次登录...

    saml协议所需jar包

    SAML(Security Assertion Markup Language)协议是一种用于身份验证和授权的标准,它允许Web应用程序在不同的安全域之间交换用户身份信息。在Java环境中,SAML的实现通常依赖于一系列的库,这些库打包成JAR文件供...

    saml-client_java_saml_client_

    SAML(Security Assertion Markup Language)是一种标准协议,用于在服务提供商和服务身份提供者之间交换安全信息,如身份验证和授权数据。在这个Java SAML客户端的示例中,我们重点讨论如何使用`org.opensaml`库来...

    sstc-saml-tech-overview-2.0

    ### SAML 2.0 技术概览 #### 一、SAML 2.0 简介 《SAML V2.0 Technical Overview》(委员会草案02版)是一份由OASIS(组织为开放标准)安全服务技术委员会(Security Services TC)发布的文档,该文档详细介绍了...

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

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

    SAML2.0协议翻译.doc

    SAML(Security Assertion Markup Language)2.0 是一种标准的基于XML的身份验证和授权协议,广泛应用于企业级单点登录(Single Sign-On, SSO)系统。这个文档“SAML2.0协议翻译.doc”提供了对SAML 2.0协议的中文...

    SAML的标准与协议

    SAML(Security Assertion Markup Language)是由OASIS组织制定的一种标准,主要目的是在不同系统和服务之间安全地交换用户的标识信息,实现单点登录(Single Sign-On, SSO)。在SAML出现之前,若要在诸如Websphere...

    saml-profiles-2.0-os

    ### SAML 2.0 Profiles概述 #### 一、引言 SAML(Security Assertion Markup Language)2.0是OASIS(Organization for the Advancement of Structured Information Standards)制定的一项标准,旨在提供一个框架来...

    python-saml-master

    Python SAML库是用于在Python应用程序中实现Security Assertion Markup Language(SAML)身份验证的工具。SAML是一种标准,允许身份提供者(Identity Provider, IdP)和服务提供者(Service Provider, SP)之间交换...

    saml2.0规范完全文档

    SAML(Security Assertion Markup Language)2.0是一个开放标准,用于在不同的安全域之间交换身份验证和授权数据。这个标准由OASIS(Organization for the Advancement of Structured Information Standards)组织...

    SAML v2 and XACML v2 Integration

    在IT领域,特别是针对身份管理和访问控制方面,SAML(Security Assertion Markup Language)与XACML(eXtensible Access Control Markup Language)是两个至关重要的标准。本文将深入探讨SAML v2与XACML v2在JBoss...

    saml第三方资料.rar

    SAML(Security Assertion Markup Language)是一种开放标准,用于在不同的安全域之间交换身份验证和授权数据。这个标准被广泛应用于单点登录(Single Sign-On, SSO)场景,允许用户在一个系统上登录后,无须再次...

    SAML2.0 基础理论

    【SAML2.0基础理论】 SAML(Security Assertion Markup Language)2.0是一种开放标准,由标识化组织OASIS提出,旨在解决数字身份验证和单点登录(Single Sign-On, SSO)的问题。SAML2.0旨在提高Web服务的安全性和互...

    redmine_saml-源码.rar

    《Redmine SAML 源码解析》 Redmine 是一款开源的项目管理软件,它提供了问题跟踪、项目管理和文档管理等功能。SAML(Security Assertion Markup Language)则是一种基于XML的安全标准,用于身份验证和授权。当将...

    基于SAML的单点登录系统的研究与实现

    1. SAML基本概念:理解SAML规范的核心组件,包括声明、身份提供者(IdP)、服务提供者(SP)和断言等。SAML允许身份提供者向服务提供者证明用户的身份,并提供相关的用户属性信息。 2. 协议流程分析:详细研究SAML...

Global site tag (gtag.js) - Google Analytics