0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是单点登录?解读单点登录两个协议:SAML、OAuth2

jf_ro2CN3Fa 来源:jdon./banq 作者:jdon./banq 2022-11-14 14:44 次阅读

什么是单点登录?

SSO 的类型

单点登录 SSO 的好处

什么是 SAML(安全断言标记语言)?

SAML 术语

什么是 OAuth2?

什么是 OpenID Connect (OIDC)?

OIDC 用于对用户进行身份验证

启用 OAuth2 和 OIDC 的示例登录页面

OAuth2 流与 OIDC 集成

何时使用 SAML 以及何时使用 OAuth2(使用 OIDC)

在本文中,我们将了解单点登录 (SSO) 和 SSO 广泛使用的两种协议,即 SAML 和OAuth2。这是任何程序员都需要理解的复杂领域之一。

什么是单点登录?

单点登录 (SSO) 是用户可以使用一组凭据登录多个应用程序的过程。考虑到如今网站的数量以及其中大多数都要求进行身份验证,这是一个方便且高效的功能。我们都知道,我们无法为每个应用程序跟踪如此多的凭据集。SSO 来救援了!!!用户无需一遍又一遍地建立身份,只需对用户进行一次身份验证,然后就可以访问多个不同的服务和应用程序。一个这样的功能的例子是谷歌。只需一次登录,您就可以访问他们的所有服务,例如 Gmail、照片、云端硬盘等等。其他应用程序还允许用户使用 Google 登录进行身份验证,前提是他们的系统与 Google、Facebook 等身份提供商集成

SSO 的类型

提供 SSO 的标准和协议有很多,其中一些著名的是

安全访问标记语言 (SAML)

开放授权 (OAuth)

开放 ID 连接 (OIDC)

Web 服务联合 (WS-Federation)

Kerberos

在本文的后面部分,我们将详细介绍 SAML、OAuth2 和 OIDC。

单点登录 SSO 的好处

SSO 有很多好处,如下所示

降低访问第三方网站的风险

减少为同一身份重新输入密码所花费的时间

更简单的审计管理和使用

更好的行政控制

提高用户生产力

更好的网络安全

减少攻击面

无缝且安全的用户访问

什么是 SAML(安全断言标记语言)?

SAML 是一种基于 XML 的标准,用于在 IdP 和服务提供商之间交换身份验证和授权数据,以验证用户的身份和权限,然后授予或拒绝他们对服务的访问权限。SAML 是一种开放标准,已成为 SSO 的核心标准之一。SAML 使用身份提供者发送给服务提供者的称为断言(包含用户授权)的 XML 文档。SAML 2.0 于 2005 年推出,并且仍然是该标准的当前版本。SAML 2.0 专门针对 Web 应用程序进行了优化,使信息能够通过 Web 浏览器传输

SAML 术语

IdP——身份提供者

SP - 服务提供商

用户——使用系统访问服务提供商服务的用户

典型的 SAML 工作流由 IdP、SP 和用户组成。用户信息作为断言发送。让我们假设用户有一个 Idp 帐户并拥有有效的凭据

d5c48db2-6238-11ed-8abf-dac502259ad0.png

让我们将上图分解为多个步骤,以便于理解

用户转到服务提供商并单击 SAML 登录

SP 将请求重定向到身份提供者

身份提供者向用户显示登录页面以输入凭据

输入凭据后,SAML IdP 会验证其 Active Directory 或数据库中的凭据

验证后,SAML 响应会以 XML 格式发送带有断言,如上所示

然后用户将登录到应用程序

什么是 OAuth2?

OAuth 是比 SAML 更新的标准,由 Google 和 Twitter 于 2006 年开始联合开发。它的开发部分是为了弥补 SAML 在移动平台上的不足,并且基于JSON而不是 XML。OAuth2 广泛使用 JWT 令牌,因此比 SAML 更轻、更快。

在深入探讨 OAuth2 和 OIDC 之前,让我们先看看使用的术语OAuth2 术语

授权服务器——(例如:谷歌)

资源服务器——(例如:Bitbucket)

资源所有者——使用系统从资源服务器访问服务的用户(例如:Bitbucket 用户)

OAuth2 协议允许授权服务器在获得资源所有者(用户)的同意后向第三方应用程序颁发访问令牌这些访问令牌被 Bitbucket、Slack 等第三方应用程序用于访问资源提供的资源服务器。

