发明内容
本发明实施例提供一种面向多租户提供SAAS服务的方法、装置、设备及介质,以减少用户登录时所需输入的信息,从而更便于用户使用。
第一方面,本发明实施例提供了一种面向多租户提供SAAS服务的方法,该方法包括:
获取用户访问SAAS服务的登录地址;
根据所述登录地址确定与所述登录地址绑定的租户标识;
向所述用户提供登录界面,并接收所述用户输入的用户认证信息;
根据所述租户标识确定对应的租户资源;
根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源。
可选的,所述向所述用户提供登录界面,包括:
根据所述登录地址确定对应的租户信息;
根据所述租户信息渲染所述登录界面。
可选的,所述租户信息包括企业名称、企业LOGO、系统名称、所述登录地址以及所述租户标识中的至少一种。
可选的,在所述根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源之后,还包括:
生成token作为所述用户的身份认证凭证,并根据所述token维护所述用户的会话信息,所述会话信息包括用户信息和所述租户标识。
可选的,在所述生成token作为所述用户的身份认证凭证,并根据所述token维护所述用户的会话信息之后,还包括:
若所述用户提出访问请求,则根据所述token对所述用户进行身份校验及鉴权;
根据所述token获取所述租户标识,并根据所述租户标识路由到所述租户资源。
可选的,在所述根据所述登录地址确定与所述登录地址绑定的租户标识之后,还包括:
将所述租户标识存储在客户端缓存中;
相应的,所述接收所述用户输入的用户认证信息,包括:
通过客户端获取所述用户输入的用户认证信息;
从所述客户端缓存中取出所述用户标识作为http头信息,并与所述用户认证信息一起通过所述客户端提交至服务器。
可选的,在所述获取用户访问SAAS服务的登录地址之前,还包括:
为每个租户分配专属登录地址和专属租户标识,并配置所述专属登录地址和所述专属租户标识之间的一一映射关系;
配置每个租户的租户信息、用户信息及权限信息。
第二方面,本发明实施例还提供了一种面向多租户提供SAAS服务的装置,该装置包括:
登录地址获取模块,用于获取用户访问SAAS服务的登录地址;
租户标识确定模块,用于根据所述登录地址确定与所述登录地址绑定的租户标识;
认证信息接收模块,用于向所述用户提供登录界面,并接收所述用户输入的用户认证信息;
租户资源确定模块,用于根据所述租户标识确定对应的租户资源;
用户访问允许模块,用于根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源。
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的面向多租户提供SAAS服务的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的面向多租户提供SAAS服务的方法。
本发明实施例提供了一种面向多租户提供SAAS服务的方法,首先获取用户访问SAAS服务的登录地址,然后根据该登录地址确定与其相绑定的租户标识,从而可以根据该租户标识确定对应的租户资源,再向用户提供登录界面,并接收用户输入的用户认证信息,最后即可根据租户资源以及用户认证信息对用户进行认证,并在认证通过后允许用户访问租户资源。本发明实施例所提供的面向多租户提供SAAS服务的方法,通过将访问SAAS服务的登录地址与租户标识绑定的方式来确定SAAS服务中的租户身份,可以减少用户登录时所需输入的信息,即用户只需要记录登录地址和自身的账号信息即可,不再需要记住租户标识,从而为用户带来了极大的便利,同时不同租户下的用户账号可以重复,且对于用户来说,也不再需要理解租户的概念,更符合用户的使用习惯。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的面向多租户提供SAAS服务的方法的流程图。本实施例可适用于任意通过多租户的方式提供个性化SAAS服务的情况,该方法可以由本发明实施例所提供的面向多租户提供SAAS服务的装置来执行,该装置可以由硬件和/或软件的方式来实现,一般可集成于计算机设备中,该计算机设备具体可以是服务器。如图1所示,具体包括如下步骤:
S11、获取用户访问SAAS服务的登录地址。
具体的,该用户可以是某个租户下的具体用户,每个租户可以有多个用户,每个用户也可以创建多个账号,后续该用户可以选用自己的任意一个账号进行登录。当该用户想要访问SAAS服务时,可以通过客户端上的浏览器输入所需的SAAS服务的登录地址并进行跳转,即可以通过客户端获取到该用户提供的登录地址。其中,登录地址(URL)是用于访问SAAS服务的地址,一般情况下,一个租户对应的SAAS服务使用固定的URL,每个租户可以使用自己专属的URL,既可以是平台的子域名,并可以使用租户标识进行生成,也可以是单独申请的域名,从而为用户提供个性化服务。租户即使用SAAS服务的用户组织,一般可以是一个企业、公司或团体组织等等,SAAS服务系统通常会对租户进行认证,不同租户之间数据是相互隔离的,而服务可以共享。SAAS服务系统即提供服务的应用系统,通常部署在云服务端,可面向不同租户提供个性化的服务。
S12、根据所述登录地址确定与所述登录地址绑定的租户标识。
具体的,客户端在获取到登录地址之后,可以将该登录地址作为参数请求后台服务,后台即可获得该登录地址,并可根据该请求在环境库中进行查询,以寻找与该登录地址绑定的租户标识。其中,租户标识即租户ID,可用于唯一确定租户的身份信息。
可选的,在所述获取用户访问SAAS服务的登录地址之前,还包括:为每个租户分配专属登录地址和专属租户标识,并配置所述专属登录地址和所述专属租户标识之间的一一映射关系;配置每个租户的租户信息、用户信息及权限信息。具体的,可以在用户正常访问SAAS服务之前,将每个租户的登录地址与租户标识进行绑定,以便后续根据登录地址查询相应的租户标识。则可以首先为每个租户分配专属登录地址和专属租户标识,使得每个租户之间的登录地址与租户标识均不同,还可以在有新的租户需要使用SAAS服务功能时,为该新租户分配与现有不同的登录地址与租户标识,然后可以通过WEB服务将每个租户的登录地址和租户标识在WEB容器中进行配置,以形成一一映射关系,再配置好每个租户的租户信息、用户信息及权限信息,其中,租户信息可以包括登录地址、租户标识、企业名称、企业LOGO以及数据源等等,用户信息和权限信息即相应租户下的具体用户及其使用权限等。在完成上述的配置过程之后,可以将所有的配置信息存储在环境库和/或业务库中,以便进行查询。
S13、向所述用户提供登录界面,并接收所述用户输入的用户认证信息。
具体的,在用户在客户端上的浏览器输入所需的SAAS服务的登录地址并进行跳转之后,需要为用户提供一个登录界面,以便用户输入用户认证信息,并在认证通过后使用SAAS服务,即可以通过客户端提供登录界面,并接收用户输入的用户认证信息。其中,用户认证信息可以包括账号和密码,从而后续可以根据用户输入的账号和密码对用户进行身份认证,相应的,登录界面中可以包括账号输入框和密码输入框。当然,用户认证方式可以是任意的,不限于上述方式,在本实施例中不作具体的限制。
可选的,所述向所述用户提供登录界面,包括:根据所述登录地址确定对应的租户信息;根据所述租户信息渲染所述登录界面。具体的,在获取到登录地址之后,可以从环境库中查询租户信息,如上所述,租户信息可以是预先配置并存储在环境库中的信息。其中,可选的,所述租户信息包括企业名称、企业LOGO、系统名称、所述登录地址以及所述租户标识中的至少一种。在查询到对应的租户信息之后,可以根据该租户信息渲染登录界面,从而使得不同租户的用户在访问时,登录界面可以根据所配置的信息显示不同的内容,以向用户提供个性化定制服务。具体可以显示相应租户的相关信息,如在登录界面的左上角显示所属租户的企业LOGO和企业名称等,从而更符合用户的使用习惯。
可选的,在所述根据所述登录地址确定与所述登录地址绑定的租户标识之后,还包括:将所述租户标识存储在客户端缓存中;相应的,所述接收所述用户输入的用户认证信息,包括:通过客户端获取所述用户输入的用户认证信息;从所述客户端缓存中取出所述用户标识作为http头信息,并与所述用户认证信息一起通过所述客户端提交至服务器。具体的,在确定了租户标识之后,可以将租户标识返回给客户端,并存储在客户端缓存中,以便后续在每次对用户身份进行验证时携带。相应的,每当用户在登录界面中输入用户认证信息并提交(如点击登录按键)时,除要携带该用户认证信息外,还可以从客户端缓存中取出租户标识作为http头信息一起由客户端提交至后台登录认证服务。
S14、根据所述租户标识确定对应的租户资源。
具体的,如上所述,租户标识可以与用户认证信息一同由客户端提交再次得到,当后台接收到租户标识时,即可根据租户标识路由到对应的租户资源。其中,租户资源可以是业务库数据源。
S15、根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源。
具体的,在租户资源中,可以记录每个租户下的用户信息及权限信息等,即可以通过在租户资源中对用户认证信息进行匹配来对用户身份进行认证,如可以当在租户资源中成功匹配到用户提供的账号和密码时,判定认证通过,并可以同时获得该用户的使用权限等信息,以便后续提供相应的服务。在认证通过后,即可允许该用户访问租户资源,以为用户提供所需的SAAS服务。
可选的,在所述根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源之后,还包括:生成token作为所述用户的身份认证凭证,并根据所述token维护所述用户的会话信息,所述会话信息包括用户信息和所述租户标识。具体的,在完成用户的身份认证之后,可以设置会话信息,并生成token作为已完成身份认证的凭证,从而使用该token维护当前用户的会话信息,会话信息中除包括用户信息外,还可包括租户标识,从而将用户访问的租户标识与会话保持关联,后续的服务调用均可以获得此租户标识进行处理。
进一步可选的,在所述生成token作为所述用户的身份认证凭证,并根据所述token维护所述用户的会话信息之后,还包括:若所述用户提出访问请求,则根据所述token对所述用户进行身份校验及鉴权;根据所述token获取所述租户标识,并根据所述租户标识路由到所述租户资源。具体的,在生成token之后,可以将该token返回给客户端,并将该token存储在客户端缓存中,从而针对后续用户的所有访问请求,均可以从客户端缓存中获取该token,并将其作为http头信息传输至后台,以根据该token来完成用户身份的校验及鉴权,同时还可以根据该token获取到租户标识,从而再次根据租户标识路由到租户资源,以为用户提供所需的SAAS服务。
本发明实施例所提供的技术方案,首先获取用户访问SAAS服务的登录地址,然后根据该登录地址确定与其相绑定的租户标识,从而可以根据该租户标识确定对应的租户资源,再向用户提供登录界面,并接收用户输入的用户认证信息,最后即可根据租户资源以及用户认证信息对用户进行认证,并在认证通过后允许用户访问租户资源。通过将访问SAAS服务的登录地址与租户标识绑定的方式来确定SAAS服务中的租户身份,可以减少用户登录时所需输入的信息,即用户只需要记录登录地址和自身的账号信息即可,不再需要记住租户标识,从而为用户带来了极大的便利,同时不同租户下的用户账号可以重复,且对于用户来说,也不再需要理解租户的概念,更符合用户的使用习惯。
实施例二
图2为本发明实施例二提供的面向多租户提供SAAS服务的装置的结构示意图,该装置可以由硬件和/或软件的方式来实现,一般可集成于计算机设备中,用于执行本发明任意实施例所提供的面向多租户提供SAAS服务的方法。如图2所示,该装置包括:
登录地址获取模块21,用于获取用户访问SAAS服务的登录地址;
租户标识确定模块22,用于根据所述登录地址确定与所述登录地址绑定的租户标识;
认证信息接收模块23,用于向所述用户提供登录界面,并接收所述用户输入的用户认证信息;
租户资源确定模块24,用于根据所述租户标识确定对应的租户资源;
用户访问允许模块25,用于根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源。
本发明实施例所提供的技术方案,首先获取用户访问SAAS服务的登录地址,然后根据该登录地址确定与其相绑定的租户标识,从而可以根据该租户标识确定对应的租户资源,再向用户提供登录界面,并接收用户输入的用户认证信息,最后即可根据租户资源以及用户认证信息对用户进行认证,并在认证通过后允许用户访问租户资源。通过将访问SAAS服务的登录地址与租户标识绑定的方式来确定SAAS服务中的租户身份,可以减少用户登录时所需输入的信息,即用户只需要记录登录地址和自身的账号信息即可,不再需要记住租户标识,从而为用户带来了极大的便利,同时不同租户下的用户账号可以重复,且对于用户来说,也不再需要理解租户的概念,更符合用户的使用习惯。
在上述技术方案的基础上,可选的,认证信息接收模块23,包括:
租户信息确定单元,用于根据所述登录地址确定对应的租户信息;
登录界面渲染单元,用于根据所述租户信息渲染所述登录界面。
在上述技术方案的基础上,可选的,所述租户信息包括企业名称、企业LOGO、系统名称、所述登录地址以及所述租户标识中的至少一种。
在上述技术方案的基础上,可选的,该面向多租户提供SAAS服务的装置,还包括:
凭证生成模块,用于在所述根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源之后,生成token作为所述用户的身份认证凭证,并根据所述token维护所述用户的会话信息,所述会话信息包括用户信息和所述租户标识。
在上述技术方案的基础上,可选的,该面向多租户提供SAAS服务的装置,还包括:
校验鉴权模块,用于在所述生成token作为所述用户的身份认证凭证,并根据所述token维护所述用户的会话信息之后,若所述用户提出访问请求,则根据所述token对所述用户进行身份校验及鉴权;
租户资源路由模块,用于根据所述token获取所述租户标识,并根据所述租户标识路由到所述租户资源。
在上述技术方案的基础上,可选的,该面向多租户提供SAAS服务的装置,还包括:
租户标识存储模块,用于在所述根据所述登录地址确定与所述登录地址绑定的租户标识之后,将所述租户标识存储在客户端缓存中;
相应的,认证信息接收模块23,包括:
认证信息获取单元,用于通过客户端获取所述用户输入的用户认证信息;
认证信息提交单元,用于从所述客户端缓存中取出所述用户标识作为http头信息,并与所述用户认证信息一起通过所述客户端提交至服务器。
在上述技术方案的基础上,可选的,该面向多租户提供SAAS服务的装置,还包括:
映射关系配置模块,用于在所述获取用户访问SAAS服务的登录地址之前,为每个租户分配专属登录地址和专属租户标识,并配置所述专属登录地址和所述专属租户标识之间的一一映射关系;
租户信息配置模块,用于配置每个租户的租户信息、用户信息及权限信息。
本发明实施例所提供的面向多租户提供SAAS服务的装置可执行本发明任意实施例所提供的面向多租户提供SAAS服务的方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,在上述面向多租户提供SAAS服务的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例三
图3为本发明实施例三提供的计算机设备的结构示意图,示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图3显示的计算机设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图3所示,该计算机设备包括处理器31、存储器32、输入装置33及输出装置34;计算机设备中处理器31的数量可以是一个或多个,图3中以一个处理器31为例,计算机设备中的处理器31、存储器32、输入装置33及输出装置34可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的面向多租户提供SAAS服务的方法对应的程序指令/模块(例如,面向多租户提供SAAS服务的装置中的登录地址获取模块21、租户标识确定模块22、认证信息接收模块23、租户资源确定模块24及用户访问允许模块25)。处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的面向多租户提供SAAS服务的方法。
存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器32可进一步包括相对于处理器31远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置33可用于获取用户访问SAAS服务的登录地址,以及产生与计算机设备的用户设置和功能控制有关的键信号输入等。输出装置34可用于向客户端传送服务数据等等。
实施例四
本发明实施例四还提供一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行一种面向多租户提供SAAS服务的方法,该方法包括:
获取用户访问SAAS服务的登录地址;
根据所述登录地址确定与所述登录地址绑定的租户标识;
向所述用户提供登录界面,并接收所述用户输入的用户认证信息;
根据所述租户标识确定对应的租户资源;
根据所述租户资源以及所述用户认证信息对所述用户进行认证,并在认证通过后允许所述用户访问所述租户资源。
存储介质可以是任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM、兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的面向多租户提供SAAS服务的方法中的相关操作。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。