SAP官网的架构图
https://cloudplatform.sap.com/scenarios/usecases/authentication.html
上图介绍了用户访问SAP云平台时经历的Authentication过程。
本文使用的例子是用户访问SAP Marketing Cloud而非SAP云平台,但是原理一致。
步骤1:用户向Service provider发起服务请求。
步骤2:Service provider把这个请求重定向到提供认证的租户上,在我这个例子是SAP ID service,即account.sap.com.
这里Marketing Cloud和SAP ID Service被配置为互相信任。
请求1响应头里的302重定向字段:https://let-me-in.hybris.com/saml/idp-redirection?httpd_location=https://hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html
被重定向到SAP云平台的account ID service(accounts.sap.com):
https://accounts.sap.com/saml2/idp/sso?sp=com:ydcHybris:spring:sp2&RelayState=https://hybris.com/sap/bc/ui5_ui5/ui2/ushell/shells/abap/FioriLaunchpad.html
步骤3:IDP给用户发送一个html page,要求用户提供用户名和密码。
如果查看这个html的源代码,能发现除了用户名和密码两个输入字段外,还包含了一些隐含字段,如下图高亮所示,这些字段是IDP返回给用户时在服务器端生成的,用于步骤5的IDP服务器端认证处理:
- xsrfProtection
- spId
- spName
- authenticity_token
- idpSSOEndpoint
步骤4:用户输入用户名和密码后,点击login按钮,这些信息通过HTML form发送到了SAP ID service的服务器端:
sso请求的url:https://accounts.sap.com/saml2/idp/sso
第二个大写的SSO请求的url:https://let-me-in.demo.hybris.com/saml/SSO
步骤5:SAP ID service的服务器端完成验证,发送SAML assertions作为响应给用户。
这个SAML响应是XML格式的,结构如下:
步骤6也就是最后一步,拿到这个SAML assertion后,用户就能够访问service provider了。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
基于SAML 2.0 SSO单点登录,包括VS2005,VS2008,VS2010。有部分Java代码。含文档。 client发送saml请求---sso响应验证client是否可信任---可信响应saml----加密saml---发送到client---client解密成功--验证信息...
3、SAML2.0特性分析 4、SAML:集中身份管理的秘诀 5、SAML:企业级的IdP 6、SAML:IdP和SP用户存储库 7、XML安全:使用SAML确保可移植的信任 8、揭开SAML的神秘面纱 9、安全地共享数字身份信息(一) 10、安全地共享...
SAML 2.0(Security Assertion Markup Language 2.0)是一种开放标准,用于在不同的安全域(通常是企业和服务提供商)之间交换身份验证和授权数据。这一规范被广泛应用于网络身份管理,特别是在单点登录(Single ...
SAML 2.0 是该标准的一个版本,它基于 XML,并使用包含声明的安全令牌来传递有关主体(通常是最终用户)的信息。这些信息在身份提供者(Identity Provider, IdP)和服务提供者(Service Provider, SP)之间进行传递...
【SAML2.0基础理论】 SAML(Security Assertion Markup Language)2.0是一种开放标准,由标识化组织OASIS提出,旨在解决数字身份验证和单点登录(Single Sign-On, SSO)的问题。SAML2.0旨在提高Web服务的安全性和互...
8. **SAML-Conformance-2.0-os.pdf**:一致性文档定义了SAML 2.0实现的测试用例和要求,以确保不同供应商的产品可以互操作。 9. **saml-schema-authn-context-types-2.0.xsd**和**saml-schema-metadata-2.0.xsd**:...
在C#开发环境中,实现Office 365与本地登录系统的SAML2.0集成通常涉及到以下几个步骤: 1. **配置IdP**: 首先,你需要在你的本地登录系统中配置SAML 2.0身份提供商。这可能包括设置公钥和私钥对,用于签名和验证...
SAML2.0(Security Assertion Markup Language Version 2.0)是一种基于XML的安全标准,它主要用于实现不同安全域之间的认证和授权信息交换。这一标准由OASIS Security Services Technical Committee(开放应用集团...
这个文档“SAML2.0协议翻译.doc”提供了对SAML 2.0协议的中文翻译,将原本维基百科上的英文资料进行了本地化,方便中国读者理解和应用。 SAML 2.0 的核心概念包括身份提供者(Identity Provider, IdP)、服务提供者...
如果您的企业或组织已建立自己的账号体系及用户,并且这些用户需要访问腾讯云资源,您可以使用基于 SAML 2.0 联合身份生成的临时安全密钥在权限范围内管理腾讯云
SAML2.0的元数据提供了关于参与SAML交互实体的信息,如身份提供者(Identity Provider, IdP)、服务提供者(Service Provider, SP)的公共密钥、端点地址等。元数据是动态发现服务、建立信任关系的关键,它简化了...
devise_saml_authenticatable, 设计 SAML 2.0认证策略 DeviseSamlAuthenticatable设计 SAML Authenticatable是一种依赖于SAML的Single-Sign-On认证策略。 它使用 ruby 来处理所有相关的内容。安装将此行添加到你的...
[SBS3] Spring Boot示例SAML 2.0服务提供程序项目描述该项目代表完全基于Spring Framework构建的SAML 2.0 Service Provider的示例实现。 特别是,它展示了如何通过集成Spring Boot和Spring Security SAML开发为联合...
《SAML v2.0 开发指南 SSO必备》不仅介绍SAML的基本概念和SSO技术,还详细描述了在.NET环境下如何实现基于SAML的单点登录系统。书中所包含的大量代码示例、接口说明、配置示例和安全考量,为开发者提供了一个全面...
《SAML V2.0 Technical Overview》(委员会草案02版)是一份由OASIS(组织为开放标准)安全服务技术委员会(Security Services TC)发布的文档,该文档详细介绍了SAML 2.0的技术框架与应用范围。SAML 2.0(Security ...
### SAML 2.0 详解 #### 一、SAML 2.0 定义与背景 **安全断言标记语言(Security Assertion Markup Language,简称SAML)** 是一个基于XML的标准,用于在不同实体间交换认证、属性以及授权信息。它由OASIS(组织为...
Confluence SAML 2.0 插件Atlassian Confluence 的插件,支持连接到 SAML 2.0 IdP。 该库遵循 。 Pre v1.0.0 被认为是 alpha 级别的软件。安装安装此插件的正常方法是通过 Confluence 中的通用插件管理器 (UPM) - ...
SAML(Security Assertion Markup Language) 安全断言标记语言 标识化组织OASIS提出的用于安全互操作的标准 版本:1.0,1.1,2.0 主要内容 SAML断言:定义交互的数据格式 SAML协议:定义交互的消息格式 SAML绑定...
ITfoxtec.Identity.Saml2 ITfoxtec Identity Saml2软件包为身份提供程序(IdP)和依赖方(RP)添加了SAML-P支持。 支持.NET 5.0 支持.NET Core 3.1 支持.NET Standard 2.1 支持.NET Framework 4.6.1和4.7.2 ITfoxtec...