CN116527341A - 一种客户端调用后端接口鉴权授权安全方法 - Google Patents

一种客户端调用后端接口鉴权授权安全方法 Download PDF

Info

Publication number
CN116527341A
CN116527341A CN202310418268.6A CN202310418268A CN116527341A CN 116527341 A CN116527341 A CN 116527341A CN 202310418268 A CN202310418268 A CN 202310418268A CN 116527341 A CN116527341 A CN 116527341A
Authority
CN
China
Prior art keywords
client
token information
server
refresh
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310418268.6A
Other languages
English (en)
Inventor
陈友贵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhongzhong Ecological Technology Co ltd
Original Assignee
Shanghai Zhongzhong Ecological Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhongzhong Ecological Technology Co ltd filed Critical Shanghai Zhongzhong Ecological Technology Co ltd
Priority to CN202310418268.6A priority Critical patent/CN116527341A/zh
Publication of CN116527341A publication Critical patent/CN116527341A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种客户端调用后端接口鉴权授权安全方法,包括以下步骤:S1、客户端输入用户名和密码请求登录服务端;S2、服务端收到客户端的请求后,将用户名和密码传输到数据库查询是否存在此用户;S3、服务端会把生成的token信息缓存到redis缓存数据库中,并反馈token信息和refresh_token信息给客户端;S4、客户端携带token信息后请求访问服务端的资源数据;S5、服务端收到客户端请求后,查询redis缓存数据库中是否存在客户端携带的token信息;S6、服务端判断token信息是否过期;S7、服务端判断refresh_token信息是否过期;S8、客户端使用新的token信息重复进行步骤S4~S6,令客户端获得访问服务端资源数据的权限。

Description