如果您已注册新应用程序并同意从 Google/Facebook 等导入联系人,则您必须已经使用过 OAuth2。您可能使用了要求您在 Facebook/Instagram 等上分享您的帖子或照片的功能。这是OAuth2 协议,提供安全的委托访问,无需共享凭据OAuth2 仅用于授权而不用于身份验证

什么是 OpenID Connect (OIDC)?

使用 OpenID,用户的凭据仅在浏览器路由请求后由授权服务器使用。验证后,将向用户颁发访问令牌,用户可以通过该令牌访问多个应用程序,而无需与每个应用程序共享其凭据。如果您已使用 Google / Facebook / Twitter 登录名登录应用程序,则您必须已经使用过 OIDC。OpenID Connect 是组织用来验证用户身份的开放标准。

OIDC 用于对用户进行身份验证

将 OIDC 与 OAuth2 结合使用OAuth 是一种开放标准的授权协议,用于授权用户,OIDC 用于验证用户。OIDC 位于 OAuth 2.0 之上,以添加有关用户的信息并启用 SSO 流程。它允许跨多个应用程序使用一个登录会话。例如,如下所示,您可以使用社交媒体登录来访问应用程序,而无需在应用程序中创建帐户

启用 OAuth2 和 OIDC 的示例登录页面

d5f169cc-6238-11ed-8abf-dac502259ad0.png

OAuth2 流与 OIDC 集成

d60e6ed2-6238-11ed-8abf-dac502259ad0.jpg

上图解释了当您使用 Google 登录应用程序时发生的整个过程。步骤的数量可能看起来很复杂,但整个过程在几毫秒到几秒内结束。让我们一步一步地分解它。假设用户已经有 Google 的登录帐户

用户进入 Bitbucket 页面登录

用户点击使用 Google 登录

浏览器将用户重定向到 Google 登录页面

Google 显示凭据页面供用户输入凭据

用户输入谷歌凭据并点击提交

Google 验证凭据并生成访问令牌并将其发送到浏览器

浏览器在Authorization Header中嵌入Access Token(Bearer Token),将用户的登录请求发送到BitBucket服务器

Bitbucket 服务器将联系 Google 验证访问令牌并响应浏览器

现在用户登录到 Bitbucket 应用程序

何时使用 SAML 以及何时使用 OAuth2(使用 OIDC)

尽管 SAML 在企业设置中可能看起来更优越,但在某些情况下 OAuth 是有意义的。

政府应用程序的身份管理:政府数据的机密、敏感性质需要具有更强的安全性,而 SAML 将适合这种情况。例如:新加坡政府使用一个名为SingPass的基于 SAML 的系统作为其居民使用所有基于政府的服务的数字登录名

用户体验是重中之重:OAuth2 最适合用户体验,因为它在移动设备上运行良好。而且它很轻。

移动和消费者应用程序:OAuth2 在移动设备和消费者应用程序上运行良好,因为会话往往更短

虚拟桌面基础架构 (VDI) 实施:使用 SAML。VDI 将被企业内的许多员工使用。

资源需要临时访问:OAuth2 非常适合临时访问,因为它是为此目的而设计的

在本文中,我们看到了 SSO 的类型和优势。然后我们深入研究了两个著名的 SSO 协议,即 SAML 和 OAuth2。在探索OAuth2时,我们看到了 OAuth2 和 OIDC 之间的细微差别,然后看到了两者结合的用例。本文以哪些协议可用于某些用例结束。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 协议
    +关注

    关注

    2

    文章

    570

    浏览量

    38911
  • SSO
    SSO
    +关注

    关注

    0

    文章

    9

    浏览量

    7462
  • SAML
    +关注

    关注

    0

    文章

    10

    浏览量

    8187
  • 单点登录
    +关注

    关注

    0

    文章

    6

    浏览量

    6283

原文标题:单点登录必知的两个著名协议:SAML、OAuth2

