单点登录注册的制作方法

文档序号:19609000发布日期:2020-01-03 13:52阅读:304来源:国知局
单点登录注册的制作方法

相关申请的交叉引用

本申请要求于2017年8月15日提交的美国专利申请号15/677,930的优先权,后者要求于2017年4月28日提交的美国临时专利申请号62/492,059的权益,这两者的公开内容全文以引用方式并入本文。



背景技术:

身份提供商和其他企业通常使用户能够建立联盟身份,该身份可用于通过使用单组认证凭据来访问各种服务提供商。但是,尽管诸如安全声明标记语言(saml)和openidconnect(oidc)之类的标准在建立联盟身份方面很流行,但是在身份提供商与服务提供商之间建立新的关系方面仍然存在很大的摩擦。由于这种摩擦,用户创建了用于访问这些服务提供商的替代凭据。由于要求用户维护多组凭据,因此这可能会使用户体验更加麻烦。

附图说明

将参考附图来描述各种技术,在附图中:

图1示出了可实施各种实施方案的系统的说明性示例;

图2示出了根据至少一个实施方案的系统的说明性示例,在该系统中,提供了用于识别用于建立联盟认证的服务提供商的界面;

图3示出了根据至少一个实施方案的系统的说明性示例,在该系统中,提供了界面来指示该界面的用户重定向到由用户指定的服务提供商;

图4示出了根据至少一个实施方案的系统的说明性示例,在该系统中,响应于由于从服务提供商重定向到身份提供商而生成的来自用户的请求,向用户提供界面;

图5示出了根据至少一个实施方案的系统的说明性示例,在该系统中,提供了用于识别可以利用联盟认证来访问服务提供商的用户的界面;

图6示出了根据至少一个实施方案的系统的说明性示例,在该系统中,提供了用于识别用于建立联盟认证的身份提供商的界面;

图7示出了根据至少一个实施方案的用于在身份提供商与由用户指定的服务提供商之间的联盟认证注册的过程的说明性示例;

图8示出了根据至少一个实施方案的用于向身份提供商注册联盟关系的过程的说明性示例;

图9示出了根据至少一个实施方案的用于为用户完成联盟认证注册的过程的说明性示例;以及

图10示出了可以实施各种实施方案的系统。

具体实施方式

本文描述和建议的技术涉及以编程方式实例化身份提供商和服务提供商之间的联盟关系。在实施方案中,用户导航到身份提供商提供的用户界面以注册身份提供商和由实体指定的服务提供商之间的联盟关系。在实施方案中,身份提供商配置用户界面以便能够从多个服务提供商中进行选择,并且提供输入字段,在此处,实体提供另一服务提供商的将用于建立联盟关系的统一资源标识符(uri)或其他标识信息。响应于实体通过用户界面选择服务提供商,在实施方案中,身份提供商获得服务提供商的联盟发现文件,该文件指定了服务提供商支持的认证协议及其通信握手uri。

在实施方案中,身份提供商生成特定于租户的信息和初始访问令牌,其中特定于租户的信息指定身份提供商的属性,服务提供商使用所述属性来与身份提供商建立联盟关系,且服务提供商可以使用初始访问令牌来访问身份提供商的特定于租户的信息,以建立联盟关系。在实施方案中,身份提供商通过使用在服务提供商的联盟发现文件中指定的uri,将实体重定向到服务提供商。服务提供商接收到来自身份提供商的请求,并开始其注册过程。

在一个实施方案中,服务提供商使用来自身份提供商的初始访问令牌来下载身份提供商的特定于租户的信息,并验证其与身份提供商在特定于租户的信息中指定的认证协议兼容。服务提供商使用特定于租户的信息来将初始访问令牌转换为用于将来的通信的访问令牌,其中服务提供商启动与身份提供商的通信。在实施方案中,服务提供商生成其自己的初始访问令牌和将与身份提供商共享的特定于租户的信息,以使身份提供商能够建立联盟关系。服务提供商将实体重定向回身份提供商,并向身份提供商提供初始访问令牌和服务提供商的特定于租户的信息的位置。

在一个实施方案中,身份提供商使用服务提供商提供的初始访问令牌来获得服务提供商的特定于租户的信息并完成注册过程。身份提供商使用特定于租户的信息来将来自服务提供商的初始访问令牌转换为用于将来的通信的访问令牌,其中身份提供商启动与服务提供商的通信。身份提供商向实体授予使用联盟身份来访问服务提供商的许可。此外,在实施方案中,身份提供商使实体能够识别被允许使用联盟身份来访问服务提供商的其他用户,从而使该实体指定的其他用户能够利用联盟身份来访问服务提供商并访问被指定供实体使用的资源。

以这种方式,在实施方案中,以编程的方式在身份提供商和服务提供商之间建立联盟关系,而身份提供商和服务提供商的管理员或其他用户的输入最少。另外,本文中描述并提出的技术促进附加的技术优点。例如,由于身份提供商和服务提供商各自都生成自己的初始访问令牌和特定于租户的信息集,作为代表实体建立联盟关系的一部分,因此此过程由身份提供商或服务提供商根据实体的要求启动。这为实体提供了定义和建立联盟关系的灵活性,而无需了解建立这种联盟关系背后的任何基础技术。

在前述和以下描述中,描述了各种技术。出于解释的目的,将阐述特定的配置和细节,以便提供对实施所述技术的可能方式的透彻理解。然而,还明显的是,下面所描述的技术可以在不具有特定细节的情况下以不同配置来实践。此外,可以省略或简化众所周知的特征,以避免模糊所描述的技术。

图1示出了可实施各种实施方案的系统100的说明性示例。在系统100中,由服务提供商110提供的资源的管理员102或其他用户向身份提供商104提交启动身份提供商104与服务提供商110之间的联盟关系的请求。身份提供商104包括一组计算机系统(例如,配置有处理器可执行指令),该组计算机系统管理各种实体的用户身份。在实施方案中,身份提供商104呈现用户界面,管理员102将使用该用户界面来启动用于在身份提供商104和服务提供商110之间建立联盟关系的注册过程。在实施方案中,使用诸如以下讨论的技术将用户界面(以及本文讨论的其他用户界面)呈现为网页。服务提供商110提供应用,例如软件即服务(saas)应用和/或可通过通信网络访问的其他应用,所述应用被管理员102和被管理员102允许访问这些应用的其他用户所利用。在实施方案中,身份提供商104和/或服务提供商110执行另一角色,例如身份提供商104在另一个背景下用作服务提供商和/或服务提供商110在另一个背景下用作身份提供商。

在实施方案中,用户界面是图形用户界面,其包括一个或多个图形元素(例如,单选按钮、文本输入字段、按钮等),管理员102经由用户界面设备(例如,鼠标、键盘、触摸屏等)使用所述元素来提交其请求。在实施方案中,用户界面的内容在身份提供商104自行决定下提供,并定义应用的目录,其中预定义了每个已知或公共服务提供商的联盟发现uri。可替代地,在实施方案中,管理员102手动输入与用于服务提供商110或用于包括通过使用联盟身份可访问的应用的任何其他服务提供商的联盟发现文件112的位置相对应的uri。

