Sci论文 - 至繁归于至简,Sci论文网。 设为首页|加入收藏
当前位置:首页 > 计算机论文 > 正文

基于 B/S 架构的 Web 单点登录协议综述论文

发布时间:2023-04-10 12:04:28 文章来源:SCI论文网 我要评论














SCI论文(www.lunwensci.com)

  摘 要:单点登录 (SSO) 是一种机制, 它使用单一的身份验证操作来允许授权用户访问所有相关但独立的软件系统或应用 程序,而不会在特定会话期间被提示再次登录每个系统或应用程序。它允许用户在经过一次身份验证后访问多个服务或应用程 序,提高了用户的生产力,节省了企业对于用户管理的成本,也降低了管理员集中管理用户的风险。SSO 可用于单一的企业, 也可用于多域或者互联网。本文探讨了几种主流的应用于 B/S 架构的互联网 SSO 及其使用的技术和协议,并列举了他们的主要 应用案例和优缺点。

  关键词:单点登录(SSO),CAS,OAuth,OpenID,OIDC,SAML,BrowserID,WebAuthn

  A Review of Web Single Sign-On Protocol Based on B/S Architecture

  XIAO Guixia

  (Modern Educational Technology Center, Changde Vocational Technical College, Changde Hunan 415000)

  【Abstract】: Single Sign-On (SSO) is a mechanism that uses a single authentication operation to allow an authorized user to access all related but independent software systems or applications without being prompted to log in to each system again during a specific session or application. It allows users to access multiple services or applications after one authentication, which improves user productivity, saves the cost of user management for enterprises, and reduces the risk of administrators to centrally manage users. SSO can be used for a single enterprise, or for multiple domains or the Internet. This article discusses several mainstream Internet SSOs applied to B/S architecture and the technologies and protocols they use, and lists their main application cases, advantages and disadvantages.

  【Key words】:Single Sign-On (SSO);CAS;OAuth;OpenID;OIDC;SAML;BrowserID;WebAuthn

