CN114070589A - 一种简化JWT后的OAuth2.0认证方法 - Google Patents
一种简化JWT后的OAuth2.0认证方法 Download PDFInfo
- Publication number
- CN114070589A CN114070589A CN202111291997.7A CN202111291997A CN114070589A CN 114070589 A CN114070589 A CN 114070589A CN 202111291997 A CN202111291997 A CN 202111291997A CN 114070589 A CN114070589 A CN 114070589A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- authorization
- resource
- jwt
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000013475 authorization Methods 0.000 claims abstract description 53
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种简化JWT后的OAuth2.0认证方法,涉及认证服务技术领域,其实现流程包括:(A)客户端请求资源服务器授权;(B)客户端获取到资源服务器的授权后,得到授权凭据;(C)客户端拿着授权凭据去授权服务器获取访问令牌;(D)授权服务器生成一个JWT,同时生成一个UUID,并将UUID和JWT存储在Redis中;(E)授权服务器向客户端颁发UUID作为访问凭据;(F)客户端携带UUID访问资源服务器下被保护的资源;(G)授权服务器或资源服务器拿着UUID去Redis中兑换JWT,解析JWT,进行权限认证;(H)认证通过后,资源服务开放受保护的资源给客户端,供客户端访问。本发明可以解决单点登录使用场景中因JWT过长导致的http header大小超限而引起的请求失效问题。
Description
技术领域
本发明涉及认证服务技术领域,具体的说是一种简化JWT后的OAuth2.0认证方法。
背景技术
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
JWT(Json web token)是为了在网络应用环境间传递声明而执行的一种基于Json的开放标准(RFC 7519),该token被设计为紧凑且安全,特别使用分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其他业务逻辑所必须的声明信息,该token可以直接被用于认证,也可以被加密。
UUID,全程Universally Unique Identifier,意为通用唯一标识码。UUID是一个软件构建标准,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。
OAuth是一个开发标准,在这个标准下允许用户让第三方应用访问该用户在某一网站上存储的私密的资源数据,无需将用户名和密码提供给第三方应用。OAuth2.0是OAuth协议的第二个版本,关注客户端开发者的简易性,同时为Web应用、桌面应用和手机等设备提供专门的认证流程。
在微服务框架中,微服务实例之间往往是使用http协议进行数据传递,而认证所需要的token信息通常是放在http header中。http header的大小是有限制的,默认条件下tomcat(8.0版本)允许的http请求header的最大值是8024个字节(8KB),然而JWT的token一般都很大(平均6KB),所以再加上其他的headers信息后,很容易造成整个header超限,导致请求失败(Bad Request),系统功能异常,用户使用体验差。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种简化JWT后的OAuth2.0认证方法,解决单点登录使用场景中因JWT过长导致的http header大小超限而引起的请求失效问题。
本发明的一种简化JWT后的OAuth2.0认证方法,解决上述技术问题采用的技术方案如下:
一种简化JWT后的OAuth2.0认证方法,其特征在于,其实现流程包括:
(A)客户端请求资源服务器授权;
(B)客户端获取到资源服务器的授权后,得到授权凭据;
(C)客户端拿着授权凭据去授权服务器获取访问令牌;
(D)授权服务器生成一个JWT,同时生成一个UUID,并将UUID和JWT存储在Redis中;
(E)授权服务器向客户端颁发UUID作为访问凭据;
(F)客户端携带UUID访问资源服务器下被保护的资源;
(G)授权服务器或资源服务器拿着UUID去Redis中兑换JWT,解析JWT,进行权限认证;
(H)认证通过后,资源服务开放受保护的资源给客户端,供客户端访问,否则返回“404”,即“无权限访问”。
执行步骤(A)时,客户端可以直接向资源所有者Resource Owner提出授权请求,也可以通过授权服务器作为中间人间接向资源服务器提出授权请求。
具体的,所涉及资源所有者Resource Owner是一个可以授予访问某个受保护的资源权限的实体;
当资源所有者Resource Owner是一个人时,它就被称为终端用户。
具体的,所涉及客户端得到授权凭据后,携带账户和密码去授权服务器进行用户身份认证,授权服务器从Redis中获取用户信息进行身份比对,若用户身份合法,授权服务器生成一个JWT,同时生成一个UUID。
更具体的,所涉及授权服务器生成的JWT不直接颁发给客户端,而是连同生成的UUID存储在Redis中。
具体的,所涉及客户端用于访问资源服务器下受保护的资源,其可以是一个应用程序、一个服务器程序、一个桌面程序、或者其他的执行设备。
优选的,所涉及客户端是浏览器、Android APP、IOS APP或微信小程序。
更具体的,所涉及资源服务器用于托管受保护的资源,并对携带访问令牌的请求做出响应。
更具体的,在客户端已经成功获取资源服务器认证、授权后,授权服务器向客户端颁发访问令牌。
本发明的一种简化JWT后的OAuth2.0认证方法,与现有技术相比具有的有益效果是:
(1)本发明通过使用UUID替换JWT来减少Token在http header中的资源占用,节省了宽带资源,同时解决了因token过长导致的header大小超过服务器限制而引起的请求失效问题;
(2)本发明可以降低请求失效风险、增强系统的健壮性、提高用户体验度。
附图说明
附图1是本发明的实现流程图。
具体实施方式
为使本发明的技术方案、解决的技术问题和技术效果更加清楚明白,以下结合具体实施例,对本发明的技术方案进行清楚、完整的描述。
实施例一:
结合附图1,本实施例提出一种简化JWT后的OAuth2.0认证方法,其特征在于,其实现流程包括:
(A)客户端Client请求资源服务器Resource Server授权。
客户端Client用于访问资源服务器Resource Server下受保护的资源,其可以是一个应用程序、一个服务器程序、一个桌面程序、或者其他的执行设备,如浏览器、AndroidAPP、IOS APP或微信小程序。
执行步骤(A)时,客户端Client可以直接向资源所有者Resource Owner提出授权请求,也可以通过授权服务器Authorization Server作为中间人间接向资源服务器Resource Server提出授权请求。
所涉及资源所有者Resource Owner是一个可以授予访问某个受保护的资源权限的实体;
当资源所有者Resource Owner是一个人时,它就被称为终端用户。
(B)客户端Client获取到资源服务器Resource Server的授权后,得到授权凭据。
资源服务器Resource Server用于托管受保护的资源,并对携带访问令牌的请求做出响应。
(C)客户端Client拿着授权凭据去授权服务器Authorization Server获取访问令牌。这一过程中,客户端Client具体携带账户和密码去授权服务器Authorization Server进行用户身份认证,授权服务器Authorization Server从Redis中获取用户信息进行身份比对。
(D)若用户身份合法,授权服务器Authorization Server生成一个JWT,同时生成一个UUID,并将UUID和JWT存储在Redis中。
这一过程中需要注意的是,授权服务器Authorization Server生成的JWT不直接颁发给客户端Client,而是连同生成的UUID存储在Redis中。
(E)授权服务器Authorization Server向客户端Client颁发UUID作为访问凭据。
(F)客户端Client携带UUID访问资源服务器Resource Server下被保护的资源。
(G)授权服务器Authorization Server或资源服务器Resource Server拿着UUID去Redis中兑换JWT,解析JWT,进行权限认证。
(H)认证通过后,资源服务开放受保护的资源给客户端Client,供客户端Client访问,否则返回“404”,即“无权限访问”。
综上可知,采用本发明的一种简化JWT后的OAuth2.0认证方法,通过使用UUID替换JWT来减少Token在http header中的资源占用,节省了宽带资源,同时解决了因token过长导致的header大小超过服务器限制而引起的请求失效问题。
以上应用具体个例对本发明的原理及实施方式进行了详细阐述,这些实施例只是用于帮助理解本发明的核心技术内容。基于本发明的上述具体实施例,本技术领域的技术人员在不脱离本发明原理的前提下,对本发明所作出的任何改进和修饰,皆应落入本发明的专利保护范围。
Claims (9)
1.一种简化JWT后的OAuth2.0认证方法,其特征在于,其实现流程包括:
(A)客户端请求资源服务器授权;
(B)客户端获取到资源服务器的授权后,得到授权凭据;
(C)客户端拿着授权凭据去授权服务器获取访问令牌;
(D)授权服务器生成一个JWT,同时生成一个UUID,并将UUID和JWT存储在Redis中;
(E)授权服务器向客户端颁发UUID作为访问凭据;
(F)客户端携带UUID访问资源服务器下被保护的资源;
(G)授权服务器或资源服务器拿着UUID去Redis中兑换JWT,解析JWT,进行权限认证;
(H)认证通过后,资源服务开放受保护的资源给客户端,供客户端访问,否则返回“404”,即“无权限访问”。
2.根据权利要求1所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,客户端可以直接向资源所有者Resource Owner提出授权请求,也可以通过授权服务器作为中间人间接向资源服务器提出授权请求。
3.根据权利要求2所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,所述资源所有者Resource Owner是一个可以授予访问某个受保护的资源权限的实体;
当资源所有者Resource Owner是一个人时,它就被称为终端用户。
4.根据权利要求1所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,客户端得到授权凭据后,携带账户和密码去授权服务器进行用户身份认证,授权服务器从Redis中获取用户信息进行身份比对,若用户身份合法,授权服务器生成一个JWT,同时生成一个UUID。
5.根据权利要求4所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,授权服务器生成的JWT不直接颁发给客户端,而是连同生成的UUID存储在Redis中。
6.根据权利要求1所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,所述客户端用于访问资源服务器下受保护的资源,其可以是一个应用程序、一个服务器程序、一个桌面程序、或者其他的执行设备。
7.根据权利要求6所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,所述客户端是浏览器、Android APP、IOS APP或微信小程序。
8.根据权利要求6所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,所述资源服务器用于托管受保护的资源,并对携带访问令牌的请求做出响应。
9.根据权利要求8所述的一种简化JWT后的OAuth2.0认证方法,其特征在于,在客户端已经成功获取资源服务器认证、授权后,所述授权服务器向客户端颁发访问令牌。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111291997.7A CN114070589B (zh) | 2021-11-03 | 2021-11-03 | 一种简化JWT后的OAuth2.0认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111291997.7A CN114070589B (zh) | 2021-11-03 | 2021-11-03 | 一种简化JWT后的OAuth2.0认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114070589A true CN114070589A (zh) | 2022-02-18 |
CN114070589B CN114070589B (zh) | 2024-10-15 |
Family
ID=80236544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111291997.7A Active CN114070589B (zh) | 2021-11-03 | 2021-11-03 | 一种简化JWT后的OAuth2.0认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114070589B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174200A (zh) * | 2022-06-30 | 2022-10-11 | 青岛海信网络科技股份有限公司 | 一种第三方认证方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067338A (zh) * | 2011-10-20 | 2013-04-24 | 上海贝尔股份有限公司 | 第三方应用的集中式安全管理方法和系统及相应通信系统 |
WO2013180356A1 (ko) * | 2012-05-30 | 2013-12-05 | 모다정보통신 주식회사 | M2m 통신에서 리소스 접근 권한 설정 방법 |
CN110225050A (zh) * | 2019-06-20 | 2019-09-10 | 四川长虹电器股份有限公司 | Jwt令牌的管理方法 |
CN110535851A (zh) * | 2019-08-27 | 2019-12-03 | 浪潮云信息技术有限公司 | 一种基于oauth2协议的用户认证系统 |
CN113065115A (zh) * | 2021-03-18 | 2021-07-02 | 中睿信数字技术有限公司 | 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法 |
US20210328807A1 (en) * | 2020-04-15 | 2021-10-21 | Salesforce.Com, Inc. | Stateless mutual authentication between services |
-
2021
- 2021-11-03 CN CN202111291997.7A patent/CN114070589B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103067338A (zh) * | 2011-10-20 | 2013-04-24 | 上海贝尔股份有限公司 | 第三方应用的集中式安全管理方法和系统及相应通信系统 |
WO2013180356A1 (ko) * | 2012-05-30 | 2013-12-05 | 모다정보통신 주식회사 | M2m 통신에서 리소스 접근 권한 설정 방법 |
CN110225050A (zh) * | 2019-06-20 | 2019-09-10 | 四川长虹电器股份有限公司 | Jwt令牌的管理方法 |
CN110535851A (zh) * | 2019-08-27 | 2019-12-03 | 浪潮云信息技术有限公司 | 一种基于oauth2协议的用户认证系统 |
US20210328807A1 (en) * | 2020-04-15 | 2021-10-21 | Salesforce.Com, Inc. | Stateless mutual authentication between services |
CN113065115A (zh) * | 2021-03-18 | 2021-07-02 | 中睿信数字技术有限公司 | 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法 |
Non-Patent Citations (1)
Title |
---|
KESON Z: "从零开始超详细的Spring Security OAuth2.0实现分布式系统授权(注册中心+网关+认证授权服务(JWT令牌验证)+资源调用服务)", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_44009447/article/details/112880262> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174200A (zh) * | 2022-06-30 | 2022-10-11 | 青岛海信网络科技股份有限公司 | 一种第三方认证方法、装置及设备 |
CN115174200B (zh) * | 2022-06-30 | 2024-03-08 | 青岛海信网络科技股份有限公司 | 一种第三方认证方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114070589B (zh) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7382753B2 (ja) | セキュリティーアサーションマークアップランゲージ(saml)サービスプロバイダー起点のシングルサインオンのための方法及びプログラム | |
US10681028B2 (en) | Controlling access to resources on a network | |
CN107948167B (zh) | 一种单点登录的方法和装置 | |
US10200361B2 (en) | System and method for integrating a transactional middleware platform with a centralized access manager for single sign-on in an enterprise-level computing environment | |
US10484385B2 (en) | Accessing an application through application clients and web browsers | |
US9391978B2 (en) | Multiple access authentication | |
CN107534652B (zh) | 对基于云的服务的安全访问方法、系统和计算机可读介质 | |
JP5530562B2 (ja) | ドメインネームシステムレコードのアップデートの検証 | |
US10122697B2 (en) | Native authentication experience with failover | |
KR101795592B1 (ko) | 기업용 클라우드 서비스의 접근 통제 방법 | |
US10091179B2 (en) | User authentication framework | |
CN115021991A (zh) | 未经管理的移动设备的单点登录 | |
WO2014082555A1 (zh) | 登录方法、装置及开放平台系统 | |
CN111698250A (zh) | 访问请求处理方法、装置、电子设备及计算机存储介质 | |
CN111431920A (zh) | 一种基于动态令牌的安全控制方法及系统 | |
CN111950001A (zh) | 一种基于app中h5应用的权限控制方法及系统 | |
WO2023093500A1 (zh) | 一种访问验证方法及装置 | |
CN114205112B (zh) | 一种云端mqtt访问权限控制方法 | |
CN114070589B (zh) | 一种简化JWT后的OAuth2.0认证方法 | |
CN108600266B (zh) | 一种声明过滤认证方法及认证系统 | |
CN113472735B (zh) | 一种大数据服务单点登录方法、装置及存储介质 | |
CN117093977A (zh) | 用户认证方法、系统、装置、存储介质以及电子设备 | |
CN115190483B (zh) | 一种访问网络的方法及装置 | |
CN117411724B (zh) | 一种零信任应用网关多应用跨域共享凭据的方法及装置 | |
CN117762601B (zh) | 一种hydra服务调用方法、系统、终端及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |