单点登录实现方法及装置与流程

文档序号:12729680阅读:267来源:国知局
单点登录实现方法及装置与流程

本申请涉及网络通信技术领域,特别涉及一种单点登录实现方法及装置。



背景技术:

单点登录(Single Sign On,SSO)是目前比较流行的企业业务整合的解决方案之一。单点登录的定义是在多个应用系统中,客户端只需要登录一次就可以访问多个相互信任的应用系统。

为了实现单点登录,可以将一个或多个系统(为了描述方便,称为子系统)集成到一个系统(为了描述方便,称为父系统)中,登录父系统即可访问这些子系统。具体的,将登录子系统所需的诸如URL(Uniform Resource Locator,统一资源定位符)、请求方式、消息头和消息体等参数的具体内容,采用编码的方式写入父系统的程序代码中,例如,将URL的具体内容http://192.168.0.1:8080/index写入父系统的程序代码中。客户端登录进入父系统后,客户端将上述参数的具体内容发送给服务器端,即可登录该子系统。

但是,在上述的方法中,由于登录子系统所需的参数的具体内容是固定的编写在父系统的程序代码中的,因此,当需要将新的子系统集成到父系统中时,就需要在父系统的程序代码中增加对应的参数具体内容的代码,带来了较大的编码工作量,扩展性较差。



技术实现要素:

有鉴于此,本申请提供一种单点登录实现方法及装置。

具体地,本申请是通过如下技术方案实现的:

一方面,提供了一种单点登录实现方法,该方法应用于服务器端,该方法包括:

在需要向父系统中集成子系统时,调用单点登录所需参数的通用模板,对该通用模板中的各个参数进行赋值,保存各个参数的参数值;

在父系统中设置该子系统的登录入口,建立该登录入口与上述参数值的链接关系,以使客户端在检测到该登录入口被触发时,从服务器端获取这些参数值,使用获取到的参数值登录该子系统。

另一方面,还提供了一种单点登录实现装置,该装置应用于服务器端,该装置包括:

配置单元,用于在需要向父系统中集成子系统时,调用单点登录所需参数的通用模板,对该通用模板中的各个参数进行赋值,保存各个参数的参数值;

设置单元,用于在父系统中设置该子系统的登录入口;

建立单元,用于建立设置单元设置的登录入口与配置单元保存的参数值的链接关系,以使客户端在检测到该登录入口被触发时,从服务器端获取这些参数值,使用获取到的参数值登录该子系统。

通过本申请的以上技术方案,服务器端提供了一种单点登录所需参数的通用模板,向父系统中集成一个子系统时,只需调用该通用模板,对通用模板中的各个参数进行赋值,即可得到登录该子系统所需参数的具体内容,设置该子系统的登录入口,建立该登录入口与这些具体内容的链接关系,后续,客户端登录进入父系统,并检测到该子系统的登录入口被触发时,会从服务器端获取这些具体内容,并使用这些具体内容登录该子系统,从而实现了登录父系统即可访问子系统的目的。而且,由于提供了一种通用模板,可以利用通用模板,不断的配置更多子系统的登录所需参数的具体内容,无需增加代码,减少了编码工作量,提高了系统的灵活性、可扩展性和易用性。

附图说明

图1是本申请一示例性实施例示出的服务器端执行的配置登录子系统所需的参数的具体内容的方法流程图;

图2是本申请一示例性实施例示出的客户端执行的单点登录方法流程图;

图3是本申请一示例性实施例示出的当采用一步请求认证方式时,客户端执行的单点登录方法流程图;

图4是本申请一示例性实施例示出的当采用两步请求认证方式时,客户端执行的单点登录方法流程图;

图5是本申请一示例性实施例示出的单点登录实现装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

为了解决现有技术中存在的扩展性较差的问题,本申请实施例中提供了一种单点登录实现方法,以及一种可以应用该方法的装置。

在本申请实施例的方法中,在服务器端设置了一个通用模板,该通用模板中包含有单点登录所需的所有参数,在该通用模板中体现了各个参数的参数名和格式。基于此,在需要向父系统中集成一个子系统时,配置登录该子系统所需的参数的具体内容的方法由服务器端执行,如图1所示,该方法包括以下步骤:

步骤S101,在需要向父系统中集成子系统时,调用单点登录所需参数的通用模板,对通用模板中的各个参数进行赋值,保存各个参数的参数值;