\
 

  0 引言

  在当今的数字世界中,用户必须访问多个系统来执 行日常业务活动。随着安全性的提高,各个系统对密码 安全性的要求也越来越高。用户经常会出现丢失或忘记 密码的情况。很多用户采用同一个密码或者直接记录密 码的方式来缓解记忆多系统凭证的压力。这种做法存在 很大的安全隐患,单点登录技术应运而生,解决多系统 凭证使用的便捷性和安全性等一系列问题。

  单点登录全称 Single Sign On(以下简称 SSO), 用于身份验证和授权,是一种允许用户使用一套用户名 和密码来完成身份验证而获取多个应用程序服务的机 制。它要求用户登录一次,没有任何进一步的登录条件,用户便可以安全地访问多个软件系统的资源。但这 并不意味着 SSO 系统统一了所有服务、应用程序和系 统的账户信息,它只是将多个账户信息隐藏到用户需要 登录的单个账户中, 一旦用户登录, SSO 系统就会生成 各种应用程序和系统接受的身份验证信息,对主要身份 验证中心的单点登录访问使用户能够访问所有其他可用 资源。SSO 通过避免用户记住多个密码来帮助提高用户 和开发人员的工作效率,并减少用户在输入各种密码以 登录时花费的时间。SSO 还通过管理单个凭据而不是多 个凭据来简化管理。它可以轻松管理用户到达、更改功 能或离开公司的权限,快速集成其他应用程序,委派访 问权限,而不会增加帮助台的工作量。

  1 单点登录的分类

  单点登录可以根据他们部署的位置、部署方式、使 用的凭证等进行分类。根据单点登录部署的位置可以分 为内联网 SSO、外联网 SSO 和互联网 SSO。根据部署方 式主要分为简单的 SSO 结构和复杂的 SSO 体系结构 [1]。 根据使用的凭证可以分为基于令牌的 SSO,如JWT、 Kerberos, 以及基于 PKI 的 SSO, 如 BrowserID。 单 点登录的技术和协议有很多,比如 Kerberos、CAS、 OAuth、OpenID、SAML、BrowserID、WebAuthn 等。其中有的只做认证比如 :Kerberos、CAS、SAML、 Webauthn ;有的只做授权 OAuth2.0 ;有的兼具认证与 授权 :OpenID Connect(OIDC)、BrowserID ;还有一 些技术主要用于身份存储, 如 AD、LDAP 等。

  单点登录(SSO)协议今天已经集成到数百万个 Web 服务中,因此终端用户就可以向第三方身份提供 商(IDP) 进行身份验证, 以访问多个服务。IDP 通常 提供集成工具,隐藏几乎所有的实现细节,并允许开发 人员在短时间内实现 SSO。集成工具关注的是实现,开 发人员难以通过集成工具清楚地了解底层的 SSO 协议。 为了便于了解, 我们将讨论这些主流 Web SSO 协议的 特点及原理细节等。

  2 主流 B/S 架构的 Web SSO 协议

  2.1 CAS

  Central Authentication Service 简 称 CAS, 是 一 种常见的 B/S 架构的 SSO 协议,由耶鲁大学技术与规划 学院的 Shawn Bayern 构思和开发的,CAS 开始于 2001 年,并在 2004 年 12 月正式成为JA-SIG 的一个项目。 CAS 是一种仅用于 Authentication 的服务。CAS 1.0 实 现了单点登录, CAS 2.0 引入了多层代理身份验证, 2013 年 4 月, CAS 协议规范 3.0 发布, 这三个版本的认证流 程基本类似 [2]。CAS 的认证流程通过包括几部分参与者 : Client 通常为使用浏览器的用户 ;CAS Client 实现 CAS 协议的 Web 应用 ;CAS Server 作为统一认证的 CAS服务器。

  CAS 的工作原理如图 1 所示。当用户认证成功后, CAS SERVER 将向访问者发放“准予票据”(全称 Ticket Granting Ticket, 简称 TGT), 并创建一个全局的单点 登录会话(SSO Session)。当用户在浏览器端使用“准 予票据(TGT)”作为令牌来重定向访问一个应用时, 服务端在将客户端附带的 TGT 验证通过后,向客户端 发放一个“服务票据(ST)”然后作为参数附在被访问 的应用 URL 后面。被访问应用通过后台的方式将接收 到的 ST 发送到 CAS 服务端进行验证。当 HTTP 再次 请求到来时,如果传过来的有 CAS 生成的 Cookie,则 CAS 以此 Cookie 值为 Key 查询缓存中有无 TGT,有 则说明用户之前登录过,没有,则用户需要重新登录。

\
 

  CAS 对客户端的验证通常通过存储在数据库中的用 户名和密码比对来实现,支持 LDAP、OAuth、SAML、 OpenID 等多种协议,作为开源项目已经在数以百计的 大学校园中使用 [3]。但是由于 CAS 是一种基于票据的 协议,Web USER、CLIENT 和 SERVER 之 间需要传 递和验证票据,原来的应用系统必须经过改造才能发挥 CAS 的功能。

  2.2 OAuth

  OAuth是一种授权协议,而不是身份验证协议, OAuth 1.0 协议于 2010 年 4 月以 RFC 5849 的形式发布。OAuth 2.0 于 2012 年 10 月发布为 RFC 6749. 承载令牌用法为 RFC 6750[4]。OAuth 2.0 授权框架使第三方应用程序能 够获得对 HTTP 服务的有限访问,可以通过协调资源 所有者和 HTTP 服务之间的批准互动来代表资源所有 者,或者允许第三方应用程序以自己的名义获得访问。 它指定了资源所有者授权第三方访问其服务器资源而不 提供凭据的过程。

  OAuth 的工作原理如图 2 所示。首先应用程序向 用户请求访问服务资源的授权,如果被允许,应用程 序会收到授权许可。接着,应用程序出示身份和授权许可,从授权服务器请求访问令牌,如果应用程序身份已 通过身份验证并且授权许可有效,授权服务器会向应用 程序颁发访问令牌。最后应用程序从资源服务器请求资 源并提供访问令牌以进行身份验证,如果访问令牌有 效,则资源服务器将相应资源提供给应用程序。