在实施方案中,身份提供商104发布可通过公开可访问的uri访问的联盟发现文件106。在一个实施方案中,联盟发现文件106包括将用于引导注册握手的信息,该信息是在身份提供商104与服务提供商(例如服务提供商110)之间引导联盟注册握手所需的最少量信息。在实施方案中,联盟发现文件106是使用javascript对象符号(json)、可扩展标记语言(xml)或任何其他结构化标记语言生成的。在一个实施方案中,联盟发现文件106包含标识身份提供商104正在执行的角色的字段。在实施方案中,由于身份提供商104执行身份提供商和服务提供商的角色,因此该字段可用于指定身份提供商104担任这两个角色。可替代地,在实施方案中,如果身份提供商104担任两个角色,则身份提供商104执行两次联盟注册,一次作为身份提供商,和一次作为服务提供商。

在实施方案中,联盟发现文件106包括指定联盟注册握手端点的信息,该端点是为了执行联盟注册握手而将用户代理定向到的位置。在实施方案中,联盟注册握手端点是指定上述位置的uri。如果身份提供商104还充当了服务提供商的角色,则在实施方案中,联盟发现文件106用于声明所支持的认证协议。在实施方案中,支持的认证协议包括saml、oidc或可用于建立联盟注册握手的另一种协议。在实施方案中,身份提供商使用选择算法来识别在建立联盟注册握手中要使用的认证协议。在实施方案中,选择算法基于管理员102记录的偏好、身份提供商的能力和/或任何其他因素。在实施方案中,联盟发现文件106还包括应用名称、徽标uri以及可经由用户界面呈现的其他可显示信息。

在实施方案中,服务提供商110还提供可由身份提供商104发现的联盟发现文件112。在实施方案中,联盟发现文件112类似于上述的联盟发现文件106,诸如通过指定为执行联盟注册握手而应将身份提供商104的用户代理定向到的位置。在实施方案中,使用可用于访问该位置的uri来定义该位置。在实施方案中,联盟发现文件112指定服务提供商110支持的认证协议,以及将经由身份提供商104提供的用户界面呈现给管理员102的应用名称、徽标uri以及其他可显示信息。在实施方案中,可选地包括这样的可显示信息。

在实施方案中,身份提供商104在用户界面上呈现一个或多个图形按钮,每个按钮都与由服务提供商提供的并且在其中预定义了用于服务提供商的联盟发现文件的联盟发现uri的应用相对应。管理员102选择一个或多个图形按钮中的任何一个来识别为其定义了联盟关系的应用。如上所述,管理员102可替代地提供与服务提供商的联盟发现文件的位置相对应的联盟发现uri,该联盟发现文件维护了将使用联盟身份来访问的应用。在实施方案中,身份提供商104对管理员102进行认证以确保管理员102被授权注册新的应用和联盟关系。

用户界面还包括用于指示管理员102准备启动注册过程的开始注册按钮或其他方法。如果管理员102提供身份提供商104将至少部分地基于所提供的信息(例如,选择应用图形按钮、输入联盟发现uri等)来启动注册过程的指示,则身份提供商104使用用户界面呈现确认页面。在实施方案中,由于联盟注册握手导致私人信息公开给服务提供商110,因此确认页面被更新为包括适用于该情况的通知或条款和条件。管理员102有机会整体地或者通过选择要共享哪些私人信息来授予或拒绝对私人信息的访问。可替代地,身份提供商104什么也不显示,并且立即将管理员102引导至下一步,例如如果管理员102已经使用配置信息来代表其他用户确定要共享哪些私人信息。

在实施方案中,通过向身份提供商的104联盟握手端点发出超文本传输协议(http)post请求并传递服务提供商的110联盟发现uri,来启动确认步骤。在替代实施方案中,使用httpget请求来启动确认步骤。另外,在实施方案中,身份提供商104获得服务提供商110的联盟发现文件112,并提取服务提供商110支持的认证协议和联盟注册握手端点uri。在一个实施方案中,联盟发现文件112类似于联盟发现文件106。在实施方案中,联盟发现文件112是使用json、xml或任何其他结构化标记语言生成的。身份提供商104至少部分地基于服务提供商110所支持的支持认证协议,来确定其是否与这些认证协议中的任何一个兼容。在实施方案中,身份提供商104执行附加验证,诸如确保所选择的应用是受信任应用的白名单集合的一部分。

身份提供商104评估联盟发现文件112中指定的认证协议,以确定将哪个认证协议用于联盟注册握手。在实施方案中,身份提供商104使用认证选择算法来选择要使用的认证协议。认证选择算法至少部分地基于所支持的认证协议的排序,其中将更高的排序分配给更常用的认证协议等。

在实施方案中,如下所述,身份提供商104创建提供给服务提供商110的初始访问令牌和随机数,以使服务提供商110能够访问身份提供商的特定于租户的信息108。初始访问令牌和随机数被服务提供商110用来调用oauth端点并获得访问令牌和刷新令牌,以便以编程方式与身份提供商104进行交互。在实施方案中,身份提供商104还生成返回uri,服务提供商110使用该返回uri将管理员102或其他用户重定向(即,重定向由管理员102或其他用户操作的设备)回到身份提供商104以完成联盟注册握手。可选地,身份提供商104生成状态属性,该状态属性对身份提供商104希望在联盟注册握手中保留的任何状态进行编码。该状态属性被传递给服务提供商110,并且被回送给返回uri。

在实施方案中,身份提供商104生成或以其他方式提供服务提供商110和其他授权实体(例如,其他服务提供商等)可使用的私有特定于租户的信息108,以配置联盟注册握手。对特定于租户的信息108的访问限于上述初始访问令牌的持有者。特定于租户的信息108包括身份提供商104的可显示名称,该名称受到可显示名称长度的限制。在实施方案中,可显示名称是必填字段。特定于租户的信息108还包括徽标uri,徽标uri用于提供代表身份提供商104的可显示徽标的位置。在实施方案中,徽标uri是可选字段。此外,徽标uri受到图像大小(以字节和/或几何尺寸为单位)的限制和/或徽标将以哪种图像格式编码的限制。

特定于租户的信息108指定身份提供商104支持和使用的至少一种认证协议。服务提供商110使用它来确定它是否与身份提供商104使用的任何认证协议兼容,作为建立联盟注册握手过程的一部分。在实施方案中,如果身份提供商104在特定于租户的信息108中指定其能够使用saml作为认证协议,则特定于租户的信息108指定saml元数据uri。saml元数据uri是指指定idpssodescriptor的元数据文档的位置,该idpssodescriptor描述了在身份提供商104处提供的单点登录服务器。在实施方案中,如果身份提供商104在特定于租户的信息108中指定其支持oidc认证协议,则特定于租户的信息108将包括oidc配置uri。oidc配置uri对应于openidprovider配置文档的位置。对saml元数据文档和openidprovider配置文档的访问取决于使用由身份提供商104提供的初始访问令牌生成的访问令牌。

在实施方案中,特定于租户的信息108指定oauth令牌端点,其包括刷新令牌可用作获得访问令牌的oauth令牌交换的一部分的位置的uri。特定于租户的信息108还指定了跨域身份管理系统(scim)端点uri,其对应于指定由身份提供商公开(例如通过标识符识别用户配置文件)的scim操作的位置。在建立联盟注册握手之前,该scim端点不可被服务提供商110使用。在实施方案中,要求特定于租户的信息108指定scim端点。特定于租户的信息108还指定一个或多个支持的属性,所述属性描述了身份提供商104提供的scim用户属性的集合。这些被表示为scim属性名称的集合。根据管理员102批准将其发布给服务提供商110的情况,将其中指定的scim用户属性包括在内。