一种客户端调用后端接口鉴权授权安全方法
技术领域
本发明涉及数据安全领域,尤其涉及一种客户端调用后端接口鉴权授权安全方法。
背景技术
随着互联网技术的飞速发展,数据安全成为了人们关注的焦点问题,同时也带来了严重的安全隐患,往往出现很多网站、app软件、系统等海量数据的泄露事件。现有的很多软件都是没有做数据安全机制处理的,SQL注入攻击、跨站点请求伪造、跨站点脚本攻击数据很容易造成数据信息被窃取、数据篡改、数据删添等状况,有必要对其进行改进。
发明内容
本发明目的是针对上述问题,提供一种操作简单、提高安全性的客户端调用后端接口鉴权授权安全方法。
为了实现上述目的,本发明的技术方案是:
一种客户端调用后端接口鉴权授权安全方法,包括以下步骤:
S1、客户端输入用户名和密码请求登录服务端;
S2、服务端收到客户端的请求后,将用户名和密码传输到数据库查询是否存在此用户;如果不存在此用户,则提示客户端非法访问,此用户不存在;如果存在此用户,会通过JWT鉴权授权认证方式,将登录凭证做数字签名,同时生成token信息和refresh_token信息;
S3、服务端会把生成的token信息缓存到redis缓存数据库中,并反馈token信息和refresh_token信息给客户端,客户端保存token信息和refresh_token信息到本地数据库中;
S4、客户端携带token信息后请求访问服务端的资源数据;
S5、服务端收到客户端请求后,通过后端程序查询redis缓存数据库中是否存在客户端携带的token信息;如果不存在,则提示客户端token信息不存在;如果存在,则进行下一步;
S6、服务端判断token信息是否过期;如果token信息没有过期,则解析token信息获取认证,认证通过后,客户端获得访问服务端资源数据的权限,将服务端的资源数据反馈给客户端;如果token信息已过期,反馈给客户端token过期提示;并且客户端用refresh_token信息继续进行请求;
S7、服务端判断refresh_token信息是否过期;如果refresh_token信息已过期,则返回给客户端refresh_token信息过期,需要重新登录的提示;如果refresh_token信息没有过期,则服务端生成新的token信息和refresh_token信息并反馈给客户端,客户端的本地数据库丢弃旧的token信息、refresh_token信息,保存新的token信息、refresh_token信息;
S8、客户端使用新的token信息重复进行步骤S4~S6,令客户端获得访问服务端资源数据的权限。
进一步的,所述客户端包括浏览器、APP。
进一步的,所述JWT鉴权授权认证方式采用Base64URL算法。
进一步的,所述JWT鉴权授权认证方式采用加密的HTTPS协议进行传输。
与现有技术相比,本发明具有的优点和积极效果是:
本发明提出了一种客户端调用后端接口鉴权授权安全方法,其将所有的接口请求使用JWT鉴权授权身份验证技术,通过非对称加密及数字签名技术,用以解决客户端调用后端接口随意被别人或别的系统调用的问题,同时其实现了对客户端访问后端资源接口的权限控制,降低了系统数据泄露、被篡改的风险,有效提高了系统的安全性,给计算机的数据安全方面作出了一定的贡献。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中客户端与服务端的框架关系图;
图2为本发明的框架流程图;
图3为token信息的生成流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
如图1至图3所示,本发明提供了一种客户端调用后端接口鉴权授权安全方法,用以解决客户端调用后端接口随意被别人或别的系统调用的问题,降低了系统数据泄露、被篡改的风险,提高了系统的安全性能;其具体操作步骤为:
首先,客户端(包括浏览器、APP等)需要输入用户名和密码登录请求服务端,服务端收到客户端的请求后,用用户名和密码到数据库查询是否存在此用户,如果不存在此用户,则提示客户端非法访问,此用户不存在,如果存在此用户,会通过JWT鉴权授权认证方式,登录凭证做数字签名,生成token和refresh_token信息,服务端会把生成的token信息缓存到redis缓存数据库中,并返回token和refresh_token信息给客户端。客户端保存token和refresh_token信息到本地。
客户端携带token,请求服务端接口资源,服务端收到客户端请求,用token通过后端程序查询redis缓存数据库中是否存在token数据信息,如果不存在,则提示客户端,token信息不存在;服务端判断token是否过期,如果token没有过期,则解析token获取认证相关信息,认证通过后,客户端才有访问后端服务资源的权限,将服务端资源返回客户端;服务端判断token已过期,返回token过期提示,并且客户端用refresh_token接着继续上一次请求。
服务端判断refresh_token是否过期,若没有过期,则生成新的token和refresh_token,并返回给客户端,客户端丢弃旧的token,保存新的token;
服务端判断refresh_token是否过期,若refresh_token已过期,则返回给客户端token过期,需要重新登录的提示。
下面详细介绍JWT鉴权授权token信息生成的步骤:
JWT有3部分组成,其分别为标头(Header)、有效载荷(Payload)和签名(Signature);
标头(Header):JWT元数据对象,alg表示签名使用的算法,typ表示令牌的类型。
有效载荷(Payload):JWT的主体内容部分,包含需要传递的数据。
请注意,默认情况下JWT是未加密的,任何人都可以解读其内容,因此不要构建隐私信息字段,存放保密信息,以防止信息泄露。
JSON对象也使用Base64URL算法转换为字符串保存。
签名哈希:签名哈希部分是对上面两部分数据签名,通过指定的算法生成哈希,以确保数据不会被篡改。
首先,需要指定一个密码(secret)。该密码仅仅为保存在服务器中,并且不能向用户公开。然后,使用标头中指定的签名算法(默认情况下为HMAC SHA256)根据以下公式生成签名。首先需要前端将自己的用户名和密码发送到后端的接口,后端接收到请求后,并登录成功后,将包含用户信息的数据作为JWT的Payload,将与JWTHeader分别进行Base64编码并拼接后签名后端将JWTToken字符串作为登录成功的结果返回给前端。前端可以将返回的结果保存在浏览器中。
在计算出签名哈希后,JWT头、有效载荷和签名哈希的三个部分组合成一个字符串,每个部分用“.”分隔,就构成整个JWT对象。
对上面两部分数据签名,需要使用base64编码后的header和payload数据,通过指定的算法生成哈希,以确保数据不会被篡改。签名需要指定一个密钥。首先需要前端将自己的用户名和密码发送到后端的接口,后端接收到请求后,并登录成功后,将包含用户信息的数据作为JWT的Payload,将与JWT Header分别进行Base64编码并拼接后签名。
Base64URL算法
如上所述,JWT头和有效载荷序列化的算法都用到了Base64URL。该算法和常见Base64算法类似,稍有差别;作为令牌的JWT可以放在URL中(例如api.example/?token=xxx)。Base64中用的三个字符是"+","/"和"=",由于在URL中有特殊含义,因此Base64URL中对他们做了替换:"="去掉,"+"用"-"替换,"/"用"_"替换,这就是Base64URL算法。
JWT的原则
JWT的原则是在服务器身份验证之后,将生成一个JSON对象并将其发送回用户;
之后,当用户与服务器通信时,客户在请求中发回JSON对象。服务器仅依赖于这个JSON对象来标识用户。为了防止用户篡改数据,服务器将在生成对象时添加签名;服务器不保存任何会话数据,即服务器变为无状态,使其更容易扩展。
JWT的用法
客户端接收服务器返回的JWT,将其存储在Cookie或localStorage中;此后,客户端将在与服务器交互中都会带JWT。如果将它存储在Cookie中,就可以自动发送,但是不会跨域,因此一般是将它放入HTTP请求的Header Authorization字段中。当跨域时,也可以将JWT被放置于POST请求的数据主体中。
JWT问题和趋势
JWT存储在客户端,不占用服务端的内存资源,JWT不仅可用于认证,还可用于信息交换,善用JWT有助于减少服务器请求数据库的次数;JWT生产的token可以包含基本信息,比如id、用户昵称、头像等信息,避免再次查库;
JWT默认不加密,但可以加密。生成原始令牌后,可以再次对其进行加密;当JWT未加密时,一些私密数据无法通过JWT传输。
JWT的最大缺点是服务器不保存会话状态,所以在使用期间不可能取消令牌或更改令牌的权限。也就是说,一旦JWT签发,在有效期内将会一直有效。
JWT本身包含认证信息,token是经过base64编码,所以可以解码,因此token加密前的对象不应该包含敏感信息,一旦信息泄露,任何人都可以获得令牌的所有权限。为了减少盗用,JWT的有效期不宜设置太长。对于某些重要操作,用户在使用时应该每次都进行身份验证;为了减少盗用和窃取,JWT不建议使用HTTP协议来传输代码,而是使用加密的HTTPS协议进行传输。
本发明提出了一种客户端调用后端接口鉴权授权安全方法,其将所有的接口请求使用JWT鉴权授权身份验证技术,通过非对称加密及数字签名技术,用以解决客户端调用后端接口随意被别人或别的系统调用的问题,同时其实现了对客户端访问后端资源接口的权限控制,降低了系统数据泄露、被篡改的风险,有效提高了系统的安全性,给计算机的数据安全方面作出了一定的贡献。

