SAML

SAML

SAML(Security Assertion Markup Language)是一个基于XML的开源标准数据格式,它在当事方之间交换身份验证和授权数据,尤其是在身份提供者和服务提供者之间交换。SAML2.0可以实现基于网络跨域的单点登录(SSO),以便于减少向一个用户分发多个身份验证令牌的管理开销。

SAML协议中涉及两个主体:

SP(Service Provider),服务提供方。例如阿里云控制台、腾讯云控制台。

IDP(Identity Provider),身份提供方。身份提供方能够向SP发送身份断言,所谓身份断言就是由Authing签发的,可以标识某个人身份的Token,只不过,在SAML协议中,这个Token的格式是XML格式的。

两个主体通过用户的浏览器进行信息交换。

SAML Request

当用户的身份无法鉴定时,SP会像IDP发送SAML Request信息(通过浏览器发送),请求IDP来鉴定用户身份。

SAML Request参数通过query在URL中发送给IDP。

SAML Response

IDP收到SAML Request后,会弹出登录框对用户身份进行认证。

当用户在IDP完成登录后,SAML IDP将用户身份断言发送给SP(放在表单中,通过浏览器POST请求发送)。

身份断言是 HTML form表单和一段立即提交该表单的JS代码。其中表单input中的值是用户的身份断言,也就是用户的 Token,只不过这个 Token 通过 XML 格式传递。

SAML流程

使用 SAML 协议进行身份认证时,涉及到以下三个主体

浏览器:SP 和 IdP 借助浏览器互相通信

SP:资源提供方

IdP:身份认证提供方

在这里插入图片描述

SP 与 IdP 之间通信方式

  • HTTP Redirect Binding

SP 通过重定向 GET 请求把 SAML Request 发送到 IdP,IdP 通过立即提交的 Form 表单以 POST 请求的方式将 SAML Response 发到 SP。

在这里插入图片描述

  • HTTP POST Binding

IdP 通过立即提交的 Form 表单以 POST 请求的方式将 SAML Request 发到 SP。IdP 通过立即提交的 Form 表单以 POST 请求的方式将 SAML Response 发到 SP。

在这里插入图片描述

  • HTTP Artifact Binding

SP、IdP 双方只通过浏览器交换 SAML Request、SAML Response 的索引编号,收到编号后,在后端请求对方的 Artifact Resolution Service 接口来获取真正的请求实体内容。从而避免 SAML Request、SAML Response 暴露在前端。

在这里插入图片描述

源文档

SAML2 综述
SAML2 流程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值