\
 

  OAuth2协议简单,可基于 HTTP/JSON传递Token, 成 熟度高,也比较安全,应用十分广泛,目前比如亚马逊、 谷歌、Facebook、微软、Twitter、企业微信和钉钉等知 名公司和产品都使用此机制允许用户与第三方应用程序或 网站共享有关其账户的信息。通过对国内网站 OAuth 接 入调查发现,有超一半的网站都通过 OAuth2.0 接入了微 信、QQ 和微博授权登录 [5],这都是用户数量和活跃度 最高的一些社交平台,在网站接入选择上具有绝对的优 势。但是 OAuth2 仅含授权协议,且是一个框架协议, 范围广泛,不是具体的实现,不同公司的实现方式是不 一样的,实现兼容性和相互操作性也会打折扣。

  2.3 OpenID

  OpenID 是由非营利性 OpenID 基金会推动的开 放标准和去中心化的身份验证协议。它允许用户通过 使用第三方身份提供者 (IDP) 服务的合作站点进行身 份验证,并允许用户登录到多个不相关的网站,而不 必为这些网站再设置身份和密码。用户通过选择 OpenID 身份提供者来创建账户,然后使用这些账户登录任何接受 OpenID 身份验证的网站。OpenID 的最终版本是 OpenID 2.0. 于 2007 年 12 月完成并发布。OpenID Connect 简称 OIDC, 是第三代 OpenID技术, 由 OpenID 基金会于 2014 年 2 月发布。OIDC 是基于 OAuth2.0 扩展出来的,指定 了一个 RESTful HTTP API,使用JSON 作为数据格式, 是当今最流行的协议 [6]。

  OpenID 的工作原理如图 3 所示。用户用身份提供者 (IDP)注册自己以接收 OpenID 凭据。当用户希望访问应用程序 A 时,应用程序 A 将用户重定向到 IDP。 用户使用自己的 OpenID 凭证登录到 IDP。在成功验证 时, IDP 将用户重定向回应用程序 A。如果用户要访问 Web 应用程序 B,它将向 Web 应用程序 B 发送请求, 在接收请求时,它进入 IDP 并检查试图访问它的用户 是否处于活动状态。如果发现处于活动状态, Web 应 用程序 B 将允许用户自动访问它。类似地,其他应用程 序也将遵循相同的过程。应用程序 A 不知道在 Web 应 用程序 B 中发生了什么,而 Web 应用程序 B 也不知道 在应用程序 A 中发生了什么。
\
 

  OpenID 一处注册,多处出入自由, 它允许用户通 过一个 URL 作为 OpenID 身份认证,在多个网站上进 行登录 [6]。可同时用来做认证和授权,协议简单易实现, 成熟度高,应用广泛。截至 2016 年 3 月,互联网上有超 10 亿启用 OpenID 的账户, 大约 1.100.934 个站点集成 了 OpenID 消费者支持, 这些站点包括 Google、IBM、 雅虎、微软、MySpace、Facebook、Amazon.com、环球 音乐集团、威瑞信、WordPress、BBC、PayPal 等。

  2.4 SAML

  安全断言标记语言(SAML)协议是一个基于 XML的标准协议。SAML 标准定义了身份提供者(IDP)和服 务提供者(SP) 之间, 如何通过 SAML 规范, 采用加密 和签名的方式来建立互信,从而交换用户身份信息。结 构化信息标准促进组织(OASIS) 于 2002 年 11 月宣布 将 SAML1.0 规范作为 OASIS 标准,与此同时,由公司、 非营利组织和政府组织组成的大型联盟提议对 SAML 标 准进行扩展,安全服务技术委员会(SSTC)也开始对 SAML 标准进行小幅升级,并于 2003 年 9 月批准了由此 产生的 SAML 1.1 规范。2005 年 3 月,SAML2.0 被宣布 为 OASIS 标准。到 2008 年 1 月, SAML2.0 在全球政府、 高等教育和商业企业中变得流行 [7]。

  SAML 的工作原理如图 4 所示。用户访问 SP 站点, SP 站点将转换成 SAML 请求,重定向至 IDP。IPD 收 到后对用户发起身份挑战,用户通过账号密码完成登 录。IDP 为用户提供合法的身份证明, IPD 用私钥签发 了一个断言作为之前 SAML 请求的响应。SP 站点根据 断言信息找到其颁发者 IDP,并从自己的数据库中找到 IDP 对应的公钥证书,并验证断言的签名,若能验证, 说明当前断言是 IDP 颁发的,可以被信任,允许用户 登录站点。

