需要学习的 SMAL 2.0

446 阅读2分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战

SAML 协议

SAML ,Security Assertion Markup Language 安全断言标记语言。是基于 XML 标准,用于不同安全域之间交换认证和授权数据,广泛使用在单点登录,联合认证,或者其他架构内使用。

三种角色

SAML 协议中定义了三种角色

  • UA 用户代理 user agent ,主要指用户
  • SP 服务提供者 Service Provider 通过解析 IDP 发出的身份认证断言,验证主体身份认证信息后,给主体或联邦内其他系统提供服务
  • IDP 身份源提供者 Identity Provider 拥有服务所需要的用户身份信息,有增删改查的能力,并向联邦内的其他服务提供身份认证

主要功能

  • 身份验证:确定访问者是所存在的用户
  • 授权:将用户授权传递给应用以访问某些系统或内容

SAML 断言

断言即是信息。断言是在 SAML 中用来描述认证的对象。身份提供方(IDP)发送给 SP 的包含用户授权状态的 XML 文档。

SAML 断言三种类型:

  • 身份验证断言:验证用户身份并提供用户登录时间以及所使用的身份验证方法
  • 属性:提供用户相关信息的特定数据片段
  • 授权决策:主要用于说明用户是否获得使用服务的授权

SAML 流程

  1. 用户通过浏览器访问 SP 的某个受保护的资源
  2. SP 鉴别到该用户未鉴权,于是将该用户重定向到 IDP 端;前提是该 IDP 是受 SP 信任的身份认证中心
  3. IDP 端通过自己的认证方式对该用户合法性进行认证
  4. 认证通过后,IDP 端生成响应后返回给 SP
  5. SP 接收到 IDP 的响应后解析出用户认证信息,合法,则允许用户访问受保护的资源

所以,SAML主要作用是 IDP 与 SP 之间传递用户,登录名和属性的相关信息。IDP 对用户进行身份验证后,便可将其身份验证信息传递给 SP。SP解析出相关的用户信息后,然后允许访问其资源。

参考资料