在实施方案中,身份提供商104将管理员102重定向到服务提供商110以执行与上述那些类似的操作序列。通过向服务提供商110在其联盟发现文件112中指定的位置发出http302响应(重定向响应的示例,即指示重定向到另一个网络位置的响应)来完成管理员102的重定向。在响应中,身份提供商104提供初始访问令牌和随机数,以及返回uri和特定于租户的信息108的uri。

响应于接收到http302响应,服务提供商110开始其联盟注册过程。这包括对管理员102进行认证,使管理员102能够创建新帐户,配置用于向管理员102计费的设置等。此外,在实施方案中,服务提供商110从响应中获取初始访问令牌,并使用特定于租户的信息108的uri来获得特定于租户的信息108。服务提供商110从特定于租户的信息108中提取属性,并确定其是否与身份提供商104兼容。在实施方案中,服务提供商110检查saml/oidc配置文件内的认证协议、支持的属性和特定细节,以确定是否存在任何不兼容性。如果存在任何不兼容性,则服务提供商110停止执行注册过程,并通过用户界面显示错误消息或执行一个或多个操作以解决检测到的不兼容性。

在实施方案中,服务提供商110使用在特定于租户的信息108中指定的oauth端点来将初始访问令牌和随机数转换为访问令牌和刷新令牌。访问令牌和刷新令牌用于将来的通信,其中服务提供商110启动与身份提供商104的通信。此外,服务提供商110生成其自己的初始访问令牌和随机数,其将被提供给身份提供商104。身份提供商104使用此新生成的初始访问令牌和随机数来完成其用于建立联盟注册握手的过程。

如果服务提供商110使用oidc协议,则服务提供商110根据oidc规范,向身份提供商104执行oidc动态注册。服务提供商110可以通过openidprovider配置文档发现注册端点,可以使用特定于租户的信息108中指定的uri访问openidprovider配置文档。在实施方案中,为了支持oidc协议,身份提供商104被配置为支持动态注册。

在实施方案中,出于单点登录的目的,服务提供商110将身份提供商104注册为受信方。服务提供商110将单点登录信息保持在数据库中并安排重复发生的活动,包括密钥的轮换。在实施方案中,数据库被实现为web服务,诸如由计算资源服务提供商托管的多租户web服务,该计算资源服务提供商是与身份提供商104相同的实体或不同的实体(例如,计算资源服务提供商的客户)。该数据库是nosql数据库、关系数据库、基于对象的数据存储区或其他类型的数据结构,所有这些都可以由计算资源服务提供商作为web服务进行操作。

另外,在实施方案中,服务提供商110生成其自己的特定于租户的信息114或以其他方式使其可用。对此特定于租户的信息114的访问限于初始访问令牌的持有者,例如身份提供商104。特定于租户的信息114包括与在特定于租户的信息108中指定的条目类似的条目,例如服务提供商110的可显示名称、与代表服务提供商110的徽标位置相对应的uri、用于oauth令牌交换以使用刷新令牌的uri等等。特定于租户的信息114描述了服务提供商110将支持的认证协议,例如saml、oidc、身份提供商104的另一个或多个协议。在实施方案中,特定于租户的信息114包括saml元数据文档的uri,该元数据文档指定服务提供商单点登录描述符(spssodescriptor)。在实施方案中,身份提供商104使用访问令牌来访问saml元数据文档。

在实施方案中,特定于租户的信息114指定包括服务提供商所公开的一个或多个scim操作(例如,供应用户资源所必需的那些操作等等)的位置的uri。特定于租户的信息114包括供应模式字段,该供应模式字段用于描述身份提供商104应如何为用户供应服务。供应模式字段使选项可以指定无、准时(jit)、预供应和其他选项。在实施方案中,供应模式是必需的。特定于租户的信息114还指定一个或多个期望的属性,所述属性描述服务提供商110希望从身份提供商104接收的用户属性,以及这些属性是必需的还是可选的。在实施方案中,特定于租户的信息114中的期望属性字段是必需的。特定于租户的信息114还包括属性映射字段,该属性映射字段描述如何将scim属性映射到saml属性或oids声明。此映射可用于维护与现有基础结构的兼容性。在实施方案中,属性映射字段是可选的。

在实施方案中,一旦已经生成服务提供商110的特定于租户的信息114或以其他方式使其可用,则服务提供商110将管理员102重定向回身份提供商104。管理员102的重定向是通过对由身份提供商104最初在返回uri中提供的位置发出http302响应来完成的。作为返回参数的一部分,服务提供商110提供访问令牌和服务提供商110的特定于租户的信息114的位置。在实施方案中,服务提供商110回射身份提供商104最初提供的状态,如由身份提供商104生成的状态属性中所指定的。

响应于来自服务提供商110的http302响应而产生的来自用户的请求,身份提供商104完成注册过程。在实施方案中,身份提供商104通过使用由服务提供商110提供的初始访问令牌来获得服务提供商的特定于租户的信息114。身份提供商104使用在特定于租户的信息114中指定的oauth端点uri来访问oauth端点,并将初始访问令牌和随机数转换为访问令牌和刷新令牌。这些令牌用于将来的通信,其中身份提供商104启动与服务提供商110的通信。在实施方案中,在特定于租户的信息114中指定的oauth端点与在特定于租户的信息108中指定的oauth端点相同。身份提供商104完成联盟注册握手,并为管理员102启用对服务提供商110的单点登录。在实施方案中,身份提供商104将单点登录信息保持在数据库中,授予许可,并安排重复发生的活动,例如密钥轮换。

一旦注册过程完成,其他正在进行的活动将作为单点登录关系的一部分来执行。在实施方案中,当诸如管理员102之类的最终用户登录到应用时,发生saml或oidc流程以允许对应用的访问。然而,当执行saml或oidc流程时,身份提供商104应用由服务提供商110定义的任何联盟属性映射。某些应用需要持续的用户供应。此类应用在其特定于租户的信息中声明供应模式,并在必要时提供用于进行供应的scim端点。身份提供商104执行声明的供应模式。

在实施方案中,saml和oidc所利用的密钥材料会按适当的时间表自动轮换,并且不会导致单点登录用户(例如管理员102)暂时无法使用。虽然按照上述过程操作的系统进行操作,使得samlnameid填充有scip用户名,并且类型为“未指定”,但是在实施方案中管理员102定义了映射。此外,在实施方案中,不使用扩展属性,而是提供了支持scim模式的预定义列表。在实施方案中,身份提供商104和服务提供商110支持自动密钥轮换,以避免要求诸如管理员102之类的用户理解如何利用密钥和/或轮换这些密钥。在实施方案中,如果需要,供应使用scim。服务提供商110定义自定义属性映射,并且一旦定义,就在所有集成中重用。通过允许服务提供商110避免对其现有saml/oidc端点进行更改,简化采用过程。

本文所述的技术还包括识别身份提供商104和服务提供商110之间的唯一注册。在实施方案中,同一应用具有“生产”和“沙盒”实例。可替代地,一家公司中的不同部门创建了“销售”、“财务”、“供应商”等实例。在实施方案中,使用了等效的samlentityid。此外,本文描述的技术还适于为上述注册过程提供方便的用户界面。这些用户界面在下面结合图2-图6进行描述。这里描述的技术还适用于允许管理员102或其他用户一次指定多个服务提供商帐户的注册,诸如通过使这样的帐户能够在用户界面中被分组和选择。相应地调整信息流,例如针对每个帐户重复执行,或通过传输针对多个帐户捆绑的信息来进行调整。在实施方案中,采用本文描述的技术的系统允许实体关系随着时间发展。这些系统使用户可以更新其徽标或切换认证协议。