文章出处:【微信号:芋道源码,微信公众号:芋道源码】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    串联单点和并联单点及混合接地的介绍

    串联单点和并联单点及混合接地的介绍 串联单点接地结构由于简
    发表于 10-03 18:03 8230次阅读
    串联<b class='flag-5'>单点</b>和并联<b class='flag-5'>单点</b>及混合接地的介绍

    基于SAML单点登录安全服务体系的应用研究

    安全断言标记语言SAML是让互相信赖的双方可以交换安全相关信息的一个XML架构,它定义了不同系统之间安全服务交换认证和授权信息的机制,单点登录技术SSO是实现集成身份认证
    发表于 06-20 09:11 18次下载

    基于改进Kerberos的Web单点登录方案

    改进Kerberos 协议,提出了一种适用于Web 应用系统的单点登录解决方案。在给出Web 应用单点登录模型同时,分析用户访问受保护资源时
    发表于 08-25 09:12 14次下载

    一种结合Multi-Agent的单点登录模型

    本文针对单点登录技术(Single Sign-On SSO),结合网络安全机制分析并指出目前各种SSO 模型的不足,提出基于broker(经纪人)与Kerberos 混合认证的Multi-Agent(多代理)SSO 模型,采用
    发表于 08-29 11:24 8次下载

    一种SAML单点登录实现方式的安全性研究

            文章介绍了SAML 技术及其定义的两种消息传递方式。讨论了SAML 单点登录的两种实现方式,特别针
    发表于 09-05 10:19 11次下载

    科技资源应用集成环境中的单点登录研究

             本文首先分析了基于公钥基础设施的单点登录模型的不足,在此基础上,提出了一种基于PKI/PMI的单点
    发表于 09-10 09:46 15次下载

    基于SAML的WEB单点登录系统安全模型设计

    本文从安全性、互操作性基础上提出了一种基于SAML 规范的单点登录模型,在设计本模型时,考虑到SAML 在安全性上的弱点,使用WS-Security 规范来保证
    发表于 01-15 15:01 12次下载

    基于SAML单点登陆模型的改进

    分析了两种典型的基于SAML单点登录模型,针对流程复杂的缺陷进行简化,提出改进的单点登录模型,对三种模型进行比较,分析出改进模型所具有的性
    发表于 09-01 16:13 15次下载

    基于Cookie的单点登录技术

    在基于Web的多种应用系统中需要统一身份认证和资源访问控制机制,采用基于Cookie的单点登录系统是一种很好的解决方案,它是一种基于HTTP重定向和票据,并以跨域Cookie的共享为核
    发表于 09-01 16:18 13次下载

    单点接地

    单点接地 单点接地有两种类型,一
    发表于 10-03 18:01 1.8w次阅读
    <b class='flag-5'>单点</b>接地

    基于角色访问控制的单点登录模型研究与设计

    为了解决复杂Web服务中用户认证与权限管理的问题,对单点登录技术的进行了研究。在此基础上,根据单点登录技术的特点结合基于角色的控制访问提出了基于角色访问控制的
    发表于 12-17 10:59 24次下载
    基于角色访问控制的<b class='flag-5'>单点</b><b class='flag-5'>登录</b>模型研究与设计

    跨终端的单点登录系统的设计与实现杜建栋

    跨终端的单点登录系统的设计与实现_杜建栋
    发表于 03-15 08:00 0次下载

    一种基于Cookie的跨域单点登录方案设计

    针对多应用系统下用户需多次进行身份认证导致工作效率较低及系统安全性差的问题,提出了一种基于Cookie的跨域单点登录方案。用户可以在不同域内的应用系统间安全有效地实现一处登录,多处访问。给出了方案
    发表于 11-20 09:52 6次下载
    一种基于Cookie的跨域<b class='flag-5'>单点</b><b class='flag-5'>登录</b>方案设计

    单点登录的实现方式有哪些

    前言 实现方式一:父域 Cookie 实现方式二:认证中心 实现方式三:LocalStorage 跨域 补充:域名分级 前言 在 B/S 系统中,登录功能通常都是基于 Cookie 来实现的。当用
    的头像 发表于 02-02 14:00 1977次阅读
    <b class='flag-5'>单点</b><b class='flag-5'>登录</b>的实现方式有哪些

    SSO单点登录OAuth2.0的区别和理解

    两者有很多相似之处,下面我们来解释一下这个过程。先来讲解SSO,通过SSO对比OAuth2.0,才比较好理解OAuth2.0的原理。SSO的实现有很多框架,比如CAS框架,以下是CAS框架的官方流程图。特别注意:SSO是一种思想,而CAS只是实现这种思想的一种框架而已
    的头像 发表于 11-07 11:41 500次阅读