CN116743702B - 一种SaaS系统的统一域名访问方法、装置及设备 - Google Patents
一种SaaS系统的统一域名访问方法、装置及设备 Download PDFInfo
- Publication number
- CN116743702B CN116743702B CN202311028814.1A CN202311028814A CN116743702B CN 116743702 B CN116743702 B CN 116743702B CN 202311028814 A CN202311028814 A CN 202311028814A CN 116743702 B CN116743702 B CN 116743702B
- Authority
- CN
- China
- Prior art keywords
- user
- domain name
- information
- project
- forwarding
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000012795 verification Methods 0.000 claims description 58
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 a third party or a trusted authority
- H04L9/3213—Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种SaaS系统的统一域名访问方法、装置及设备。所述方法包括:获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;设定访问系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对访问请求进行鉴权验证,当验证通过时,赋予用户JWT令牌并将用户匹配的信息组装成转发数据;通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将访问请求转发至目标域名地址进行响应处理,并返回响应结果,实现SaaS系统的统一域名访问和请求转发。本方法能够降低SaaS系统的运维复杂度,提高系统访问的安全性。
Description
技术领域
本申请涉及云计算技术领域,特别是涉及一种SaaS系统的统一域名访问方法、装置及设备。
背景技术
SaaS(Software as a Service,软件即服务)系统是一种软件交付模型,其通过互联网提供软件应用程序给用户使用,目前,SaaS系统多采用用户独立部署的架构,用户独立部署是指每个用户都有独立的应用实例和数据库,用户自行配置独立业务域名对SaaS系统进行访问,用户拥有自己的独立环境,数据和配置都是相互隔离的,这种方式可以提供更高的隔离性和安全性。然而,由于每个用户独立部署都需要有独立的域名,且需要进行各自的域名注册、备案、SSL(安全套接层)证书部署和DNS(域名系统)解析等工作,导致SaaS系统存在域名管理的成本和复杂度高的问题。并且,由于每个用户都使用不同的独立域名访问,用户需要记住多个不同的域名,增加了用户的认知负担,降低了整体用户体验。此外,由于每个独立域名都需要单独进行安全配置和防御,存在安全隐患,攻击者可能会利用一个域名的漏洞,导致SaaS系统存在安全性低的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低SaaS系统的域名管理复杂度,提高系统访问安全性并提升用户体验的一种SaaS系统的统一域名访问方法、装置及设备。
一种SaaS系统的统一域名访问方法,所述方法包括:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
设定访问SaaS系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,转发数据的字段包括用户id、项目id和内部域名;
通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。
在其中一个实施例中,获取SaaS系统中的用户信息和项目信息并构建用户表和项目表,包括:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表存储在MySQL数据库中;
其中,用户表用于存储SaaS系统中的所有用户信息,用户表的字段包括用户id、用户名、经过哈希加密的用户密码、项目id和token参数;
项目表用于存储SaaS系统中的所有项目信息,项目表的字段包括项目id、项目名和内部域名。
在其中一个实施例中,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证,包括:
根据Kong网关获取访问请求中的请求参数,请求参数包括用户输入的用户名和密码;
根据Kong网关调用MySQL数据库中存储的用户表和项目表对用户输入的用户名和密码进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证。
在其中一个实施例中,请求参数还包括Header头数据,当用户初次访问系统时,Header头数据中不包含token参数;当同一用户再次访问系统时,Header头数据中包含token参数。
在其中一个实施例中,根据Kong网关调用MySQL数据库中存储的用户表和项目表对用户输入的用户名和密码进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证,包括:
通过在Kong网关的配置文件中添加MySQL数据库的连接信息,将 Kong网关与MySQL数据库进行连接;
根据Kong网关调用MySQL数据库中存储的用户表对用户输入的用户名和密码进行用户匹配验证,当用户输入的密码经过哈希加密后与用户表中存储的经过哈希加密的用户密码一致时,判断用户匹配验证通过,获取匹配的用户信息;否则,判断用户匹配验证不通过,将用户重新定向至默认登录界面进行重复验证;
根据Kong网关调用MySQL数据库中存储的项目表对匹配的用户信息进行项目匹配验证,当匹配的用户信息中的项目id与项目表中的项目id一致时,判断项目匹配验证通过,并获取匹配的项目信息;否则,判断项目匹配验证不通过,将用户重新定向至默认登录界面进行重复验证;
在获取匹配的用户信息和项目信息后,根据Kong网关赋予用户JWT令牌,并根据JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存。
在其中一个实施例中,根据JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存,包括:
根据Kong网关生成的JWT令牌将用户匹配的用户信息和项目信息组装为JSON格式的转发数据,并将JWT令牌作为键名,将JSON格式的转发数据作为键值,缓存至预先构建的Redis数据库中。
在其中一个实施例中,JWT令牌还用于在同一用户再次访问系统且通过统一域名发起访问请求时,根据初次访问系统时生成的JWT令牌获取对应的转发数据。
在其中一个实施例中,通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发,包括:
通过读取转发数据中的内部域名,获取用户的目标域名地址;
当用户首次访问系统且通过统一域名进入默认登录界面发起访问请求时,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,返回响应结果,并在请求参数中的Header头数据中添加token参数;
当同一用户再次访问系统且通过统一域名发起访问请求时,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,返回响应结果,并原样返回请求参数中的Header头数据。
一种SaaS系统的统一域名访问装置,所述装置包括:
信息管理模块,用于获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
访问认证模块,用于设定访问SaaS系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,转发数据的字段包括用户id、项目id和内部域名;
请求转发模块,用于通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
设定访问SaaS系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,转发数据的字段包括用户id、项目id和内部域名;
通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。
上述一种SaaS系统的统一域名访问方法、装置及设备,相比于现有SaaS系统用户独立部署的方法,具备以下有益效果:
1、本申请将SaaS系统中的所有用户信息和项目信息存储在用户表和项目表进行统一管理,方便维护和更新用户信息和项目信息,降低了运维复杂度,提高了运维效率。
2、本申请设定了访问SaaS系统的统一域名,所有用户通过统一域名进行访问,无需每个用户单独进行域名注册和备案,降低了域名管理的复杂性和维护成本,并且,在用户首次访问系统时,基于Kong网关调用用户表和项目表对用户发起的访问请求进行集中的鉴权验证和请求转发,确保只有合法的用户可以访问SaaS系统,增强了系统的安全性。
3、本申请通过在用户首次访问时进行集中的鉴权认证,并根据Kong网关赋予用户的JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存,在用户后续访问时,用户可直接根据JWT令牌获取转发数据并进行请求转发,减少了重复的认证和请求处理步骤,提高了系统的性能和响应速度。
附图说明
图1为一个实施例中一种SaaS系统的统一域名访问方法的流程示意图;
图2为一个实施例中在用户访问系统时进行鉴权验证和请求转发的流程示意图;
图3为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种SaaS系统的统一域名访问方法,包括以下步骤:
步骤S1,获取SaaS系统中的用户信息和项目信息并构建用户表和项目表。
步骤S2,设定访问SaaS系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT(Json Web Token,Json格式的互联网令牌)令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,转发数据的字段包括用户id、项目id和内部域名。
步骤S3,通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。
在其中一个实施例中,获取SaaS系统中的用户信息和项目信息并构建用户表和项目表,包括:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表存储在MySQL数据库中;其中,MySQL数据库一个关系型数据库管理系统;
其中,用户表用于存储SaaS系统中的所有用户信息,用户表的字段包括用户id、用户名、经过哈希加密的用户密码、项目id和token(令牌)参数;其中,用户id是用户的唯一标识,用户表中的项目id用于将用户表关联至对应的项目表,token参数为经过加密的鉴权密钥,用于对用户进行认证;
项目表用于存储SaaS系统中的所有项目信息,项目表的字段包括项目id、项目名和内部域名;其中,项目表中的项目id是项目的唯一标识;
可以理解,本申请通过构建用户表和项目表,实现了统一管理用户信息和项目信息的目的,并且,在用户表中,用户密码采用哈希算法进行加密存储,这样即使数据库被攻击,也无法获取用户的明文密码。同时,用户的鉴权密钥也经过加密处理,确保传输过程中的安全性。此外,在项目表中部署内部域名可以增加系统的安全性,内部域名通常是不公开的,只在内部网络中使用,这样可以减少外部攻击者的访问和入侵可能性。
在一个具体的实施例中,基于上述一种SaaS系统的统一域名访问方法,在用户或客户端访问系统时进行鉴权验证和请求转发的流程如图2所示,包括:
首先,设定访问SaaS系统的统一域名(例如:common. saas.com),当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求。其中,默认登录界面(例如:login.html)部署在独立的通用服务器中,并不属于任何用户环境,这样设计可以减少对用户环境的请求负载,提高了SaaS系统的稳定性和性能,并且,通过将默认登录页面独立部署,当SaaS系统遭受攻击或异常情况时,用户环境将不受影响,保障用户数据的安全。
然后,根据Kong网关使用Header头(即请求头)参数获取函数(例如:HeaderParamPlugin ()函数)获取访问请求中的请求参数,包括用户输入的用户名、密码以及Header头数据,并将获取得到的请求参数输出到日志中,用于调试和监控。其中,当用户初次访问系统时,Header头数据中不包含token参数;当同一用户再次访问系统时,Header头数据中包含token参数。即如果Header头数据中的token参数为空,表示用户未登录或登录信息无效,在这种情况下跳转到默认登录页面(login.html),引导用户进行重新登录。如果Header头数据中的token参数不为空,表示用户已经登录,进行后续的鉴权认证和请求转发。
再根据Kong网关调用MySQL数据库中存储的用户表和项目表对用户输入的用户名和密码进行鉴权验证。具体地,通过在Kong网关的配置文件中添加MySQL数据库的连接信息(例如数据库地址、端口号、用户名、密码等),将 Kong网关与MySQL数据库进行连接。
然后,根据Kong网关调用MySQL数据库中存储的用户表对用户输入的用户名和密码进行用户匹配验证,当用户输入的密码经过哈希加密后与用户表中存储的经过哈希加密的用户密码一致时,判断用户匹配验证通过,获取匹配的用户信息;否则,判断用户匹配验证不通过,返回错误或者将用户重新定向至默认登录界面进行重复验证。
在获取当前用户匹配的用户信息之后,进一步根据Kong网关调用MySQL数据库中存储的项目表对匹配的用户信息进行项目匹配验证,当匹配的用户信息中的项目id与项目表中的项目id一致时,判断项目匹配验证通过,并获取匹配的项目信息;否则,判断项目匹配验证不通过,将用户重新定向至默认登录界面进行重复验证。
在获取匹配的用户信息和项目信息后,根据Kong网关赋予用户JWT令牌,并根据JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存。其中,JWT令牌是根据不同用户的实际业务需求生成特定的字符串,其包含一组经过Base64编码的JSON数据(一种轻量级的数据交换格式),其中包括用户ID、过期时间等信息。这样的JWT 令牌还可以用于在同一用户再次访问系统且通过统一域名发起访问请求时,根据初次访问系统时生成的JWT令牌可以快速获取对应的转发数据,避免用户频繁查询数据库,提高系统性能和响应速度。
具体地,根据Kong网关生成的JWT令牌将用户匹配的用户信息和项目信息组装为JSON格式的转发数据,并将JWT令牌作为键名,将JSON格式的转发数据作为键值,缓存至预先构建的Redis(一种高性能的开源内存数据存储系统)数据库中。进一步地,为了保证缓存数据的时效性,可以设置适当的过期时间,让Redis数据库在一定时间后自动清除这些缓存数据。其中,JSON格式的转发数据的字段包括用户id、项目id和内部域名,具体表示为:{"user_id": "xxx","project_id": "xxx","domain": "xxxx"}。
最后,通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。具体步骤包括:
通过读取转发数据中的内部域名,可以获取用户的目标域名地址;当用户首次访问系统且通过统一域名进入默认登录界面发起访问请求时,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,返回响应结果,并在请求参数中的Header头数据中添加token参数;当同一用户再次访问系统且通过统一域名发起访问请求时,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,返回响应结果,并原样返回请求参数中的Header头数据。
可以理解,Kong网关能够将用户访问请求代理转发至对应目标域名地址,并在转发请求的过程中完成用户的身份鉴权。同时,根据业务配置,可以在响应中添加JWT令牌等信息,以满足特定业务需求。这样,统一域名访问的功能就得到了完善和实现。
进一步地,本申请所提供的一种SaaS系统的统一域名访问方法还兼容独立域名访问配置,通过兼容独立域名访问配置可以实现在Kong网关中同时处理统一域名和独立域名的请求,并根据不同的请求来源进行相应的处理和转发,提高了SaaS系统的灵活性和可扩展性。兼容独立域名访问配置的具体步骤包括:
当用户通过独立域名(例如:`a.saas.com`)发起访问请求时,根据Kong网关配置相应的路由规则,将独立域名的请求准发到对应的目标域名地址进行响应处理,并对独立域名请求进行JWT验证,并将JWT令牌添加到响应中,并将响应结果返回至用户。
应该理解的是,虽然图1-图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种SaaS系统的统一域名访问装置,所述装置包括:
信息管理模块,用于获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
访问认证模块,用于设定访问SaaS系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,转发数据的字段包括用户id、项目id和内部域名;
请求转发模块,用于通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。
关于SaaS系统的统一域名访问装置的具体限定可以参见上文中对于SaaS系统的统一域名访问方法的限定,在此不再赘述。上述SaaS系统的统一域名访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种SaaS系统的统一域名访问方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
设定访问SaaS系统的统一域名,当用户首次访问系统时,通过统一域名进入默认登录界面发起访问请求,根据Kong网关调用用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,转发数据的字段包括用户id、项目id和内部域名;
通过读取转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (6)
1.一种SaaS系统的统一域名访问方法,其特征在于,所述方法包括:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
设定访问SaaS系统的统一域名,当用户首次访问系统时,通过所述统一域名进入默认登录界面发起访问请求,根据Kong网关调用所述用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,所述JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,所述转发数据的字段包括用户id、项目id和内部域名;
通过读取所述转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发;
所述JWT令牌还用于在同一用户再次访问系统且通过统一域名发起访问请求时,根据初次访问系统时生成的JWT令牌获取对应的转发数据;
根据Kong网关调用所述用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证,包括:
根据Kong网关获取所述访问请求中的请求参数,所述请求参数包括用户输入的用户名和密码;
根据Kong网关调用MySQL数据库中存储的用户表和项目表对用户输入的用户名和密码进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;
根据Kong网关调用MySQL数据库中存储的用户表和项目表对用户输入的用户名和密码进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证,包括:
通过在Kong网关的配置文件中添加MySQL数据库的连接信息,将 Kong网关与MySQL数据库进行连接;
根据Kong网关调用MySQL数据库中存储的用户表对用户输入的用户名和密码进行用户匹配验证,当用户输入的密码经过哈希加密后与用户表中存储的经过哈希加密的用户密码一致时,判断用户匹配验证通过,获取匹配的用户信息;否则,判断用户匹配验证不通过,将用户重新定向至默认登录界面进行重复验证;
根据Kong网关调用MySQL数据库中存储的项目表对所述匹配的用户信息进行项目匹配验证,当所述匹配的用户信息中的项目id与项目表中的项目id一致时,判断项目匹配验证通过,并获取匹配的项目信息;否则,判断项目匹配验证不通过,将用户重新定向至默认登录界面进行重复验证;
在获取所述匹配的用户信息和项目信息后,根据Kong网关赋予用户JWT令牌,并根据所述JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存;
通过读取所述转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发,包括:
通过读取所述转发数据中的内部域名,获取用户的目标域名地址;
当用户首次访问系统且通过统一域名进入默认登录界面发起访问请求时,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,返回响应结果,并在请求参数中的Header头数据中添加token参数;
当同一用户再次访问系统且通过统一域名发起访问请求时,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,返回响应结果,并原样返回请求参数中的Header头数据。
2.根据权利要求1所述的方法,其特征在于,获取SaaS系统中的用户信息和项目信息并构建用户表和项目表,包括:
获取SaaS系统中的用户信息和项目信息并构建用户表和项目表存储在MySQL数据库中;
其中,所述用户表用于存储SaaS系统中的所有用户信息,所述用户表的字段包括用户id、用户名、经过哈希加密的用户密码、项目id和token参数
所述项目表用于存储SaaS系统中的所有项目信息,所述项目表的字段包括项目id、项目名和内部域名。
3.根据权利要求1所述的方法,其特征在于,所述请求参数还包括Header头数据,当用户初次访问系统时,所述Header头数据中不包含token参数;当同一用户再次访问系统时,所述Header头数据中包含token参数。
4.根据权利要求1所述的方法,其特征在于,根据所述JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存,包括:
根据Kong网关生成的JWT令牌将用户匹配的用户信息和项目信息组装为JSON格式的转发数据,并将所述JWT令牌作为键名,将所述JSON格式的转发数据作为键值,缓存至预先构建的Redis数据库中。
5.一种SaaS系统的统一域名访问装置,其特征在于,所述装置包括:
信息管理模块,用于获取SaaS系统中的用户信息和项目信息并构建用户表和项目表;
访问认证模块,用于设定访问SaaS系统的统一域名,当用户首次访问系统时,通过所述统一域名进入默认登录界面发起访问请求,根据Kong网关调用所述用户表和项目表对用户发起的访问请求进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;其中,所述JWT令牌用于将用户匹配的用户信息和项目信息组装成转发数据进行缓存,所述转发数据的字段包括用户id、项目id和内部域名;所述JWT令牌还用于在同一用户再次访问系统且通过统一域名发起访问请求时,根据初次访问系统时生成的JWT令牌获取对应的转发数据;
请求转发模块,用于通过读取所述转发数据中的内部域名,获取用户的目标域名地址,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,并将响应结果返回至用户,实现SaaS系统的统一域名访问和请求转发;
所述访问认证模块还用于:根据Kong网关获取所述访问请求中的请求参数,所述请求参数包括用户输入的用户名和密码;
根据Kong网关调用MySQL数据库中存储的用户表和项目表对用户输入的用户名和密码进行鉴权验证,当验证通过时,获取用户匹配的用户信息和项目信息,并根据Kong网关赋予用户JWT令牌;否则,将用户重新定向至默认登录界面进行重复验证;具体地,通过在Kong网关的配置文件中添加MySQL数据库的连接信息,将 Kong网关与MySQL数据库进行连接;
根据Kong网关调用MySQL数据库中存储的用户表对用户输入的用户名和密码进行用户匹配验证,当用户输入的密码经过哈希加密后与用户表中存储的经过哈希加密的用户密码一致时,判断用户匹配验证通过,获取匹配的用户信息;否则,判断用户匹配验证不通过,将用户重新定向至默认登录界面进行重复验证;
根据Kong网关调用MySQL数据库中存储的项目表对所述匹配的用户信息进行项目匹配验证,当所述匹配的用户信息中的项目id与项目表中的项目id一致时,判断项目匹配验证通过,并获取匹配的项目信息;否则,判断项目匹配验证不通过,将用户重新定向至默认登录界面进行重复验证;
在获取所述匹配的用户信息和项目信息后,根据Kong网关赋予用户JWT令牌,并根据所述JWT令牌将用户匹配的用户信息和项目信息组装成转发数据进行缓存;
所述请求转发模块还用于:通过读取所述转发数据中的内部域名,获取用户的目标域名地址;当用户首次访问系统且通过统一域名进入默认登录界面发起访问请求时,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,返回响应结果,并在请求参数中的Header头数据中添加token参数;当同一用户再次访问系统且通过统一域名发起访问请求时,根据Kong网关将用户的访问请求转发至所述目标域名地址进行响应处理,返回响应结果,并原样返回请求参数中的Header头数据。
6.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311028814.1A CN116743702B (zh) | 2023-08-16 | 2023-08-16 | 一种SaaS系统的统一域名访问方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311028814.1A CN116743702B (zh) | 2023-08-16 | 2023-08-16 | 一种SaaS系统的统一域名访问方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116743702A CN116743702A (zh) | 2023-09-12 |
CN116743702B true CN116743702B (zh) | 2024-02-27 |
Family
ID=87901617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311028814.1A Active CN116743702B (zh) | 2023-08-16 | 2023-08-16 | 一种SaaS系统的统一域名访问方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116743702B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2008100574A4 (en) * | 2008-06-23 | 2008-07-24 | Fmt Worldwide Pty Ltd | Authentication system |
CN102378170A (zh) * | 2010-08-27 | 2012-03-14 | 中国移动通信有限公司 | 一种鉴权及业务调用方法、装置和系统 |
CN108512784A (zh) * | 2018-06-21 | 2018-09-07 | 珠海宏桥高科技有限公司 | 基于网关路由转发的鉴权认证方法 |
EP3754947A1 (en) * | 2019-06-19 | 2020-12-23 | Netscout Systems, Inc. | System and method for identifying ott applications and services |
CN113055367A (zh) * | 2021-03-08 | 2021-06-29 | 浪潮云信息技术股份公司 | 一种微服务网关鉴权的实现方法及系统 |
CN113923020A (zh) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | SaaS多租户架构的微服务鉴权方法、装置、及设备 |
CN114218510A (zh) * | 2021-12-17 | 2022-03-22 | 中国建设银行股份有限公司 | 业务页面显示方法、装置和设备 |
WO2022126968A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
CN114726632A (zh) * | 2022-04-14 | 2022-07-08 | 天工信创(广州)信息科技有限公司 | 一种登录方法、装置、存储介质及处理器 |
CN114969707A (zh) * | 2021-02-20 | 2022-08-30 | 京东科技控股股份有限公司 | 一种单点登录方法、装置、设备及介质 |
CN115484045A (zh) * | 2022-07-27 | 2022-12-16 | 国富瑞数据系统有限公司 | 一种基于api网关的统一身份认证方法及系统 |
CN116366306A (zh) * | 2023-03-08 | 2023-06-30 | 唯阜德(武汉)科技有限公司 | 一种SaaS系统登录方法、装置以及处理设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11516260B2 (en) * | 2021-02-03 | 2022-11-29 | Cisco Technology, Inc. | Selective policy-driven interception of encrypted network traffic utilizing a domain name service and a single-sign on service |
US20220368528A1 (en) * | 2021-05-14 | 2022-11-17 | Microsoft Technology Licensing, Llc | Establishing authentic remote presence using tokens |
-
2023
- 2023-08-16 CN CN202311028814.1A patent/CN116743702B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2008100574A4 (en) * | 2008-06-23 | 2008-07-24 | Fmt Worldwide Pty Ltd | Authentication system |
CN102378170A (zh) * | 2010-08-27 | 2012-03-14 | 中国移动通信有限公司 | 一种鉴权及业务调用方法、装置和系统 |
CN108512784A (zh) * | 2018-06-21 | 2018-09-07 | 珠海宏桥高科技有限公司 | 基于网关路由转发的鉴权认证方法 |
EP3754947A1 (en) * | 2019-06-19 | 2020-12-23 | Netscout Systems, Inc. | System and method for identifying ott applications and services |
WO2022126968A1 (zh) * | 2020-12-15 | 2022-06-23 | 平安科技(深圳)有限公司 | 微服务访问方法、装置、设备及存储介质 |
CN114969707A (zh) * | 2021-02-20 | 2022-08-30 | 京东科技控股股份有限公司 | 一种单点登录方法、装置、设备及介质 |
CN113055367A (zh) * | 2021-03-08 | 2021-06-29 | 浪潮云信息技术股份公司 | 一种微服务网关鉴权的实现方法及系统 |
CN113923020A (zh) * | 2021-10-09 | 2022-01-11 | 天翼物联科技有限公司 | SaaS多租户架构的微服务鉴权方法、装置、及设备 |
CN114218510A (zh) * | 2021-12-17 | 2022-03-22 | 中国建设银行股份有限公司 | 业务页面显示方法、装置和设备 |
CN114726632A (zh) * | 2022-04-14 | 2022-07-08 | 天工信创(广州)信息科技有限公司 | 一种登录方法、装置、存储介质及处理器 |
CN115484045A (zh) * | 2022-07-27 | 2022-12-16 | 国富瑞数据系统有限公司 | 一种基于api网关的统一身份认证方法及系统 |
CN116366306A (zh) * | 2023-03-08 | 2023-06-30 | 唯阜德(武汉)科技有限公司 | 一种SaaS系统登录方法、装置以及处理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116743702A (zh) | 2023-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10728235B2 (en) | System and method for mobile single sign-on integration | |
CN111488598B (zh) | 访问控制方法、装置、计算机设备和存储介质 | |
CN109067728B (zh) | 应用程序接口的访问控制方法、装置、服务器及存储介质 | |
US8978100B2 (en) | Policy-based authentication | |
US9639678B2 (en) | Identity risk score generation and implementation | |
RU2018110831A (ru) | Блокчейн-верификация сервиса сетевой безопасности | |
JP2019185775A (ja) | ブロックチェーン基盤の権限認証方法、端末及びこれを利用したサーバ | |
US11792179B2 (en) | Computer readable storage media for legacy integration and methods and systems for utilizing same | |
JP2016540405A (ja) | プライベートデータを保護するセキュアプロキシ | |
US20200084190A1 (en) | Public key pinning for private networks | |
US20210135869A1 (en) | Using ip heuristics to protect access tokens from theft and replay | |
Fremantle et al. | Oauthing: privacy-enhancing federation for the internet of things | |
JP2017146849A (ja) | 情報処理システム、情報処理装置、サーバ装置、情報処理システムの制御方法、及びプログラム | |
CN109829271B (zh) | 鉴权方法及相关产品 | |
US11977620B2 (en) | Attestation of application identity for inter-app communications | |
CN111147235B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
CN116743702B (zh) | 一种SaaS系统的统一域名访问方法、装置及设备 | |
Khaydaraliev et al. | Blockchain-enabled access control with fog nodes for independent IoTs | |
Burdzovic et al. | IoT Penetration Testing: Security analysis of a car dongle | |
KaradaŞ et al. | IBAM: IPFS and Blockchain based Authentication for MQTT protocol in IoT | |
US12107833B2 (en) | Configurable proxying application program interface façade service | |
Chopra et al. | JSON Web Token Jumble Render Technique based authentication scheme for android applications | |
Sanghani et al. | A Survey on Leveraging Blockchain for IoT Security | |
CN117811812A (zh) | 基于边缘自治网络的物联网设备接入认证方法及装置 | |
CN118590302A (zh) | 一种基于密码令牌的单点登录方法及系统 |
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 |