Introduction
Security Assertion Markup Language (SAML, pronounced sam-el[1]) is an XML-based, open-standard data format for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider.
How SAML works
The SAML specification defines three roles: the principal (typically a user), the Identity provider (IdP), and the service provider (SP). In the use case addressed by SAML, the principal requests a service from the service provider. The service provider requests and obtains an identity assertion from the identity provider. On the basis of this assertion, the service provider can make an access control decision – in other words it can decide whether to perform some service for the connected principal.
Before delivering the identity assertion to the SP, the IdP may request some information from the principal – such as a user name and password – in order to authenticate the principal. SAML specifies the assertions between the three parties: in particular, the messages that assert identity that are passed from the IdP to the SP. In SAML, one identity provider may provide SAML assertions to many service providers. Similarly, one SP may rely on and trust assertions from many independent IdPs.
SAML does not specify the method of authentication at the identity provider; it may use a username and password, or other form of authentication, including multi-factor authentication. A directory service such as LDAP, RADIUS, or Active Directory that allows users to log in with a user name and password is a typical source of authentication tokens at an identity provider.[3] The popular Internet social networking services also provide identity services that in theory could be used to support SAML exchanges.
SAML Assertions
SAML assertions are usually transferred from identity providers to service providers. Assertions contain statements that service providers use to make access-control decisions. Three types of statements are provided by SAML:
Authentication statements
Attribute statements
Authorization decision statements
Authentication statements assert to the service provider that the principal did indeed authenticate with the identity provider at a particular time using a particular method of authentication. Other information about the authenticated principal (called the authentication context) may be disclosed in an authentication statement.
An attribute statement asserts that a subject is associated with certain attributes. An attribute is simply a name-value pair. Relying parties use attributes to make access-control decisions.
An authorization decision statement asserts that a subject is permitted to perform action A on resource R given evidence E. The expressiveness of authorization decision statements in SAML is intentionally limited. More-advanced use cases are encouraged to use XACML instead.
SAML wiki link: https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language
分享到:
相关推荐
1、什么是SAML 2、SAML标准&协议 3、SAML2.0特性分析 4、SAML:集中身份管理的秘诀 5、SAML:企业级的IdP 6、SAML:IdP和SP用户存储库 7、XML安全:使用SAML确保可移植的信任 8、揭开SAML的神秘面纱 9、安全地共享...
SAML 2.0(Security Assertion Markup Language 2.0)是一种开放标准,用于在不同的安全域(通常是企业和服务提供商)之间交换身份验证和授权数据。这一规范被广泛应用于网络身份管理,特别是在单点登录(Single ...
SAML(安全断言标记语言)v2.0是一种开放标准,用于实现Web浏览器中的单点登录(SSO)。SAML提供了一种机制,允许用户通过使用现有的身份验证凭证从一个地方安全地访问多个应用程序。这种方式可以改善用户体验并降低...
**SAML2.0全称Security Assertion Markup Language 2.0,是一种基于XML的协议,用于在不同的安全域之间交换身份验证和授权数据。它在单点登录(Single Sign-On, SSO)场景中扮演了核心角色,允许用户通过一次登录...
SAML(Security Assertion Markup Language)协议是一种用于身份验证和授权的标准,它允许Web应用程序在不同的安全域之间交换用户身份信息。在Java环境中,SAML的实现通常依赖于一系列的库,这些库打包成JAR文件供...
SAML(Security Assertion Markup Language)是一种标准协议,用于在服务提供商和服务身份提供者之间交换安全信息,如身份验证和授权数据。在这个Java SAML客户端的示例中,我们重点讨论如何使用`org.opensaml`库来...
### SAML 2.0 技术概览 #### 一、SAML 2.0 简介 《SAML V2.0 Technical Overview》(委员会草案02版)是一份由OASIS(组织为开放标准)安全服务技术委员会(Security Services TC)发布的文档,该文档详细介绍了...
SAML协议的交互将在这二者之间展开。项目启动之后,访问如下网址: http://localhost:8080/webprofile-ref-project/app/appservlet 这是一个SP的模拟,第一次访问该网址时将会跳转到IDP,进行认证流程。
SAML(Security Assertion Markup Language)2.0 是一种标准的基于XML的身份验证和授权协议,广泛应用于企业级单点登录(Single Sign-On, SSO)系统。这个文档“SAML2.0协议翻译.doc”提供了对SAML 2.0协议的中文...
SAML(Security Assertion Markup Language)是由OASIS组织制定的一种标准,主要目的是在不同系统和服务之间安全地交换用户的标识信息,实现单点登录(Single Sign-On, SSO)。在SAML出现之前,若要在诸如Websphere...
### SAML 2.0 Profiles概述 #### 一、引言 SAML(Security Assertion Markup Language)2.0是OASIS(Organization for the Advancement of Structured Information Standards)制定的一项标准,旨在提供一个框架来...
### SAML:安全断言标记语言详解 #### 一、SAML概述 SAML,全称为Security Assertion Markup Language,即安全断言标记语言,是一种基于XML的开放标准,旨在简化跨域的身份验证和授权流程。SAML最初由OASIS...
Python SAML库是用于在Python应用程序中实现Security Assertion Markup Language(SAML)身份验证的工具。SAML是一种标准,允许身份提供者(Identity Provider, IdP)和服务提供者(Service Provider, SP)之间交换...
SAML(Security Assertion Markup Language)2.0是一个开放标准,用于在不同的安全域之间交换身份验证和授权数据。这个标准由OASIS(Organization for the Advancement of Structured Information Standards)组织...
在IT领域,特别是针对身份管理和访问控制方面,SAML(Security Assertion Markup Language)与XACML(eXtensible Access Control Markup Language)是两个至关重要的标准。本文将深入探讨SAML v2与XACML v2在JBoss...
SAML(Security Assertion Markup Language)是一种开放标准,用于在不同的安全域之间交换身份验证和授权数据。这个标准被广泛应用于单点登录(Single Sign-On, SSO)场景,允许用户在一个系统上登录后,无须再次...
【SAML2.0基础理论】 SAML(Security Assertion Markup Language)2.0是一种开放标准,由标识化组织OASIS提出,旨在解决数字身份验证和单点登录(Single Sign-On, SSO)的问题。SAML2.0旨在提高Web服务的安全性和互...
《Redmine SAML 源码解析》 Redmine 是一款开源的项目管理软件,它提供了问题跟踪、项目管理和文档管理等功能。SAML(Security Assertion Markup Language)则是一种基于XML的安全标准,用于身份验证和授权。当将...
1. SAML基本概念:理解SAML规范的核心组件,包括声明、身份提供者(IdP)、服务提供者(SP)和断言等。SAML允许身份提供者向服务提供者证明用户的身份,并提供相关的用户属性信息。 2. 协议流程分析:详细研究SAML...