全部产品
云市场
云游戏

SAML

更新时间:2020-07-17 16:19:54

SAML简介

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

SAML解决的最重要的需求是Web端应用的单点登录(SSO)。

SAML协议工作流程

SAML 协议主要有三个角色:

SP(Service Provider):向用户提供服务的web 端应用。

IDP(Identity Provide):向SP提供用户身份信息

用户:通过登录IDP获取身份断言,并向SP返回身份断言来使用SP提供的服务。

下图是 SAML 协议的工作流程

image.png

  1. 用户请求访问 Web 应用系统。
  2. Web 应用系统生成一个 SAML 身份验证请求。
  3. Web 应用系统将重定向网址发送到用户的浏览器。重定向网址包含应向SSO 服务提交的编码 SAML 身份验证请求。
  4. IDP 对 SAML 请求进行解码。
  5. IDP对用户进行身份验证。认证成功后,IDP生成一个 SAML 响应,其中包含经过验证的用户的用户名。然后将SAML 响应编码并返回到用户的浏览器。
  6. 浏览器将 SAML 响应转发到 Web 应用系统 ACS URL。
  7. Web 应用系统使用 IDP 的公钥验证 SAML 响应。如果成功验证该响应,ACS 则会将用户重定向到目标网址。
  8. 用户将重定向到目标网址并登录到 Web 应用系统。

从上述流程我们可以看出:在 SAML 协议中,IDP 和 SP 不需要直接进行通讯,只要用户浏览器可以访问到 IDP 和 SP 即可。也就是说 SAML 协议在混合云环境下也可以正常进行使用,只要用户浏览器可以访问到公有云的 IDP 和内网的应用就可以使用 SAML 协议集成应用的单点登录。