在实施方案中,各种密码技术被用来实现附加功能。如上所述,本公开的注册过程涉及指定哪些用户有权访问服务提供商110的应用。在一个实施方案中,使用信任代理来扩展指定谁有权访问该应用和谁没有权访问该应用的能力。在实施方案中,注册过程允许管理员102指定信任代理并提供信息,该信息允许对与信任代理相关联的信息(例如信任代理的数字证书)进行密码认证。用户使用密码信息(例如,数字证书或由信任代理数字签名的其他信息)向服务提供商110证明用户是与信任代理相关联的组的成员。身份提供商104在登录时会精心安排此类密码信息的获取,这涉及在登录过程期间对信任代理的同步调用(例如,以获得数字签名),或者通过使用与信任代理相关联存储的与登录过程异步获得的信息(例如,作为身份提供商104的配置的一部分),例如通过使用由信任代理签名的数字证书以对呈现给服务提供商110的信息进行数字签名(例如,使用与数字证书相关联的私钥)。其他变体也视为在本公开的范围内。

图2示出了根据至少一个实施方案的系统200的说明性示例,在该系统中,提供了用于识别用于建立联盟认证的服务提供商的界面202。在实施方案中,界面202是图形用户界面,其可由诸如管理员之类的用户经由通信网络访问。在实施方案中,身份提供商确定用户是否提供了可用于对用户进行认证的有效信息。如果用户被认证,则身份提供商提供对界面202的访问。然而,如果用户被认证并且被授权访问界面202,则身份提供商为用户呈现界面202。

界面202的内容由身份提供商自行决定。在实施方案中,身份提供商经由界面202提供其中预定义了联盟发现uri的应用的目录。在实施方案中,身份提供商经由界面202为其中预定义了联盟发现uri的每个应用提供应用图形按钮204。通过使用输入设备或光标,界面202的用户与应用图形按钮204进行交互以定义将被选择用于建立单点登录能力的应用。在一个实施方案中,身份提供商还经由界面202提供自定义应用字段206,用户可使用该自定义应用字段来提供将被注册以用于单点登录使用的自定义应用的uri。用户选择自定义应用字段206,并键入服务提供商的联盟发现文件的位置的uri。

在实施方案中,界面202包括注册图形按钮208,用户至少部分地基于使用应用图形按钮204或自定义应用字段206进行的选择,利用该注册图形按钮来启动注册过程。在实施方案中,如果身份提供商在呈现界面202之前尚未对用户进行认证,则身份提供响应于检测到注册图形按钮208的使用来对用户进行认证。如果用户被成功认证并被授权注册新的应用,则身份提供商通过如图3所示的界面呈现开始确认页面。

图3示出了根据至少一个实施方案的系统300的说明性示例,在该系统中,提供了界面302来指示该界面的用户重定向到由用户指定的服务提供商。响应于用户对上述注册图形按钮的选择,将界面302提供给用户。界面302为用户提供了确认其希望继续进行注册的机会。界面302和开始确认页面的内容由身份提供商自行决定。在实施方案中,经由界面302显示的开始确认页面包括通知,该通知用于通知用户它将被重定向到服务提供商以继续注册过程。此外,界面302还包括访问服务提供商图形按钮304,用户选择该按钮以使身份提供商将用户重定向到服务提供商。

在实施方案中,身份提供商经由界面302提供适用于注册过程的通知或条款和条件。通知向用户指示,私人信息将由身份提供商公开给服务提供商,作为注册的一部分。因此,至少部分地基于这些通知,用户决定是否选择访问服务提供商图形按钮304以继续注册过程。在实施方案中,向用户提供一个机会来整体上或者通过经由界面302选择要共享的私人信息来授予或拒绝对私人信息的访问。可替代地,身份提供商可选地不通过界面302显示任何内容,并且响应于对访问服务提供商图形按钮304的选择而立即将用户重定向到服务提供商。

图4示出了根据至少一个实施方案的系统400的说明性示例,在该系统中,响应于由于从服务提供商重定向到身份提供商而生成的来自用户的请求,向用户提供界面402。界面402包括在提供关于其登录偏好的信息之后向用户提供的通知,通知它已被从服务提供商重定向到身份提供商。此外,作为注册过程的一部分,通知用于提供与身份提供商将向服务提供商提供的信息有关的信息。如图4所示,这包括用户的名字、姓氏、电子地址、员工标识符和经理标识符。然而,在一个实施方案中,通过界面402,可以指定附加信息,该附加信息提供给服务提供商作为注册过程的一部分。

图5示出了根据至少一个实施方案的系统500的说明性示例,在该系统中,提供了用于识别被允许利用联盟认证来访问服务提供商的用户的界面502。在注册过程完成后,用户将使用单点登录来登录和访问服务提供商提供的应用。此外,在实施方案中,身份提供商将界面502更新为包括附加页面,以使用户能够识别被允许利用单点登录来访问服务提供商和用户指定的应用的其他用户。如图5所示,经由界面502呈现的页面向用户呈现了个人使用访问框504,用户利用该框来指定仅允许用户通过服务提供商使用单点登录来访问应用。

在一个实施方案中,该页面还包括组织使用访问框506,可以选择该框以指定允许用户组织中的每个人通过服务提供商使用单点登录来访问应用。该页面还包括用户子集访问框508和用户子集输入字段510,可用于定义被允许使用单点登录访问应用的特定用户和/或用户组。组织和组的成员是通过用户的配置文件定义的,并具有与组织相对应的权利。在实施方案中,应用提供可分配给用户的不同配置文件/角色。这些权利在身份提供商内部的用户配置文件上表示为自定义扩展属性。在实施方案中,指定权利的信息存储在可通过web服务访问的数据库中。另外,身份提供商执行脚本,该脚本将权利信息推送给服务提供商,如果服务提供商允许和/或要求这种功能的话。此类脚本会使用适当的协议(例如,scim协议,如在requestforcomment(rfc)7642、7643和7644中定义)将权利信息反复推送到服务提供商。

在实施方案中,定义了一种用于服务提供商的机制以声明可获得的配置文件/角色的集合。用户界面允许定义哪些身份被允许访问服务提供商资源以及允许用户访问哪些配置文件。在一个实施方案中,界面502是可修改的,以允许对服务提供商资源的访问的基于属性的定义,以便当用户向身份提供商进行认证时,作为认证过程的一部分,提供属性。至少部分地基于已登录用户的属性来评估有关访问服务提供商资源和涉及这些资源的服务的策略决策。在实施方案中,服务提供商将条件应用于属性,其中条件的满足允许访问特定资源和/或资源类别。这使服务提供商可以基于身份提供商维护的信息,使用基于属性的访问控制。这样的背景包括一天中的时间、因特网协议(ip)地址(例如与用户设备相关联的ip地址所处的范围、地理位置等)等等。

如图5所示,界面502包括提交图形按钮512,其可用于批准和提交使用访问框504、506、508和/或输入字段510指定的权利。响应于检测到对提交图形按钮512的使用,身份提供商更新用户的配置文件以指定这些新的权利,并使所识别的用户能够根据所执行的注册来利用单点登录来访问由服务提供商提供的一个或多个应用。在实施方案中,允许用户在任何时间访问界面502以修改先前通过身份提供商定义的任何权利。因此,在实施方案中,允许用户为与该用户相关联的用户提供附加的权利,修改现有的权利和/或撤销任何权利。

图6示出了根据至少一个实施方案的系统600的说明性示例,在该系统中,提供了用于识别用于建立联盟认证的身份提供商的界面602。在实施方案中,界面602包括一个或多个身份提供商图形按钮604,其对应于具有预定义的联盟发现文件的已知身份提供商。界面602还包括自定义身份提供商字段606,其使得界面602的用户能够指定uri。uri对应于存储身份提供商的联盟发现文件的位置。在一个实施方案中,界面602还包括注册图形按钮608。在实施方案中,对注册图形按钮608的选择使服务提供商为所选择的身份提供商,至少部分地基于对身份提供商图形按钮604的选择或在身份提供商字段606中提供的输入来识别的身份提供商,启动注册过程。

在实施方案中,服务提供商加载所选择身份提供商的联盟发现文件,并使用在联盟发现文件中指定的uri来提取握手端点。服务提供商将界面602的用户重定向到握手端点,包括服务提供商的其联盟发现文件的uri。在实施方案中,服务提供商在数据存储区(例如,如上所述的数据库)中维护被授权使用的身份提供商的列表,并且在用户的登录过程期间使用该信息来呈现适用的选项。此外,服务提供商存储每个身份提供商的授权信息,该信息用于(例如,作为权利)控制身份提供商能够执行哪些操作以及要求身份提供商如何进行操作(例如,特定的身份提供商是否要求多因素认证、特定类型的认证等)。从这一点开始,注册如以上结合图1所述进行。允许身份提供商选择更改体验文本,以帮助最终用户更好地了解在服务提供商和身份提供商之间重定向时发生的情况。

图7示出了根据至少一个实施方案的用于在身份提供商与由用户指定的服务提供商之间的联盟认证注册的过程700的说明性示例。过程700由身份提供商响应于来自用户的注册身份提供商和服务提供商之间的联盟关系的请求来执行,以实现用于访问由服务提供商提供的应用的单点登录能力。在实施方案中,身份提供商呈现用户界面,用户可使用该用户界面来启动认证注册过程,以便能够对服务提供商所提供的应用进行单点登录访问。如图2所示,该界面包括与已知服务提供商相对应的一个或多个图形按钮,每个按钮都与联盟发现文件的预定义uri相关联。在实施方案中,该界面还包括输入字段,由此允许用户输入与提供自定义应用的服务提供商的联盟发现文件相对应的uri。在实施方案中,通过选择图形按钮或输入与联盟发现文件相对应的uri,用户提交了用于允许对应用(例如saas应用)的单点登录访问的认证注册的请求。

身份提供商接收702对于特定应用的认证注册的请求,并且至少部分地基于该请求来识别704用于联盟访问应用的服务提供商。在实施方案中,如果用户已经选择了与已知服务提供商相对应的图形按钮,则身份提供商获取联盟发现文件的预定义的uri并使用其来与服务提供商或其他存储联盟发现文件的系统建立通信通道。可替代地,如果用户已提供了到服务提供商的联盟发现文件的位置的uri,则身份提供商将利用提供的uri来建立与服务提供商或其他系统的通信通道。

身份提供商使用预定义的uri或用户提供的uri,来访问服务提供商的联盟发现文件的位置,并获取706联盟发现文件。在实施方案中,身份提供商从联盟发现文件中提取并识别708服务提供商所支持的认证协议和联盟注册握手端点uri。至少部分地基于服务提供商所支持的支持认证协议,身份提供商确定710服务提供商是否被验证。身份提供商至少部分地基于服务提供商支持的受支持的认证协议,来确定其是否与这些认证协议中的任何一个兼容。在实施方案中,身份提供商执行附加验证,诸如确保所选择的应用是受信任应用的白名单集合的一部分。

如果身份提供商不能验证服务提供商,则身份提供商取消712注册过程。身份提供商更新提供给用户的界面以指示注册过程已被取消,以及其他详细说明验证失败性质的信息。但是,如果身份提供商验证了服务提供商,则身份提供商生成714初始访问令牌和随机数,其被提供给服务提供商以使服务提供商能够访问身份提供商的特定于租户的信息。服务提供商可以使用初始访问令牌和随机数来调用oauth端点并获得访问令牌和刷新令牌,以便以编程方式与身份提供商进行交互。在实施方案中,身份提供商还生成返回uri,服务提供商使用该返回uri来将管理员或其他用户重定向回身份提供商以完成联盟注册握手。

另外,在实施方案中,身份提供商生成716或以其他方式提供服务提供商和其他授权实体(例如,其他服务提供商等)所使用的私有特定于租户的信息,以配置联盟注册握手。对特定于租户的信息的访问限于由身份提供商生成的初始访问令牌的持有者。在一个实施方案中,特定于租户的信息包括:身份提供商的可显示名称,用于提供代表身份提供商的可显示徽标的位置的徽标uri,身份提供商所支持并使用的至少一个认证协议,刷新令牌可用作oauth令牌交换的一部分以获取访问令牌的位置的oauth令牌端点,scim端点uri,以及一个或多个受支持的属性,所述属性描述了身份提供商可以提供的scim用户属性的集合。上面结合图1描述了在特定于租户的信息中指定的其他信息。

在实施方案中,身份提供商重定向718将请求提交给服务提供商的用户以执行与上述那些类似的操作序列。在一个实施方案中,通过向服务提供商在其联盟发现文件中指定的位置发出http302响应来实现用户的这种重定向。在响应中,身份提供商提供初始访问令牌和随机数,以及返回uri和特定于租户的信息的uri。

图8示出了根据至少一个实施方案的用于向身份提供商注册联盟关系的过程800的说明性示例。由服务提供商响应于由用户从身份提供商重定向到服务提供商产生的来自用户的请求,来执行过程800。在实施方案中,服务提供商接收802来自用户的认证注册请求,并开始其联盟注册过程。认证请求由用户响应于来自身份提供商的导致用户被重定向到服务提供商的http302响应而提供。在一个实施方案中,联盟注册过程包括对用户进行认证,使用户能够创建新帐户,配置用于向用户计费的设置等。此外,在实施方案中,服务提供商从响应中获取初始访问令牌,并使用特定于租户的信息的uri来获得804身份提供商的特定于租户的信息。服务提供商从特定于租户的信息中提取属性,并确定806其是否与身份提供商兼容。在实施方案中,服务提供商检查saml/oidc配置文件内的认证协议、支持的属性和特定详细信息,以确定是否存在任何不兼容性。如果存在任何不兼容性,则服务提供商停止执行注册过程,并通过用户界面生成808错误通知或执行一个或多个操作以解决检测到的不兼容性。

在实施方案中,如果服务提供商确定其与身份提供商兼容(例如,服务提供商支持由身份提供商指定的认证协议等),则服务提供商使用特定于租户的信息中指定的oauth端点来将初始访问令牌和随机数转换810为访问令牌和刷新令牌。访问令牌和刷新令牌用于将来的通信,其中服务提供商启动与身份提供商的通信。此外,服务提供商生成812其自己的初始访问令牌和随机数,其将被提供给身份提供商。身份提供商可以使用此新生成的初始访问令牌和随机数来完成其用于建立联盟注册握手的过程。