其中,为了方便操作,可以使用web(网页)页面等界面形式显示通用模板,以方便用户通过该界面对各个参数进行赋值,这样,步骤S101中,调用通用模板,对通用模板中包含的各个参数进行赋值的方式可以是:调用通用模板并通过界面进行显示;通过界面接收用户输入的各个参数的参数值。这样,通过该界面获得了登录该子系统所需的参数的具体内容,即,参数值。

另外,保存各个参数的参数值时,可以将这些参数值保存到数据库或者文件中,本申请实施例对此不做限定。

步骤S102,在父系统中设置该子系统的登录入口,建立该登录入口与保存的参数值的链接关系,其中,该登录入口具体可以是链接或者按钮。

这样,如图2所示,客户端执行的单点登录方法包括以下步骤:

步骤S201,登录进入父系统;

在进入父系统中后,在父系统的界面中会显示出该子系统的登录入口,用户可以通过点击操作来触发该登录入口。

步骤S202,在检测到该子系统的登录入口被触发时,从服务器端获取该登录入口所链接的参数值;

步骤S203,使用获取到的参数值登录该子系统。

本申请实施例的方法中,服务器端提供了一种单点登录所需参数的通用模板,向父系统中集成一个子系统时,只需调用该通用模板,对通用模板中的各个参数进行赋值,即可得到登录该子系统所需参数的具体内容,设置该子系统的登录入口,建立该登录入口与这些具体内容的链接关系,后续,客户端登录进入父系统,并检测到该子系统的登录入口被触发时,会从服务器端获取这些具体内容,并使用这些具体内容登录该子系统,从而实现了登录父系统即可访问子系统的目的。而且,由于提供了一种通用模板,可以利用通用模板,不断的配置更多子系统的登录所需参数的具体内容,无需增加代码,减少了编码工作量,提高了系统的灵活性、可扩展性和易用性。

在实际实施过程中,由于单点登录的方式主要有两种:一步请求认证方式和两步请求认证方式,采用不同方式时,单点登录所需参数不同,并且,登录子系统的流程也不同,分别介绍如下。

1、一步请求认证方式:

当采用一步请求认证方式时,通用模板中包括需要携带在登录请求消息中URL、请求方式、消息头和消息体等参数,其中,URL、消息头、消息体中的任一参数用于携带子系统的认证信息,例如,该认证信息可以为用户名和密码。在通用模板中,URL的格式例如可以为:协议://域名或者IP:端口号/path。

上述请求方式的参数值可以是GET(获取)、POST(提交)、PUT(添加)、DELETE(删除)等方式中的任一种。

另外,通用模板中还可以包括子系统的ID。

服务器端执行如图1所示的方法。后续,客户端执行的单点登录方法如图3所示,包括以下步骤:

步骤S301,登录进入父系统;

在进入父系统中后,在父系统的界面中会显示出该子系统的登录入口,用户可以通过点击操作来触发该登录入口。

步骤S302,在检测到该子系统的登录入口被触发时,从服务器端获取该登录入口所链接的需要携带在登录请求消息中的URL、请求方式、消息头和消息体等参数的参数值;

上述URL、消息头、消息体中的任一参数的参数值中携带有该子系统的认证信息。

步骤S303,将获取到的参数值封装成登录请求消息后发送给服务器端,以便登录该子系统。

服务器端可以从该登录请求消息中获取该子系统的认证信息,对获取到的认证信息进行验证,验证通过后,客户端即可登录进入该子系统。

2、两步请求认证方式

当采用两步请求认证方式时,通用模板中包括如下参数:

(1)需要携带在令牌获取请求消息中的参数,其中包括:URL、请求方式、消息头和消息体。其中,上述请求方式的参数值可以是GET、POST、PUT、DELETE等方式中的任一种。

(2)需要携带在登录请求消息中的参数,其中包括:URL、请求方式、消息头和消息体,其中,URL、消息头、消息体中的任一参数用于携带令牌。其中,上述请求方式的参数值可以是GET、POST、PUT、DELETE等方式中的任一种。

在通用模板中,URL的格式例如可以为:协议://域名或者IP:端口号/path。

