传统认证与基于云的认证的集成
文献发布时间:2024-04-18 19:59:31
背景技术
本地部署的应用是在使用程序的用户或组织的前提下在计算机上运行的计算机程序(例如,API、应用、服务)。本地部署的应用通常与基于域的网络相关联。基于域的网络是计算资源(例如,服务器、应用、存储设备、网络)和用户帐户的配置,其中用户帐户和共享计算资源被注册在通常位于域控制器中的集中式数据库中。域控制器使用传统认证协议对请求访问共享资源的用户进行认证。
云计算通过互联网从几乎任何连接互联网的设备和任何位置提供按需交付的计算资源,诸如服务器、数据库、存储、软件、分析等。云计算有利于降低在管理和维护本地数据中心和IT系统时产生的信息技术(IT)基础设施成本。此外,云计算提供了可扩展性,从而允许组织根据需要增加或减少其IT资源。
云计算服务通常包含身份提供方,该身份提供方利用基于云的认证协议来认证寻求从公共可访问网络访问共享资源的用户的身份。基于云的认证协议可以利用与基于域的网络中使用的传统认证协议不兼容的更严格的协议。
随着云计算变得越来越普遍,将本地部署的应用集成到云计算服务中的需求变得越来越显著。然而,将本地部署的应用集成到云计算服务中存在挑战。在某些情况下,本地部署的应用可能无法被移动到云中。在一些行业中发现的合规性限制可能会阻止本地部署的应用被托管在云计算服务中。此外,本地部署的应用可以被绑定到基于云的认证协议所不支持的特定传统认证协议。
发明内容
本发明内容被提供用于以简化的形式介绍概念的选择,这些概念将在下面的详细描述中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用于限制所要求保护主题的范围。
云计算服务利用身份提供方来认证寻求访问受制于传统认证协议的本地部署的应用的用户或客户端应用的身份。云计算服务利用了与传统认证协议不兼容的基于云的网络认证协议。在一个方面中,传统认证协议是基于Kerberos认证协议的,并且基于云的网络认证协议是基于OpenIdConnect(OIDC)和OAuth2.0(“OAuth/OIDC”)的。
云计算服务的身份提供方在成功认证客户端应用后生成Kerberos安全票证。根据OAuth/OIDC协议生成的访问令牌由嵌入Kerberos安全票证的身份提供方生成。客户端应用或代理从访问令牌提取Kerberos安全票证,并使用传统认证协议来获得对本地部署的应用的访问。
通过阅读以下详细描述和查阅相关联的附图,这些和其他特征和优点将显而易见。应当理解,前述一般描述和以下详细描述只是解释性的,而不是对所要求保护的方面的限制。
附图说明
图1示出了用于集成传统认证协议与基于云的认证协议的示例性系统的框图;
图2示出了云计算服务认证请求访问本地部署的应用的用户或应用的身份的示例性方法的流程图;
图3示出了云计算服务的组件和本地部署的服务器之间的交互以认证对本地部署的应用的访问的示例性流程的框图;
图4示出了示例性操作环境的框图。
具体实施方式
本文公开的主题涉及一种基于云的身份提供方,该身份提供方以不改变本地部署的应用的认证过程、不改变本地部署的应用本身并且使本地部署的应用能够信任云计算服务的已认证用户的方式来管理本地部署的应用的认证和授权。
图1示出了示例性系统100的框图。在本文公开的主题的一个方面中,系统100包括用户设备102,该用户设备102具有客户端应用140和/或代理142,通过网络150通信耦合到域目录服务104以及通过网络126通信耦合到云计算服务106。
云计算服务106是用于实现对可配置计算资源的共享池的方便的、按需的网络访问的计算环境,该可配置计算资源的共享池可以通过少量的管理工作或与服务提供方的交互来快速生成和释放。云计算服务106允许云消费方弹性地有时是临时地获取作为服务的计算资源,诸如网络、网络带宽、服务器、处理存储器、存储、应用、虚拟机以及服务。
在一个方面,云计算服务106托管多个租赁方110A-110N(“110”)的资源108A-108D(“108”)。租赁方110是与订阅云计算服务106的企业、组织、集体、用户或实体相关联的目录。租赁方110包含被分组为订阅的资源,诸如虚拟机、应用、应用程序编程接口(API)、webAPI、存储帐户、服务等。订阅是表示资源所在的文件夹的对象。租赁方110可以具有多个订阅。资源108是由云计算服务106管理的实体。
云计算服务106托管租赁方的订阅并控制对包含在订阅内的资源的访问。订阅可以是收费的,也可以是免费的,并持续指定的长度的时间。云计算服务的示例包括但不限于Microsoft
云计算服务106包括可以是提供分布式计算服务的数据中心的一部分的服务器。数据中心可以提供汇集的资源,客户或租赁方可以在这些资源上根据需要动态地配置和扩展应用,而不必添加服务器或额外的网络。数据中心可以被配置为与由云消费方使用的本地计算设备通信,该云消费方包括个人计算机、移动设备、嵌入式系统或其他计算设备。在数据中心内,计算设备可以被配置为服务器,既可以作为独立设备也可以作为一个或多个其他服务器设备的机架中的单个刀片。租赁方最初可以使用服务器上的一个虚拟机来运行应用。当需求增加时,数据中心可以在一个服务器或其他(多个)服务器上激活额外的虚拟机,并且当需求下降时,数据中心可以停用虚拟机。
数据中心可以是向单个企业用户提供服务的本地部署的专用系统,也可以是向多个可能不相关的客户和租赁方提供服务的可公开(或半公开)访问的分布式系统,或者可以是两者的组合。此外,数据中心可以被包含在单个地理位置内,也可以被分布在全球多个位置,并提供冗余和灾难恢复能力。例如,数据中心可以指定服务器上的一个虚拟机为针对租赁方的应用的主要位置,并且可以激活同一服务器或另一服务器上的另一虚拟机作为辅助或备用,以防第一台虚拟机或服务器出现故障。
租赁方110可以经由诸如互联网的网络126与其他设备通信,包括与设备间彼此通信,或者与位于云计算服务106之外的设备通信。在一个示例中,租赁方110可以经由分配的网络地址(诸如分配的互联网协议(IP)地址)与其他设备通信。在一个示例中,用户设备102的用户可以登录到租赁方110并访问资源108。在一些示例中,资源108对于授权用户是可用的,并且用户可以经由对云计算服务106中的每个资源的每个授权用户的一组权限级别中的权限来具有进一步的限制。
云计算服务106利用身份提供方112来认证和授权用户或应用程序访问租赁方的资源。身份提供方112包括身份服务114、Kerberos密钥分发中心116、认证端点118、令牌端点128和身份端点138。身份提供方112被配置为支持应用表征状态转移(REST)应用编程接口(API)接口的基于web的服务。身份提供方112应用可以与基于web的服务工作的协议,诸如认证/授权协议,包括安全断言标记语言(SAML)、OpenIDConnect(OIDC)、OAuth协议之上的身份层以及web服务联盟(WS-联盟)。
客户端应用140通过(多个)REST API与云计算服务106通信。REST API被用于使用超文本传输协议(HTTP)方法从云计算服务106请求信息或访问资源。云计算服务106通过返回HTTP响应来回应。(多个)REST API被传输到云计算服务106的端点。端点是将设备连接到由云计算服务106托管的服务的端口。端点由统一资源定位器(URL)来寻址,客户端应用140使用该URL来访问由云计算服务106托管的资源或服务。云计算服务106可以具有多个端点120。在一个方面中,端点120是API端点,每个端点被配置为通过指定的REST API接收请求。存在接收并处理认证请求的认证端点118、接收并处理令牌请求的令牌端点128以及管理租赁方和用户的注册的身份端点138。
域目录服务104是基于域的网络的资源的结构,其向应用、文件服务、打印机和其他本地部署的资源提供认证和授权。域目录服务104包括域控制器120,域控制器120通常为基于域的网络中的所有用户和计算机的认证/授权请求提供服务。域目录服务104包括一个或多个服务器122A、122N(“122”),每个服务器可以托管相应的本地部署的应用124A、124N(“124”)。本地部署的应用(例如,web API、应用、服务)驻留在云计算服务106之外的位置,并且需要通过传统认证协议进行认证/授权。
在一个方面中,云计算服务106的资源可以被物理地存储在云计算服务中,诸如资源108A、108C,并且其他资源可以与存储在云计算机服务106中的本地部署的数据108B、108D以客户为前提被存储。本地部署的数据108B、108D包括描述用于访问本地部署的应用的认证协议的应用对象、与本地部署的应用相关联的服务主体名称、密码密钥以及下文更详细描述的其他数据。
域目录服务104可以使用诸如Kerberos和用于认证的新技术局域网管理器(NTLM)的传统认证协议以及轻型目录访问协议(LDAP)来查询和修改域目录服务中的资源。
在一个方面中,域目录服务104利用Kerberos计算机网络认证协议。Kerberos依赖于对称密钥加密和访问票证来验证身份。Kerberos依赖于可信的第三方,密钥分发中心(KDC)130,来认证身份。密钥分发中心130包括认证服务器(AS)144、票证授予服务器(TGS)146以及具有用户的ID和密码的数据库148。
在Kerberos协议中,用户/客户端应用通过认证服务器请求访问资源。该请求使用一个密钥(用户的密码)被部分加密。用户的密码是用户和认证服务器之间的共享机密。认证服务器解密请求,并且如果密码正确,则认证服务器创建票证授予票证(TGT),并使用票证授予服务器的密钥对其进行加密。TGS的密钥在认证服务器和TGS之间共享。
用户将TKT发送给TGS,其中TGS用共享密钥对TKT进行解密。如果TKT有效,TGS将向用户发出服务票证。用户/客户端应用将服务票证发送给与资源相关联的服务器。服务器使用与TGS共享的密钥解密服务票证。如果密钥匹配,则文件服务器允许用户访问资源。
在一个方面中,身份提供方112使用Oauth/OIDC协议来认证用户/应用并授权对资源的访问。Oauth2.0是一种标准化协议,用于跨启用web的应用的网络传达授权决策,并且OIDC是与Oauth2.0一起使用的层,用于对请求登录会话的个人或应用进行认证。
Oauth/OIDC协议不使用密码来执行认证或授权。相反,Oauth/OIDC协议使用访问令牌和标识符(ID)令牌。ID令牌是JSON web令牌(JWT),其包含关于已认证用户/应用的身份的声明。声明是一个主体对自己或另一主体所作的说明。该说明可以是名称、身份、密钥、集体、特权或能力。声明由身份提供方发布,并给定了一个或多个值。ID令牌是在HTTP请求中被安全发送的。ID令牌已被签名,但未被加密。签名用于证明ID令牌是真实的。
访问令牌被用于授予对授权的资源的访问。访问令牌包含被用于标识对资源授予的权限的声明。访问令牌已被签名,但未被加密。
在一个方面中,身份提供方112充当Kerberos领域中的受信任方,并发布Kerberos票证。因此,身份提供方112包括Kerberos密钥分发中心116,该密钥分发中心116包含认证服务器132、票证授予服务器134以及密码/密钥和标识符的数据库136。
用户设备102可以使用客户端应用140和/或代理142来促进与身份提供方112的认证。在一个方面中,客户端应用140可以被配置为与身份提供方112交互,以获得对本地部署的应用的认证,并执行经由Kerberos协议获得对本地部署的应用的访问所需的任务。在另一方面中,驻留在用户设备上的代理142可以执行认证任务。代理142可以与身份服务器交互,从访问令牌中提取Kerberos票证,并将Kerberos票证发送给本地部署的服务器。然后,代理向客户端应用提供对本地部署的应用的访问。
方法
现在将注意力转向利用本文公开的系统和设备的各种示例性方法的描述。可以参考各种示例性方法来进一步描述各方面的操作。可以理解的是,除非另有说明,否则代表性方法不一定必须以所呈现的顺序或任何特定的顺序来执行。此外,关于方法描述的各种活动可以以串行或并行、或者串行和并行操作的任何组合方式执行。在一个或多个方面中,该方法示出了用于本文公开的系统和设备的操作。
图2示出了使用基于云的认证协议访问Kerberos认证的本地部署的应用的示例性方法200。图3示出了客户端应用/代理(即用户设备)302、使用认证端点306、令牌端点308、身份端点310的身份提供方304以及本地部署的服务器312之间的认证流程300。
参考图2和图3,为了将身份和访问管理功能委托给云计算服务,本地部署的应用需要向云计算服务注册。与本地部署的应用相关联的本地部署的数据存储在云计算服务的租赁方中,并且包含用于认证用户访问本地部署的应用的数据。(总的来说,方框202,线314)。
在一个方面中,第三方303,诸如自动化工具或管理员,通过向身份端点310的请求向身份提供方304注册本地部署的应用。身份服务针对本地部署的应用生成本地部署的数据。本地部署的数据包括针对本地部署的应用的应用对象,该应用对象包含服务主体对象,该服务主体对象存储在本地部署的应用的资源所有方的租赁方中。(总的来说,方框202,线314)。
应用对象是针对本地部署的应用的全局唯一标识符。应用对象用作创建一个或多个服务主体对象的模板。在使用本地部署的应用的每个租赁方中都会创建服务主体对象。服务主体对象定义访问策略,包括由资源使用的认证协议。服务主体对象是单个租赁方或目录中的应用对象的本地表示或应用实例。
服务主体对象定义了本地部署的应用在特定租赁方中实际可以做什么,谁可以访问本地部署的应用,以及本地部署的应用可以访问什么资源。服务主体对象包括服务主体名称。服务主体名称(SPN)是本地部署的应用的实例的唯一标识符。此外,服务主体对象包含用于经由Kerberos认证协议访问本地部署的应用的加密密钥(例如,密钥)。(总的来说,方框202,线314)。
本地部署的数据在云计算服务中的存储确保了当本地部署的应用的认证被移动到云计算服务时本地部署的应用不被改变,并且还确保了本地部署的应用利用其现有认证协议。本地部署的数据还包含Kerberos认证中使用的配置设置和密钥,从而在云计算服务和域目录服务之间建立信任。(总的来说,方框202,线314)。
使用OAuth/OIDC协议,认证过程开始于客户端应用/代理302向身份提供方的令牌端点308发出针对认证访问令牌的请求,以访问具有一个或多个许可的本地部署的应用。该请求包括与本地部署的应用相关联的服务主体名称和请求方的唯一标识符。(总的来说,方框204,线316)。
身份提供方304对发出请求的客户端应用或代理进行认证,并且在成功验证之后,身份提供方304生成具有Kerberos票证的访问令牌。身份服务调用云计算服务的Kerberos密钥分发中心的票证授予服务来生成Kerberos票证。Kerberos票证作为声明被嵌入在访问令牌中,并返回到客户端应用。(总的来说,方框206,线318–320)。
在接收到访问令牌后,客户端应用/代理302从访问令牌中提取Kerberos票证,并生成Kerberos AP_REQ包。该AP_REQ包包括Kerberos票证。(总的来说,方框208,线322)。
将AP_REQ包发送给本地部署的服务器312。服务器312验证Kerberos票证,并且在成功验证之后,返回AP_REP包。AP_REP包是使客户端应用302能够访问本地部署的应用的确认(总的来说,框210,线324-326)。
示例性操作环境
现在将注意力转向对示例性操作实施例的讨论。转到图4,这些方面可以应用于利用云计算服务的一个或多个计算设备402、本地部署的服务器436、用户设备444和一个或多个存储服务器452的操作环境400。计算设备402、本地部署的服务器436、用户设备444和一个或多个存储服务器452可以是任何类型的电子设备,诸如但不限于移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手持计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器,刀片服务器、互联网服务器、工作站、迷你计算机、大型计算机、超级计算机、网络电器、web电器、分布式计算系统、多处理器系统或其组合。操作环境400可以被配置在网络环境、分布式环境、多处理器环境或能够访问远程或本地存储设备的独立计算设备中。
计算设备402、本地部署的服务器436、用户设备444和一个或多个存储服务器452中的每一个包括一个或多个处理器404、438、446、454和存储器设备410、440、448、456。处理器404、438、446、454可以是任何市面上可获得的的或定制的处理器,并且可以包括双微处理器和多处理器架构。
计算设备402包括一个或多个通信接口406、一个或多个存储设备408和输入/输出设备412。通信接口406便于计算设备402和其他设备之间的有线或无线通信。存储设备408可以是不包含传播信号的计算机可读介质,诸如通过载波传输的调制数据信号。存储设备408的示例包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储设备、磁带盒、磁带、磁盘存储,所有这些都不包含传播信号,诸如通过载波传输的调制数据信号。在计算设备402中可以存在多个存储设备408。输入/输出设备412可以包括键盘、鼠标、笔、语音输入设备、触摸输入设备、显示器、扬声器、打印机等,以及它们的任意组合。
存储器设备410、440、448、456可以是可以存储可执行过程、应用和数据的任何非瞬态计算机可读存储介质。计算机可读存储介质不属于传播的信号,诸如通过载波传输的调制数据信号。它可以是不属于传播信号(诸如通过载波传输的调制数据信号)的任何类型的非瞬态存储设备(例如,随机存取存储器、只读存储器等)、磁存储器、易失性存储器、非易失性存储器、光存储器、DVD、CD、软盘驱动器等。存储器设备410、440、448、456还可以包括不属于传播信号(诸如通过载波传输的调制数据信号)的一个或多个外部存储设备或位于远程的存储设备。
存储器设备410包含指令、组件和数据。存储器设备410包括操作系统414、身份端点416、认证端点418、令牌端点420、具有认证服务器424的Kerberos密钥分发中心422、票证授予服务426、以及数据库428、身份服务430和其他应用和数据432。存储器设备440包括本地部署的应用442,存储器设备448包括客户端应用450和代理451,并且存储器设备456包含资源458和本地部署的数据460。
计算设备402、本地部署的服务器436、用户设备444和一个或多个存储服务器452通过网络434进行通信。网络434可以被配置为自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网(Internet)、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、无线网络、
结论
被公开的一种系统包括:至少一个处理器;以及存储器,存储有被配置为由所述至少一个处理器执行的一个或多个程序,一个或多个程序包括指令,指令:传输用以认证客户端应用的第一请求,以访问本地部署的应用,第一请求被发送给云计算服务的身份提供方,第一请求通过基于云的网络认证协议被提出,本地部署的应用受制于传统网络认证协议,基于云的网络认证协议与传统网络认证协议不兼容;响应于第一请求,获得包括传统网络认证协议的安全票证的安全令牌,安全票证由云计算服务的身份提供方生成,安全令牌与基于云的网络认证协议相关联;使用传统网络认证协议向本地部署的应用传输认证请求,认证请求包括安全票证;以及获得对本地部署的应用的访问。
在一个方面中,一个或多个程序还包括指令,指令:从安全令牌提取安全票证;以及将安全票证嵌入到认证请求中。在一方面中,本地部署的应用是私有域目录服务的一部分。在各方面中,安全令牌是JavaScript对象表示(JSON)web令牌,安全票证作为声明被嵌入在安全令牌中,传统网络认证协议基于Kerberos,并且基于云的网络认证协议基于OpenId Connect。
被公开的一种方法包括:使用基于云的认证协议,请求从云计算服务认证,以访问本地部署的应用,其中本地部署的应用遵从传统认证协议,基于云的认证协议遵从基于云的认证协议,传统认证协议不同于基于云的认证协议;接收包括传统网络认证协议的安全票证的安全令牌,安全票证由云计算服务的身份提供方生成,安全令牌与基于云的网络认证协议相关联;使用传统网络认证协议向本地部署的应用传输认证请求,认证请求包括安全票证;以及获得对本地部署的应用的访问。
在一个方面中,该方法还包括:从安全令牌提取安全票证;以及将安全票证嵌入到认证请求中。在一个或多个方面中,本地部署的应用驻留在云计算服务之外的域目录服务中,安全令牌是JavaScript对象表示(JSON)web令牌,安全票证作为声明被嵌入在安全令牌中,传统网络认证协议基于Kerberos,并且基于云的网络认证协议基于OpenId Connect。
被公开的一种设备包括:至少一个处理器和存储器;其中至少一个处理器被配置为:在云计算服务处接收认证请求以访问本地部署的应用,认证请求与来自客户端应用的基于云的认证协议相关联,本地部署的应用与传统认证协议相关联,基于云的认证协议不同于传统认证协议;在成功验证认证请求后,生成具有传统认证协议的认证票证的基于云的认证协议的认证令牌;以及将认证令牌提供至客户端应用,以使用认证票证通过传统认证协议向本地部署的应用进行认证。
在一个或多个方面中,本地部署的应用驻留在云计算服务之外的域中,基于云的认证协议基于Oauth/OPIC协议,并且传统认证协议基于Kerberos。
在一方面中,至少一个处理器还被配置为:利用本地部署的应用的本地部署的数据来配置云计算服务,本地部署的数据指示本地部署的应用的传统认证协议。在一方面中,至少一个处理器还被配置为:利用生成安全票证的票证授予服务来配置云计算服务。
尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于上述特定特征或动作。相反,上述特定特征和动作被公开为实现权利要求的示例形式。
- 一种海量非结构化数据处理方法和装置
- 一种海量生物信号反馈数据的处理方法及系统装置
- 一种基于海量生物反馈数据的分析对比筛选系统装置