服务提供商将身份提供商注册814为单点登录认证目的的受信方。在实施方案中,服务提供商将单点登录信息存储在数据库中,并安排重复发生的活动,包括密钥轮换。数据库被实现为web服务,例如由计算资源服务提供商托管的多租户web服务,在实施方案中,该计算资源服务提供商是与身份提供商相同的实体或不同的实体。另外,在实施方案中,服务提供商生成816或以其他方式提供其自己的特定于租户的信息。对此特定于租户的信息的访问限于由服务提供商(例如身份提供商)生成的初始访问令牌的持有者。在实施方案中,一旦已经生成服务提供商的特定于租户的信息或以其他方式使可用,则服务提供商就将用户重定向818到身份提供商。在实施方案中,用户的重定向是通过对由身份提供商最初在返回uri中提供的位置发出http302响应来完成的。作为返回参数的一部分,服务提供商提供访问令牌和服务提供商的特定于租户的信息的位置。

图9示出了根据至少一个实施方案的用于为用户完成联盟认证注册的过程900的说明性示例。响应于从服务提供商接收到用户的重定向,由身份提供商(即,身份提供商的计算机系统)执行过程900。在注册过程中以及在将用户重定向到服务提供商之后的任何时候,身份提供商都会接收到902来自用户的完成注册过程的请求。该请求是响应于服务提供商的http302响应而生成的,该响应使用户重定向到身份提供商。响应于来自用户的请求,身份提供商通过使用由服务提供商提供的初始访问令牌来获得904服务提供商的特定于租户的信息。身份提供商使用在特定于租户的信息中指定的oauth端点uri来访问oauth端点,并将初始访问令牌和随机数转换906为访问令牌和刷新令牌。这些令牌用于将来的通信,其中身份提供商启动与服务提供商的通信。身份提供商完成908认证注册,并为管理员启用对服务提供商的单点登录。在实施方案中,身份提供商将单点登录信息保持在数据库中,授予许可,并安排重复发生的活动,例如密钥轮换。

图10示出用于实施根据各种实施方案的方面的示例性系统1000的方面。如应理解,尽管出于说明目的,使用了基于web的系统,但是可视情况使用不同的系统来实施各种实施方案。系统包括电子客户端设备1002,所述电子客户端设备包括可操作来通过适当网络1004发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回设备的用户的任何适当设备。此类客户端设备的示例包括个人计算机、手机、手持式消息传送设备、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络包括任何适当网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或上述网络的组合。在一个实施方案中,用于这种系统的部件至少部分取决于选定的网络和/或环境的类型。用于通过这样的网络进行通信的许多协议和部件是公知的,且将不在此进行详细讨论。经由网络的通信通过有线或无线连接以及其组合来实现。在此示例中,网络包括因特网和/或其他可公开寻址的通信网络,因为系统包括用于接收请求并且响应于所述请求而提供内容的web服务器1006,但是对于其他网络来说,可以使用提供类似目的的备选设备,如对本领域的普通技术人员明显的。

说明性系统包括至少一个应用服务器1008和数据存储区1010。应当理解,存在可以被链接或以其他方式配置的若干应用服务器、层或其他元件、进程或部件,其可以进行交互以执行诸如从适当的数据存储区获得数据之类的任务。如本文所使用的服务器可以以各种方式实现,例如硬件设备或虚拟计算机系统。在一些背景下,服务器可以指代正在计算机系统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据存储区”是指能够存储、访问并检索数据的任何设备或设备的组合,所述设备或设备的组合可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储设备以及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储设备以及数据存储介质。应用服务器包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于根据需要与数据存储区集成以执行客户端设备的一个或多个应用的方面、处理应用的数据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储区协作来提供访问控制服务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其他内容,所述内容可由web服务器以超文本标记语言(“html”)、可扩展标记语言(“xml”)、javascript、级联样式表(“css”)、javascript对象表示法(json)和/或另一适当的客户端侧结构化语言的形式提供给用户。传送到客户端设备的内容可以由客户端设备处理,以便以一种或多种形式提供内容,所述形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉来感知的形式。在此示例中,对全部请求和响应的处理以及客户端设备1002与应用服务器1008之间的内容递送由web服务器使用php:超文本预处理器(“php”)、python、ruby、perl、java、html、xml、json和/或另一种适当服务器侧结构化语言来处理。此外,除非另外从上下文中清楚,否则在本文中被描述为由单个设备执行的操作可以由可能形成分布式和/或虚拟系统的多个设备共同地执行。

数据存储区1010包括若干单独的数据表、数据库、数据文档、动态数据存储方案和/或用于存储与本公开的具体方面相关的数据的其他数据存储机制和介质。例如,所示数据存储区可以包括用于存储生产数据1012和用户信息1016的机构,所述生产数据和用户信息用于服务生产侧的内容。所示数据存储区还包括用于存储日志数据1014的机构,所述数据用于报告、分析或其他此类目的。应理解,存在可需要存储在数据存储区中的许多其他方面,诸如页面图像信息和访问权信息,所述方面视情况存储在上文列出的机构中的任何机构中或存储在数据存储区1010中的附加机构中。数据存储区1010可以通过与其相关联的逻辑来操作,以便从应用服务器1008接收指令,并且响应于所述指令获得数据、更新数据或以其他方式处理数据。应用服务器1008可以响应于所接收指令而提供静态、动态数据或静态和动态数据的组合。诸如在web日志(博客)、购物应用、新闻服务以及其他此类应用中使用的数据的动态数据可以由如本文所描述的服务器侧结构化语言生成或者可以由在应用服务器上操作或在其控制下的内容管理系统(“cms”)提供。在一个示例中,通过由用户操作的设备,用户可以提交针对某一类型的项目的搜索请求。在这种情况下,数据存储区可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得有关所述类型的项目的信息。随后,将信息诸如以网页上的结果列表的形式返回给用户,用户能够通过用户设备1002上的浏览器来查看所述网页。在浏览器的专用页面或窗口中可以查看有关感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的上下文,而是可以更普遍地适用于处理一般的请求,其中请求不一定是对内容的请求。

每个服务器通常都将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器或其他类型的机器可读介质),所述指令在由服务器的处理器执行时(即,作为被执行的结果)允许服务器执行其预期的功能。

在一个实施方案中,系统为利用若干计算机系统和部件的分布式和/或虚拟计算系统,所述计算机系统和部件经由通信链路、使用一个或多个计算机网络或直接连接进行互连。然而,本领域的一般技术人员将了解,此类系统可以同样在具有比图10所示的部件更少或更多数量部件的系统中良好地操作。因此,图10中的系统1000的描绘本质上应视为说明性的,并且不限于本公开的范围。

本公开的实施方案可以根据以下条款来描述:

1.一种计算机实现的方法,其包括:

在身份提供商处接收对配置用于启用对服务提供商的单点登录的认证的请求;

识别由所述服务提供商支持的认证协议;

至少部分地基于由所述服务提供商支持的所述认证协议,确定所述身份提供商与所述服务提供商兼容;

生成所述身份提供商的配置信息,所述配置信息可由所述服务提供商用于配置所述认证;以及

向计算机系统发送对所述请求的响应,所述响应使所述计算机系统被重定向到所述服务提供商,并指示所述服务提供商可用以获取用于配置所述认证的所述配置信息的信息。

2.如条款1所述的计算机实现的方法,其还包括:

从所述请求中识别与所述服务提供商的文件位置相对应的统一资源标识符;以及

使用所述统一资源标识符来从所述位置获取所述文件;以及

从所述文件中提取由所述服务提供商支持的所述认证协议。

3.如条款1或2所述的计算机实现的方法,其中所述服务提供商可用来获取所述配置信息的所述信息包括所述服务提供商可用来访问所述配置信息的令牌。