\
 

  SAML 是一个非常古老的验证协议,协议功能强 大,涵盖场景多,比较全面,在早期 B/S 架构的企业级应用中非常流行,另外老牌 Windows Server,也大量 使用了 SAML 认证 [8.9]。但只支持 Web SSO, 不支持移 动端,且基于 XML 协议签名和加密,技术复杂度大。

  3 新发展

  CAS、OAuth、OpenID、SAML 都是基于 Token 的 身份认证和授权协议, Token 有相应的生命周期,过期 后需再次验证,且基于 Token 的身份认证无法精确的识 别用户来源,另外 Token 的注销有难度,很难解决客户 端劫持等问题 [10]。很多研究者致力于开发更安全更便捷 的身份注册和验证协议,比较有代表性的有 WebAuthn 和 BrowserID 等。

  3.1 WebAuthn

  Web 身份验证API(WebAuthn) 是由W3C 和 FIDO 编写的规范 [11], 有 Google、Mozilla、Microsoft、Yubico 等参与。API 允许服务器使用公钥加密而不是密码来注 册和验证用户。它允许服务器与内置于设备中的身份验 证器 集 成, 例 如 Windows Hello 或 Apple 的 Touch ID。WebAuthn 代替密码,为网站创建了一个私有— 公共密钥对。私钥安全地存储在用户的设备上,公钥和 随机生成的凭证 ID 被发送到服务器进行存储。然后, 服务器可以使用该公钥来证明用户的身份。WebAuthn 是 FIDO2 框架的一部分, 该框架是一组技术, 可在服务器、浏览器和身份验证器之间实现无密码身份验证。

  其工作原理如图 5 所示。它使用不对称加密替代密 码或 SMS 文本在网站上注册和验证,可以解决钓鱼和数 据破坏以及 SMS 文本攻击等重大安全问题,跨多种操 作系统平台, 支持各种 Windows、Linux、MacOS 以 及移动端的安卓、IOS 等设备 [12]。WebAuthn 致力于将 用户对基于 Web 的应用程序和服务的公钥认证的接口 标准化,支持生物验证,极大提高了使用的便捷性,具 有非常广阔的应用前景, 自 2019 年 1 月起,Chrome、 Firefox、Edge 及 Safari 等浏览器已支持 WebAuthn。

\
 

  3.2 BrowserID

  BrowserID 是 Mozilla 于 2011 年 7 月为了更安全更 好替代 OpenID 而提出的,目标是消除电子邮件验证, 不记录用户的上网行为,帮助保护用户的隐私和安全。 它仅需一个电子邮件地址注册浏览器账号,即可登录到 所有支持 BrowserID 的网站, 基于 H5 和JavaScript 开 发,在主流浏览器上都可以运行。核心思想是永远记住 电子邮件地址,而不是虚构的用户名或 URL。具有便 捷、安全、跨浏览器实现、去中心化的全网验证、改进 未来浏览器体验、尊重用户隐私等优点 [13]。

  其工作原理如图 6 所示。1 用户浏览到“site.com”。 “site.com”需要向用户的浏览器表明它支持 BSSO ;2 当用户单击“site.com”的“登录”按钮时, 浏览器将 代表“site.com”以“site.com”的端点向“email.com” 发出身份验证请求 ;3 这将需要用户在浏览器 BSSO 设 置中预先选择他喜欢的电子邮件地址,或要求用户选择 他喜欢的电子邮件地址, “email.com”返回用户电子 邮件地址的肯定断言 ;4 浏览器现在通过 http post 请 求将用户引导到“site.com”的端点 url, 断言从 post 正文中的“email.com”返回 ;5“site.com”现在将通过将断言连同关联直接发送到“email.com”的端点 来验证断言 ;6“email.com”将响应成功或失败。

