一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

多租户鉴权方法、装置、设备及存储介质与流程

2023-02-19 08:51:29 来源:中国专利 TAG:


1.本发明涉及信息处理技术领域,尤其涉及一种多租户鉴权方法、装置、设备及存储介质。


背景技术:

2.it云平台作为集团的it部门核心管理系统,需要对接大量的子公司的业务,每个子公司作为一个租户,需要进行数据隔离。而集团管理员会拥有多个租户的权限,常规方案鉴权无法共享,需要多次登录,造成使用不便。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提出一种多租户鉴权方法、装置、设备及存储介质,旨在解决现有技术中拥有多个租户权限的用户,需要进行多次登录的技术问题。
5.为实现上述目的,本发明提供一种多租户鉴权方法,所述多租户鉴权方法包括以下步骤:
6.在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;
7.在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;
8.在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
9.可选地,所述在身份鉴权成功时,生成与所述用户对应的租户列表和令牌,包括:
10.在身份鉴权成功时,在所述公共租户下查找与所述当前用户对应的用户信息;
11.根据所述用户信息生成与所述当前用户对应的租户列表和令牌。
12.可选地,所述根据所述用户信息生成与所述当前用户对应的租户列表和令牌,包括:
13.根据所述用户信息生成与所述当前用户对应的令牌,并根据所述用户信息确定所述当前用户具有访问权限的待选租户;
14.获取所述待选租户对应的待选租户信息,并根据所述待选租户信息生成租户列表。
15.可选地,所述根据所述待选租户信息生成租户列表,包括:
16.根据所述待选租户信息确定所述待选租户对应的待选租户标识;
17.根据所述待选租户标识对所述待选租户进行排序,得到排序后的待选租户;
18.根据排序后的待选租户和所述待选租户标识生成租户列表。
19.可选地,所述生成与所述用户对应的租户列表和令牌之后,还包括:
20.对所述租户列表进行展示;
21.相应地,所述在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户,包括:
22.在接收到所述当前用户基于展示的租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
23.可选地,所述根据所述访问指令和所述令牌访问对应的目标租户,包括:
24.根据所述访问指令确定所述当前用户选择的目标租户,并在所述租户列表中查找所述目标租户对应的目标租户标识;
25.根据所述令牌和所述目标租户标识访问所述目标租户。
26.可选地,所述根据所述令牌和所述目标租户标识访问所述目标租户,包括:
27.根据所述令牌进行身份认证;
28.在身份认证通过时,根据所述目标租户标识访问所述目标租户。
29.可选地,所述根据所述目标租户标识访问所述目标租户之后,还包括:
30.对所述当前用户进行权限鉴权,获得权限鉴权结果;
31.根据所述权限鉴权结果调用所述目标租户对应的后端服务。
32.可选地,所述对所述用户进行权限鉴权,包括:
33.查找所述目标租户对应的目标租户信息;
34.根据所述目标租户信息确定所述目标租户下各用户对应的权限信息;
35.根据所述权限信息对所述当前用户进行权限鉴权。
36.可选地,所述根据所述权限鉴权结果调用所述目标租户对应的后端服务,包括:
37.根据所述权限鉴权结果确定所述当前用户对应的目标权限信息;
38.根据所述目标权限信息调用所述目标租户对应的后端服务。
39.可选地,所述在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权,包括:
40.在接收到当前用户输入的登录信息时,根据所述登录信息确定用户账号和登录密码;
41.通过公共租户查找所述用户账号对应的目标密码;
42.根据所述登录密码和所述目标密码进行身份鉴权。
43.可选地,所述根据所述登录密码和所述目标密码进行身份鉴权,包括:
44.将所述登录密码和所述目标密码进行比较,得到比较结果;
45.根据比较结果进行身份鉴权。
46.此外,为实现上述目的,本发明还提出一种多租户鉴权装置,所述多租户鉴权装置包括:
47.用户登录模块,用于在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;
48.信息生成模块,用于在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;
49.租户访问模块,用于在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
50.可选地,所述信息生成模块,还用于在身份鉴权成功时,在所述公共租户下查找与
所述当前用户对应的用户信息;根据所述用户信息生成与所述当前用户对应的租户列表和令牌。
51.可选地,所述信息生成模块,还用于根据所述用户信息生成与所述当前用户对应的令牌,并根据所述用户信息确定所述当前用户具有访问权限的待选租户;获取所述待选租户对应的待选租户信息,并根据所述待选租户信息生成租户列表。
52.可选地,所述信息生成模块,还用于根据所述待选租户信息确定所述待选租户对应的待选租户标识;根据所述待选租户标识对所述待选租户进行排序,得到排序后的待选租户;根据排序后的待选租户和所述待选租户标识生成租户列表。
53.可选地,所述多租户鉴权装置还包括信息展示模块,用于对所述租户列表进行展示;
54.所述租户访问模块,还用于在接收到所述当前用户基于展示的租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
55.可选地,所述租户访问模块,还用于根据所述访问指令确定所述当前用户选择的目标租户,并在所述租户列表中查找所述目标租户对应的目标租户标识;根据所述令牌和所述目标租户标识访问所述目标租户。
56.此外,为实现上述目的,本发明还提出一种多租户鉴权设备,所述多租户鉴权设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多租户鉴权程序,所述多租户鉴权程序被处理器执行时实现如上所述的多租户鉴权方法。
57.此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有多租户鉴权程序,所述多租户鉴权程序被处理器执行时实现如上所述的多租户鉴权方法。
58.本发明提出的多租户鉴权方法中,在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。从而对于拥有多租户访问权限的用户,无需进行多次登录,只需要登录公共租户生成令牌后,可根据令牌自动进行鉴权,并访问对应的目标租户,可避免多次登录,节约用户时间。
附图说明
59.图1是本发明实施例方案涉及的硬件运行环境的多租户鉴权设备结构示意图;
60.图2为本发明多租户鉴权方法第一实施例的流程示意图;
61.图3为本发明多租户鉴权方法第一实施例的常规的多租户鉴权示意图;
62.图4为本发明多租户鉴权方法第一实施例的改进后的多租户鉴权示意图;
63.图5为本发明多租户鉴权方法第一实施例的租户列表示意图;
64.图6为本发明多租户鉴权方法第二实施例的流程示意图;
65.图7为本发明多租户鉴权方法第一实施例的添加id后的租户列表示意图;
66.图8为本发明多租户鉴权方法第三实施例的流程示意图;
67.图9为本发明多租户鉴权方法第一实施例的整体流程示意图;
68.图10为本发明多租户鉴权装置第一实施例的功能模块示意图。
69.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
70.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
71.参照图1,图1为本发明实施例方案涉及的硬件运行环境的多租户鉴权设备结构示意图。
72.如图1所示,该多租户鉴权设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速随机存取存储器(random access memory,ram),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
73.本领域技术人员可以理解,图1中示出的设备结构并不构成对多租户鉴权设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
74.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及多租户鉴权程序。
75.在图1所示的多租户鉴权设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户设备,与所述用户设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储的多租户鉴权程序,并执行本发明实施例提供的多租户鉴权方法。
76.基于上述硬件结构,提出本发明多租户鉴权方法实施例。
77.参照图2,图2为本发明多租户鉴权方法第一实施例的流程示意图。
78.在第一实施例中,所述多租户鉴权方法包括以下步骤:
79.步骤s10,在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权。
80.需要说明的是,本实施例的执行主体可为多租户鉴权设备,例如具有信息处理功能的计算机设备,还可为其他可实现相同或相似功能的设备,本实施例对此不作限制。
81.需要说明的是,it云平台作为一个集团的it部门核心管理系统,需要对接大量的子公司的业务,每个子公司作为一个租户,需要进行数据隔离。例如,it云平台如果对接三个子公司的业务,即对接三个租户,这三个租户分别为:租户1、租户2以及租户3。集团管理员会拥有这三个租户的权限,但是,如果管理员用户需要使用这三个租户中的业务数据,需要分别登录这三个租户,需要进行三次登录操作,使用起来较为麻烦。如果对应的租户更多的话,则需要更多次的登录操作,这些登录操作会耗费很长的时间,对用户的使用造成不便。
82.在具体实现中,可如图3所示,图3为常规的多租户鉴权示意图,如果管理员用户需要使用租户1中的业务数据,需要在租户1上输入账号、密码,进行登录操作,在登录成功后,才能使用租户1中的业务数据。如果管理员用户需要使用租户2中的业务数据,需要在租户2上输入账号、密码,进行登录操作,在登录成功后,才能使用租户2中的业务数据。如果管理员用户需要使用租户3中的业务数据,需要在租户3上输入账号、密码,进行登录操作,在登
录成功后,才能使用租户3中的业务数据。
83.应当理解的是,在本方案中,为了实现各租户的数据隔离,可扩展django用户模块,每个租户下用户独立,便于操作审计等需要。而为了避免管理员用户在访问多个租户时,需要进行多次登录的情况,可预先设定公共租户-global,在glboal租户下进行鉴权,可以与现有大部分django第三方组件无缝对接,如django admin等。在本方案中,只需要在公共租户下进行登录鉴权操作,即可方便的对其他租户进行访问,使用这些租户中的业务数据。
84.在具体实现中,可如图4所示,图4为改进后的多租户鉴权示意图,管理员用户可先在公共租户上输入账号、密码,进行登录操作,在登录成功后,公共租户会返回一个令牌(token)。如果用户需要使用租户1中的业务数据,只需要将该令牌发送给租户1进行鉴权,鉴权成功后,便可使用租户1中的业务数据。如果用户需要使用租户2中的业务数据,只需要将该令牌发送给租户2进行鉴权,鉴权成功后,便可使用租户2中的业务数据。如果用户需要使用租户3中的业务数据,只需要将该令牌发送给租户3进行鉴权,鉴权成功后,便可使用租户3中的业务数据。
85.需要说明的是,本实施例中的登录信息为当前用户在登录公共租户时输入的登录信息。当前用户可先登录it云平台,然后在it云平台上输入登录信息,可根据登录信息通过公共租户进行身份鉴权,以判断用户是否有权限登录公共租户。例如,如果身份鉴权成功,则说明用户有权限登录公共租户,如果身份鉴权失败,则说明用户没有权限登录公共租户。
86.可以理解的是,为了便于进行身份鉴权,也为了提高身份鉴权的精度,在接收到当前用户输入的登录信息时,可根据登录信息确定用户账号和登录密码。其中,用户账号和登录密码为当前用户输入的信息。
87.可以理解的是,公共租户对应的数据库中存储有具有登录权限的账号以及这些账号对应的密码,因此,在确定当前用户输入的用户账号之后,可通过公共租户对应的数据库查找用户账号对应的目标密码,将登录密码与目标密码进行比较,以判断登录密码与目标密码一致,进而根据比较结果进行身份鉴权。
88.在具体实现中,例如,假如当前用户输入的用户账号为“1111”,输入的登录密码为“0000”,那么通过公共租户对应的数据库查找用户账号对应的目标密码,然后将登录密码与查找到的目标密码进行比较。如果查找到的目标密码为“0000”,则比较结果为登录密码与目标密码一致,可判定身份鉴权成功。如果查找到的目标密码为“0001”,则比较结果为登录密码与目标密码不一致,可判定身份鉴权失败。在身份鉴权失败的情况下,可提示用户重新输入登录信息。
89.步骤s20,在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌。
90.应当理解的是,如果身份鉴权成功,则说明当前用户有权限登录公共租户,因此,可登录公共租户,并且生成与当前用户对应的租户列表和令牌。其中,令牌是生成的唯一的,与当前用户对应的令牌,通过该令牌可对当前用户进行身份认证。租户列表中包含有当前用户有权限访问的租户对应的租户信息,例如,如图5所示,图5为租户列表示意图,假如当前用户有权限访问租户1、租户2以及租户3这三个租户,则租户列表中包含有这三个租户对应的租户信息。
91.步骤s30,在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述
访问指令和所述令牌访问对应的目标租户。
92.可以理解的是,在生成租户列表后,可对租户列表进行展示,以供当前用户从展示的租户列表中选择目标租户。
93.可以理解的是,当前用户在确定需要进行访问的目标租户后,可输入访问指令。在接收到用户输入的访问指令时,可根据访问指令确定用户选择的目标租户,并根据当前用户对应的令牌访问目标租户,从而使用目标租户中的业务数据。
94.在具体实现中,例如,假如租户列表中包含有租户1、租户2以及租户3这三个租户,当前用户想要使用租户2中的业务数据,即当前用户需要进行访问的目标租户为租户2。那么,当前用户便可基于租户列表输入访问指令,计算机设备可根据访问指令确定当前用户需要进行访问的目标租户为租户2,然后将当前用户对应的令牌发送给租户2进行鉴权,并在鉴权成功后,访问租户2,使当前用户可以使用租户2中的业务数据。
95.如果当前用户又想使用租户3中的业务数据,那么便可基于租户列表输入新的访问指令,计算机设备可根据访问指令确定当前用户需要进行访问的目标租户为租户3,然后将当前用户对应的令牌发送给租户3进行鉴权,并在鉴权成功后,访问租户3,使当前用户可以使用租户3中的业务数据。通过本方案中的上述方式,用户只需要在登录公共租户时进行登录操作,在访问其他租户以及切换租户时,无需再次进行登录,只需要输入访问指令即可自动进行鉴权,并访问对应的目标租户。
96.在本实施例中,在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。从而对于拥有多租户访问权限的用户,无需进行多次登录,只需要登录公共租户生成令牌后,可根据令牌自动进行鉴权,并访问对应的目标租户,可避免多次登录,节约用户时间。
97.在一实施例中,如图6所示,基于第一实施例提出本发明多租户鉴权方法第二实施例,所述步骤s20,包括:
98.步骤s201,在身份鉴权成功时,在所述公共租户下查找与所述当前用户对应的用户信息。
99.应当理解的是,在身份鉴权成功时,说明当前用户可登录公共租户。由于公共租户对应的数据库中存储有各用户对应的用户信息,因此,在登录公共租户之后,可在公共租户对应的数据库中查找当前租户对应的用户信息。
100.步骤s202,根据所述用户信息生成与所述当前用户对应的租户列表和令牌。
101.可以理解的是,在查找到当前用户对应的用户信息之后,可根据用户信息生成与当前用户对应的令牌。其中,本实施例中的令牌可为生成的一串字符串,当用户在公共租户输入账号、密码进行一次登录后,后续再访问其他租户时,便不需要再次输入账号、密码进行登录,而只需要通过令牌进行验证,即可访问对应的租户。
102.可以理解的是,在查找到当前用户对应的用户信息之后,还可以根据用户信息确定当前用户具有访问权限的待选租户。例如,可能存在十个租户,而当前用户只有权限访问这十个租户中的三个租户,因此,可将当前用户具有访问权限的这三个租户作为待选租户,进而获取这些待选租户对应待选租户信息,然后根据待选租户信息生成租户列表,后续用
户要访问租户时,可直接从租户列表中选择目标租户进行访问。
103.进一步地,为了便于对待选租户进行展示,也为了便于用户选择,所述根据所述待选租户信息生成租户列表,包括:
104.根据所述待选租户信息确定所述待选租户对应的待选租户标识;根据所述待选租户标识对所述待选租户进行排序,得到排序后的待选租户;根据排序后的待选租户和所述待选租户标识生成租户列表。
105.需要说明的是,本实施例中的标识可为id,除此之外,还可为其他类型的标识,本实施例对此不作限制,在本实施例中,以id为例进行说明。
106.应当理解的是,可根据待选租户信息确定各待选租户对应的待选租户id,例如,可将租户1对应的待选租户id设置为1,将租户2对应的待选租户id设置为2,将租户3对应的待选租户id设置为3。然后,可根据待选租户id对待选租户进行排序,例如,可按待选租户id从小到大的方式进行排序,得到排序后的待选租户,进而根据排序后的待选租户以及各待选租户对应的租户标识生成租户列表。
107.在具体实现中,可如图7所示,图7为添加id后的租户列表示意图,用户可基于添加id后的租户列表方便地选择需要进行访问的目标租户,提高用户的使用体验,通过租户id也便于后续的租户访问操作。
108.在本实施例中,在身份鉴权成功时,在所述公共租户下查找与所述当前用户对应的用户信息;根据所述用户信息生成与所述当前用户对应的租户列表和令牌。从而用户可根据租户列表方便地选择需要进行访问的目标租户,并直接通过令牌进行鉴权后对目标租户进行访问,不需要再次进行输入账号、密码的登录操作,方便用户使用。
109.在一实施例中,如图8所示,基于第一实施例或第二实施例提出本发明多租户鉴权方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤s30,包括:
110.步骤s301,在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令确定所述当前用户选择的目标租户,并在所述租户列表中查找所述目标租户对应的目标租户标识。
111.应当理解的是,当前用户可基于展示的租户列表选择需要进行访问的目标租户,因此,可根据当前用户输入的访问指令来确定其选择访问的目标租户,并在租户列表中查找目标租户对应的目标租户id。例如,如果用户选择的目标租户为租户2,则对应的目标租户id为2。
112.步骤s302,根据所述令牌和所述目标租户标识访问所述目标租户。
113.可以理解的是,在确定目标租户id之后,可根据目标租户id和令牌访问对应的目标租户。可根据目标租户id选择目标租户,并将令牌发送给目标租户,以根据令牌进行身份认证,如果身份认证通过,则可根据目标租户id访问对应的目标租户。
114.进一步地,在目标租户登录成功后,便可访问目标租户,但是由于不同的用户在目标租户下具有不同的权限,因此,还需要进行权限鉴权(rbac鉴权),为当前用户在目标租户下提供对应的服务,所述步骤s302之后,还包括:
115.对所述当前用户进行权限鉴权,获得权限鉴权结果;根据所述权限鉴权结果调用所述目标租户对应的后端服务。
116.应当理解的是,可对当前用户进行权限鉴权,以确定当前用户在目标租户下具有
的访问权限信息,根据访问权限信息生成权限鉴权结果,进而根据权限鉴权结果调用目标租户对应的后端服务,以供当前用户进行业务操作。
117.进一步地,为了提高权限鉴权的精度,所述对所述用户进行权限鉴权,包括:
118.查找所述目标租户对应的目标租户信息;根据所述目标租户信息确定所述目标租户下各用户对应的权限信息;根据所述权限信息对所述当前用户进行权限鉴权。
119.需要说明的是,本实施例中的权限信息可为访问权限信息,即不同的用户在租户下具有不同的访问权限,有些资料信息可能只有高权限的用户才能查看,而低权限的用户无法查看,因此,通过各用户对应的权限信息,可为各用户提供不同的服务。
120.可以理解的是,查找目标租户对应的目标租户信息,然后根据目标租户信息确定目标租户下各用户对应的权限信息,然后将这些权限信息与当前用户对应的用户信息进行匹配,以对当前用户进行权限鉴权。
121.进一步地,为了更准确地为当前用户提供后端服务,所述根据所述权限鉴权结果调用所述目标租户对应的后端服务,包括:
122.根据所述权限鉴权结果确定所述当前用户对应的目标权限信息;根据所述目标权限信息调用所述目标租户对应的后端服务。
123.可以理解的是,根据权限鉴权结果可确定当前用户对应的目标权限信息,进而根据目标权限信息可确定当前用户的访问权限,从而有针对性地调用目标租户对应的后端服务,为当前用户提供符合其访问权限的业务服务。
124.在具体实现中,可如图9所示,图9为整体流程示意图,用户只需在公共租户上进行登录和鉴权,便可返回有权限的租户列表 token,用户在需要对其他租户进行访问时,只需要携带token 租户id便可访问对应的租户,请求具体服务api。本方案很好的契合了django自带用户模块,与django第三方库可无缝对接,集团管理员等拥有多租户的用户,可以方便切换租户,无需多次登录。
125.在本实施例中,根据所述访问指令确定所述当前用户选择的目标租户,并在所述租户列表中查找所述目标租户对应的目标租户标识;根据所述令牌和所述目标租户标识访问所述目标租户。从而使集团管理员等拥有多租户的用户,可以方便切换租户,无需多次登录,避免了时间的浪费,提升了用户的使用体验。
126.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有多租户鉴权程序,所述多租户鉴权程序被处理器执行时实现如上文所述的多租户鉴权方法的步骤。
127.由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
128.此外,参照图10,本发明实施例还提出一种多租户鉴权装置,所述多租户鉴权装置包括:
129.用户登录模块10,用于在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权。
130.需要说明的是,it云平台作为一个集团的it部门核心管理系统,需要对接大量的子公司的业务,每个子公司作为一个租户,需要进行数据隔离。例如,it云平台如果对接三个子公司的业务,即对接三个租户,这三个租户分别为:租户1、租户2以及租户3。集团管理员会拥有这三个租户的权限,但是,如果管理员用户需要使用这三个租户中的业务数据,需
要分别登录这三个租户,需要进行三次登录操作,使用起来较为麻烦。如果对应的租户更多的话,则需要更多次的登录操作,这些登录操作会耗费很长的时间,对用户的使用造成不便。
131.在具体实现中,可如图3所示,图3为常规的多租户鉴权示意图,如果管理员用户需要使用租户1中的业务数据,需要在租户1上输入账号、密码,进行登录操作,在登录成功后,才能使用租户1中的业务数据。如果管理员用户需要使用租户2中的业务数据,需要在租户2上输入账号、密码,进行登录操作,在登录成功后,才能使用租户2中的业务数据。如果管理员用户需要使用租户3中的业务数据,需要在租户3上输入账号、密码,进行登录操作,在登录成功后,才能使用租户3中的业务数据。
132.应当理解的是,在本方案中,为了实现各租户的数据隔离,可扩展django用户模块,每个租户下用户独立,便于操作审计等需要。而为了避免管理员用户在访问多个租户时,需要进行多次登录的情况,可预先设定公共租户-global,在glboal租户下进行鉴权,可以与现有大部分django第三方组件无缝对接,如django admin等。在本方案中,只需要在公共租户下进行登录鉴权操作,即可方便的对其他租户进行访问,使用这些租户中的业务数据。
133.在具体实现中,可如图4所示,图4为改进后的多租户鉴权示意图,管理员用户可先在公共租户上输入账号、密码,进行登录操作,在登录成功后,公共租户会返回一个令牌(token)。如果用户需要使用租户1中的业务数据,只需要将该令牌发送给租户1进行鉴权,鉴权成功后,便可使用租户1中的业务数据。如果用户需要使用租户2中的业务数据,只需要将该令牌发送给租户2进行鉴权,鉴权成功后,便可使用租户2中的业务数据。如果用户需要使用租户3中的业务数据,只需要将该令牌发送给租户3进行鉴权,鉴权成功后,便可使用租户3中的业务数据。
134.需要说明的是,本实施例中的登录信息为当前用户在登录公共租户时输入的登录信息。当前用户可先登录it云平台,然后在it云平台上输入登录信息,可根据登录信息通过公共租户进行身份鉴权,以判断用户是否有权限登录公共租户。例如,如果身份鉴权成功,则说明用户有权限登录公共租户,如果身份鉴权失败,则说明用户没有权限登录公共租户。
135.可以理解的是,为了便于进行身份鉴权,也为了提高身份鉴权的精度,在接收到当前用户输入的登录信息时,可根据登录信息确定用户账号和登录密码。其中,用户账号和登录密码为当前用户输入的信息。
136.可以理解的是,公共租户对应的数据库中存储有具有登录权限的账号以及这些账号对应的密码,因此,在确定当前用户输入的用户账号之后,可通过公共租户对应的数据库查找用户账号对应的目标密码,将登录密码与目标密码进行比较,以判断登录密码与目标密码一致,进而根据比较结果进行身份鉴权。
137.在具体实现中,例如,假如当前用户输入的用户账号为“1111”,输入的登录密码为“0000”,那么通过公共租户对应的数据库查找用户账号对应的目标密码,然后将登录密码与查找到的目标密码进行比较。如果查找到的目标密码为“0000”,则比较结果为登录密码与目标密码一致,可判定身份鉴权成功。如果查找到的目标密码为“0001”,则比较结果为登录密码与目标密码不一致,可判定身份鉴权失败。在身份鉴权失败的情况下,可提示用户重新输入登录信息。
138.信息生成模块20,用于在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌。
139.应当理解的是,如果身份鉴权成功,则说明当前用户有权限登录公共租户,因此,可登录公共租户,并且生成与当前用户对应的租户列表和令牌。其中,令牌是生成的唯一的,与当前用户对应的令牌,通过该令牌可对当前用户进行身份认证。租户列表中包含有当前用户有权限访问的租户对应的租户信息,例如,如图5所示,图5为租户列表示意图,假如当前用户有权限访问租户1、租户2以及租户3这三个租户,则租户列表中包含有这三个租户对应的租户信息。
140.租户访问模块30,用于在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
141.可以理解的是,在生成租户列表后,可对租户列表进行展示,以供当前用户从展示的租户列表中选择目标租户。
142.可以理解的是,当前用户在确定需要进行访问的目标租户后,可输入访问指令。在接收到用户输入的访问指令时,可根据访问指令确定用户选择的目标租户,并根据当前用户对应的令牌访问目标租户,从而使用目标租户中的业务数据。
143.在具体实现中,例如,假如租户列表中包含有租户1、租户2以及租户3这三个租户,当前用户想要使用租户2中的业务数据,即当前用户需要进行访问的目标租户为租户2。那么,当前用户便可基于租户列表输入访问指令,计算机设备可根据访问指令确定当前用户需要进行访问的目标租户为租户2,然后将当前用户对应的令牌发送给租户2进行鉴权,并在鉴权成功后,访问租户2,使当前用户可以使用租户2中的业务数据。
144.如果当前用户又想使用租户3中的业务数据,那么便可基于租户列表输入新的访问指令,计算机设备可根据访问指令确定当前用户需要进行访问的目标租户为租户3,然后将当前用户对应的令牌发送给租户3进行鉴权,并在鉴权成功后,访问租户3,使当前用户可以使用租户3中的业务数据。通过本方案中的上述方式,用户只需要在登录公共租户时进行登录操作,在访问其他租户以及切换租户时,无需再次进行登录,只需要输入访问指令即可自动进行鉴权,并访问对应的目标租户。
145.在本实施例中,在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。从而对于拥有多租户访问权限的用户,无需进行多次登录,只需要登录公共租户生成令牌后,可根据令牌自动进行鉴权,并访问对应的目标租户,可避免多次登录,节约用户时间。
146.在一实施例中,所述租户访问模块30,还用于根据所述令牌进行身份认证;在身份认证通过时,根据所述目标租户标识访问所述目标租户。
147.在一实施例中,所述租户访问模块30,还用于对所述当前用户进行权限鉴权,获得权限鉴权结果;根据所述权限鉴权结果调用所述目标租户对应的后端服务。
148.在一实施例中,所述租户访问模块30,还用于查找所述目标租户对应的目标租户信息;根据所述目标租户信息确定所述目标租户下各用户对应的权限信息;根据所述权限信息对所述当前用户进行权限鉴权。
149.在一实施例中,所述租户访问模块30,还用于根据所述权限鉴权结果确定所述当前用户对应的目标权限信息;根据所述目标权限信息调用所述目标租户对应的后端服务。
150.在一实施例中,所述用户登录模块10,还用于在接收到当前用户输入的登录信息时,根据所述登录信息确定用户账号和登录密码;通过公共租户查找所述用户账号对应的目标密码;根据所述登录密码和所述目标密码进行身份鉴权。
151.在一实施例中,所述用户登录模块10,还用于将所述登录密码和所述目标密码进行比较,得到比较结果;根据比较结果进行身份鉴权。
152.在本发明所述多租户鉴权装置的其他实施例或具体实现方法可参照上述各方法实施例,此处不再赘述。
153.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
154.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
155.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该估算机软件产品存储在如上所述的一个估算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台智能设备(可以是手机,估算机,多租户鉴权设备,或者网络多租户鉴权设备等)执行本发明各个实施例所述的方法。
156.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
157.本发明公开了a1、一种多租户鉴权方法,所述多租户鉴权方法包括以下步骤:
158.在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;
159.在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;
160.在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
161.a2、如a1所述的多租户鉴权方法,所述在身份鉴权成功时,生成与所述用户对应的租户列表和令牌,包括:
162.在身份鉴权成功时,在所述公共租户下查找与所述当前用户对应的用户信息;
163.根据所述用户信息生成与所述当前用户对应的租户列表和令牌。
164.a3、如a2所述的多租户鉴权方法,所述根据所述用户信息生成与所述当前用户对应的租户列表和令牌,包括:
165.根据所述用户信息生成与所述当前用户对应的令牌,并根据所述用户信息确定所述当前用户具有访问权限的待选租户;
166.获取所述待选租户对应的待选租户信息,并根据所述待选租户信息生成租户列表。
167.a4、如a3所述的多租户鉴权方法,所述根据所述待选租户信息生成租户列表,包括:
168.根据所述待选租户信息确定所述待选租户对应的待选租户标识;
169.根据所述待选租户标识对所述待选租户进行排序,得到排序后的待选租户;
170.根据排序后的待选租户和所述待选租户标识生成租户列表。
171.a5、如a1至a4中任一项所述的多租户鉴权方法,所述生成与所述用户对应的租户列表和令牌之后,还包括:
172.对所述租户列表进行展示;
173.相应地,所述在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户,包括:
174.在接收到所述当前用户基于展示的租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
175.a6、如a1至a4中任一项所述的多租户鉴权方法,所述根据所述访问指令和所述令牌访问对应的目标租户,包括:
176.根据所述访问指令确定所述当前用户选择的目标租户,并在所述租户列表中查找所述目标租户对应的目标租户标识;
177.根据所述令牌和所述目标租户标识访问所述目标租户。
178.a7、如a6所述的多租户鉴权方法,所述根据所述令牌和所述目标租户标识访问所述目标租户,包括:
179.根据所述令牌进行身份认证;
180.在身份认证通过时,根据所述目标租户标识访问所述目标租户。
181.a8、如a7所述的多租户鉴权方法,所述根据所述目标租户标识访问所述目标租户之后,还包括:
182.对所述当前用户进行权限鉴权,获得权限鉴权结果;
183.根据所述权限鉴权结果调用所述目标租户对应的后端服务。
184.a9、如a8所述的多租户鉴权方法,所述对所述用户进行权限鉴权,包括:
185.查找所述目标租户对应的目标租户信息;
186.根据所述目标租户信息确定所述目标租户下各用户对应的权限信息;
187.根据所述权限信息对所述当前用户进行权限鉴权。
188.a10、如a8所述的多租户鉴权方法,所述根据所述权限鉴权结果调用所述目标租户对应的后端服务,包括:
189.根据所述权限鉴权结果确定所述当前用户对应的目标权限信息;
190.根据所述目标权限信息调用所述目标租户对应的后端服务。
191.a11、如a1至a4中任一项所述的多租户鉴权方法,所述在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权,包括:
192.在接收到当前用户输入的登录信息时,根据所述登录信息确定用户账号和登录密码;
193.通过公共租户查找所述用户账号对应的目标密码;
194.根据所述登录密码和所述目标密码进行身份鉴权。
195.a12、如a11所述的多租户鉴权方法,所述根据所述登录密码和所述目标密码进行身份鉴权,包括:
196.将所述登录密码和所述目标密码进行比较,得到比较结果;
197.根据比较结果进行身份鉴权。
198.本发明公开了b13、一种多租户鉴权装置,所述多租户鉴权装置包括:
199.用户登录模块,用于在接收到当前用户输入的登录信息时,根据所述登录信息通过公共租户进行身份鉴权;
200.信息生成模块,用于在身份鉴权成功时,生成与所述当前用户对应的租户列表和令牌;
201.租户访问模块,用于在接收到所述当前用户基于所述租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
202.b14、如b13所述的多租户鉴权装置,所述信息生成模块,还用于在身份鉴权成功时,在所述公共租户下查找与所述当前用户对应的用户信息;根据所述用户信息生成与所述当前用户对应的租户列表和令牌。
203.b15、如b14所述的多租户鉴权装置,所述信息生成模块,还用于根据所述用户信息生成与所述当前用户对应的令牌,并根据所述用户信息确定所述当前用户具有访问权限的待选租户;获取所述待选租户对应的待选租户信息,并根据所述待选租户信息生成租户列表。
204.b16、如b15所述的多租户鉴权装置,所述信息生成模块,还用于根据所述待选租户信息确定所述待选租户对应的待选租户标识;根据所述待选租户标识对所述待选租户进行排序,得到排序后的待选租户;根据排序后的待选租户和所述待选租户标识生成租户列表。
205.b17、如b13至b16中任一项所述的多租户鉴权装置,所述多租户鉴权装置还包括信息展示模块,用于对所述租户列表进行展示;
206.所述租户访问模块,还用于在接收到所述当前用户基于展示的租户列表输入的访问指令时,根据所述访问指令和所述令牌访问对应的目标租户。
207.b18、如b13至b16中任一项所述的多租户鉴权装置,所述租户访问模块,还用于根据所述访问指令确定所述当前用户选择的目标租户,并在所述租户列表中查找所述目标租户对应的目标租户标识;根据所述令牌和所述目标租户标识访问所述目标租户。
208.本发明公开了c19、一种多租户鉴权设备,所述多租户鉴权设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的多租户鉴权程序,所述多租户鉴权程序配置有实现如上所述的多租户鉴权方法。
209.本发明公开了d20、一种存储介质,所述存储介质上存储有多租户鉴权程序,所述多租户鉴权程序被处理器执行时实现如上所述的多租户鉴权方法。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献