Claims (4)

1.一种客户端调用后端接口鉴权授权安全方法,其特征在于:包括以下步骤:
S1、客户端输入用户名和密码请求登录服务端;
S2、服务端收到客户端的请求后,将用户名和密码传输到数据库查询是否存在此用户;如果不存在此用户,则提示客户端非法访问,此用户不存在;如果存在此用户,会通过JWT鉴权授权认证方式,将登录凭证做数字签名,同时生成token信息和refresh_token信息;
S3、服务端会把生成的token信息缓存到redis缓存数据库中,并反馈token信息和refresh_token信息给客户端,客户端保存token信息和refresh_token信息到本地数据库中;
S4、客户端携带token信息后请求访问服务端的资源数据;
S5、服务端收到客户端请求后,通过后端程序查询redis缓存数据库中是否存在客户端携带的token信息;如果不存在,则提示客户端token信息不存在;如果存在,则进行下一步;
S6、服务端判断token信息是否过期;如果token信息没有过期,则解析token信息获取认证,认证通过后,客户端获得访问服务端资源数据的权限,将服务端的资源数据反馈给客户端;如果token信息已过期,反馈给客户端token过期提示;并且客户端用refresh_token信息继续进行请求;
S7、服务端判断refresh_token信息是否过期;如果refresh_token信息已过期,则返回给客户端refresh_token信息过期,需要重新登录的提示;如果refresh_token信息没有过期,则服务端生成新的token信息和refresh_token信息并反馈给客户端,客户端的本地数据库丢弃旧的token信息、refresh_token信息,保存新的token信息、refresh_token信息;
S8、客户端使用新的token信息重复进行步骤S4~S6,令客户端获得访问服务端资源数据的权限。
2.如权利要求1所述的客户端调用后端接口鉴权授权安全方法,其特征在于:所述客户端包括浏览器、APP。
3.如权利要求2所述的客户端调用后端接口鉴权授权安全方法,其特征在于:所述JWT鉴权授权认证方式采用Base64URL算法。
4.如权利要求3所述的客户端调用后端接口鉴权授权安全方法,其特征在于:所述JWT鉴权授权认证方式采用加密的HTTPS协议进行传输。
CN202310418268.6A 2023-04-19 2023-04-19 一种客户端调用后端接口鉴权授权安全方法 Pending CN116527341A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310418268.6A CN116527341A (zh) 2023-04-19 2023-04-19 一种客户端调用后端接口鉴权授权安全方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310418268.6A CN116527341A (zh) 2023-04-19 2023-04-19 一种客户端调用后端接口鉴权授权安全方法

