基于Token的统一身份认证接口及方法技术

技术编号:24763879 阅读:104 留言:0更新日期:2020-07-04 11:04
本发明专利技术涉及一种基于Token的统一身份认证接口及方法,用于解决多个客户端统一接口进行身份验证的问题。本发明专利技术基于三个接口:认证服务接口,每次打开客户端时均会请求该接口进行初步信息查询,根据查验情况转到不同的接口进行操作;Token生成接口,用于生成令牌;Token验证接口,用于令牌的信息验证。本发明专利技术统一了多类型客户端的登录接口,确保用户在一定时期内无需重复认证,并且可以自定义不同类型客户端各自的身份认证有效期。无须在客户端或服务端存储大量用户名密码等信息。不仅解决了有关敏感用户信息存储的问题,也解决了Session认证所造成的过多占用服务端内存资源的问题,而且服务端无需考虑用户是否已登录。

Unified identity authentication interface and method based on token

【技术实现步骤摘要】
基于Token的统一身份认证接口及方法
本专利技术属于互联网领域,具体涉及一种多平台多系统的统一登陆认证方法。
技术介绍
现下大多的互联网应用都是基于无状态的HTTP协议,用户每次发出请求,在建立会话连接数据交换完毕后,客户端和服务器端的连接也就关闭了,用户再次发出请求时需要重新建立新的会话连接,无法存储登陆的用户信息。大多数企业都是通过验证单个用户单独的用户名和密码来对登陆的用户进行身份认证,阻止非法入侵者进入系统,以此保证系统安全。这就导致用户每次登入系统时均需要再次填写用户名密码进行验证,这种传统的认证机制不仅会对用户使用系统产生不便,由于静态密码相对容易攻击,更是会对应用程序的安全性提出挑战。虽然随着相关技术的发展,开发人员逐渐通过Cookie和Session这两种技术解决了HTTP的无状态问题,可将用户身份信息记录在Cookie和Session中以解决身份认证问题。对于Cookie机制,每个访问的用户都会拥有一个“通行证”,一个用户一个,每次访问根据“通行证”就可以确认用户身份。“通行证”实际上是一段记录了用户信息的文本信息,每次客户端请求时,如果服务器需要记录该用户,那么会通过response给客户端浏览器发送一个Cookie。客户端浏览器会将Cookie保存,以便下次再次请求该网站服务器时,Cookie会被同时发送到服务器。服务器验证Cookie就可以确认用户身份,并且服务器可以根据需要来修改Cookie的记录内容。Session是Cookie之后出现的一种机制,也是用于记录客户端状态。基于会话处理,客户端访问服务器时,服务器会将用户信息进行保存,这个用户信息就被叫做Session。每个站点访问者均会被分配一个唯一的标识属性,称为会话ID(SessionID,SID),这个SID将与任何数量的其他数据相关联,例如每月访问的次数、设置的浏览偏好等。SID作为Cookie存储在浏览器中,并自动包含在对服务器的每个后续请求中。每次客户端访问服务器时,服务器会根据SID从Session中查找当前访问用户的信息以便确认用户身份。因此针对于Cookie和Session机制,用户首先使用用户名和密码以及验证码等信息登录,在登录时创建一个Session对象并生成唯一ID,将其存储在服务器端来记录用户登录的身份信息,然后将SessionID返回并存储在客户端的Cookie中,这样就在客户端与服务器端之间开始了一次会话,直到关闭浏览器或者说是关闭整个应用程序后会话才结束。在会话有效期内每次客户端向服务器端请求数据的时候就将在客户端使用Cookie存储的SessionID发送到服务器端,服务器端根据SessionID与服务器端存储的Session中的ID进行比较,如果一致则响应用户请求并返回数据,否则通知用户未通过身份认证无权访问资源。上述采用Cookie和Session的会话模式确实解决了身份认证问题,但是这种模式依然存在很多问题,并且随着科技的发展和人们对用户体验的需求,一个企业级应用程序不仅仅包括PC端的桌面程序和Web程序,还必须提供手机APP和WAP端等。这些都对原来的身份认证模式提出了挑战。1.Session:每次认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开销也会不断增加。多台服务器也不容易实现会话共享,即使实现了会话复制,随着服务器数量的不断增加,Session复制性能也会急剧下降,给服务器的性能带来损失。2.可扩展性:在服务器端的内存中使用Session存储登录信息,伴随而来的是可扩展性问题。3.跨域资源共享(Cross-OriginResourceSharing,CORS),当我们需要让数据跨多台移动设备上使用时,跨域资源的共享会是一个让人头疼的问题。在使用Ajax抓取另一个域的资源,就会出现禁止请求资源情况。利用Cookie和Session会话模式身份认证无法满足多个平台的要求,而且用户过多的情况下,会导致服务器端承载压力过大。因此为了解决Cookie和Session机制的不足,采用虚拟识别方法进行身份认证登陆,即虚拟令牌(VirtualToken)。Token是服务器端生成的一串字符串,并以此作为客户端请求的标识。使用Token机制的身份验证方法,在服务器端无需存储用户的登录记录,不仅解决了有关敏感用户信息存储的问题,也缓解了Session认证所造成的过多占用服务端内存资源的问题,而且服务端无需考虑用户是否已登录。与此同时,Token因为将用户信息存储在手机、电脑、平板等客户端,也解决了多用户端系统统一登录的问题。
技术实现思路
现在处于移动互联网时代,客户端的类型越来越多,逐渐出现了一个服务器N个客户端的问题,大概如图2所示。不同的客户端就产生了不同的用户使用场景和需求,存在不同的会话生存周期,不同的用户权限控制体系和不同级别的接口调用方式。如何针对多个客户端统一接口进行身份验证成了一个待解决的问题。为了解决这一问题,本专利技术提出了一种基于Token的统一身份认证方法,该方法统一了多类型客户端的登录接口,确保用户在一定时期内无需重复认证,并且可以自定义不同类型客户端各自的身份认证有效期,有效解决了跨域资源共享并防范了跨站请求伪造问题。这种统一身份认证方法的接口主要涉及到三个接口,接口一为认证服务接口,每次用户打开客户端时均会请求该接口,进行初步信息查询,根据查验情况转到不同的接口进行操作;接口二为Token生成接口,用于生成令牌;接口三为Token验证接口,用于令牌的信息验证。统一身份认证方法具体指:首次使用客户端时,客户端自动发送请求至服务器端,若认证服务接口没有查验到Token,则要求用户输入用户名和密码;客户端再次请求服务器端,服务器在接受到请求后通过认证服务接口得到用户名和密码,并通过用户信息接口从数据库中获取当前登录用户的信息进行合法性验证,若验证成功,则通过Token生成接口生成Token令牌并返回Token和请求资源数据;再次打开客户端后,客户端自动发送请求至服务器端,若认证服务接口若检测到Token,则直接读取Token数据,并根据Token验证接口对数据进行解析,根据解析得到的用户角色和用户客户端类型返回对应请求的资源。有益效果1.采用Token认证模式进行用户认证,则用户信息不用存储在Session中即使用户量大时也不会造成拥堵。2.当用户请求资源时发送的是令牌而不是Cookie中存储的用户名和密码这样敏感信息,从而有效防止CSRF(跨站请求伪造,一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法)。3.在可扩展性方面Token能够创建与其他应用共享权限的程序。能通过一个账号将所有应用程序关联起来,实现统一身份认证,登录成功后即可使用该应用程序的部分功能。4.在多平台跨域方面,也就是CORS问题,对应用程序和服务进行扩展的时候,可以加入各种设备和应用程序。只要用户有一个通过了验证的Token,数据和资源本文档来自技高网
...