(3)令牌提取参数,令牌提取参数为客户端从服务器端发来的携带令牌的消息(该消息可以是令牌获取响应消息)中提取令牌所需的参数。令牌提取参数中可以包括:令牌名称、令牌提取位置、以及令牌提取方式。其中,令牌提取位置用于指示从令牌获取响应消息的哪个位置提取令牌,令牌提取位置的参数值可以是消息头或消息体;令牌提取方式用于指示提取令牌的方式。其中,令牌提取方式中具体可以包括:令牌呈现语言和令牌定位方式等,例如,当令牌呈现语言的参数值为XML(Extensible Markup Language,可扩展标记语言)时,令牌定位方式的参数值为XPath(XML路径语言),当令牌呈现语言的参数值为JSON(JavaScript Object Notation,JavaScript对象表示法)时,令牌定位方式的参数值为JSONPath(JSON路径语言),当令牌呈现语言的参数值为文本时,令牌定位方式的参数值为正则表达式。

另外,通用模板中还可以包括子系统的ID。

服务器端执行如图1所示的方法。后续,客户端执行的单点登录方法如图4所示,包括以下步骤:

步骤S401,登录进入父系统;

在进入父系统中后,在父系统的界面中会显示出该子系统的登录入口,用户可以通过点击操作来触发该登录入口。

步骤S402,在检测到该子系统的登录入口被触发时,从服务器端获取该登录入口所链接的需要携带在令牌获取请求消息中的参数的参数值、需要携带在登录请求消息中的参数的参数值、以及令牌提取参数的参数值;

步骤S403,将获取到的需要携带在令牌获取请求消息中的参数的参数值,封装成令牌获取请求消息发送给服务器端;

服务器端接收到该令牌获取请求消息后,将为客户端分配的令牌携带在令牌获取响应消息中发送给客户端。

步骤S404,在接收到服务器端回应的令牌获取响应消息后,按照获取到的令牌提取参数的参数值,从该令牌获取响应消息中提取令牌;

具体的,令牌提取参数中包括:令牌名称、令牌提取位置、以及令牌提取方式,则步骤S404中从该令牌获取响应消息中提取令牌的方法可以是:按照令牌提取方式的参数值,从令牌获取响应消息中的指定位置中,提取出对应于指定名称的数值作为令牌,其中,该指定位置为令牌提取位置的参数值所指示的位置,该指定名称为令牌名称的参数值。

步骤S405,将提取到的令牌携带在获取到的需要携带在登录请求消息中的URL、消息头、消息体中的任一参数的参数值中,之后将获取到的需要携带在登录请求消息中的参数的参数值,封装成登录请求消息发送给服务器端,以便登录子系统。

服务器端接收到该登录请求消息之后,从该登录请求消息中获取令牌,对获取到的令牌进行验证,验证通过后,客户端即可登录进入该子系统。

与前述单点登录实现方法的实施例相对应,本申请还提供了单点登录实现装置的实施例,该装置可以应用于服务器端中。如图5所示,本申请实施例的单点登录实现装置中包括以下单元:配置单元501、设置单元502和建立单元503,其中:

配置单元501,用于在需要向父系统中集成子系统时,调用单点登录所需参数的通用模板,对该通用模板中的各个参数进行赋值,保存各个参数的参数值;

设置单元502,用于在父系统中设置该子系统的登录入口;

建立单元503,用于建立设置单元502设置的登录入口与配置单元501保存的参数值的链接关系,以使客户端在检测到该登录入口被触发时,从服务器端获取这些参数值,使用获取到的参数值登录该子系统。

其中,配置单元501具体用于通过以下方式调用通用模板,对该通用模板中包含的各个参数进行赋值:

调用该通用模板并通过界面进行显示;

通过该界面接收用户输入的各个参数的参数值。

其中,该通用模板中的参数包括:需要携带在登录请求消息中的URL、请求方式、消息头和消息体,其中,URL、消息头、消息体中的任一参数用于携带该子系统的认证信息。

其中,该通用模板中的参数包括:需要携带在令牌获取请求消息中的参数,以及需要携带在登录请求消息中的参数;

需要携带在令牌获取请求消息中的参数包括:URL、请求方式、消息头和消息体;

需要携带在登录请求消息中的参数包括:URL、请求方式、消息头和消息体,其中,URL、消息头、消息体中的任一参数用于携带令牌。

其中,该通用模板中的参数还包括:令牌提取参数,该令牌提取参数为客户端从服务器端发来的携带令牌的消息中提取令牌所需的参数。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1