分享
基于B_S架构的Web单点登录协议综述_肖桂霞.pdf
下载文档

ID:498375

大小:1.73MB

页数:6页

格式:PDF

时间:2023-04-07

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 B_S 架构 Web 单点 登录 协议 综述 肖桂霞
SOFTWARE2023软 件第 44 卷 第 1 期2023 年Vol.44,No.1基金项目:湖南省教育厅科学研究项目(20C0252);常德职业技术学院级重点项目(ZY2104)作者简介:肖桂霞(1983),女,湖南常德人,硕士研究生,副教授,研究方向:教育信息化、网络安全。基于 B/S 架构的 Web 单点登录协议综述肖桂霞(常德职业技术学院现代教育技术中心,湖南常德 415000)摘要:单点登录(SSO)是一种机制,它使用单一的身份验证操作来允许授权用户访问所有相关但独立的软件系统或应用程序,而不会在特定会话期间被提示再次登录每个系统或应用程序。它允许用户在经过一次身份验证后访问多个服务或应用程序,提高了用户的生产力,节省了企业对于用户管理的成本,也降低了管理员集中管理用户的风险。SSO 可用于单一的企业,也可用于多域或者互联网。本文探讨了几种主流的应用于 B/S 架构的互联网 SSO 及其使用的技术和协议,并列举了他们的主要应用案例和优缺点。关键词:单点登录(SSO);CAS;OAuth;OpenID;OIDC;SAML;BrowserID;WebAuthn中图分类号:TP391.4 文献标识码:A DOI:10.3969/j.issn.1003-6970.2023.01.001本文著录格式:肖桂霞.基于B/S架构的Web单点登录协议综述J.软件,2023,44(01):001-005+023A Review of Web Single Sign-On Protocol Based on B/S ArchitectureXIAO 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 还通过管理单个凭据而不是多个凭据来简化管理。它可以轻松管理用户到达、更改功能或离开公司的权限,快速集成其他应用程序,委派访问权限,而不会增加帮助台的工作量。2软 件第 44 卷 第 1 期SOFTWARE1 单点登录的分类单点登录可以根据他们部署的位置、部署方式、使用的凭证等进行分类。根据单点登录部署的位置可以分为内联网 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 OAuthOAuth是一种授权协议,而不是身份验证协议,OAuth 1.0 协议于 2010 年 4 月以 RFC 5849 的形式发布。OAuth 2.0 于 2012 年 10 月发布为 RFC 6749,承载令牌用法为RFC 67504。OAuth 2.0 授权框架使第三方应用程序能够获得对 HTTP 服务的有限访问,可以通过协调资源所有者和 HTTP 服务之间的批准互动来代表资源所有者,或者允许第三方应用程序以自己的名义获得访问。它指定了资源所有者授权第三方访问其服务器资源而不提供凭据的过程。OAuth 的工作原理如图 2 所示。首先应用程序向用户请求访问服务资源的授权,如果被允许,应用程序会收到授权许可。接着,应用程序出示身份和授权许图 1 CAS 工作原理Fig.1 CAS working principle P2:图 1 少了两个箭头 替换一下 P3:图 2 漏掉两个词 替换一下 一定看看 图 4 这个也是漏掉中间的了 78 1312 11 109 6 5 432 1 CASClient1 CAS Server CASClient2 Client Web User 1:访问应用1;2、9:重定向到S;3:用户认证;4:发放TGT;5:带ST访问应用1;6、12:验证并保存ST;7、13:设置session,并带session访问成功;8:访问应用2;10:验证TGT;11:带ST访问应用2。3肖桂霞:基于 B/S 架构的 Web 单点登录协议综述可,从授权服务器请求访问令牌,如果应用程序身份已通过身份验证并且授权许可有效,授权服务器会向应用程序颁发访问令牌。最后应用程序从资源服务器请求资源并提供访问令牌以进行身份验证,如果访问令牌有效,则资源服务器将相应资源提供给应用程序。OAuth2协议简单,可基于HTTP/JSON传递Token,成熟度高,也比较安全,应用十分广泛,目前比如亚马逊、谷歌、Facebook、微软、Twitter、企业微信和钉钉等知名公司和产品都使用此机制允许用户与第三方应用程序或网站共享有关其账户的信息。通过对国内网站 OAuth 接入调查发现,有超一半的网站都通过 OAuth2.0 接入了微信、QQ 和微博授权登录5,这都是用户数量和活跃度最高的一些社交平台,在网站接入选择上具有绝对的优势。但是 OAuth2 仅含授权协议,且是一个框架协议,范围广泛,不是具体的实现,不同公司的实现方式是不一样的,实现兼容性和相互操作性也会打折扣。2.3 OpenIDOpenID 是由非营利性 OpenID 基金会推动的开放标准和去中心化的身份验证协议。它允许用户通过使用第三方身份提供者(IDP)服务的合作站点进行身份验证,并允许用户登录到多个不相关的网站,而不必为这些网站再设置身份和密码。用户通过选择OpenID身份提供者来创建账户,然后使用这些账户登录任何接受OpenID身份验证的网站。OpenID的最终版本是OpenID 2.0,于2007年12月完成并发布。OpenID Connect简称OIDC,是第三代OpenID技术,由OpenID基金会于201

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开