4.如条款1-3中任一项所述的计算机实现的方法,其还包括:

接收第二请求,其中所述第二请求是作为从所述服务提供商到所述计算机系统的重定向响应的结果而发送的;

使用来自所述第二请求的信息来获取第二配置信息;以及

使用所述第二配置信息,使用所述认证,来启用对所述服务提供商的单点登录。

5.一种系统,其包括:

一个或多个机器可读介质,其上存储了一组指令,所述一组指令在由一个或多个处理器执行时使所述系统至少:

在第一计算机系统处接收对配置认证的请求;以及

向第二计算机系统发送对所述请求的响应,所述响应指示第三计算机系统并且指示要发送至第三计算机系统以配置认证的信息。

6.如条款5所述的系统,其中:

所述请求指示文件的位置,所述文件指定所述第三计算机系统支持的一组认证协议;以及

所述一组指令还使所述系统:

从所述位置获取所述文件;以及

至少部分地基于所述文件中指定的所述第三计算机系统支持的所述一组认证协议,确定所述第一计算机系统与所述第三计算机系统兼容。

7.如条款5或6所述的系统,其中所述信息包括可用于访问所述第一计算机系统的特定于租户的信息的令牌,所述第一计算机系统的所述特定于租户的信息可用于配置所述认证。

8.如条款5-7中任一项所述的系统,其中所述一组指令还使所述系统:

从所述第二计算机系统接收第二请求,所述第二请求指示所述第一计算机系统可用于配置所述认证的第二信息;

使用所述第二信息来获得所述第三计算机系统的配置信息;以及

使用所述配置信息来配置所述认证。

9.如条款5-8中任一项所述的系统,其中所述响应包括超文本传输协议响应,所述超文本传输协议响应使所述第二计算机系统从所述第一计算机系统重定向到所述第三计算机系统。

10.如条款5-9中任一项所述的系统,其中所述第一计算机系统是身份提供商,而所述第三计算机系统是服务提供商。

11.如条款5-10中任一项所述的系统,其中所述第一计算机系统是服务提供商,而所述第三计算机系统是身份提供商。

12.如条款5-11中任一项所述的系统,其中使用安全断言标记语言协议来配置所述认证。

13.一种非暂时性计算机可读存储介质,在其上存储了一组指令,所述一组指令在由计算机系统的一个或多个处理器执行时使所述计算机系统至少:

在第一计算机系统处接收对配置认证的请求;以及

向第二计算机系统发送对所述请求的响应,所述响应指示第三计算机系统并且指示要发送至第三计算机系统以配置认证的信息。

14.如条款13所述的非暂时性计算机可读存储介质,其中使用openidconnect认证协议来配置所述认证。

15.如条款13或14所述的非暂时性计算机可读存储介质,其中所述一组指令还使所述计算机系统:

生成令牌和随机数,所述令牌和所述随机数可用于访问可用于配置所述认证的所述第一计算机系统的特定于租户的信息;以及

在要发送给所述第三计算机系统的所述信息中包括所述令牌和所述随机数,以使所述第三计算机系统能够访问所述特定于租户的信息。

16.如条款13-15中任一项所述的非临时性计算机可读存储介质,其中所述请求指定与指定所述第三计算机系统支持的认证协议的文件的位置相对应的统一资源标识符;以及

所述一组指令还使所述计算机系统:

使用所述统一资源标识符来从所述位置获取所述文件;以及

至少部分地基于从所述文件中识别出的一组认证协议,确定所述第一计算机系统与所述第三计算机系统兼容。

17.如条款13-16中任一项所述的非暂时性计算机可读存储介质,其中所述响应使所述第二计算机系统从所述第一计算机系统重定向到所述第三计算机系统。

18.如条款13-17中任一项所述的非暂时性计算机可读存储介质,其中所述一组指令还使所述计算机系统:

从所述第二计算机系统接收第二请求,所述第二请求指示用于配置所述认证的第二信息的位置;

从所述位置获得所述第二信息;以及

使用所述第二信息来配置所述认证。

19.如条款18所述的非暂时性计算机可读存储介质,其中所述一组指令还使所述计算机系统从所述位置获得可用于启动与所述第三计算机系统的通信的令牌。

20.如条款13-19中任一项所述的非暂时性计算机可读存储介质,其中:

经由所述第一计算机系统提供的界面接收所述请求,所述界面指定用于配置所述认证的一组计算机系统,其中所述第三计算机系统是所述一组计算机系统的一部分;以及

所述请求指示通过所述界面选择所述第三计算机系统。

21.一种方法,其包括:

在第一计算机系统处接收对配置认证的请求;以及

向第二计算机系统发送对所述请求的响应,所述响应指示第三计算机系统并且指示要发送至第三计算机系统以配置认证的信息。

22.如条款21所述的方法,其中使用openidconnect认证协议来配置所述认证。

23.如条款21或22所述的方法,其还包括:

生成令牌和随机数,所述令牌和所述随机数可用于访问可用于配置所述认证的所述第一计算机系统的特定于租户的信息;以及

在要发送给所述第三计算机系统的所述信息中包括所述令牌和所述随机数,以使所述第三计算机系统能够访问所述特定于租户的信息。

24.如条款21-23中任一项所述的方法,其中所述请求指定与指定所述第三计算机系统支持的认证协议的文件的位置相对应的统一资源标识符;以及

所述方法还包括:

使用所述统一资源标识符来从所述位置获取所述文件;以及

至少部分地基于从所述文件中识别出的一组认证协议,确定所述第一计算机系统与所述第三计算机系统兼容。

25.如条款21-24中任一项所述的方法,其中所述响应使所述第二计算机系统从所述第一计算机系统重定向到所述第三计算机系统。

26.如条款25所述的方法,其还包括:

从所述第二计算机系统接收第二请求,所述第二请求指示用于配置所述认证的第二信息的位置;

从所述位置获得所述第二信息;以及

使用所述第二信息来配置所述认证。

27.如条款13-26中任一项所述的方法,其还包括来自所述位置的可用于启动与所述第三计算机系统的通信的令牌。

各种实施方案还在各种操作环境中实施,所述操作环境在一些情况下包括一个或多个用户计算机、计算设备或处理设备,其用于操作多个应用中的任何应用。用户或客户端设备包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种联网和消息传递协议的蜂窝式、无线和手持设备。这样的系统还包括多个工作站,它们运行各种可商购的操作系统中的任何一种以及用于诸如开发和数据库管理之类的用途的其他已知应用。这些设备还包括其他电子设备,诸如虚拟终端、瘦客户端、游戏系统和能够经由网络进行通信的其他设备。这些设备还包括虚拟设备,例如虚拟机、管理程序和能够经由网络进行通信的其他虚拟设备。