Publications (1)

Publication Number Publication Date
CN116527341A true CN116527341A (zh) 2023-08-01

Family

ID=87396851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310418268.6A Pending CN116527341A (zh) 2023-04-19 2023-04-19 一种客户端调用后端接口鉴权授权安全方法

Country Status (1)

Country Link
CN (1) CN116527341A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521745A (zh) * 2023-07-04 2023-08-01 北京长亭科技有限公司 一种缓存方法以及装置
CN117972787A (zh) * 2024-02-23 2024-05-03 行至智能(北京)技术有限公司 一种基于jwt的大模型知识库访问控制方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521745A (zh) * 2023-07-04 2023-08-01 北京长亭科技有限公司 一种缓存方法以及装置
CN117972787A (zh) * 2024-02-23 2024-05-03 行至智能(北京)技术有限公司 一种基于jwt的大模型知识库访问控制方法及系统

Similar Documents

Publication Publication Date Title
CN108810029B (zh) 一种微服务架构服务间鉴权系统及优化方法
RU2718237C2 (ru) Системы и способы для аутентификации онлайнового пользователя с использованием сервера безопасной авторизации
WO2017028804A1 (zh) 一种Web实时通信平台鉴权接入方法及装置
US7757275B2 (en) One time password integration with Kerberos
US9485246B2 (en) Distributed authentication with data cloud
CN110225050B (zh) Jwt令牌的管理方法
CN109672675B (zh) 一种基于OAuth2.0的密码服务中间件的WEB认证方法
CN109362074B (zh) 一种混合模式APP中h5与服务端安全通讯的方法
CN116527341A (zh) 一种客户端调用后端接口鉴权授权安全方法
US12113903B2 (en) Long-lasting refresh tokens in self-contained format
US20160381001A1 (en) Method and apparatus for identity authentication between systems
CN111865882B (zh) 一种微服务认证方法和系统
CN106953831B (zh) 一种用户资源的授权方法、装置及系统
CN103051628A (zh) 基于服务器获取认证令牌的方法及系统
TW200402981A (en) Methods for remotely changing a communications password
CN110166453A (zh) 一种基于se芯片的接口认证方法、系统及存储介质
CN112422477A (zh) 服务认证方法、服务端、电子设备和存储介质
EP4162647B1 (en) Anonymous authentication with token redemption
Huang et al. A token-based user authentication mechanism for data exchange in RESTful API
CN111147525A (zh) 基于api网关的认证方法、系统、服务器和存储介质
US20220394039A1 (en) Seamlessly securing access to application programming interface gateways
CN116108416A (zh) 一种应用程序接口安全防护方法及系统
CN115842680A (zh) 一种网络身份认证管理方法及系统
CN114186208A (zh) 一种统一身份认证的方法及存储介质
CN114268450A (zh) 一种api接口认证方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination