IDaaS 技术解析单点登录之 Token 认证_第1页
IDaaS 技术解析单点登录之 Token 认证_第2页
IDaaS 技术解析单点登录之 Token 认证_第3页
IDaaS 技术解析单点登录之 Token 认证_第4页
IDaaS 技术解析单点登录之 Token 认证_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IDaaS技术解析|单点登录之Token认证IDaaS即提供基于云的身份认证和管理服务的平台,确保在准确判定用户身份的基础上,在正确的时间授予用户正确的应用、文件和其他资源的访问权限。IDaaS能提供多种标准化功能帮助用户实现高效、安全的身份认证管理服务,如单点登录、智能多因素认证、账号生命周期管理等等。单点登录是IDaaS平台提供的关键功能之一,技术上涉及协议对接、认证方式等诸多细节,我们今天先来聊聊认证方式。由于传统基于Session认证方式的局限性,目前单点登录技术中一般使用Token认证,下文将详细介绍Token认证的流程及相对优势。一、传统基于Session的认证方式在介绍Token

2、认证前,先简单介绍一下传统基于Session的认证。早前由于Http协议无状态的特性(每次客户端和服务端会话完成时,服务端不会保存会话信息,包括用户上一次登录时输入的用户名和密码),于是基于Session的有状态的认证方式逐渐成为一种流行技术方案,以减少用户在登录客户端时输入用户名和密码的认证操作次数。简单来说,基于Session的认证就是让客户端和服务端之间的认证会话以Session的形式进行存储,并通过在服务端和客户端之间传输Session,来实现两方之间的身份认证交流。具体流程如下:用户在客户端输入用户名和密码,进行登录操作;服务端用户身份验证通过,生成Session,并存入数据库中;客

3、户端在浏览器上生成Cookie,并把Session写入其中;用户在客户端后续有新的请求,都会在请求时携带Session,并发给服务端;如果客户端logout,之前生成的Session会在客户端和服务端都会被销毁。虽然Session认证有效解决了客户端多次输入用户名和密码的问题,但存在诸多弊端:A,服务端成本上升:每个用户在客户端进行登录操作后,服务端都需要进行一次Session记录,随着注册用户不断增多,存储Session就会占用大服务器内存,大型应用可能还需要借助数据库或者一系列缓存机制存储Session。B,无法横向扩展:Session认证方式在跨服务或跨域的资源共享方面表现很差。比如,多

4、个子域名提供同一个应用服务,或者单点登录中用户通过一套用户名和密码同时登录多个应用系统,Session认证方式在这样的场景中就无法再起作用,尤其是对于分布式应用而言,这种认证方式很难在多个服务器负载上进行横向拓展。C,CSRF跨站点请求伪造(CrossSiteRequestForgery):Cookies存在很多不安全因素,如果Cookies被截获,用户就会很容易受到CSRF的攻击,导致数据泄露。二基于Token的认证方式Token认证是无状态的,其核心是签名和验签。客户端每次向服务端发送请求时都会携带Token,这里的Token是服务端用自己的密钥签名的,当服务端接收到Token时会用自己的

5、密钥去验签,判断这个Token是否是自己签发的,进而对用户身份进行验证。具体流程如下:客户端使用用户名和密码请求登录;服务端收到请求,去验证用户名与密码;验证成功后,服务端会签发一个Token,再把这个Token发送给客户端(一般用哈希算法再加个随机数);客户端收到Token以后可以把它存储起来,比如放在Cookie里或者LocalStorage里;客户端每次向服务端请求资源的时候需要携带服务端签发的Token;服务端收到请求,然后去验证客户端请求里面携带的Token,如果验证成功,就向客户端返回请求的数据。从以上流程中可以看到,相较于传统的Session认证,Token认证在成本、可扩展性和

6、安全性等方面都有一定的优势:A,服务端负载减轻:服务端无需对生成的Token进行保存,只需要对Token进行签发和验签即可。Token中写入很多身份验证中所需要的信息,比如哈希签名算法、用户信息和签名,服务端的负载会减轻许多。B,通过API实现横向扩展:基于Token的认证通过API调用的方式,可以将Token认证应用到不同的服务和域中,使分布式应用的身份认证实现起来更高效便捷。C,不需要CSRF防护:由于不需要依赖Cookie,自然不用担心Cookie被截获,以及由此引发的用户信息被伪造登录的问题。D,支持移动端访问:Cookie本身不支持手机端访问,Token认证机制在移动端具有极大的优势

7、。JSONWebToken(JWT)是目前在单点登录实践中最为通用的Token认证方式。JWT包含头部(header)、载荷(payload)和签名(signature)三部分。IDP(IdentityProvider,即身份服务提供者)会将用户数据以加密的形式写入JWT,SP(ServiceProvider,服务提供者)会对JWT进行存储,IDP会在随后的SP每次请求中对JWT进行验签和确认,从而有效确保用户私密信息不会被盗。举个例子,玉符IDaaS在单点登录上采用JWT进行身份认证的Token签发和验签,整个过程中没有密码等私密信息的传递,只会在跨服务器的信息共享中传输像邮箱这样的身份标识

8、符号,这样可以从根本上规避身份认证信息泄露引发的数据泄露问题。当然软件工程的世界里没有银弹”,我们在玉符IDaaS设计中采用了多种机制为Token的安全加码一采用HTTPS的形式对Token进行加密,对于常见的浏览器和操作系统,强制使用TLS1.2协议,而禁用SSLv3(SSLMODESENDFALLBACKSCSV)。服务所用HTTPS证书来自知名证书机构GeoTrust,具有极高可用性,最高256位SSL加密,杜绝中间人监听;在JWT和对接应用服务之间采用定期密钥轮转机制,所有颁发的Token都具备强时效性,防止Token的超前使用或者过期使用,同时支持一次性Token,使用过的Token也可以被记录并禁止二次使用,从而降低偷窃者破解使用Token的可能性;对于Cookie的安全,玉符全域防止Cook

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论