SSO里面的SAML和OIDC到底讲了啥

本文介绍了SSO(单点登录)的概念,包括Authentication和Authorization的区别。重点讲解了SAML 2.0和OIDC这两个常用的SSO协议。SAML 2.0是一种基于XML的协议,通过SAML Assertion和metadata进行身份验证和授权。而OIDC是建立在OAuth 2.0上的身份层,通过ID Token实现用户身份验证。文章还详细阐述了两种协议的工作流程和主要组件。
摘要由CSDN通过智能技术生成

本文首发于我的博客 https://teobler.com 转载请注明出处

SSO是什么

在了解SSO是什么之前,我们需要搞清楚两个概念: Authentication & Authorization

Authentication(又被称为AuthN,身份验证),它指的是 the process of verifying that "you are who you say you are",也就是说这个过程是为了证明你是你。通常来说有这么几个方式:

  • Single-factor - 也就是可以通过单一的因素证明”你是你“,比如密码、PIN码
  • Multi-factor - 有时候 Single-factor 没有办法保证”你是你“,就会需要一些多重验证的手段,比如动态口令、生物识别等
  • 上面提到的是两种用的比较多的手段,还有一些其他的,比如安全问题,短信,email认证等等

Authorization(又被称为AuthZ,权限验证),他指的是 the process of verifying that "you are permitted to do what you are trying to do",也就是说这个过程是为了证明你是否拥有做这件事的权限,比如修改某个表格等等,如果没有权限的话通常会返回 403 错误码。

SSO 出现之前,用户在不同的系统登录就需要在不同的系统注册多个账号,然后需要自己记住多个用户名和密码,而如果这些系统是同一个平台的话,其实该平台还需要维护多套几乎一模一样的登录系统,给用户和平台都带来了负担。

SSO 就是一种authentication scheme(身份验证方案),SSO 允许用户使用同一个账户登录不同的系统,很好地解决了上述的问题。它不但可以实现单一平台的登录,假如某个平台之外的系统是信任该平台的,那么外部系统也可以集成这个平台的 SSO, 比如现在的大多数网站都提供了 Google 账号登录的功能。

要实现 SSO,首先需要你正在开发的系统信任这个第三方登录系统所提供的用户信息,然后你需要按照一定的标准和协议去与其对接,接下来我们会介绍两个比较常用的 SSO 协议 – SAML 2.0 和 OIDC。

SAML 2.0

SAML 2.0是什么

SAMLSecurity Assertion Markup Language 的简称,是一种基于XML的开放标准协议,用于在身份提供者(Identity Provider简称IDP)和服务提供商(Service Provider简称SP)之间交换认证和授权数据。

SAML 2.0是该协议的最新版本,于2005年被结构化信息标准组织(OASIS)批准实行。

流程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值