【技术保护点】
1.基于Token的统一身份认证接口,其特征在于:包括三个接口,/n接口一为认证服务接口,每次用户打开客户端时均会请求该接口,其中,如果是首次登陆验证,则用于验证用户名和密码,并跳转至用户服务;如果是再次登录验证,则用于查找并验证Token的合法性,然后跳转至用户服务;/n接口二为Token生成接口,用于生成令牌;/n接口三为Token验证接口,用于令牌的信息验证;/n所述的Token生成接口具体为:获取用户请求资源时的基础信息并进行算法加密,加密后的字符串记为M1;获取签发Token的时间戳、有效期限、刷新时间和宽限时间,并进行算法加密,加密后的字符串记为M2;将M1和M2字符串组合后进行算法加密,得到加密后的字符串M3,其中,加密过程需要用户密钥;最终Token拼接成“M1.M2.M3”的样式存储在客户端本地。/n

【技术特征摘要】
1.基于Token的统一身份认证接口,其特征在于:包括三个接口,
接口一为认证服务接口,每次用户打开客户端时均会请求该接口,其中,如果是首次登陆验证,则用于验证用户名和密码,并跳转至用户服务;如果是再次登录验证,则用于查找并验证Token的合法性,然后跳转至用户服务;
接口二为Token生成接口,用于生成令牌;
接口三为Token验证接口,用于令牌的信息验证;
所述的Token生成接口具体为:获取用户请求资源时的基础信息并进行算法加密,加密后的字符串记为M1;获取签发Token的时间戳、有效期限、刷新时间和宽限时间,并进行算法加密,加密后的字符串记为M2;将M1和M2字符串组合后进行算法加密,得到加密后的字符串M3,其中,加密过程需要用户密钥;最终Token拼接成“M1.M2.M3”的样式存储在客户端本地。


2.根据权利要求1所述的基于Token的统一身份认证方法,其特征在于:Token生成接口中所述的基础信息包括用户名、登录客户端类型、用户类别。


3.根据权利要求1所述的基于Token的统一身份认证方法,其特征在于:Token生成接口中生成M1和M2的加密算法为Base64编码算法,生成M3的加密算法为JWT签名算法中的HS256算法。


4.根据权利要求1...

【专利技术属性】
技术研发人员:董玥肖创柏
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1