本公开的各种实施方案利用本领域技术人员可能熟悉的至少一种网络来支持使用多种可商购的协议中的任一种的通信,所述协议诸如传输控制协议/因特网协议(“tcp/ip”)、用户数据报协议(“udp”)、在开放系统互连(“osi”)模型的各个层中操作的协议、文件传送协议(“ftp”)、通用即插即用(“upnp”)、网络文件系统(“nfs”)、公共因特网文件系统(“cifs”)以及appletalk。网络是例如局域网、广域网、虚拟专用网、因特网、内联网、外联网、公用交换电话网、红外网络、无线网、卫星网络以及上述网络的任何组合。在一些实施方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为基于连接的协议)能够以有序流的形式传输数据。面向连接的协议是可靠的或是不可靠的。例如,tcp协议是一种可靠的面向连接的协议。异步传输模式(“atm”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向数据包的协议(诸如udp)形成对比,所述面向数据包的协议在没有保证排序的情况下传输数据包。

在利用web服务器的实施方案中,web服务器运行各种服务器或中间层应用中的任一者,包括超文本传输协议(“http”)服务器、ftp服务器、通用网关接口(“cgi”)服务器、数据服务器、java服务器、apache服务器以及业务应用服务器。服务器还可以能够响应于来自用户设备的请求而执行程序或脚本,诸如,通过执行可以实施为用任何编程语言(诸如,c、c#或c++)或任何脚本语言(诸如,ruby、php、perl、python或tcl)以及其组合编写的一个或多个脚本或程序的一个或多个web应用。服务器还可以包括数据库服务器,包括但不限于可从商购的数据库服务器,以及诸如mysql、postgres、sqlite、mongodb等开源服务器,以及能够存储、检索和访问结构化或非结构化数据的任何其他服务器。数据库服务器可以包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。

在一个实施方案中,该系统包括各种数据存储区以及如上所述的其他存储器和存储介质。这些驻留在各种各样位置,如在计算机的一个或多个本地(和/或驻留在计算机的一个或多个中)的存储介质上,或在网络上远离任何或所有计算机的存储介质上。在一组特定的实施方案中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“san”)中。类似地,用于执行计算机、服务器或其他网络设备所特有的功能的任何必要文件可以在适当的情况下本地和/或远程存储。在系统包括计算机化设备的情况下,每一个这种设备都包括可通过总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“cpu”或“处理器”)、至少一个输入设备(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出设备(例如,显示设备、打印机或扬声器)。这样的系统还可以包括一个或多个存储设备,诸如磁盘驱动器、光存储设备以及诸如随机存取存储器(“ram”)或只读存储器(“rom”)之类的固态存储设备,以及可移动介质设备、存储卡、闪存卡等。

此类设备还包括计算机可读存储介质读取器、通信设备(例如,调制解调器、网卡(无线或有线的)、红外通信设备等)以及如上文所描述的工作存储器。计算机可读存储介质读取器与计算机可读存储介质连接或被配置成接收计算机可读存储介质,所述计算机可读存储介质表示远程、本地、固定和/或可移动的存储设备,以及用于临时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。系统和各种设备通常也将包括位于至少一个工作存储器设备内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。此外,也可以使用自定义的硬件和/或特定元件可以用硬件、软件(包括移植性软件,例如小应用)或两者来实现。此外,可采用与其他计算设备(诸如网络输入/输出设备)的连接。

用于含有代码或代码部分的存储介质和计算机可读介质包括本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,用于存储和/或传输信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移动和不可移动介质,包括ram、rom、电可擦除可编程只读存储器(“eeprom”)、闪存或其他存储器技术、压缩盘只读存储器(“cd-rom”)、数字通用盘(dvd)或其他光学存储设备、磁带盒、磁带、磁盘存储设备或其他磁存储设备,或者用于存储所需信息且由系统设备访问的任何其他介质。基于本文所提供的公开和教导,本领域普通技术人员应理解实施各个实施方案的其他方式和/或方法。

因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,明显的是,在不脱离如权利要求所述的本发明的更广泛精神和范围的情况下,可以进行各种修改和改变。

其他变化在本公开的精神内。因此,虽然所公开的技术易受各种修改和替代构造的影响,但是在附图中示出了并且在上文已经详细描述其某些示出的实施方案。然而应理解,不存在将本发明限于所公开的具体一个或多个形式的意图,相反,本发明将覆盖落在如在随附权利要求中定义的本发明的精神和范围内的所有修改、替代构造和等同物。

除非本文另有说明或明确地与上下文矛盾,否则在描述所公开的实施方案的上下文中(特别是在所附权利要求的上下文中)对术语“一个/种”和“该/所述”以及类似指称对象的使用应被解释为涵盖单数和复数两者。除非另有说明,否则术语“包括”、“具有”、“包括”和“含有”应被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且涉及物理连接时,术语“连接”应被解释为部分或全部包含在内、附接到或接合在一起,即使存在某些介入。本文中值的范围的描述仅旨在用作单独地参考落在该范围内的每个单独值的速记方法,除非本文另有说明,并且将每个单独的值并入本说明书中,如同在本文中单独列举一样。除非另有说明或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下文矛盾,否则术语对应集合的“子集”未必表示对应集合的真子集,而是子集和对应集合可以相等。

除非另有具体陈述或另外明确地与上下文矛盾,否则连接语言,诸如形式“a、b、和c中的至少一个”或“a、b和c中的至少一个”之类的短语在一般使用的上下文中被理解为表示某一项目、项等可以是a或b或c,或者a和b和c的集合的任何非空子集。例如,在具有三个成员的集合的说明性示例中,连接短语“a、b、和c中的至少一个”和“a、b和c中的至少一个”是指以下集合中的任一者:{a}、{b}、{c}、{a,b}、{a,c}、{b,c}、{a,b,c}。因此,此类连接语言通常并不意图暗示某些实施方案需要a中的至少一个、b中的至少一个和c中的至少一个各自存在。另外,除非另有说明或与上下文矛盾,否则术语“多个”表示复数的状态(例如,“多个项目”表示多个项目)。多个项目的数量至少是两个,但是在实施方案中,当明确地指示或通过上下文指示时,项目的数量更多。

除非本文另有说明或另外明确地与上下文矛盾,否则本文所述的过程的操作可以以任何合适的顺序执行。本文中描述的过程(或其变化和/或其组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实施为在一个或多个处理器上共同地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用),通过硬件来实施或其组合来实施。代码可以存储在计算机可读存储介质上,例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,其上存储有可执行指令,当由计算机系统的一个或多个处理器执行时(即,作为被执行的结果),所述指令使得计算机系统执行这里描述的操作。该非暂时性计算机可读存储介质集合可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的单独的非暂时性存储介质的一个或多个可能并非包含所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。此外,在一些示例中,执行可执行指令,使得不同的指令由不同的处理器执行。作为说明性示例,非暂时性计算机可读存储介质可以存储指令。主cpu可执行所述指令中的一些且图形处理器单元可执行所述指令中的其他指令。通常,计算机系统的不同部件可以具有单独的处理器,并且不同的处理器可以执行指令的不同子集。

因此,在一些示例中,计算机系统被配置为实施单独地或共同地执行本文中描述的过程的操作的一个或多个服务。此类计算机系统可以例如被配置有能够执行操作的适用硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些示例中可以是单个设备,而在其他示例中,是包括多个设备的分布式计算机系统,所述多个设备不同地操作,使得分布式计算机系统执行本文中描述的操作,并且使得单个设备不能执行所有操作。

除非另有要求,否则对本文所提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明书中的语言不应被解释为表示任何未要求保护的元素是实践本发明所必需的。

本公开的实施方案在本文中描述,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变化对于本领域的普通技术人员可变得明显。本发明人期望本领域技术人员适当地使用此类变化,并且发明人意图以与本文中的具体描述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另有说明或另外明确地与上下文矛盾,否则本公开的范围涵盖其全部可能变化中的上述元素的任何组合。

在本文中引用的所有参考文献,包括公布案、专利申请案以及专利特此通过引用并入,如同每一参考文献个别地且具体地指示为通过引用并入且以其全文在本文中阐述一样的程度。

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