IAM的主流身份验证方法之SAML协议

本文详细介绍了SAML协议的原理,包括其发展历史、核心概念和SAML Web SSO流程。同时,讨论了SAML协议的安全问题,如XXE、XSLT攻击、XSW攻击、SAML重放和Golden SAML,并通过实际漏洞案例分析了攻击手段和防范措施。
摘要由CSDN通过智能技术生成

一、SAML协议介绍

SAML(Security Assertion Markup Language)是一种基于XML的开放式标准,用于在不同的安全域之间交换认证和授权数据。

1.SAML发展历史

SAML协议由结构化信息标准促进组织(OASIS)安全服务技术委员会在2002年提出,已经经历了1.0、1.1、2.0三个版本。目前国内外的主流云服务平台、SaaS应用以及一些常见软件系统,例如阿里云、AWS、Saleforce、Jira、Confluence、Sonarqube等,都支持通过SAML协议实现单点登录。

2.SAML相关概念

  • Asserting Party,即断言签发方,是签发断言的业务系统。
  • Relying Party,即断言依赖方,是消费断言的业务系统。
  • Principal,即认证主体,一般通过Web浏览器与两个业务系统进行交互。
  • AuthnRequest,AuthnRequest由断言依赖方向认证主体签发,主要包含了断言依赖方的需要的一些信息。
  • Response,Response由断言签发方向认证主体签发,包含了最为重要的断言(Assertion)信息。
  • Assertion,Assertion包含了认证主体的名称、id、所属组等重要认证信息。

3.SAML Web SSO

在SAML Web SSO场景中,认证有以下几个流程:

  • 用户通过Web浏览器访问受保护资源
  • 资源提供方(SP)向用户发出SAML断言请求,该请求包含了需要用户进行身份验证的相关信息
  • 用户的身份提供方(IdP)接收到请求,并请求用户提供身份验证信息
  • 用户提供身份验证信息给身份提供方
  • 身份提供方向用户颁发SAML断言,该断言包含有关用户身份的信息
  • 用户将SAML断言发送回资源提供方
  • 资源提供方验证SAML断言的有效性,如果断言有效,则向用户授权访问所请求的资源
  • 用户被授权访问资源

二、SAML协议攻击面

SAML是一个基于XML的认证协议,由于XML数据格式灵活、处理复杂,导致实现过程非常容易造成逻辑漏洞,并且XML本身也存在XXE、XSLT等安全风险,这一攻击面也由SAML所继承。

1.XXE攻击

XXE(XML External Entity Injection)攻击是OWASP TOP10中的常客,其本身是XML的攻击面,但由于SAML基于XML

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值