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

在计算系统中的动态认证方案选择的制作方法

2022-11-12 23:04:05 来源:中国专利 TAG:

在计算系统中的动态认证方案选择


背景技术:

1.远程或“云”计算系统通常利用被容纳在数据中心的大量远程服务器来提供计算、存储、网络以及其他计算服务。远程服务器能够通过计算机网络相互连接,以形成一个或多个计算集群。在计算集群中的每个远程服务器能够托管一个或多个虚拟机(“vm”)、容器、虚拟交换机、负载平衡器以及其他类型的虚拟化组件以用于资源共享。在操作期间,虚拟机或容器能够促进用户应用的运行,从而为用户提供对应的计算服务。


技术实现要素:

2.提供本发明内容是为了以简化形式介绍概念的选择,这些概念将在下文的详细描述中进一步描述。本发明内容并非旨在识别所要求保护的主题的关键特征或基本特征,也并不旨在用于限制所要求保护的主题的范围。
3.在特定计算设施中,在云计算设施中的远程服务器能够经由计算、存储、网络或者其他合适类型的物理资源的虚拟化来向多个订户或“租户”提供计算服务。例如,服务器能够在操作系统上运行合适的指令以提供用于管理在服务器处托管的多个虚拟机的管理程序。每个虚拟机都能够运行合适的应用,来为租户的用户提供对应的计算服务。因此,多个租户能够在云计算设施中的个体服务器处共享物理资源作为计算服务。另一方面,单个租户也能够将来自多个服务器、存储设备或者云计算设施的其他合适组件的物理资源作为单个计算服务来消费。
4.在特定云计算设施中,能够将各种计算服务组织为平台服务和支持所述平台服务的微服务。例如,平台服务能够是被配置为处理电子邮件接收、转发、同步以及其他合适操作的电子邮件交换服务。示例性电子邮件交换服务是被包含在由华盛顿雷德蒙顿的微软公司提供的office 365套件中的服务。在对电子邮件交换服务进行认证后,能够允许用户访问诸如对应邮箱中的电子邮件和附件的内容。为了提供这样的内容,电子邮件交换服务能够依赖一个或多个微服务来提供支持。例如,在操作期间,邮箱微服务能够对其自己进行认证,并且然后将电子邮件提供给电子邮件交换服务,电子邮件交换服务继而能够将所接收到的电子邮件转发到用户的客户端设备。在另一示例中,日历微服务能够被配置为向电子邮件交换服务提供日历项目、提醒或者其他合适信息的内容。
5.云计算设施通常实现一种认证服务,所述认证服务被配置为促进微服务向平台服务和/或彼此的认证。例如,认证服务能够被配置为接收来自微服务的认证请求。作为响应,所述认证服务能够被配置为根据认证方案来验证微服务的凭证。在验证所述凭证后,所述认证服务能够被配置为基于所述微服务的认证简档来生成安全令牌(或者其他合适的安全条款)并且将其传输到所述微服务。所述认证简档能够包含诸如令牌获取的配置的信息和/或其他合适的信息。然后,所述微服务能够利用所接收到的安全令牌向平台服务(或其他合适的计算服务)来认证其自己,以便针对所述平台服务提供内容或者执行其他合适的动作。
6.在特定计算系统中,可以部署多个认证方案。每个认证方案能够针对凭证、认证程序和/或协议或者其他不同的操作特性具有不同的要求。例如,承载认证是一种利用被称为
承载令牌的数据包的认证方案。承载令牌是隐字符串,其通常由服务器响应于令牌请求而生成。承载令牌允许呈现所述承载令牌的实体(例如,用户、设备或者计算服务)访问特定计算资源或者执行计算操作。认证方案的其他示例包括windows认证、证书认证和容器认证。
7.在发起认证过程之前,作为认证服务的客户端的微服务通常执行认证方案发现,以便决定要使用的认证方案。例如,微服务能够将发现请求传输到所述认证服务的发现接口(例如,由ip地址、通用资源定位器或“url”或者其他合适类型的网络地址来标识的)。作为响应,所述认证服务提供发现响应,所述发现响应包括由所述认证服务支持的一个或多个认证方案的列表以及在对应ip地址、url和/或其他合适的网络地址处的对应认证接口(被称为“认证端点”)。在接收到所述发现响应后,所述微服务然后能够选择所述认证方案中的一种认证方案并且通过向与所选择的认证方案相对应的所述认证服务的认证端点传输认证请求来发起认证过程。
8.前述由所述微服务进行的客户端侧认证方案选择可能具有若干缺点。首先,所述认证方案发现会在从所述微服务向所述平台服务提供内容时引入延迟。其次,随着微服务的数量的增加,所述认证服务可能过载,并且需要切换到新认证方案。然而,更新每个微服务以具有符合新认证方案的认证库可能是劳动密集型、乏味并且易于出错的。另外,当所述认证服务公开多个认证端点时,所述微服务会因认证逻辑而过载,所述认证逻辑跟踪微服务能够调用哪个认证端点来发起认证过程。
9.所公开的技术的若干实施例能够通过在所述认证服务处实现服务侧认证方案选择来解决客户端侧认证方案选择的前述缺陷的至少若干方面。在特定实现方式中,所述认证服务能够被配置为部署请求监视器,所述请求监视器用于在处理所述认证请求之前检测来自微服务的认证请求。示例性请求监视器能够包括被配置为具有ip地址、端口号、服务器名称、默认服务器或者其他合适参数的侦听套接字的超文本传输协议(“http”)侦听器。
10.在检测到来自微服务的传入认证请求时,所述请求监视器能够被配置为分析所述认证请求的报头(header)和/或有效载荷的至少一部分,以获取哪个(些)认证方案受所述微服务支持或者适用于所述微服务的指示符或“提示”。例如,所述认证请求可能包括包含值“winauthenabled:真”的加密报头。作为响应,所述认证服务能够指示window认证能够是用于处理所接收到的认证请求的候选认证方案。在另一示例中,所述认证请求能够包括javascript对象表示法(“json”)web令牌。作为响应,所述认证服务能够指示令牌认证可以是用于处理所接收到的认证请求的候选认证方案。在又一示例中,所述请求监视器能够确定所述认证请求不包括报头,而是利用数字证书来签名,并且数字签名被包括在所述认证请求的有效载荷中。作为响应,所述认证服务能够指示证书认证是用于处理所接收到的认证请求的候选认证方案。
11.在其他实现方式中,所述微服务能够被配置为访问包含由所述微服务支持的认证方案的配置信息的认证库。然后,所述微服务能够被配置为向所述认证请求添加报头值,所述报头值指示所支持的认证方案,诸如“authscheme:windows”。接收到所述认证请求后,所述请求监视器能够从所述报头中提取由所述微服务支持的认证方案,并且确定所支持的认证方案是否也被所述认证服务支持。响应于确定所述认证服务也支持所述认证方案,所述请求监视器能够被配置为根据从所述认证请求的所述报头中提取的所述认证方案来启动合适的认证处理程序以促进所述认证过程。否则,所述请求监视器能够忽略所提取的认证
方案,并且替代地,启动默认认证处理程序以用于促进与所述微服务的认证过程或者传输由所述认证服务支持的认证方案的列表以供微服务根据客户端侧认证选择方案进行选择。
12.所公开的技术的若干实施例因此能够通过在所述认证服务处启用动态认证方案选择来促进对计算服务(诸如微服务)到平台服务的高效认证。经由所述请求监视器,能够在具有单个认证端点的认证服务处实现不同的认证方案。这样,即使当所述微服务支持不同的认证方案时,多个微服务也能够调用相同的认证端点。因此,当与客户端侧认证方案选择相比时,能够减少在所述微服务处实现的认证逻辑。
13.前述服务侧认证方案选择也能够允许在云计算设施中对新认证方案的高效部署。例如,能够将新认证方案部署到所述认证服务。所述新认证方案能经由与(一个或多个)其他现有认证方案相同的认证端点访问。这样,对所述新认证方案的测试可以通过向认证请求提供与所述新认证方案相对应的“提示”来进行,同时同一认证端点继续根据现有认证方案促进认证过程。在确定所述新认证方案正在恰当地工作后,通过仅修改来自微服务的认证请求中所包含的“提示”,在所述认证服务处的认证过程能够切换到使用所述新认证方案。
附图说明
14.图1是图示了根据所公开的技术的实施例的实现动态认证方案选择的分布式计算系统的示意图。
15.图2是图示了根据所公开的技术的实施例的图1的分布式计算系统的特定硬件和软件组件的示意图。
16.图3a和图3b是图示了根据本技术的实施例的在操作期间在分布式计算系统中提供的计算服务的示例组织的示意框图。
17.图4a和图4b是图示了根据本技术的实施例的在分布式计算系统中的动态认证方案选择的示意框图。
18.图5a和图5b是图示了根据本技术的实施例的用于实现动态认证方案选择的过程的各方面的流程图。
19.图6是适用于图1中的分布式计算系统的特定组件的计算设备。
具体实施方式
20.下文描述了用于在分布式计算系统中实现动态认证方案选择的系统、设备、组件、模块、例程、数据结构以及过程的特定实施例。在以下描述中,包括组件的具体细节以提供对所公开的技术的特定实施例的透彻理解。相关领域的技术人员也将理解,所述技术能够具有额外的实施例。也能够在没有下文参照图1-6所描述的实施例的细节中的若干细节的情况下来实践所述技术。
21.如在本文中所使用的,术语“分布式计算系统”通常指代具有将多个主机相互或者与外部网络(例如,因特网)互连的计算机网络的计算设施。这样的计算设施的示例能够包括用于提供云计算服务的数据中心。计算网络能够包括多个网络设备。术语“网络设备”通常指代物理网络设备,其示例包括路由器、交换机、集线器、网桥、负载平衡器、安全网关或者防火墙。“主机”能够是服务器或者其他合适类型的硬件/软件计算设备,其被配置为提供
支持一个或多个虚拟机、虚拟交换机或者其他合适类型的虚拟组件的管理程序。
22.如在本文中所使用的,“管理程序”通常指代在主机上创建、管理和运行一个或多个虚拟机的计算机软件、固件和/或硬件。“虚拟机”或“vm”是使用计算机软件对物理计算系统的模拟。不同的虚拟机能够被配置为提供合适的计算环境,以便在单个主机上为相同或不同的用户运行不同的过程。在操作期间,主机上的管理程序能够将具有虚拟操作平台的不同虚拟机呈现给主机上的硬件资源,并且为虚拟机管理对各种过程的运行。
23.同样在本文中所使用的,术语“计算服务”或“云服务”通常指代通过诸如因特网的计算机网络提供的一个或多个计算资源。示例性云服务包括软件即服务(“saas”)、平台即服务(“paas”)和基础设施即服务(“iaas”)。saas是一种软件分发技术,其中,软件应用程序由云服务提供商托管在例如数据中心中,并且由用户通过计算机网络来访问。paas通常指代通过计算机网络交付操作系统和相关联的服务,而无需下载或安装。iaas通常指代被用于支持存储、硬件、服务器、网络设备或者其他组件的外包设备,所有这些都能通过计算机网络来访问。
24.如在本文中所使用的,“认证方案”通常指代针对凭证、过程和/或协议或者与认证过程相关的其他不同操作特性的一组不同要求。例如,承载认证是一种利用被称为承载令牌的数据包的认证方案。承载令牌是通常由服务器响应令牌请求而生成的隐字符串。承载令牌允许呈现承载令牌的实体(例如,用户、设备或者计算服务)访问特定计算资源或者执行计算操作。在另一示例中,windows认证(以前被称为ntlm,也被称为windows nt质询/响应认证)是在跨网络发送之前对输入的用户名和密码进行哈希处理的认证方案。在又一示例中,证书认证在授予对资源、网络、应用等的访问权限之前使用由受信任的证书颁发机构颁发的数字证书来识别用户、机器、设备或者计算服务。其他示例能够包括容器认证、质询-握手认证、可扩展认证以及其他合适的认证方案。
25.同样在本文中所使用的,“认证服务”通常指代被配置为在从诸如另一计算服务的请求者接收到认证请求时促进认证过程的计算服务。一个示例性认证服务是安全令牌服务(“sts”),其是单点登录基础设施框架的跨平台开放标准组件。在该基于声明的身份框架内,sts能够负责发布、验证、更新以及取消安全令牌。由sts所发布的所述安全令牌随后能够被用于向其他计算服务识别安全令牌的持有者(例如,计算服务),以用于访问资源和/或执行适当的动作。
[0026]“安全令牌”、“访问令牌”或者“令牌”通常指代包含针对登录会话的安全凭证并且识别实体、实体组、实体的(一项或多项)特权以及在某些情况下特定的应用的数字数据包。示例性安全令牌能够包括由各种字段以及其值组成的随机字符串,诸如标识符、登录会话的标识、用户标识符、默认所有者和/或其他合适的字段。
[0027]
进一步在本文中所使用的“认证接口”或者“认证端点”一般指代用于调用认证服务的接入点。所述接入点能够通过ip地址、端口号、服务器名称、默认服务器或者标识接入点的网络位置的其他合适参数来标识。例如,可以通过以下url来标识认证端点:http://131.107.72.15/security_federation_securitytokenservice_symmetric.svc
[0028]
在云计算设施中,向另一计算服务认证计算服务能够涉及从认证服务获得安全令牌。然而,在发布安全令牌之前,所述认证服务可能要求请求计算服务根据认证方案对自身进行认证。这样,在发起认证过程之前,计算服务通常执行认证方案发现以便决定要使用的
认证方案。例如,计算服务能够向认证服务传输发现请求。作为响应,所述认证服务提供包括由认证服务所支持的一个或多个认证方案的列表以及对应的认证接口的发现响应。在接收到所述发现响应时,所述计算服务然后能够选择认证方案之一并且通过将认证请求传输到与所选择的认证方案相对应的认证服务的认证接口来发起认证过程。
[0029]
让所述请求计算服务选择认证方案会具有若干缺点。首先,当计算设备相互交互时,所述认证方案发现会引入延迟。其次,随着计算服务的数量的增加,所述认证服务可能过载,并且需要切换到新认证方案。然而,更新每个计算服务以具有符合所述新认证方案的认证库可能是劳动密集型、乏味并且易于出错的。另外,当所述认证服务公开多个认证接口时,计算服务会因认证逻辑而过载,所述认证逻辑跟踪所述计算服务能够调用哪个认证接口来发起认证过程。
[0030]
所公开的技术的若干实施例能够通过在认证服务处实施服务侧认证方案选择来解决前述缺陷的至少若干方面。在特定实现方式中,所述认证服务能够被配置为部署请求监视器,所述部署请求监视器用于在处理认证请求之前检测来自微服务的认证请求。在检测到来自微服务的传入认证请求时,所述请求监视器能够被配置为分析认证请求的报头和/或有效载荷的至少一部分,以获取支持哪个(些)认证方案由微服务支持或者适用于微服务的指示符或“提示”。基于“提示”,所述认证服务能够指示能够使用特定认证方案来处理所接收到的认证请求。因此,所公开的技术的若干实施例能够通过在认证服务处启用动态认证方案选择来促进对计算服务的有效认证,如下文参考图1-6更详细描述的。
[0031]
图1是图示了根据所公开的技术的实施例的具有实现用于远程计算资源访问的可共享链接的主机的分布式计算系统100的示意图。如在图1中所示的,分布式计算系统100能够包括计算机网络(被示为“底层网络108”),所述计算机网络将被示为服务器106、用户101的多个客户端设备102和资源管理器110的多个主机彼此互连。资源管理器110能够是集群控制器、结构控制器、数据库控制器和/或被配置为监视和管理服务器106和/或分布式计算系统100中的其他组件的资源和操作的其他合适类型的控制器。尽管在图1中示出了计算系统100的特定组件,但是在其他实施例中,计算系统100也能够包括网络存储设备、维护管理器和/或除了或代替在图1中所示的组件之外的其他合适的组件(未示出)。
[0032]
如在图1中所示的,底层网络108能够包括将多个服务器106与客户端设备102互连的多个网络设备112。在特定实施例中,服务器106能够被组织成机架、动作区、组、集合,或者其他合适的划分。例如,在所图示的实施例中,服务器106被分组成三个集群,其被个体地标识为第一、第二和第三集群107a-107c。在所图示的实施例中,集群107a-107c中的每个集群被可操作地分别耦合到对应的网络设备112a-112c,其通常被称为“架顶式”或者“tor”网络设备。tor网络设备112a-112c然后能够被操作地耦合到额外网络设备112以形成分层、平面、网状或者其他合适类型拓扑的网络。计算机网络能够允许在服务器106和客户端设备102之间的通信。在其他实施例中,多个主机机器集107a-107c能够共享单个网络设备112或者能够具有其他合适的布置。
[0033]
服务器106能够被个体地配置为向个体用户101提供计算、存储和/或其他合适的云计算服务。例如,如下文参考图2更详细地描述的,服务器106中的每个服务器能够根据来自用户101的请求来发起和维护一个或多个虚拟机144(如在图2中所示的)。然后,用户101能够利用实例化的虚拟机144来运行合适的过程以用于执行计算、通信和/或其他合适的任
务。在特定实施例中,服务器106中的一个服务器能够为多个用户101提供虚拟机144。在其他实施例中,多个服务器106能够为一个或多个用户101a-101c托管虚拟机144。
[0034]
客户端设备102能够各自包括促进对应用户101或管理员104经由底层网络108访问由服务器106提供的计算服务的计算设备。例如,在所图示的实施例中,客户端设备102个体地包括台式计算机。在其他实施例中,客户端设备102也能够包括膝上型计算机、平板计算机、智能手机或者其他合适的计算设备。尽管出于例示说明目的在图1中示出了三个用户101,但是在其他实施例中,分布式计算系统100能够促进任何合适数量的用户101或管理员访问由服务器106和/或分布式计算系统100中的其他组件提供的云和/或其他合适类型的计算服务。
[0035]
图2是图示了根据所公开的技术的实施例的能够在图1中的底层网络108上实现的覆盖网络108'的示意图。在图2中,为了清楚起见,仅示出了图1的底层网络108的特定组件。如在图2中所示的,第一服务器106a和第二服务器106b能够各自包括被可操作地彼此耦合的cpu 132、存储器134和网络接口136。cpu 132能够包括一个或多个处理器、微处理器、现场可编程门阵列和/或其他合适的逻辑设备。存储器134能够包括易失性和/或非易失性介质(例如,rom;ram、磁盘存储介质;光存储介质;闪存设备和/或其他合适的存储介质)和/或被配置为存储从cpu 132接收的数据以及用于cpu 132的指令(例如,用于执行下文参考图5a和5b讨论的方法的指令)的其他类型的计算机可读存储介质。网络接口136能够包括网络接口卡、连接转换器和/或其他合适类型的输入/输出设备,所述设备被配置为接受来自覆盖网络108'上的其他组件的输入并且向其提供输出。
[0036]
第一服务器106a和第二服务器106b能够个体地包含存储器134中的指令,所述指令能由cpu132执行以使得个体服务器106a和106b提供管理程序140(被个体地标识为第一和第二管理程序140a和140b)。管理程序140能够被个体地配置为生成、监视、终止和/或以其他方式来管理被组织成租户站点142的一个或多个虚拟机144。例如,如在图2中所示的,第一服务器106a能够提供分别管理第一和第二租户站点142a和142b的第一管理程序140a。第二服务器106b能够提供分别管理第一和第二租户站点142a'和142b'的第二管理程序140b。管理程序140在图2中被个体地示为软件组件。然而,在其他实施例中,管理程序140也能够包括固件和/或硬件组件。
[0037]
租户站点142能够各自包括针对特定租户的多个虚拟机144。例如,第一服务器106a和第二服务器106b两者都能够为第一用户101a托管租户站点142a和142a'。第一服务器106a和第二服务器106b两者都能够为第二用户101b托管租户站点142b和142b'。每个虚拟机144能够正在运行与操作系统、中间件和/或合适的应用程序相对应的应用程序或进程147。所运行的应用程序或进程147能够各自对应于一个或多个计算服务或者其他合适类型的计算服务。这样的计算服务的示例能够包括平台服务、微服务、认证服务,如下文参考图3a和图3b更详细讨论的。
[0038]
同样在图2中所示的,计算系统100能够包括具有一个或多个虚拟网络146的覆盖网络108',所述一个或多个虚拟网络146跨第一和第二服务器106a和106b互连租户站点142a和142b。例如,第一虚拟网络146a将第一服务器106a和第二服务器106b处的第一租户站点142a和142a'互连。第二虚拟网络146b将第一服务器106a和第二服务器106b处的第二租户站点142b和142b'互连。即使单个虚拟网络146被示为对应于单个租户站点142,在其他
实施例中,多个虚拟网络(未示出)可以被配置为对应于单个租户站点146。
[0039]
虚拟网络146上的虚拟机144能够经由底层网络108(图1)相互通信,即使虚拟机144被定位或托管在不同的服务器106上。虚拟网络146中的每个虚拟网络的通信能够与其他虚拟网络146隔离。在特定实施例中,能够允许通信通过安全网关或者以其他方式以受控方式从一个虚拟网络146跨越到另一虚拟网络146。虚拟网络地址能够对应于在特定虚拟网络146中的虚拟机144中的一个虚拟机。因此,不同的虚拟网络146能够使用相同的一个或多个虚拟网络地址。示例性虚拟网络地址能够包括ip地址、mac地址和/或其他合适的地址。
[0040]
在操作中,服务器106能够促进虚拟机和/或在虚拟机144中运行的应用之间的通信。例如,第一服务器106a的cpu 132能够运行合适的网络通信操作以促进第一虚拟机144a通过遍历第一服务器106a上的网络接口136、底层网络108(图1)和第二服务器106b上的网络接口136,经由虚拟网络146a传输分组到第二虚拟机144b。这样,第一服务器106a上的租户站点142a的第一虚拟机144a能够与另一服务器106b上的另一虚拟机144b协作以执行合适的应用程序或进程147,以便为用户101提供合适的计算服务。
[0041]
图3a和图3b是根据本技术的实施例的分布式计算系统100的示意框图,所述分布式计算系统100具有被配置用于动态认证方案选择的认证服务156。在图3a和图3b在以及在本文的其他图中,个体软件组件、对象、类、模块和例程可以是以c、c 、c#、java和/或其他合适的编程语言编写为源代码的计算机程序、过程(procedure)或进程。组件可以包括但不限于:一个或多个模块、对象、类、例程、属性、进程、线程、可执行文件、库或者其他组件。组件可以是源代码或二进制形式。组件也可能包括在编译之前的源代码(例如,类、属性、过程、例程)、经编译的二进制单元(例如,库、可执行文件)或者在运行时被实例化和使用的工件(例如,对象、进程、线程)的各方面。
[0042]
系统内的组件可以在系统内采用不同的形式。作为一个示例,一种系统包括第一组件、第二组件和第三组件。前述组件能够包括但不限于具有第一组件是源代码中的属性、第二组件是二进制编译库、第三组件是在运行时创建的线程的系统。计算机程序、过程或进程可以被编译成对象、中间代码或机器代码并且呈现以供个人计算机、平板计算机、网络服务器、膝上型计算机、智能手机和/或其他合适的计算设备的一个或多个处理器执行。
[0043]
同样地,组件可以包括硬件电路。在特定示例中,硬件可以被认为是僵化的软件,而软件可以被认为是液化的硬件。仅作为一个示例,组件中的软件指令可以被烧录到可编程逻辑阵列电路中,或者可以被设计为具有适当集成电路的硬件组件。同样地,硬件可以由软件来模拟。源代码、中间代码和/或目标代码以及相关数据的各种实现可以被存储在计算机存储器中,所述计算机存储器包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备和/或其他合适的计算机可读存储介质。如在本文中所使用的,术语“计算机可读存储介质”不包括传播的信号。
[0044]
如在图3a中所示的,分布式计算系统100能够被配置为提供被组织为服务平台150中的平台服务152和被配置为支持平台服务152的微服务154的集合的计算服务。例如,平台服务152'能够是被配置为处理电子邮件接收、转发、同步以及其他合适的操作的电子邮件交换服务。示例性电子邮件交换服务是被包含在由华盛顿雷德蒙顿的微软公司提供的office 365套件中的服务。在对电子邮件交换服务进行认证后,能够允许用户101(图1)访问对应邮箱中的内容,诸如电子邮件和附件。为了提供这样的内容,电子邮件交换
服务能够依赖一个或多个微服务154来提供支持。例如,所述电子邮件交换服务能够依赖邮箱微服务(在图3a中被示为154')来处理电子邮件或者其他合适类型的内容。
[0045]
为了促进成对的平台服务152和微服务154之间的操作,分布式计算系统100也能够提供认证服务156,认证服务156被可操作地耦合到包含配置文件111的网络存储118。配置文件111能够个体地包含诸如令牌获取的配置的信息和/或其他合适的信息。在操作期间,认证服务156能够被配置为从微服务154接收针对安全令牌157的请求155(如在图3b中所示的)。作为响应,认证服务156能够被配置为针对由微服务154'支持的一个或多个认证方案的指示符或“提示”来分析所接收到的请求155。然后,认证服务156能够被配置为基于“提示”以及认证服务156和/或微服务154的认证简档来选择由微服务154和认证服务156两者都支持的认证方案。下文参考图4a和图4b更详细地讨论分析所接收到的“提示”请求155的示例操作。
[0046]
如在图3b中所示的,认证服务156然后能够被配置为发起与微服务152的认证过程,以便根据所选择的认证方案来验证微服务154的凭证。在对凭证的验证后,认证服务156能够被配置为生成令牌156(或者其他合适的安全条款)并且将其传输到微服务154。微服务154然后能够利用所接收到的令牌155向平台服务152(或者其他合适的计算服务)认证其自身以便向平台服务152提供内容158或者为平台服务152执行其他合适的动作。继而,平台服务152能够将所接收到的内容转发给用户101的客户端设备102(图1)。
[0047]
图4a和图4b是图示了根据本技术的实施例的分布式计算系统100中的动态认证方案选择的示意框图。如在图4a中所示的,认证服务156能够包括认证接口160、请求监视器161以及被可操作地彼此耦合的一个或多个认证处理程序166。尽管出于例示说明目的在图4a中示出了认证服务156的前述组件,但是在其他实施例中,认证服务156能够包括额外的和/或不同的组件。
[0048]
认证接口160能够被配置为从微服务154接收针对安全令牌157的请求155。在一种实现方式中,请求155能够被配置为具有报头151和有效载荷153的http请求。在其他实现方式中,请求155能够被配置为其他合适类型的数字数据包。在接收到请求155之后,认证接口160能够被配置为在将请求155转发到请求监视器161以用于进一步处理之前执行错误检查/纠正和/或其他合适的消息处理操作。
[0049]
如在图4a中所示的,请求监视器161能够包括被可操作地彼此耦合的请求分析器162和方案选择器164。请求分析器162能够被配置为针对微服务154支持认证方案的一个或多个指示符或“提示”来分析所接收到的请求155。请求分析器162可以利用各种分析技术。例如,请求分析器162能够被配置为解析请求155的报头151或有效载荷153的至少一部分,并且确定特定报头字段和/或对应值是否存在。基于这样的确定,请求分析器161能够被配置为向方案选择器164指示由微服务154支持的候选授权方案。
[0050]
在图4a中图示说明了这样的报头字段和/或值的若干示例。例如,请求155可以包括包含值“winauthenabled:真”的加密报头。作为响应,请求分析器161能够指示window认证能够是用于处理所接收到的请求155的候选认证方案。在另一示例中,请求155能够包括javascript对象表示法(“json”)网络令牌(为了清楚起见以虚线示出)。作为响应,请求分析器161能够指示令牌认证能够是用于处理所接收到的请求155的候选认证方案。在又一示例中,请求分析器161能够确定请求155不包括报头而是利用数字证书来签名,并且数字签
名159被包括在请求155的有效载荷153中。作为响应,请求分析器161能够指示证书认证是用于处理所接收到的请求155的候选认证方案。
[0051]
在其他实现方式中,微服务154也能够被配置为访问包含由微服务154支持的认证方案的配置信息的认证库(未示出)。然后,微服务154能够被配置为向请求155添加报头值,所述报头值指示所支持的认证方案,诸如“authscheme:windows”,如在图4a中所示的。在接收到请求155时,请求分析器161能够从报头151中提取由微服务154支持的认证方案,并且指示所提取的认证方案是用于处理请求155的候选。
[0052]
基于来自请求分析器162的指示,方案选择器164能够被配置为确定候选认证方案是否也被认证服务156支持。例如,方案选择器164能够被配置为访问包含配置文件111的网络存储118以识别由认证服务156支持的一种或多种认证方案。然后,方案选择器164能够被配置为确定指示符的认证方案是否与由认证服务156支持的一种或多种认证方案中的一种认证方案相匹配。响应于确定所述候选认证方案也被认证服务156支持,方案选择器164能够被配置为通过向认证处理程序166发出根据所识别的认证方案促进认证过程的指令168来启动合适的认证处理程序166,如在图4b中所示的。在成功认证后,认证处理程序166能够被配置为将请求的令牌157提供给微服务154。
[0053]
响应于确定认证服务156不支持候选认证方案,在一个实施例中,方案选择器164能够忽略所提取的认证方案,而是替代地启动默认认证处理程序166,以用于促进利用微服务154的认证过程。在另一实施例中,方案选择器164或者认证服务156的其他合适的组件能够被配置为传输由认证服务156支持的认证方案的列表,以供微服务154根据客户端侧认证方案选择进行选择。
[0054]
所公开的技术的若干实施例因此能够通过在认证服务156处启用动态认证方案选择来促进计算服务(诸如微服务154)到平台服务152的有效认证。经由请求监视器161,能够在具有单个认证接口160的认证服务156中实施不同的认证方案。这样,即使当微服务154支持不同的认证方案时,多个微服务154也能够调用相同的认证接口160。因此,与客户端侧认证方案选择相比,能够减少在微服务154处实现的认证逻辑。
[0055]
前述服务侧认证方案选择也能够实现对新认证方案的高效部署。例如,能够将新认证方案部署到认证服务156。所述新认证方案能经由与其他现有的(一个或多个)认证方案相同的认证接口160来访问。这样,可以通过向认证请求提供与所述新认证方案相对应的“提示”来进行对新认证方案的测试,同时同一认证接口160继续促进根据现有认证方案的认证过程。在确定所述新认证方案正在恰当地工作时,通过简单地修改来自微服务154的认证请求中所包含的“提示”,在认证服务156处的认证过程能够被切换到使用所述新认证方案。
[0056]
图5a和图5b是图示了根据本技术的实施例的用于实现动态认证方案选择的过程的各方面的流程图。尽管下文在图1-图4b中的分布式计算系统100的上下文中描述了过程的各个方面,但是在其他实施例中,过程的各个方面也能够在具有额外和/或不同组件的计算系统中实现。
[0057]
如在图5a中所示的,过程200能够包括在阶段202在认证服务处接收认证请求。过程200然后能够包括在阶段204针对一个或多个方案指示符或“提示”来分析所接收到的认证请求。下文参考图5b更详细地讨论分析所接收到的针对候选认证方案的认证请求的示例
操作。过程200然后能够包括决策阶段206以确定指示的候选方案是否也被认证服务支持。响应于确定所指示的候选方案也被认证服务支持,过程200能够进行到在阶段208指示认证处理程序响应于接收到的认证请求而发起认证过程。响应于确定所指示的候选方案得不到认证服务支持,则过程200能够进行到在阶段210响应于接收到的认证请求而提供可用的认证方案以供选择,或者执行如上文参考图4a和图4b所讨论的其他合适的操作。
[0058]
图5b图示了针对方案指示符来分析所接收到的认证请求的示例操作。如在图5b中所示的,操作能够包括可选的决策阶段212,以确定所接收到的认证请求是否包括由发送者标识的方案(例如,在图3a中的微服务154)。响应于确定所接收到的认证请求包括由发送者标识的方案,操作能够包括在阶段214指示所标识的方案为候选方案。操作进行到另一决策阶段216以确定window认证是否被包括在所接收到的认证请求的报头中。响应于确定window认证被包括在所接收到的认证请求的报头中,操作能够进行到在阶段218指示window认证是候选方案。操作然后能够进行到另一决策阶段220以确定令牌是否被包含在所接收到的认证请求的报头中。响应于确定令牌被包括在所接收到的认证请求中,操作能够进行到在阶段222指示承载认证是候选方案。操作然后能够进行到又一决策阶段224以确定所接收到的认证请求是否包括数字签名。响应于确定所接收到的认证请求包括数字签名,操作能够进行到在阶段226指示证书认证是候选方案。响应于在所有决策阶段216、220和224的否定确定,操作能够进行到在阶段228指示没有方案被识别为用于处理认证请求的候选方案。
[0059]
图6是适合用于图1中的分布式计算系统100的特定组件的计算设备300,例如,服务器106、客户端设备102或者资源管理器110。在非常基本的配置302中,计算设备300能够包括一个或多个处理器304和系统存储器306。存储器总线308能够被用于在处理器304与系统存储器306之间进行通信。根据期望的配置,处理器304能够是任何类型,包括但不限于:微处理器(μp)、微控制器(μc)、数字信号处理器(dsp)或者其任意组合。处理器304能够包括多级高速缓存,诸如一级高速缓存310和二级高速缓存312、处理器核314和寄存器316。示例处理器核314能够包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理核(dsp核)或者其任意组合。示例存储器控制器318也能够与处理器304一起使用,或者在一些实现方式中存储器控制器318能够是处理器304的内部部分。
[0060]
取决于所期望的配置,系统存储器306能够是任何类型,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者其任意组合。系统存储器306能够包括操作系统320、一个或多个应用程序322和程序数据324。如在图7中所示的,操作系统320能够包括用于管理一个或多个虚拟机144的管理程序140140。该描述的基本配置302在图6中由内部虚线内的那些组件图示出。
[0061]
计算设备300能够具有额外特征或功能以及额外接口以促进基本配置302与任何其他设备和接口之间的通信。例如,总线/接口控制器330能够被用于促进在基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332能够是可移动存储设备336、不可移动存储设备338或者其组合。可移动存储设备和不可移动存储设备的示例包括磁盘设备,诸如软盘驱动器和硬盘驱动器(hdd),光盘驱动器,例如压缩盘(cd)驱动器或数字多功能磁盘(dvd)驱动器,固态驱动器(ssd)和磁带驱动器等等。示例计算机存储介质能够包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据
之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播信号和通信介质。
[0062]
系统存储器306、可移动存储设备336和不可移动存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于:ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能磁盘(dvd)或其他光存储、磁盒、磁带、磁盘存储或其他磁存储设备,或者能够被用于存储所需信息并且能够由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质都可以是计算设备300的一部分。术语“计算机可读存储介质”不包括传播的信号和通信介质。
[0063]
计算设备300也能够包括接口总线340,以用于促进从各种接口设备(例如,输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信。示例输出设备342包括图形处理单元348和音频处理单元350,其能够被配置为通过一个或多个a/v端口352与各种外部设备(诸如显示器或扬声器)通信。示例外围接口344包括串行接口控制器354或并行接口控制器356,其能够被配置为通过一个或多个i/o端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)之类的外部设备通信。示例通信设备346包括网络控制器360,其能够被布置为促进通过一个或多个通信端口364在网络通信链路上与一个或多个其他计算设备362的通信。
[0064]
网络通信链路能够是通信介质的一个示例。通信介质通常能够由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据来体现,诸如载波或者其他传输机制,并且能够包括任何信息传递介质。“调制数据信号”能够是具有一个或多个其特征的信号,特征以在信号中编码信息的方式设置或改变。作为示例而非限制,通信介质可以包括有线介质,诸如有线网络或直接有线连接,以及无线介质,例如声学、射频(rf)、微波、红外线(ir)和其他无线介质。在本文中所使用的术语计算机可读介质可以包括存储介质和通信介质。
[0065]
计算设备300能够被实现为小型便携式(或移动)电子设备的一部分,诸如手机、个人数据助理(pda)、个人媒体播放器设备、无线网络手表设备、个人耳机设备、应用特定设备或者包含上述任何功能的混合设备。计算设备300也能够被实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。
[0066]
从前述内容中,应当意识到,在本文中为了说明的目的描述了本公开的特定实施例,但是可以在不偏离本公开的情况下进行各种修改。另外,一个实施例的许多元件可以与其他实施例组合,以补充或代替其他实施例的元件。因此,该技术不受所附权利要求之外的限制。
再多了解一些

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

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

相关文献