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解密成功--验证信息...
基于SAML2.0的跨域单点登录模型的设计,姜露,龙毅宏,跨域单点登录主要是实现不同域之间用户身份的单一认证,从而实现用户的单点登录和组织间的资源共享。SAML2.0统一了5个互不兼容的协议
3、SAML2.0特性分析 4、SAML:集中身份管理的秘诀 5、SAML:企业级的IdP 6、SAML:IdP和SP用户存储库 7、XML安全:使用SAML确保可移植的信任 8、揭开SAML的神秘面纱 9、安全地共享数字身份信息(一) 10、安全地共享...
wikipedia SAML2.0
从oasis-open.org下载的saml2.0规范文档,包括pdf文件和xsd文件。
如果您的企业或组织已建立自己的账号体系及用户,并且这些用户需要访问腾讯云资源,您可以使用基于 SAML 2.0 联合身份生成的临时安全密钥在权限范围内管理腾讯云
devise_saml_authenticatable, 设计 SAML 2.0认证策略 DeviseSamlAuthenticatable设计 SAML Authenticatable是一种依赖于SAML的Single-Sign-On认证策略。 它使用 ruby 来处理所有相关的内容。安装将此行添加到你的...
SAML2.0核心协议规范 saml-core-2.0-os
简介 安全是所有Web项目在设计时都要考虑的一个重要因素。...糟糕的安全性可能带来公关灾难。当最终用户努力保持对其个人信息的控制时,他们要面临令人迷惑的...这种通信方式的开放标准就是安全性断言标记语言(SAML)。
[SBS3] Spring Boot示例SAML 2.0服务提供程序项目描述该项目代表完全基于Spring Framework构建的SAML 2.0 Service Provider的示例实现。 特别是,它展示了如何通过集成Spring Boot和Spring Security SAML开发为联合...
SAML2.0协议翻译 其实就是把维基百科英文版搞成了中文
本地登录系统实现与第三方软件的单点登录,Office365支持SAML协议,可实现单点登录。
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...
最近在研究SAML2.0,找了很久找到了官方的文档,限于能力有限,就不翻译了。主要包括五部分:core、bindings、profiles、metadata、conformance.
Security Assertion Markup Language(SAML)是以XML为基础的,为在安全域间交换认证和授权数据的标准,即在身份提供者(断言的产生者)和服务提供者(断言消费者)间进行交换。
C#中非常简单的SAML 2.0“消费者”实现。 这是一个SAML客户端库,而不是SAML服务器,它允许向您的ASP.NET应用程序添加SAML单点登录,但不能向其他应用程序提供身份验证服务。 安装 由一个简短的C#文件组成,您...
MaxKey单点登录认证系统是业界领先的IAM-IDaas身份管理和认证产品,支持OAuth2.x、OpenID Connect、SAML2.0、JWT、CAS、SCIM等SSO标准协议,基于RBAC统一权限控制,实现用户生命周期管理,开源、安全、自主可控。
基于SAML的Web服务单点登录安全模型研究,saml将来是单点登陆的标准协议
djangosaml2idp:Django中的SAML 2.0身份提供程序