\
 

  4 结语

  信息技术的蓬勃发展给人们带来了丰富多样的电子 化服务,在享受这些便捷服务的同时,首先要解决的一 个问题就是让系统识别用户的身份,随着业务系统的增 加,频繁的登录和繁多的密码也慢慢变成一种负担。利 用身份认证和授权而发展起来的单点登录技术已成为粘 合用户的一种不可或缺的方式。本文从目前常见的几种 基于 HTTP 协议的 Web 单点登录技术和协议出发,从 它们的功能、工作原理和流程概览、应用情况和优缺点 等方面进行了分析,并介绍了两种比较新的单点登录协 议,除了使用的便捷性,安全和隐私保护是今后单点登 录技术要解决的主要问题。OIDC 和 OAuth 仍然是目 前使用范围最广,最流行的单点登录协议, BrowserID 也是在 OIDC 的基础上,为保护用户浏览隐私而设计的。

\
 

  参考文献

  [1] RADHA V,REDDY D H.A Survey on Single Sign-On Techniques[J].Procedia Technology,2012.4(1):134-139.

  [2] ARDAGNA C A,DAMIANI E,VIMERCATI S D C D,et al. CAS++:An Open Source Single Sign-On Solution for Secure e-Services[C]//IFIP TC 11 International Information Security Conference,2006.

  [3] 范围.基于CAS的单点登录系统应用研究[J]. 电子测试, 2016(8):64+63.

  [4] HARDT D.Rfc 6749:The Oauth 2.0 Authorization Framework[S].Internet Engineering Task Force(IETF), 2012.10:2070-1721.

  [5] 朱博昌.基于OAuth2.0协议的授权登录国内应用现状研究 [J].现代信息科技,2019.3(20):151-154.

  [6] 张明西,刘晖.OpenID标准化认证机制的研究与应用[J].计 算机应用与软件,2010.27(7):61-62.

  [7] ARMANDO A,CARBONE R,COMPAGNA L,et al.Formal Analysis of SAML 2.0 Web Browser Single Sign-on: Breaking the SAML-based Single Sign-on for Google Apps[C]//Proceedings of the 6th ACM Workshop on Formal Methods in Security Engineering,2008:1-10.

  [8] 韩伟,范植华.基于SAML的单点登录技术在Web服务中的 应用研究[J].计算机工程与设计,2005(03):634-636.

  [9] 吴志奇.SAML2.0的研究与应用[D].武汉:武汉理工大学, 2013.

  [10] NONGBRI I,HADEM P,CHETTRI S.A Survey on Single Sign-on[J].The International Journal of Creative Research Thoughts,2018.6(2):595-602.

  [11] CHAKRABORTY D,BUGIEL S.SimFIDO:FIDO2 User Authentication with Simtpm[C]//Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security,2019:2569-2571.

  [12] KLIEME E,WILKE J,DORNICK N V,et al.FIDOnuous: a FIDO2/WebAuthn Extension to Support Continuous Web Authentication[C]//2020 IEEE 19th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom).IEEE,2020:1857-1867.

  [13] BELTRAN V.Characterization of Web Single Sign- on Protocols[J].IEEE Communications Magazine,2016. 54(7):24-30.
 
 
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!

文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/54343.html

相关内容

发表评论

Sci论文网 - Sci论文发表 - Sci论文修改润色 - Sci论文期刊 - Sci论文代发
Copyright © Sci论文网 版权所有 | SCI论文网手机版 | 鄂ICP备2022005580号-2 | 网站地图xml | 百度地图xml