CN118077173A - 应用作为资源主体或服务主体 - Google Patents
应用作为资源主体或服务主体 Download PDFInfo
- Publication number
- CN118077173A CN118077173A CN202280066280.9A CN202280066280A CN118077173A CN 118077173 A CN118077173 A CN 118077173A CN 202280066280 A CN202280066280 A CN 202280066280A CN 118077173 A CN118077173 A CN 118077173A
- Authority
- CN
- China
- Prior art keywords
- token
- identity
- entity
- access
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 63
- 230000004927 fusion Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 claims 3
- 238000007726 management method Methods 0.000 description 79
- 238000010586 diagram Methods 0.000 description 34
- 238000004891 communication Methods 0.000 description 33
- 230000015654 memory Effects 0.000 description 31
- 230000006854 communication Effects 0.000 description 30
- 238000012545 processing Methods 0.000 description 20
- 230000010354 integration Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000002507 cathodic stripping potentiometry Methods 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002600 positron emission tomography Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
提供了用于向使用第一类型的身份令牌的第一类型的身份系统的应用授予对使用第二类型的身份令牌的第二类型的身份系统的访问的技术。应用可以向令牌交换系统做出请求。该请求可以包括应用的公钥和持有者令牌。令牌交换系统可以在执行核实步骤之后将持有者令牌交换为拥有证明令牌。令牌交换系统可以将用于第一身份系统的第一令牌(例如,持有者令牌)交换为用于第二身份系统的第二令牌(例如,拥有证明令牌),而不需要录入凭证来访问第二身份系统。
Description
相关申请的交叉引用
本申请要求于2022年9月26日提交的编号为17/953,175的标题为“APPLICATIONSAS RESOURCE PRINCIPALS OR SERVICE PRINCIPALS”的非临时申请的优先权,该非临时申请依据35U.S.C.119(e)要求于2021年9月30日提交的编号为63/250,992的标题为“TOKENEXCHANGE BETWEEN BEARER AND POP TOKENS”的美国临时申请以及于2021年9月30日提交的编号为63/250,980的标题为“APPLICATIONS AS RESOURCE PRINCIPALS OR SERVICEPRINCIPALS”的美国临时申请的权益和优先权,这些申请的全部内容出于所有目的通过引用并入本文。
背景技术
为了与诸如基础设施身份和访问管理(IAM)系统和身份云服务(IDCS)系统之类的身份管理系统进行交互,需要访问令牌。例如,对于IAM系统,令牌可以包括拥有证明(PoP)令牌,并且对于身份云服务(IDCS)系统,令牌可以包括持有者(bearer)令牌。如果用户想要访问不同身份访问管理系统的服务或资源,那么用户将需要单独的访问令牌以便访问每种类型的身份访问管理系统。
但是,为不同的身份管理系统管理不同的令牌对用户来说有负担的。此外,在给定会话中,用户可以在不同身份管理系统之间交互,从而需要不同的访问令牌来访问不同身份管理系统的特征。要求用户获得并提供不同的访问令牌会中断工作流程并降低执行任务的效率。
此外,用户必须维护一组凭证来管理每种类型的身份管理系统的服务。用户必须单独登录到每个身份管理系统并获得单独的访问令牌以与每个身份管理系统进行通信。此外,每种类型的身份管理系统的访问令牌将针对每个身份系统单独存储。
此外,具有持有者令牌的一些实体(诸如应用)可能无法将其持有者令牌交换为PoP令牌。具体而言,一些实体可能不具有允许他们用持有者令牌交换PoP令牌的特权。如果实体是应用并且该应用想要访问需要PoP令牌的资源或服务(诸如IAM身份系统中的资源和服务),那么这会产生附加的困难。
本公开的示例实施例单独地和共同地解决这些问题和其它问题。
发明内容
示例实施例涉及不同身份管理系统之间的令牌交换。具体而言,示例实施例涉及将第一类型的身份管理系统的持有者类型令牌与第二类型的身份管理系统的拥有证明(PoP)类型令牌交换,反之亦然。
示例实施例还涉及针对诸如应用之类的实体将持有者令牌交换为拥有证明令牌。诸如应用之类的实体被提供一个身份,该身份提供附加的特权。应用可以将持有者令牌交换为拥有证明令牌,以获得附加的特权。
不同的身份管理系统遵循不同的规范。因此,为了访问不同的身份管理系统,需要特定于每个身份系统的访问令牌。示例实施例允许在不同的身份管理系统中使用令牌的无缝交换。因此,实体可以访问两个身份管理系统的特征。
例如,用于访问第一身份管理系统(例如,身份云服务(IDCS))的第一类型令牌(例如,持有者令牌、OAuth访问令牌)可以交换为用于访问第二身份管理系统(例如,基础设施身份和访问管理(IAM))的第二类型令牌(例如,拥有证明(PoP)令牌),反之亦然。基础设施身份和访问管理(IAM)也可以被称为身份和访问管理(IAM)。身份云服务(IDCS)和基础设施身份和访问管理(IAM)可以被统称为身份系统。
当获得用于第二身份系统的单独令牌时,实体继续管理用于第一身份系统的令牌。因此,该实体将具有与该实体想要访问的第二身份系统的前向兼容性,同时该实体继续具有与该实体具有访问令牌的第一身份系统的后向兼容性。
在示例实施例中,第一身份系统是IDCS系统并且第二身份系统是IAM系统。但是,这仅仅是为了便于解释。第一身份系统可以是与第二身份系统不同并且遵循不同规范的任何身份系统。规范可以指操作第一身份系统或第二身份系统所需的规则。规范确保身份系统能够正确操作,并且组件之间的交互能够正确进行。
示例实施例可以为与IAM系统兼容的IDCS系统交换令牌,反之亦然,同时维护与每个系统通信所需的令牌。因此,实体不再需要维护两组凭证,并且用户也不需要登录到两个单独的系统。实体当前具有的令牌可以通过集成身份管理系统(IDMS)自动交换,以便与正在访问的身份系统兼容。集成身份管理系统(IDMS)也可以被称为集成管理系统。
实体可以包括访问第一身份系统和第二身份系统的资源的任何实体。该实体也可以被称为第一身份系统和第二身份系统的用户或客户。
示例实施例不要求用户单独登录到每个身份管理系统中并且不要求用户维护每个身份管理系统的登录凭证。而是,用户可以登录到一个身份系统,并且为用户登录到的身份系统生成的访问令牌可以被交换为用于不同身份系统的访问令牌,而用户不知道该交换。集成身份管理系统(IDMS)的令牌交换系统可以管理、存储和维护访问每个身份系统所需的令牌。
因此,用户可以与不同的身份系统进行交互,而不需要单独登录并且不必维护单独的凭证和访问令牌。实体可以在使用不同类型令牌的身份管理系统之间无缝工作。这减少了产品工作流程的中断。
为了访问例如IAM系统中的某些资源和服务,实体将需要身份。但是,一些实体当前可能没有被分配身份。例如,IDCS系统中的应用使用持有者令牌且没有被分配身份。此类实体将无法访问IAM中的资源或服务,因为IAM要求实体具有身份。
因此,示例实施例为当前不具有身份的实体(诸如应用)提供身份。然后,此类实体能够将其持有者令牌交换为拥有证明令牌,从而可以与需要身份的资源和服务(诸如IAM中的资源和服务)进行通信。
示例实施例可以包括一种方法,该方法包括由云服务的集成身份管理系统的令牌交换系统确定实体被授权访问第一身份系统,其中该实体具有第一令牌;由令牌交换系统从第一身份系统的实体接收访问第二身份系统的请求;由令牌交换系统核实第一令牌;由令牌交换系统基于用于第一身份系统的第一令牌生成用于第二身份系统的第二令牌;由令牌交换系统基于第二令牌对实体进行认证以访问第二身份系统;以及由令牌交换系统授权实体使用第二令牌访问第二身份系统的应用编程接口(API)。
示例实施例可以包括一种方法,该方法包括由云服务的集成身份管理系统的令牌交换系统确定实体被授权访问第一身份系统,其中该实体是应用;由令牌交换系统生成用于该实体访问第二身份系统的第一请求,其中第一请求包括与该实体相关联的第一公钥和持有者令牌;由令牌交换系统核实持有者令牌是有效的持有者令牌;由令牌交换系统核实该实体的角色是否是被授权访问第二身份系统的角色;由令牌交换系统基于在第一请求中接收到的第一公钥和持有者令牌来生成第二令牌;以及由令牌交换系统将第二令牌发送到该实体,其中第二令牌与第二身份系统相关联,并且第二令牌包括该实体的第一公钥。
示例实施例还可以包括一种非暂态计算机可读存储介质,其存储可由一个或多个处理器执行的多条指令以使该一个或多个处理器执行上述方法。
示例实施例还可以包括一种计算系统,该计算系统包括存储器以及耦合到存储器并且被配置为执行上述方法的一个或多个处理器。
其它实施例涉及与本文描述的方法相关联的系统、设备和计算机可读介质。
参考以下具体实施方式和附图可以更好地理解示例性实施例的本质和优点。
附图说明
通过以下结合附图的详细描述将容易理解本公开,其中相同的附图标记表示相同的元件,并且其中:
图1图示了根据一些示例实施例的用于交换令牌的方法的总体概述。
图2图示了根据一些示例实施例的用于交换令牌的令牌交换系统的框图。
图3图示了根据一些示例实施例的用于交换令牌的集成控制台的框图。
图4图示了用于获得访问令牌的序列图。
图5图示了根据一些示例实施例的用于将拥有证明令牌交换为持有者令牌的序列图。
图6图示了根据一些示例实施例的用于将持有者令牌交换为拥有证明令牌的序列图。
图7图示了根据一些示例实施例的用于交换令牌的方法。
图8图示了根据一些示例实施例的用于将应用转换成资源主体(principal)或服务主体的序列图。
图9图示了根据一些示例实施例的IDCS中交叉通信的框图。
图10图示了根据一些示例实施例的用于将IDCS中的应用转换成IAM中的资源或服务的框图。
图11图示了根据一些示例实施例的应用将持有者令牌交换为PoP令牌的方法。
图12图示了根据一些示例实施例的应用向IAM API发出请求的方法。
图13图示了根据一些示例实施例的应用交换令牌的方法的概述。
图14图示了根据一些示例实施例的用于为应用交换令牌的令牌交换系统的框图。
图15是图示根据一些示例实施例的用于实现云基础设施即服务系统的一个模式的框图。
图16是图示根据一些示例实施例的用于实现云基础设施即服务系统的另一个模式的框图。
图17是图示根据一些示例实施例的用于实现云基础设施即服务系统的另一个模式的框图。
图18是图示根据一些示例实施例的用于实现云基础设施即服务系统的另一个模式的框图。
图19是图示根据一些示例实施例的示例计算机系统的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对示例实施例的透彻理解。但是,显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。例如,系统、算法、结构、技术、网络、处理和其它组件可以被示出为框图形式的组件,以免用不必要的细节混淆实施例。各图和描述并不旨在进行限制。
云服务提供商(CSP)可以向订阅客户提供多个云服务。这些服务可以在不同的模型下提供,包括软件即服务(SaaS)、平台即服务(PaaS)、基础设施即服务(IaaS)模型等。
在云环境中,通常由云服务提供商提供身份管理系统来控制用户对云服务提供或使用的资源的访问。身份管理系统提供的典型服务或功能包括但不限于用户的单点登录能力、认证和授权服务以及其它基于身份的服务。
由身份管理系统保护的资源可以是不同类型的,诸如计算实例、块存储卷、虚拟云网络(VCN)、子网、路由表、各种可调用API、内部或传统应用等。这些资源包括存储在云中的资源和/或客户内部部署的资源。每个资源通常由在创建该资源时分配给该资源的唯一标识符(例如,ID)来标识。
CSP可以为其云产品提供两个或更多个分离且独立的身份管理系统。例如,这可以在可以提供第一身份管理系统或平台(例如,基础设施身份和访问管理(IAM))来控制对由CSP提供的IaaS应用和服务的云资源的访问的情况下完成。单独地,可以提供第二身份管理系统或平台(例如,身份云服务(IDCS))用于由CSP提供的SaaS和PaaS服务的安全和身份管理。
由于提供这样两个单独的平台,如果CSP的客户订阅了CSP提供的SaaS或PaaS服务以及IaaS服务,那么该客户通常具有两个单独的账户——一个与IAM的账户用于IaaS订阅和一个与IDCS单独的账户用于PaaS/SaaS订阅。每个账户都有其自己的凭证,诸如用户登录名、密码等。因此,同一客户的两个账户具有两组单独的凭证。这导致客户体验不令人满意。此外,具有两个单独的身份管理系统也为SaaS/PaaS和IaaS服务之间的交互造成了障碍。
此外,这些不同平台中的每一个都遵守不同的规范或规则。这些平台中每个平台的规范都不能轻易更改。一些用户可能仅与一个平台交互,而其它用户可能与两个平台交互。因此,一些用户可能不需要与两个平台通信,而一些用户可能需要与两个平台通信。但是,如果用户正在与两个平台交互,那么示例实施例提供了在不同平台之间无缝交互的解决方案。因此,示例实施例符合每个身份系统的标准,同时允许实体访问不同的身份系统。
出于本申请的目的,并且作为示例,这两个平台被称为身份和访问管理系统(IAM)和身份云服务(IDCS)。但是,这些名称和术语并不旨在以任何方式进行限制。本公开的教导适用于要集成两个(或更多个)不同身份管理系统的任何情况。要集成的身份管理系统或平台可以由一个或多个CSP提供。
在某些实施例中,提供集成身份管理平台(称为集成身份管理系统(IDMS)),其以对云服务的用户或客户透明的方式集成多个身份管理平台(例如,IAM和IDCS平台),同时保留并提供由这两个单独(例如,IAM和IDCS)平台提供的各种特征和功能。因此,该集成提供了更加无缝和增强的用户体验。
但是,由于若干原因,这种集成在技术上非常困难。这两个平台可以使用不同的过程和协议来实现与身份相关的功能。例如,IAM可以是基于属性的访问控制(ABAC)系统,也称为基于策略的访问控制系统,其定义了一种访问控制范例,由此通过使用表达复杂布尔规则集的策略来向用户授予访问权限,该规则集可以评估许多不同的属性。ABAC的目的是保护诸如数据、网络设备和IT资源之类的对象免遭未经授权的用户和动作的影响—这些用户和动作不具有如由组织的安全策略定义的“批准”特性。另一方面,IDCS可以是基于角色的访问控制(RBAC)系统,它是围绕角色和特权定义的策略中立的访问控制机制。RBAC的组件(诸如角色-权限、用户-角色和角色-角色关系)使执行用户分配变得简单。作为又一个原因,两个平台使用的认证和授权框架或工作流程(例如,使用的令牌的类型、不同的认证框架,诸如OAUTH等)可能不同。这只是提供集成解决方案在技术上非常困难的一小部分原因。
I.方法概述—交换令牌
图1图示了根据一些示例实施例的用于交换令牌的方法100的总体概述。图1中所示的方法100可以由集成身份管理系统(IDMS)的令牌交换系统来执行。可以执行令牌交换以将持有者令牌交换为拥有证明(PoP)令牌,或者将PoP令牌交换为持有者令牌。在示例实施例中,可以交换第一身份系统的令牌以获得第二身份系统的不同类型的令牌。
在步骤110处,从第一身份系统的第一实体接收访问第二身份系统的资源的请求。第一身份系统中的第一实体具有第一身份系统的访问令牌。但是,第二身份系统需要与第二身份系统不同的访问令牌。实体也可以被称为用户或客户端。实体可以包括想要访问IAM系统或IDCS系统的特征的任何组件、应用或服务。
例如,第一身份系统(例如,IDCS)上的SaaS或PaaS服务想要访问第二身份系统(例如,IAM)上的存储服务。作为另一个示例,第二身份系统(例如,IAM)上的存储服务可能想要与第一身份系统(例如,IDCS)的SaaS或PaaS的功能进行通信。作为另一个示例,IAM系统的应用编程接口(API)密钥可能想要获得IDCS系统的令牌。替代地,具有IDCS令牌的IDCS服务可能想要与IAM系统通信以获得产品的IAM资源。
为了使实体获得第二身份系统的访问令牌,该实体可以登录到第二身份系统并建立第二身份系统的凭证。在建立第二身份系统的凭证之后,向该实体提供用于访问第二身份系统的访问令牌。但是,要求实体建立第二身份系统的凭证是繁琐且低效的。具体而言,要求实体为该实体访问的每个身份系统建立凭证是繁琐的。要求实体获得每个身份系统的凭证也会中断工作流程。鉴于访问两个身份系统的用户数量众多,这会变得越来越繁琐。
因此,根据示例实施例,在步骤120处,集成身份管理系统(IDMS)的令牌交换系统可以将第一身份系统的访问令牌交换为第二身份系统的访问令牌。然后,实体可以访问第一身份系统和第二身份系统两者中的资源,而无需录入每个身份系统的凭证。
在步骤130处,集成身份管理系统(IDMS)的令牌交换系统在实体与第一身份系统和第二身份系统的会话期间继续管理第一身份系统和第二身份系统的访问令牌。会话可以指期间用户访问第一身份系统或第二身份系统的时段。用户可以经由浏览器上的登录会话登录到第一身份系统或第二身份系统中。基于浏览器会话的存在,可以继续使用访问令牌。例如,浏览器会话可能是12小时,但这只是示例。
因此,示例实施例允许在会话期间访问第一身份系统和第二身份系统的特征的无缝互操作。
令牌可以是基于会话的。即,当用户在会话中进行认证时,可以继续使用令牌。令牌也可以是基于浏览器的。如果用户使用登录会话登录到浏览器中,那么令牌可以继续使用的时间长度可以基于浏览器会话。
II.令牌交换系统
图2图示了根据一些示例实施例的用于交换令牌的令牌交换系统200的框图。
令牌交换系统200可以是集成身份管理系统(IDMS)的一部分。令牌交换系统200与第一身份系统210和第二身份系统220对接。令牌交换系统包括一个或多个处理器和用于存储诸如令牌信息之类的数据的一个或多个存储器。
第一身份系统可以对应于IDCS并且第二身份系统可以对应于IAM。第一身份系统210可以包括服务211、第一身份系统模型212和令牌存储装置213。服务211可以包括例如SaaS和PaaS服务。第二身份系统220可以包括服务221、第二身份系统模型222和令牌存储装置223。服务221可以包括例如IaaS、存储服务和数据服务。
第一身份系统210是指IDCS系统。与IDCS系统相关联的令牌是持有者令牌。持有者令牌也可以被称为OAuth令牌、OAuth访问令牌或访问令牌。持有者令牌可以遵循OAuth规范。IDCS访问令牌可以是JSON Web令牌(JWT)。与IDCS系统相关联的令牌可以被称为应用主体或凭证。最终用户可以包括正在访问IDCS系统的授权用户。
第二身份系统220可以指IAM系统。IAM系统可以包含令牌。在本说明书中,第二身份系统是指IAM系统。与IAM系统相关联的令牌是拥有证明(PoP)令牌。拥有证明(PoP)令牌可以遵循互联网工程师任务组(IETF)规范。
与IAM系统相关联的令牌可以被称为安全主体或实例主体。示例安全主体可以包括服务主体会话令牌(SPST)。SPST令牌可以是JSON Web令牌(JWT)。令牌可以是基于用户的或基于资源的。基于用户的令牌可以与IAM系统的用户、最终用户或客户相关联。最终用户可以包括正在访问IAM系统的授权用户。
第一身份系统模型212可以包括第一身份系统的模型信息。第二身份系统模型222可以包括第二身份系统的模型信息。IDCS系统的令牌或主体与IAM系统的令牌或主体不同,并且遵循不同的标准和模型。此外,来自IDCS系统的令牌服务于IDCS系统的目的,而IAM令牌服务于IAM系统特定的目的。因此,每个身份系统都存储识别身份系统正确操作所需规范的模型。
令牌存储装置213和令牌存储装置223可以存储与身份系统相关联的访问令牌。访问令牌可以是应用用来访问API的凭证。访问令牌可以是不透明的串(string)、JSON Web令牌(JWT)或非JWT令牌。访问令牌可以用于通知API(诸如API 231)该令牌的持有者已被授予对API的委派访问权限,并且正在请求一组预定的动作。所请求的动作是在令牌持有者的范围内的动作。
令牌存储装置213可以存储例如持有者令牌。持有者令牌是可以基于所有权使用的令牌。即,拥有持有者令牌的实体可以使用它。拥有持有者令牌的实体可以直接使用持有者令牌,而不需要附加的信息,诸如密钥。持有者令牌使用HTTPS进行通信,以防止中间人攻击。此外,持有者令牌使用精确指定的地址来发送响应。使用特定地址避免了可由URL中的额外参数导致的不当行为,诸如恶意重定向。
令牌存储装置213和223也可以存储ID令牌。ID令牌是证明认证成功已发生的工件(artifact)。ID令牌可以是包含用户简档属性的JWT。用户简档属性可以以声明的形式表示。ID令牌可以由应用消耗并用于获得用户信息,诸如用户名和电子邮件。用户信息可以用于用户界面(UI)显示目的。
令牌存储装置223可以存储例如拥有证明(PoP)令牌。PoP可以指降低安全令牌被攻击者窃取和使用的风险的加密机制。PoP令牌不能如此轻易地被攻击者用来获得PoP令牌。为了使用PoP令牌,需要令牌本身以及对与令牌相关联的密钥的访问。密钥可以是与实体相关联的私钥。PoP令牌也可以被称为密钥保持者(HoK)令牌。IAM中的安全令牌是包含公共PoP密钥作为JSON Web密钥(JWK)以向应用提供安全访问API的手段的JWT。
令牌交换系统200还包括集成控制台230和令牌管理器240。集成控制台230可以包括应用编程接口231。集成控制台230的API 231可以用于请求令牌交换并执行不同身份系统之间的令牌交换。
令牌交换系统200的令牌管理器240管理已经针对实体交换的令牌。令牌管理器240管理允许实体与第一身份系统和第二身份系统通信的令牌。由于维持了用于与第一身份系统和第二身份系统通信的令牌,因此维持了前向和后向兼容性。即,该实体可以访问第二身份系统的特征,同时继续能够访问第一身份系统的特征。除了IDCS之外,IAM实体将继续具有IAM的身份,反之亦然。
A.集成控制台和令牌管理器
图3图示了根据一些示例实施例的用于交换令牌的集成控制台300的框图。集成控制台300可以对应于图2中所示的集成控制台230。该集成控制台可以充当交换和存储服务。
集成控制台300用于执行第一身份系统和第二身份系统之间的令牌交换。集成控制台300可以包括API 331、第一身份系统控制台320和第二身份控制台330。
实体可以访问例如集成控制台300上的第一身份系统控制台320,以便将第一身份系统的令牌交换为第二身份系统的令牌。
例如,用户可以登录到第一身份系统控制台320控制台中以访问集成身份管理系统。集成控制台300是云服务控制台并且允许用户访问云服务。集成控制台提供各种API即服务产品。用户可以使用API服务产品来发起云服务。
在后端,可以存在用于令牌交换的代码。集成控制台300可以使用该代码来将令牌转换成对于系统适当的令牌。集成控制台300执行令牌交换。可以编写逻辑使得集成控制台300可以调用适当的令牌交换。集成控制台也可以充当存储服务。
此外,实体可以访问例如集成控制台300上的第二身份系统控制台330,以便将第二身份系统的令牌交换为第一身份系统的令牌。
第二身份系统控制台(IAM)330可以具有由IAM生成的令牌。但是,提供的一些API可能与IDCS相关。因此,第二身份系统控制台(IAM)330可以与第一身份系统控制台(IDCS)320执行令牌交换。集成控制台300充当客户以集成方式与IDCS系统和IAM系统对接的门户。控制台可以与身份管理系统的不同服务对接。
集成控制台帮助客户开发IDCS系统和IAM系统提供的各种服务之间的不同类型的集成。
III.获得令牌的方法
图4图示了用于获得访问令牌的序列图400。在图4中所示的示例中,IDCS系统的客户端正在请求对于IDCS系统的访问令牌。
图4中所示的图图示了客户端410、IDCS OAuth服务420和资源应用编程接口(API)430之间的交互。在图4中所示的示例中,IDCS系统的客户端410获得IDCS访问令牌。
在步骤411处,客户端410向IDCS OAuth服务420做出令牌请求。客户端可以是应用,并且应用需要访问令牌才能访问IDCS系统的特征。应用具有其自己的凭证,并且它将做出一些请求。例如,它将做出针对访问令牌的请求。在做出请求时,应用发送有效载荷,进而它将接收到令牌(例如,访问令牌)。
在步骤412处,OAuth服务420为客户端生成对IDCS系统的访问令牌并将该访问令牌返回给客户端。在IDCS中,访问令牌可以是持有者令牌。
在步骤413处,现在具有访问令牌的客户端可以使用该访问令牌来调用资源API。因此,客户端现在具有与IDCS系统的资源进行交互的凭证。客户端可以访问资源API,因为它们现在具有访问令牌。
用于获得访问令牌的方法可以基于规范而变化。在图4中所示的示例中,用于获得访问令牌的方法基于各种OAuth规范或OAuth标准。此外,用于获得访问令牌的方法可以基于开放ID连接(OIDC)规范。
这仅仅是用于获得访问令牌的示例,并且可以使用各种方法来获得访问令牌。所示的示例用于获得IDCS令牌。但是,用户也可以获得IAM令牌。
用户获得对于用户想要访问的每个系统的访问令牌是不方便的。当用户正在使用的产品想要访问IDCS系统和IAM系统的特征时,用户不希望必须获得IDCS令牌和单独的IAM令牌。此外,客户端不希望经历获得单独的访问令牌并管理其不同身份系统的访问令牌的处理。
因此,如果用户已经具有一种类型的身份系统(例如,第一身份系统)的访问令牌,那么可以将第一身份系统的访问令牌交换为不同身份系统(例如,第二身份系统)的令牌。
IV.将PoP令牌交换为持有者令牌
如果用户登录到IAM应用并且该用户具有PoP令牌,并且同一客户尝试访问由IDCS系统控制的应用,那么代替必须再次进行单独的登录,示例实施例允许该客户基于现有PoP令牌来获得持有者令牌,反之亦然。示例实施例允许实体获得不同身份系统的令牌,而无需该实体知道正在发生交换。用户可以无缝访问不同身份系统的特征。此外,示例实施例增强了不同身份系统之间的互操作性。
图5图示了根据一些示例实施例的用于将拥有证明(PoP)令牌交换为持有者令牌的序列图500。
具有PoP令牌的实体可以访问IAM系统的资源。但是,为了访问IDCS系统的资源,实体将需要持有者令牌。图5图示了如何将实体的PoP令牌交换为用于IDCS的持有者令牌。
图5图示了云基础设施服务501、OAuth保护的API 502、IDCS 503和IDDP(身份数据平面)504之间的交互。IDDP 504可以是令牌交换端点,其可以包含存储器中的所有身份数据并且存储器中的数据不被共享。云基础设施服务510可以位于云基础设施基底(substrate)或覆盖层505上。OAuth保护的API 502可以位于云基础设施覆盖层506上。IDCS503可以位于云基础设施覆盖层507上。IDDP 504可以位于云基础设施基底508上。
在图5中所示的示例中,实体具有IAM拥有证明(PoP)令牌并且它们的PoP令牌被交换为用于IDCS系统的持有者令牌。例如,用户可能具有经认证的PoP令牌,并且用户正在IAM系统中执行操作。用户已被认证并且已登录到IAM系统中。在同一个会话中,用户可以获得IDCS系统的令牌。用户可以参考想要访问IDCS系统的特征的产品、应用或应用的服务。产品或应用可以包括与IAM或IDCS系统进行交互的产品或应用。应用也可以包括web应用。
在图5中所示的示例中,诸如IaaS之类的IAM服务正在尝试访问诸如PaaS之类的IDCS服务。IAM服务具有IAM令牌。但是,为了访问IDCS系统的PaaS服务将需要IDCS令牌。因此,IAM服务将请求IDCS令牌(例如,用于IDCS的持有者令牌)。
如果服务具有IAM令牌,那么为了访问PaaS服务(IDCS),该服务可以请求IDCS令牌。该服务可以向IDCS发送请求。该请求使用IAM PoP/API密钥进行签名。然后IDCS可以核实该请求。如果该请求有效,那么IDCS可以生成持有者令牌以供云基础设施(CI)服务在IDCS中使用。IDCS使用IDCS的私钥对生成的持有者令牌进行签名。由IDCS签名的经核实的持有者令牌可以用于调用IDCS API。
当用户访问集成控制台300上的IAM控制台330时,可以发起图5中所示的步骤。
在步骤510处,从IAM服务(云基础设施服务501)向IDCS 503做出发布(post)或请求令牌的请求。
在步骤520处,基底或覆盖层中的云集成(CI)服务501向覆盖层中的IDCS发出签名的令牌交换/令牌请求。
在步骤530处,IDCS OAuth服务(IDCS 503)核实请求签名。可以为每个应用分配初始密钥,诸如用户名和/或密码。请求使用IAM拥有证明(PoP)和API密钥进行签名。请求的签名由IDCS核实并且IDCS可以验证该请求。
在步骤540处,计算系统基于包括在签名中的密钥的类型来生成访问令牌。在所示的示例中,生成了持有者令牌。IDCS生成符合IDCS的令牌。
在步骤550处,IDCS 503使用IDCS的私钥对令牌进行签名。
在步骤560处,签名的持有者令牌被发送到云基础设施(CI)服务。签名的持有者令牌被返回给调用者服务。
在步骤570处,CI服务501请求获取(get)资源。CI服务将使用访问令牌向OAuth保护的API发出请求。CI服务可以使用生成的令牌来调用API。
在步骤580处,OAuth保护的API 502可以使用持有者令牌来授权该请求。
在步骤590处,可以获得资源实体作为结果。
具有IAM PoP令牌的IAM身份系统的服务可以将其IAM PoP令牌交换为IDCS令牌(例如,持有者令牌),并且IAM服务可以访问IDCS系统的服务。
因此,当服务尝试与任何其它CI API通信时,可以使用用户的私钥对请求进行签名并附加令牌。其它服务可以联系IDDP(身份数据平面)来请求公钥,以便核实实体是否实际上对令牌进行了签名。
IV.将持有者令牌交换为PoP令牌
特定租赁或逻辑容器内的资源有时可以请求访问租赁/逻辑容器内的另一个资源,其中该另一个资源受到保护。与人类用户一样,实例可以具有分配给它们的身份。在作为云平台一部分提供的身份和访问管理(IAM)服务内,此类实体有时被称为主体。主体是可以基于主体的身份被允许与云计算环境中的其它资源进行交互(以例如执行读取、写入或与服务相关的操作)的实体。
图6图示了根据一些示例实施例的用于将持有者令牌交换为拥有证明(PoP)令牌的序列图600。
图6图示了管理云服务(MCS)601、IDDP(身份数据平面)602和域共享高速缓存603之间的交互。管理云服务601可以位于云基础设施SaaS/PaaS服务604上。IDDP 602和域共享高速缓存603可以位于云基础设施基底605上。IDDP 602可以是令牌交换端点。
在图6中所示的示例中,具有IDCS令牌(例如,持有者令牌)的IDCS服务(诸如SaaS和PaaS)想要访问IAM系统的服务。用户经过认证,并且他们已登录到IDCS系统中并已获得IDCS令牌。在同一会话中,用户可以获得用于IAM系统的令牌。用户可以参考想要访问IAM系统的特征的产品、应用或应用的服务。IAM系统的服务可以包括IAM数据服务和存储服务。IDCS的PaaS和SaaS服务可以使用IAM生成的令牌来确保IAM的任何数据服务。
在步骤610处,从SaaS/PaaS服务做出将令牌发布到IDDP 602的请求。该请求包括持有者令牌和公钥。一个持有者令牌可以用于实体在会话期间进行的所有访问。
在步骤620处,识别持有者令牌和公钥。
在步骤630处,从持有者令牌检索域ID。
在步骤640处,从域共享高速缓存获得域的公钥。
在步骤650处,验证持有者令牌的签名。
在步骤660处,检索标签并识别资源类型。
在步骤670处,将响应提供给IDDP 602。
在步骤680处,生成资源主体会话令牌(RPST)。虽然示出了关于获得资源主体会话令牌的示例,但是附加实施例可以涉及获得服务主体会话令牌(SPST)。
在步骤690处,确定该请求是否被授权继续进行。
虽然上面描述的示例是关于服务的,但是应用也可以用于执行交换。
因此,示例实施例集成了不同的机制,使得用户在访问不同身份系统的各方面时将具有无缝且统一的体验。最终用户和客户可以包括IAM和IDCS系统的用户。令牌交换发生时,最终用户的系统操作不受影响。因此,用户可以使用生成的令牌在IAM和IDCS系统之间无缝操作。
示例实施例解决用户在访问不同系统(诸如不同身份管理系统)的组件时面临的问题。用户可以在两个不同的身份管理系统之间切换。用户体验得到增强并且是无缝的,因为他们不必单独登录到每个系统。
V.交换令牌的方法
图7图示了根据一些示例实施例的用于交换令牌的方法700。
在步骤710处,令牌交换系统可以确定实体被授权访问第一身份系统。该实体可以是应用。
在步骤720处,令牌交换系统接收实体发出的访问第二身份系统的第一请求。第一请求可以包括持有者令牌和公钥。
在步骤730处,令牌交换系统可以核实令牌是否有效。如果请求上的签名有效,那么可以确定令牌有效。
在步骤740处,令牌交换系统可以基于第一身份系统的第一令牌生成第二身份系统的第二令牌。
在步骤750处,令牌交换系统可以使用实体的私钥对第二令牌进行签名以生成第二签名令牌。
在步骤760处,计算系统基于第二签名令牌对实体进行认证以访问第二身份系统。令牌交换系统可以基于公钥来核实该实体是对持有者令牌进行签名的实体。
在步骤770处,令牌交换系统可以授权实体使用第二令牌来访问第二身份系统的应用编程接口。
上面的示例一般性地描述了令牌交换。但是,令牌交换可以由特定实体(诸如应用)执行。
VI.应用作为资源主体或服务主体
应用可能无法与其它资源进行交互,因为应用不具有身份。应用可以遵循使用持有者令牌的OAuth认证模型。应用是域的一部分,因此它可以与域中的元素进行交互。但是,应用可能无法与其域之外的元素进行交互。
IAM应用编程接口(API)可以仅接受来自资源或服务的连接。如果实体不是资源或服务,那么该实体无法与IAM API通信。IAM API依赖于获取签名请求,其中该请求由私钥签名,并且只有请求者具有该私钥。
示例实施例转换应用(诸如SaaS应用、PaaS应用或融合应用(FA))所拥有的持有者令牌身份,并且令牌交换系统可以将持有者令牌身份交换为资源主体会话令牌(RSPT)身份,该RSPT身份由IAM中的API接受。RSPT身份使用PoP令牌。应用的持有者令牌被转换成PoP令牌,这允许应用充当资源主体或服务主体。
过去,一个域中的应用只能访问该域内的资源。但是,现在可以向该应用赋予资源主体身份或服务主体身份。如果应用被更新为主体身份,那么它可以管理该域中所有用户的数据。
一旦应用具有资源主体会话令牌身份,那么该实体就可以是动态组的一部分。该实体可以被分配各种特权并且该实体可以被视为资源主体。所描述的示例是具有资源主体身份的应用,但也可以向该应用赋予服务主体身份。作为资源和/或服务主体,应用将具有更大的范围和更多的特权,并且可以成为动态组的一部分。
具有持有者令牌的应用然后能够充当主体(即,可以访问资源或服务的实体)。应用在访问IAM之前经过认证/授权。
在示例实施例中,SaaS、PaaS或融合应用(FA)具有的持有者令牌可以被交换为资源主体会话令牌身份。一旦应用具有资源主体会话令牌身份,该应用就可以成为动态组的一部分,并且可以被分配任何特权,并且可以被视为服务。
应用可以被视为服务主体而不仅仅是资源。应用具有更大的范围和更多的特权。
A.序列图—应用到主体
在IDCS中,应用可以具有条带(stripe)。条带也可以被称为租赁或账户。在此条带内,用户具有管理应用的规则。租赁内可以有不同的规则。例如,在一个条带中可能存在财务应用,其具有用于管理财务应用的特定规则。此外,另一条带中的另一组可能具有人力资源(HR)应用并且可以具有用于管理HR应用的规则。此外,可能存在数据库应用,并且存在用于访问数据库的规则。但是,如果企业(诸如公司)具有多于一个的条带,那么这些条带内的应用无法与彼此通信。即,不存在跨租赁或跨条带通信。这些系统使用持有者令牌。
图8图示了根据一些示例实施例的用于将应用转换成资源主体或服务主体的序列图800。
如图8中所示,在步骤810处,应用租赁被转换成域。显示了单个租赁,但是可以将若干租赁转换成若干域。
在步骤810处,应用的持有者令牌被交换为PoP令牌。由于应用现在使用PoP令牌,因此应用被允许充当资源主体,如步骤830中所示,或者充当服务主体,如步骤840中所示。
当应用充当资源主体时,它能够充当IAM中的资源。当应用充当服务主体时,它能够充当IAM中的服务。
B.IDCS中的交叉通信
图9图示了根据一些示例实施例的用于IDCS中交叉通信的框图900。
如图9中所示,应用可以位于IDCS中的租赁910中。租赁也可以被称为条带或账户。如图9中所示,公司中的每个部门(诸如人力资源、财务和会计)各自可以具有其自己的租赁(人力资源911、财务912和会计913)。租赁可以使用持有者令牌进行操作。图9中所示的租赁仅用于示例目的,并且可以存在各种其它租赁。人力资源租赁911可以包括持有者令牌存储库914,财务租赁912可以包括持有者令牌存储库915,并且会计租赁913可以包括持有者令牌存储库916。
如图9中所示,每个租赁独立于其它租赁进行操作。即人力资源租赁911中的用户只能访问人力资源租赁911内的信息,财务租赁912中的用户只能访问财务租赁912内的信息,并且会计租赁913中的用户只能访问会计租赁913内的信息。
为了允许租赁访问其它租赁中的信息(例如,交叉通信),租赁被转换成域。IDCS租赁910被转换成IDCS域920。通过域,不同部门可以访问信息并与其它部门中的信息进行通信。因此,人力资源域921、财务域922和会计域923可以与彼此通信并访问来自其它域的信息。此外,每个域可以访问其它域的程度可以基于与每个部门相关联的权利和特权。如图9中所示,人力资源域921包括持有者令牌存储库924,财务域922包括持有者令牌存储库925,并且会计域923包括持有者令牌存储库92 6。
代替包括若干用户和组的HR租赁,现在一切都位于HR域内。此外,域中的用户是独特的。
应用所属的域可以用于识别可以确定在该域内被分配给应用的特权。如图9中所示,应用具有与该域相关联的特权,并且不具有该域之外的特权。
C.与第一身份系统和第二身份系统的实体通信
图10图示了根据一些示例实施例的用于将IDCS中的应用转换成IAM中的资源或服务的框图1000。IDCS中的应用可以充当服务主体或资源主体,因为它将其持有者令牌交换为PoP令牌。
图10示出了人力资源应用1020、财务应用1030和会计应用1040。人力资源应用1020使用如存储在持有者令牌存储库1021中的持有者令牌。财务应用1030使用如存储在持有者令牌存储库1031中的持有者令牌。会计应用1040使用如存储在持有者令牌存储库1041中的持有者令牌。
如图10中所示,IDCS域1010中的应用将它们的持有者令牌改变为PoP令牌。如IAM域1050中所示,应用可以在IAM域中时使用其PoP令牌。在IAM域1050内,人力资源应用1060、财务应用1070和会计应用1080现在可以充当资源主体或服务主体,因为它们现在具有PoP令牌。应用的PoP令牌可以存储在PoP令牌存储库1061、PoP令牌存储库1071和PoP令牌存储库1081中。
如图10中所示,IDCS域1010内的应用将其持有者令牌交换为PoP令牌,并且因此能够充当IDCS域1050内的资源主体或服务主体。
因此,示例实施例允许不同条带中的应用通过使用拥有证明(PoP)令牌来与彼此通信。
当IDCS账户实体成为身份本身内的子实体或子身份时,域用于描述IDCS账户实体。因此IDCS中的条带可以映射到身份/IAM中的域。企业中的每个部门都可以存在域,并且每个域都将有其自己的资源。因此,已创建的不是条带和租赁,而是域。
D.应用交换令牌
1.方法-应用将持有者令牌交换为PoP令牌
图11图示了根据一些示例实施例的应用将持有者令牌交换为PoP令牌的方法1100。
实体可以通过生成会话密钥对来向云基础设施API做出请求。公钥存储在IAM的其它云基础设施服务可以核实的身份令牌中,并且实体拥有私钥。可以使用实体的私钥来对该请求进行签名。包含公钥的令牌附加在请求中,使得IAM服务的云基础设施可以核实该实体。持有者令牌身份作为请求的一部分被发送到IAM。其它服务可以联系该实体并请求该实体的公钥,以便核实该实体是否对令牌进行了签名。因此,该实体现在可以与IAM资源和服务进行通信。
如图11中所公开的,应用的持有者令牌被交换为PoP令牌。例如,应用可能希望与仅接受PoP令牌的IAM的API进行通信。因此,应用发起将其持有者令牌交换为PoP令牌的处理。
在步骤1110处,令牌交换系统确定该实体对于第一身份系统被授权。如果该实体具有访问第一身份系统的凭证,那么该实体对于第一身份系统被授权。该实体的凭证被录入到第一身份系统中,并且如果凭证正确,那么该实体被授权访问第一身份系统。
在步骤1120处,令牌交换系统可以从应用接收对IAM令牌的请求。应用将生成密钥对(例如,公钥和私钥对),并且应用将在有效载荷中提供公钥。因此,该请求包括应用的公钥和持有者令牌。该请求使用应用的私钥进行签名。应用不发送其私钥,但是使用其私钥对请求进行签名。
公钥可以被保存或存储在身份令牌存储库中,其它IAM服务可以访问该身份令牌存储库以验证和核实应用拥有私钥。
在步骤1130处,令牌交换系统可以确定应用是否具有有效的持有者令牌。当与IAM通信时,可以将持有者令牌身份作为请求的一部分发送到IAM。当IAM实体正在请求IDCS身份时,持有者令牌身份用于对IDCS的请求进行签名,但持有者令牌身份不与请求一起发送。
在步骤1140处,令牌交换系统可以确定应用的角色并确定应用的角色是否符合资源要求。可以在应用内指定应用的角色。该角色可以识别应用可以访问的数据。已核实应用具有可以转换成资源的正确角色。
令牌交换系统确定应用的角色是否足以充当资源主体。在所描述的示例中,确定应用的角色是否足以充当资源主体。但是,如果应用希望充当服务主体,那么令牌交换系统将确定应用的角色是否足以充当服务主体。
在步骤1150处,令牌交换系统可以生成包括应用的公钥的令牌。该令牌由IAM系统签名,并包括应用的公钥。由IAM系统签名的令牌可以由令牌生成器1360生成,如图13中所示。
在步骤1160处,令牌交换系统可以向应用发送由IAM签名的令牌。应用可以使用该令牌来对IAM进行未来的API调用。令牌也可以被称为密钥。通过为应用分配密钥,该密钥可以用于确保该应用是如其所声称的应用。
应用被提供身份并且因此可以与集成环境中的资源通信并做出请求。为了向后兼容,应用将继续与其自己域内使用或依赖于其自己的持有者令牌身份的所有实体一起工作。
应用具有由IAM签名的令牌,该令牌具有应用的公钥。当应用与其它IAM API通信时,使用私钥对请求进行签名并且附加令牌。
2.方法-应用调用IAM API
图12图示了根据一些示例实施例的应用向IAM API做出请求的方法1200。
在步骤1210处,令牌交换系统可以接收访问第二身份系统中的资源的请求。该请求可以包括持有者令牌和从IAM接收到的令牌,其包括应用的公钥。该请求可以由应用的私钥签名。进行调用的应用可以提供公钥以将其与返回的会话令牌相关联。
如果应用进行未来的API调用,那么令牌交换系统可以接收对IAM的API调用的请求。该请求包括由IAM签名的公共令牌。使用应用的私钥对该请求进行签名。
应用可以在任何请求中附加从IAM接收到的令牌,并且应用还可以使用应用的私钥对请求进行签名。应用可以证明其拥有私钥和来自IAM的有效令牌。因此,应用正在尝试访问的资源可以核实应用的身份。应用可以通过使用应用的私钥对请求进行签名并附加由IAM签名的令牌对IAM API进行未来的引用。
在步骤1220处,令牌交换系统可以核实应用是基于公钥对持有者令牌进行签名的实体。令牌交换系统可以核实该请求是使用应用的私钥进行签名的。令牌交换系统可以将接收到的应用的公钥与为应用存储的公钥进行比较。然后可以验证应用。确定公共令牌由IAM签名,并且核实私钥是应用的私钥并且应用已经对请求进行了签名。
在步骤1230处,令牌交换系统可以授权实体访问第二身份系统。由于应用能够证明其拥有指定的秘密信息,因此可以授予它特权以便可以访问其它资源。
应用拥有该令牌并且只有该应用拥有该令牌。因此,应用被允许与其它资源进行通信。其它资源可以在没有持有者令牌的情况下确保应用是其所声称的应用。
令牌被签名并且在公钥存储在令牌存储库中的情况下,这指示存在有效的公钥。使用私钥对请求进行签名,并且可以核实私钥是否属于该实体。此外,通过使用PoP令牌,避免了可能与持有者令牌相关联的问题。具体而言,其它实体无法冒充或假装做出请求的应用。
3.方法-消息传递
在创建实例时为实例分配身份。由于可以为实例分配资源主体会话令牌身份,因此它们可以成为动态组的一部分。一些实体(例如,应用)不具有资源主体会话令牌(RPST)身份或PoP令牌。IDCS中的应用(例如,SaaS应用、PaaS应用、融合应用等)没有被赋予资源主体会话令牌身份,因此,应用无法成为IAM中动态组的一部分。
图13图示了根据一些示例实施例的应用交换令牌的方法1300的概述。
在步骤1310处,应用将其IDCS访问令牌(例如,持有者令牌)发布到IDDP(身份数据平面)。请求的有效载荷包括应用的公钥。可以使用签名、持有者令牌或秘密客户端ID对请求进行认证。
在步骤1320处,应用的实例利用带有有效载荷的签名的RPST进行另一次调用。这代表有效载荷访问令牌的令牌。有效载荷包括从调用者到应用实例的IDCS访问令牌以及调用的目标服务。如果请求包括授权持有者令牌或秘密客户端ID以及公钥,但不具有有效载荷访问令牌,那么返回的RPST可以在令牌中包括公钥。如果使用有效载荷访问令牌对请求进行签名,那么可以返回令牌中不包含公钥的令牌。
在步骤1330处,应用实例通过在授权报头中指定RPST来调用IAM服务。它可以在令牌报头中包含可选令牌。根据步骤1310,请求使用RPST私钥进行签名。
为了访问IAM,请求需要通过私钥进行签名,这表明仅该应用具有该私钥。因此,可以核实该应用已经对该请求进行了签名。
由于包括应用的公钥的令牌是由IAM系统进行签名的,因此该公钥被确定为有效的公钥。此外,由于应用使用PoP令牌进行操作,因此交易更加安全。
4.应用令牌交换系统
图14图示了根据一些示例实施例的用于交换应用的令牌的令牌交换系统1400的框图。图14中所示的令牌交换系统与图2的令牌交换系统类似。因此,将不再重复类似元素的描述。
令牌交换系统1400可以是集成身份管理系统(IDMS)的一部分。令牌交换系统1400与第一身份系统1410和第二身份系统1420对接。第一身份系统可以对应于IDCS并且第二身份系统可以对应于IAM。第一身份系统1410可以包括服务1411、第一身份系统模型1412和令牌存储装置1413。服务1411可以包括例如SaaS和PaaS服务。第二身份系统1420可以包括服务1421、第二身份系统模型1422和令牌存储装置1423。服务1421可以包括例如IaaS、存储服务和数据服务。
第一身份系统模型1412可以包括第一身份系统的模型信息。第二身份系统模型1422可以包括第二身份系统的模型信息。
令牌存储装置1413和令牌存储装置1423可以存储与身份系统相关联的访问令牌。令牌存储装置1413可以存储例如持有者令牌。令牌存储装置1413和1423也可以存储ID令牌。令牌存储装置1423可以存储例如拥有证明(PoP)令牌。
令牌交换系统1400还包括集成控制台1430和令牌管理器1440。集成控制台1430可以包括应用编程接口1421。集成控制台1430的API 1431可以用于请求令牌交换并执行不同身份系统之间的令牌交换。
令牌交换系统1400的令牌管理器1440管理已经为实体交换的令牌。令牌管理器1440管理允许实体与第一身份系统和第二身份系统通信的令牌。
此外,令牌交换系统1400的第一身份系统1410还可以包括租赁转换器1414。租赁转换器1414可以将租赁转换成域。域中的实体能够获得PoP令牌。
令牌交换系统1400还可以包括角色标识符1450和令牌生成器1460。角色标识符1450可以被令牌交换系统用来确定从持有者令牌获得的角色,并且可以确定该角色是否符合访问资源或服务所需的要求。
令牌生成器1460可以由令牌交换系统1400使用来生成令牌,该令牌可以包括做出访问IAM API的请求的实体(例如,应用)的公钥。令牌也可以被称为密钥。生成的令牌可以被提供给实体,并且实体可以在访问IAM API时将令牌包括在请求中。
根据示例实施例,应用现在可以被视为资源并且可以是动态组的一部分。应用可以获得提供给动态组的特权,从而允许应用交互并访问其它资源。
根据示例实施例,应用可以被分配身份以便能够充当资源主体或服务主体。例如,IDCS中的应用可以转变为IAM中的资源主体或服务主体。
应用被赋予其自己的身份,诸如赋予其它资源或服务。该应用可以被集成,并且可以被视为资源或动态组的一部分。因此,如果应用登录到IDCS系统中,那么该应用可以充当资源并访问IAM系统的各方面。
应用可以包括由IDCS或IAM系统的客户端使用的应用。客户端使用的应用也可以被称为客户端应用。例如,应用可以包括SaaS应用、PaaS应用、融合应用(FA)应用或IaaS应用。但是,这仅仅是示例,IDCS和IAM中使用的各种类型的应用都可以是客户端应用。具体而言,想要访问IDCS或IAM系统的资源的应用可以是具有身份并且可以获得访问令牌的应用。
不同的系统具有不同的处理令牌和单点登录管理的方法。由于IDCS是与IAM不同的服务,因此它们处理令牌的方式也不同。但是,对于用户来说,必须创建和管理用于访问第一身份系统的第一令牌以及创建和管理用于访问第二身份系统的第二令牌是不方便的。
示例实施例提供单个身份解决方案,其提供云服务中的不同身份系统之间的前向和后向兼容性。示例实施例以无缝方式提供这样的解决方案,而不中断使用不同身份系统执行的操作。集成可以在幕后执行,使得最终用户或客户不会注意到正在发生的交换。
示例实施例解决用户在访问不同系统(诸如不同身份管理系统)的组件时面临的问题。用户可以在两个不同的身份管理系统之间切换。用户体验得到增强并且是无缝的,因为他们不必单独登录到每个系统。
示例实施例允许交换令牌,同时仍然为不同的身份系统维护两个令牌。交换令牌以便能够与两个系统进行通信。因此,令牌将向前和向后兼容。实体可以将其第一身份系统的令牌交换为第二身份系统的令牌。但是,如果该实体需要返回并访问第一身份系统,那么该实体维护第一身份系统的令牌。因此,实体可以在需要不同访问令牌且符合不同标准的身份系统之间持续交互。
计算机系统
如上所述,基础设施即服务(IaaS)是一种特定类型的云计算。IaaS可以被配置为通过公共网络(例如,互联网)提供虚拟化计算资源。在IaaS模型中,云计算提供商可以托管基础设施组件(例如,服务器、存储设备、网络节点(例如,硬件)、部署软件、平台虚拟化(例如,管理程序层)等)。在一些情况下,IaaS提供商还可以提供各种服务来伴随这些基础设施组件(例如,计费、监视、日志记录、负载平衡和聚类等)。因此,由于这些服务可能是策略驱动的,因此IaaS用户可以能够实现策略来驱动负载平衡,以维持应用的可用性和性能。
在一些情况下,IaaS客户可以通过诸如互联网之类的广域网(WAN)访问资源和服务,并且可以使用云提供商的服务来安装应用堆栈的剩余元素。例如,用户可以登录到IaaS平台以创建虚拟机(VM)、在每个VM上安装操作系统(OS)、部署诸如数据库之类的中间件、为工作负载和备份创建存储桶、甚至将企业软件安装到该VM中。然后,客户可以使用提供商的服务来执行各种功能,包括平衡网络流量、解决应用问题、监视性能、管理灾难恢复等。
在大多数情况下,云计算模型将需要云提供商的参与。云提供商可以但不一定是专门提供(例如,供应、出租、销售)IaaS的第三方服务。实体也可能选择部署私有云,从而成为其自己的基础设施服务提供商。
在一些示例中,IaaS部署是将新应用或应用的新版本放置到准备好的应用服务器等上的处理。它还可以包括准备服务器(例如,安装库、守护进程等)的处理。这通常由云提供商管理,位于管理程序层(例如,服务器、存储装置、网络硬件和虚拟化)之下。因此,客户可以负责处理(OS)、中间件和/或(例如,在(例如可以按需启动的)自助服务虚拟机上的)应用部署等。
在一些示例中,IaaS供给可以指获取计算机或虚拟主机以供使用,甚至在它们上安装所需的库或服务。大多数情况下,部署不包括供给,并且供给可能需要被首先执行。
在一些情况下,IaaS供给存在两个不同的问题。首先,在任何东西运行之前供给初始基础设施集合存在最初的挑战。其次,一旦所有东西已被供给,就存在演进现有基础设施(例如,添加新服务、更改服务、移除服务等)的挑战。在一些情况下,可以通过启用以声明方式定义基础设施的配置来解决这两个挑战。换句话说,基础设施(例如,需要哪些组件以及它们如何交互)可以由一个或多个配置文件来定义。因此,基础设施的总体拓扑(例如,哪些资源依赖于哪些资源,以及它们如何协同工作)可以以声明的方式描述。在一些情况下,一旦定义了拓扑,就可以生成创建和/或管理配置文件中描述的不同组件的工作流。
在一些示例中,基础设施可以具有许多互连的元素。例如,可能存在一个或多个虚拟私有云(VPC)(例如,可配置和/或共享计算资源的潜在按需池),也称为核心网络。在一些示例中,还可以供给一个或多个入站/出站业务组规则以定义将如何设置网络的入站/出站业务以及一个或多个虚拟机(VM)。也可以供给其它基础设施元素,诸如负载平衡器、数据库等。随着期望和/或添加越来越多的基础设施元素,基础设施可以逐步演进。
在一些情况下,可以采用连续部署技术来使得能够跨各种虚拟计算环境来部署基础设施代码。此外,所描述的技术可以使得能够在这些环境内进行基础设施管理。在一些示例中,服务团队可以编写期望部署到一个或多个但通常是许多不同的生产环境(例如,跨各种不同的地理位置,有时跨越整个世界)的代码。但是,在一些示例中,必须首先设置将在其上部署代码的基础设施。在一些情况下,供给可以手动完成,可以利用供给工具来供给资源,和/或一旦供给基础设施就可以利用部署工具来部署代码。
图15是图示根据至少一个实施例的用于实现云基础设施即服务系统的一个模式的框图。
图15是图示根据至少一个实施例的IaaS体系架构的示例模式的框图1500。服务运营商1502可以通信地耦合到可以包括虚拟云网络(VCN)1506和安全主机子网1508的安全主机租赁1504。在一些示例中,服务运营商1502可以使用一个或多个客户端计算设备(客户端计算设备可以是便携式手持设备(例如,蜂窝电话、/>计算平板、个人数字助理(PDA))或可穿戴设备(例如,Google/>头戴式显示器)),运行软件(诸如Microsoft Windows/>)和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 8、Palm OS等),并且支持互联网、电子邮件、短消息服务(SMS)、或其它通信协议。可替代地,客户端计算设备可以是通用个人计算机,包括例如运行各种版本的Microsoft/>Apple/>和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行各种商业上可获得的或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统(诸如例如GoogleChrome OS))中的任何操作系统的工作站计算机。替代地或附加地,客户端计算设备可以是任何其它电子设备,诸如瘦客户端计算机、支持互联网的游戏系统(例如,具有或不具有手势输入设备的Microsoft Xbox游戏控制台)、和/或能够通过可以访问VCN1506和/或互联网的网络进行通信的个人消息传递设备。
VCN 1506可以包括本地对等网关(LPG)1510,该VCN 1506可以经由包含在安全壳(SSH)VCN 1512中的LPG 1510通信地耦合到SSH VCN 1512。SSH VCN 1512可以包括SSH子网1514,并且SSH VCN 1512可以经由包含在控制平面VCN 1516中的LPG 1510通信地耦合到控制平面VCN 1516。此外,SSH VCN 1512可以经由LPG 1510通信地耦合到数据平面VCN 1518。控制平面VCN 1516和数据平面VCN 1518可以包含在可以由IaaS提供商拥有和/或操作的服务租赁1519中。
控制平面VCN 1516可以包括充当外围网络(例如,公司内部网络和外部网络之间的公司网络的部分)的控制平面非军事区(DMZ)层1520。基于DMZ的服务器可以承担有限责任并有助于控制违规。此外,DMZ层1520可以包括一个或多个负载平衡器(LB)子网1522、可以包括(一个或多个)应用(app)子网1526的控制平面应用层1524、可以包括(一个或多个)数据库(DB)子网1530(例如,(一个或多个)前端DB子网和/或(一个或多个)后端DB子网)的控制平面数据层1528。包含在控制平面DMZ层1520中的(一个或多个)LB子网1522可以通信地耦合到包含在控制平面应用层1524中的(一个或多个)应用子网1526和可以包含在控制平面VCN 1516中的互联网网关1534,并且(一个或多个)应用子网1526可以通信地耦合到包含在控制平面数据层1528中的(一个或多个)DB子网1530以及服务网关1536和网络地址转换(NAT)网关1538。控制平面VCN 1516可以包括服务网关1536和NAT网关1538。
控制平面VCN 1516可以包括数据平面镜像应用层1540,其可以包括(一个或多个)应用子网1526。包含在数据平面镜像应用层1540中的(一个或多个)应用子网1526可以包括可以执行计算实例1544的虚拟网络接口控制器(VNIC)1542。计算实例1544可以将数据平面镜像应用层1540的(一个或多个)应用子网1526通信地耦合到可以包含在数据平面应用层1546中的(一个或多个)应用子网1526。
数据平面VCN 1518可以包括数据平面应用层1546、数据平面DMZ层1548和数据平面数据层1550。数据平面DMZ层1548可以包括(一个或多个)LB子网1522,其可以通信地耦合到数据平面应用层1546的(一个或多个)应用子网1526和数据平面VCN 1518的互联网网关1534。(一个或多个)应用子网1526可以通信地耦合到数据平面VCN 1518的服务网关1536和数据平面VCN 1518的NAT网关1538。数据平面数据层1550还可以包括可以通信地耦合到数据平面应用层1546的(一个或多个)应用子网1526的(一个或多个)DB子网1530。
控制平面VCN 1516和数据平面VCN 1518的互联网网关1534可以通信地耦合到元数据管理服务1552,该元数据管理服务1552可以通信地耦合到公共互联网1554。公共互联网1554可以通信地耦合到控制平面VCN 1516和数据平面VCN 1518的NAT网关1538。控制平面VCN 1516和数据平面VCN 1518的服务网关1536可以通信地耦合到云服务1556。
在一些示例中,控制平面VCN 1516或数据平面VCN 1518的服务网关1536可以对云服务1556进行应用编程接口(API)调用,而无需通过公共互联网1554。从服务网关1536到云服务1556的API调用可以是单向的:服务网关1536可以对云服务1556进行API调用,并且云服务1556可以将请求的数据发送到服务网关1536。但是,云服务1556可以不发起对服务网关1536的API调用。
在一些示例中,安全主机租赁1504可以直接连接到服务租赁1519,服务租赁1519否则可以被隔离。安全主机子网1508可以通过LPG 1510与SSH子网1514通信,LPG 1510可以使得能够在否则隔离的系统上进行双向通信。将安全主机子网1508连接到SSH子网1514可以使安全主机子网1508访问服务租赁1519内的其它实体。
控制平面VCN 1516可以允许服务租赁1519的用户设置或以其它方式供给期望资源。在控制平面VCN 1516中供给的期望资源可以在数据平面VCN 1518中部署或以其它方式使用。在一些示例中,控制平面VCN 1516可以与数据平面VCN 1518隔离,并且控制平面VCN1516的数据平面镜像应用层1540可以经由VNIC 1542与数据平面VCN 1518的数据平面应用层1546通信,VNIC 1542可以包含在数据平面镜像应用层1540和数据平面应用层1546中。
在一些示例中,系统的用户或客户可以通过可以将请求传送到元数据管理服务1552的公共互联网1554来做出请求,例如创建、读取、更新或删除(CRUD)操作。元数据管理服务1552可以通过互联网网关1534将请求传送到控制平面VCN 1516。请求可以由包含在控制平面DMZ层1520中的(一个或多个)LB子网1522接收。(一个或多个)LB子网1522可以确定请求是有效的,并且响应于该确定,(一个或多个)LB子网1522可以将请求传输到包含在控制平面应用层1524中的(一个或多个)应用子网1526。如果请求被验证并且需要对公共互联网1554的调用,那么对公共互联网1554的调用可以被传输到可以对公共互联网1554进行调用的NAT网关1538。请求可能期望存储的存储器可以存储在(一个或多个)DB子网1530中。
在一些示例中,数据平面镜像应用层1540可以促进控制平面VCN 1516和数据平面VCN 1518之间的直接通信。例如,可能期望对包含在数据平面VCN 1518中的资源应用对配置的更改、更新或其它适当的修改。经由VNIC 1542,控制平面VCN 1516可以直接与包含在数据平面VCN 1518中的资源通信,并且从而可以执行对这些资源的配置的更改、更新或其它适当的修改。
在一些实施例中,控制平面VCN 1516和数据平面VCN 1518可以包含在服务租赁1519中。在这种情况下,系统的用户或客户可能不拥有或操作控制平面VCN 1516或数据平面VCN 1518。替代地,IaaS提供商可以拥有或操作控制平面VCN 1516和数据平面VCN 1518,这两种平面都可以包含在服务租赁1519中。该实施例可以使得能够隔离可能阻止用户或客户与其它用户或其它客户的资源进行交互的网络。此外,该实施例可以允许系统的用户或客户私自存储数据库,而无需依赖可能不具有期望的威胁防范级别的公共互联网1554以进行存储。
在其它实施例中,包含在控制平面VCN 1516中的(一个或多个)LB子网1522可以被配置为从服务网关1536接收信号。在这个实施例中,控制平面VCN 1516和数据平面VCN1518可以被配置为由IaaS提供商的客户调用而无需调用公共互联网1554。IaaS提供商的客户可能期望这个实施例,因为客户使用的(一个或多个)数据库可以由IaaS提供商控制并且可以存储在服务租赁1519上,服务租赁1519可能与公共互联网1554隔离。
图16是根据至少一个实施例的用于实现云基础设施即服务系统的另一个模式的框图。
图16是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图1600。服务运营商1602(例如,图15的服务运营商1502)可以通信地耦合到安全主机租赁1604(例如,图15的安全主机租赁1504),该安全主机租赁1604可以包括虚拟云网络(VCN)1606(例如,图15的VCN 1506)和安全主机子网1608(例如,图15的安全主机子网1508)。VCN 1606可以包括本地对等网关(LPG)1610(例如,图15的LPG 1510),该VCN 1606可以经由包含在安全壳(SSH)VCN 1612(例如,图15的SSH VCN 1512)中的LPG 1510通信地耦合到SSH VCN 1612。SSH VCN 1612可以包括SSH子网1614(例如,图15的SSH子网1514),并且SSH VCN 1612可以经由包含在控制平面VCN 1616(例如,图15的控制平面VCN 1516)中的LPG 1610通信地耦合到控制平面VCN 1616。控制平面VCN 1616可以包含在服务租赁1619(例如,图15的服务租赁1519)中,并且数据平面VCN 1618(例如,图15的数据平面VCN 1518)可以包含在可能由系统的用户或客户拥有或操作的客户租赁1621中。
控制平面VCN 1616可以包括控制平面DMZ层1620(例如,图15的控制平面DMZ层1520),其可以包括(一个或多个)LB子网1622(例如,图15的(一个或多个)LB子网1522)、可以包括(一个或多个)应用子网1626(例如,图15的(一个或多个)应用子网1526)的控制平面应用层1624(例如,图15的控制平面应用层1524)、可以包括(一个或多个)数据库(DB)子网1630(例如,类似于图15的(一个或多个)DB子网1530)的控制平面数据层1628(例如,图15的控制平面数据层1528)。包含在控制平面DMZ层1620中的(一个或多个)LB子网1622可以通信地耦合到包含在控制平面应用层1624中的(一个或多个)应用子网1626和可以包含在控制平面VCN 1616中的互联网网关1634(例如,图15的互联网网关1534),并且(一个或多个)应用子网1626可以通信地耦合到包含在控制平面数据层1628中的(一个或多个)DB子网1630以及服务网关1636(例如,图15的服务网关)和网络地址转换(NAT)网关1638(例如,图15的NAT网关1538)。控制平面VCN 1616可以包括服务网关1636和NAT网关1638。
控制平面VCN 1616可以包括可以包括(一个或多个)应用子网1626的数据平面镜像应用层1640(例如,图15的数据平面镜像应用层1540)。包含在数据平面镜像应用层1640中的(一个或多个)应用子网1626可以包括可以执行计算实例1644(例如,类似于图15的计算实例1544)的虚拟网络接口控制器(VNIC)1642(例如,VNIC 1542)。计算实例1644可以促进数据平面镜像应用层1640的(一个或多个)应用子网1626和可以包含在数据平面应用层1646(例如,图15的数据平面应用层1546)中的(一个或多个)应用子网1626之间的经由包含在数据平面镜像应用层1640中的VNIC 1642以及包含在数据平面应用层1646中的VNIC1642的通信。
包含在控制平面VCN 1616中的互联网网关1634可以通信地耦合到元数据管理服务1652(例如,图15的元数据管理服务1552),该元数据管理服务1652可以通信地耦合到公共互联网1654(例如,图15的公共互联网1554)。公共互联网1654可以通信地耦合到包含在控制平面VCN 1616中的NAT网关1638。包含在控制平面VCN 1616中的服务网关1636可以通信地耦合到云服务1656(例如,图15的云服务1556)。
在一些示例中,数据平面VCN 1618可以包含在客户租赁1621中。在这种情况下,IaaS提供商可以为每个客户提供控制平面VCN 1616,并且IaaS提供商可以为每个客户设置包含在服务租赁1619中的唯一计算实例1644。每个计算实例1644可以允许包含在服务租赁1619中的控制平面VCN 1616和包含在客户租赁1621中的数据平面VCN 1618之间的通信。计算实例1644可以允许在包含在服务租赁1619中的控制平面VCN 1616中供给的资源被部署或以其它方式用于包含在客户租赁1621中的数据平面VCN 1618中。
在其它示例中,IaaS提供商的客户可以具有存在于客户租赁1621中的数据库。在这个示例中,控制平面VCN 1616可以包括数据平面镜像应用层1640,该数据平面镜像应用层1640可以包括(一个或多个)应用子网1626。数据平面镜像应用层1640可以驻留在数据平面VCN 1618中,但数据平面镜像应用层1640可能不存在于数据平面VCN 1618中。换句话说,数据平面镜像应用层1640可以访问客户租赁1621,但是数据平面镜像应用层1640可能不存在于数据平面VCN 1618中或者由IaaS提供商的客户拥有或操作。数据平面镜像应用层1640可以被配置为对数据平面VCN 1618进行调用,但可以不被配置为对包含在控制平面VCN1616中的任何实体进行调用。客户可能期望在数据平面VCN 1618中部署或以其它方式使用在控制平面VCN 1616中供给的资源,并且数据平面镜像应用层1640可以促进客户的期望部署或资源的其它使用。
在一些实施例中,IaaS提供商的客户可以将过滤器应用到数据平面VCN 1618。在这个实施例中,客户可以确定数据平面VCN 1618可以访问什么,并且客户可以限制从数据平面VCN 1618对公共互联网1654的访问。IaaS提供商可能无法应用过滤器或以其它方式控制数据平面VCN 1618对任何外部网络或数据库的访问。客户将过滤器和控制应用到包含在客户租赁1621中的数据平面VCN 1618上可以帮助将数据平面VCN 1618与其它客户和公共互联网1654隔离开。
在一些实施例中,云服务1656可以由服务网关1636调用以访问公共互联网1654、控制平面VCN 1616或数据平面VCN 1618上可能不存在的服务。云服务1656与控制平面VCN1616或数据平面VCN 1618之间的连接可以不是实时的或连续的。云服务1656可以存在于由IaaS提供商拥有或操作的不同网络上。云服务1656可以被配置为接收来自服务网关1636的调用并且可以被配置为不接收来自公共互联网1654的调用。一些云服务1656可以与其它云服务1656隔离,并且控制平面VCN 1616可以与可能与控制平面VCN 1616不在同一区域的云服务1656隔离。例如,控制平面VCN 1616可能位于“区域1”,并且云服务“部署5”可能位于区域1和“区域2”。如果包含在位于区域1中的控制平面VCN 1616中的服务网关1636对部署5进行调用,那么该调用可以被传输到区域1中的部署5。在这个示例中,控制平面VCN 1616或区域1中的部署5可能不与区域2中的部署5通信地耦合或以其它方式通信。
图17是图示根据至少一个实施例的用于实现云基础设施即服务系统的另一个模式的框图。
图17是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图1700。服务运营商1702(例如,图15的服务运营商1502)可以通信地耦合到安全主机租赁1704(例如,图15的安全主机租赁1504),该安全主机租赁1704可以包括虚拟云网络(VCN)1706(例如,图15的VCN 1506)和安全主机子网1708(例如,图15的安全主机子网1508)。VCN 1706可以包括LPG 1710(例如,图15的LPG 1510),该VCN 1706可以经由包含在SSH VCN 1712(例如,图15的SSH VCN 1512)中的LPG 1710通信地耦合到SSH VCN 1712。SSH VCN 1712可以包括SSH子网1714(例如,图15的SSH子网1514),并且SSH VCN 1712可以经由包含在控制平面VCN 1716(例如,图15的控制平面VCN 1516)中的LPG 1710通信地耦合到控制平面VCN 1716并且经由包含在数据平面VCN 1718(例如,图15的数据平面1518)中的LPG 1710通信地耦合到数据平面VCN 1718。控制平面VCN 1716和数据平面VCN 1718可以包含在服务租赁1719(例如,图15的服务租赁1519)中。
控制平面VCN 1716可以包括可以包括(一个或多个)负载平衡器(LB)子网1722(例如,图15的(一个或多个)LB子网1522)的控制平面DMZ层1720(例如,图15的控制平面DMZ层1520)、可以包括(一个或多个)应用子网1726(例如,类似于图15的(一个或多个)应用子网1526)的控制平面应用层1724(例如,图15的控制平面应用层1524)、可以包括(一个或多个)DB子网1730的控制平面数据层1728(例如,图15的控制平面数据层1528)。包含在控制平面DMZ层1720中的(一个或多个)LB子网1722可以通信地耦合到包含在控制平面应用层1724中的(一个或多个)应用子网1726和可以包含在控制平面VCN 1716中的互联网网关1734(例如,图15的互联网网关1534),并且(一个或多个)应用子网1726可以通信地耦合到包含在控制平面数据层1728中的(一个或多个)DB子网1730以及服务网关1736(例如,图15的服务网关)和网络地址转换(NAT)网关1738(例如,图15的NAT网关1538)。控制平面VCN 1716可以包括服务网关1736和NAT网关1738。
数据平面VCN 1718可以包括数据平面应用层1746(例如,图15的数据平面应用层1546)、数据平面DMZ层1748(例如,图15的数据平面DMZ层1548)、以及数据平面数据层1750(例如,图15的数据平面数据层1550)。数据平面DMZ层1748可以包括可以通信地耦合到数据平面应用层1746的(一个或多个)可信应用子网1760和(一个或多个)不可信应用子网1762以及包含在数据平面VCN 1718中的互联网网关1734的(一个或多个)LB子网1722。
(一个或多个)可信应用子网1760可以通信地耦合到包含在数据平面VCN 1718中的服务网关1736、包含在数据平面VCN 1718中的NAT网关1738、以及包含在数据平面数据层1750中的(一个或多个)DB子网1730。(一个或多个)不可信应用子网1762可以通信地耦合到包含在数据平面VCN 1718中的服务网关1736和包含在数据平面数据层1750中的(一个或多个)DB子网1730。数据平面数据层1750可以包括可以通信地耦合到包含在数据平面VCN1718中的服务网关1736的(一个或多个)DB子网1730。
(一个或多个)不可信应用子网1762可以包括可以通信地耦合到租户虚拟机(VM)1766(1)-(N)的一个或多个主VNIC 1764(1)-(N)。每个租户VM 1766(1)-(N)可以通信地耦合到可以包含在相应容器出口VCN 1768(1)-(N)中的相应应用子网1767(1)-(N),该相应容器出口VCN 1768(1)-(N)可以包含在相应客户租赁1770(1)-(N)中。相应辅VNIC 1772(1)-(N)可以促进包含在数据平面VCN 1718中的(一个或多个)不可信应用子网1762与包含在容器出口VCN 1768(1)-(N)中的应用子网之间的通信。每个容器出口VCN 1768(1)-(N)可以包括NAT网关1738,该NAT网关1738可以通信地耦合到公共互联网1754(例如,图15的公共互联网1554)。
包含在控制平面VCN 1716中以及包含在数据平面VCN 1718中的互联网网关1734可以通信地耦合到元数据管理服务1752(例如,图15的元数据管理系统1552),该元数据管理服务1752可以通信地耦合到公共互联网1754。公共互联网1754可以通信地耦合到包含在控制平面VCN 1716中以及包含在数据平面VCN 1718中的NAT网关1738。包含在控制平面VCN1716中以及包含在数据平面VCN 1718中的服务网关1736可以通信地耦合到云服务1756。
在一些实施例中,数据平面VCN 1718可以与客户租赁1770集成。在一些情况下,诸如在执行代码时可能期望支持的情况下,这种集成对于IaaS提供商的客户可能是有用的或期望的。客户可能提供可能具有破坏性、可能与其它客户资源通信或可能以其它方式导致非期望效果的代码来运行。作为对此的响应,IaaS提供商可以确定是否运行由客户给予IaaS提供商的代码。
在一些示例中,IaaS提供商的客户可以向IaaS提供商授予临时网络访问,并请求附加到数据平面层应用1746的功能。运行该功能的代码可以在VM 1766(1)-(N)中执行,并且该代码可以不被配置为在数据平面VCN 1718上的其它任何地方运行。每个VM 1766(1)-(N)可以连接到一个客户租赁1770。包含在VM 1766(1)-(N)中的相应容器1771(1)-(N)可以被配置为运行代码。在这种情况下,可以存在双重隔离(例如,容器1771(1)-(N)运行代码,其中容器1771(1)-(N)可能至少包含在(一个或多个)不可信应用子网1762中所包含的VM1766(1)-(N)中),这可以帮助防止不正确的或以其它方式非期望的代码损坏IaaS提供商的网络或损坏不同客户的网络。容器1771(1)-(N)可以通信地耦合到客户租赁1770并且可以被配置为传输或接收来自客户租赁1770的数据。容器1771(1)-(N)可以不被配置为从数据平面VCN 1718中的任何其它实体传输或接收数据。在运行代码完成后,IaaS提供商可以终止或以其它方式处置容器1771(1)-(N)。
在一些实施例中,(一个或多个)可信应用子网1760可以运行可以由IaaS提供商拥有或操作的代码。在这个实施例中,(一个或多个)可信应用子网1760可以通信地耦合到(一个或多个)DB子网1730并且被配置为在(一个或多个)DB子网1730中执行CRUD操作。(一个或多个)不可信应用子网1762可以通信地耦合到(一个或多个)DB子网1730,但是在这个实施例中,(一个或多个)不可信应用子网可以被配置为在(一个或多个)DB子网1730中执行读取操作。可以包含在每个客户的VM 1766(1)-(N)中并且可以运行来自客户的代码的容器1771(1)-(N)可以不与(一个或多个)DB子网1730通信地耦合。
在其它实施例中,控制平面VCN 1716和数据平面VCN 1718可以不直接通信地耦合。在这个实施例中,控制平面VCN 1716和数据平面VCN 1718之间可能不存在直接通信。但是,通信可以通过至少一个方法而间接地发生。LPG 1710可以由IaaS提供商建立,其可以促进控制平面VCN 1716和数据平面VCN 1718之间的通信。在另一个示例中,控制平面VCN1716或数据平面VCN 1718可以经由服务网关1736对云服务1756进行调用。例如,从控制平面VCN 1716对云服务1756的调用可以包括对可以与数据平面VCN 1718通信的服务的请求。
图18是图示根据至少一个实施例的用于实现云基础设施即服务系统的另一个模式的框图。
图18是图示根据至少一个实施例的IaaS体系架构的另一个示例模式的框图1800。服务运营商1802(例如,图15的服务运营商1502)可以通信地耦合到安全主机租赁1804(例如,图15的安全主机租赁1504),该安全主机租赁1804可以包括虚拟云网络(VCN)1806(例如,图15的VCN 1506)和安全主机子网1808(例如,图15的安全主机子网1508)。VCN 1806可以包括LPG 1810(例如,图15的LPG 1510),该VCN 1806可以经由包含在SSH VCN 1812(例如,图15的SSH VCN 1512)中的LPG 1810通信地耦合到SSH VCN 1812。SSH VCN 1812可以包括SSH子网1814(例如,图15的SSH子网1514),并且SSH VCN 1812可以经由包含在控制平面VCN 1816(例如,图15的控制平面VCN 1516)中的LPG 1810通信地耦合到控制平面VCN 1816并且经由包含在数据平面VCN 1818(例如,图15的数据平面1518)中的LPG 1810通信地耦合到数据平面VCN 1818。控制平面VCN 1816和数据平面VCN 1818可以包含在服务租赁1819(例如,图15的服务租赁1519)中。
控制平面VCN 1816可以包括可以包括(一个或多个)LB子网1822(例如,图15的(一个或多个)LB子网1522)的控制平面DMZ层1820(例如,图15的控制平面DMZ层1520)、可以包括(一个或多个)应用子网1826(例如,图15的(一个或多个)应用子网1526)的控制平面应用层1824(例如,图15的控制平面应用层1524)、可以包括(一个或多个)DB子网1830(例如,图17的(一个或多个)DB子网1730)的控制平面数据层1828(例如,图15的控制平面数据层1528)。包含在控制平面DMZ层1820中的(一个或多个)LB子网1822可以通信地耦合到包含在控制平面应用层1824中的(一个或多个)应用子网1826和可以包含在控制平面VCN 1816中的互联网网关1834(例如,图15的互联网网关1534),并且(一个或多个)应用子网1826可以通信地耦合到包含在控制平面数据层1828中的(一个或多个)DB子网1830以及服务网关1836(例如,图15的服务网关)和网络地址转换(NAT)网关1838(例如,图15的NAT网关1538)。控制平面VCN 1816可以包括服务网关1836和NAT网关1838。
数据平面VCN 1818可以包括数据平面应用层1846(例如,图15的数据平面应用层1546)、数据平面DMZ层1848(例如,图15的数据平面DMZ层1548))、以及数据平面数据层1850(例如,图15的数据平面数据层1550)。数据平面DMZ层1848可以包括可以通信地耦合到数据平面应用层1846的(一个或多个)可信应用子网1860(例如,图17的(一个或多个)可信应用子网1760)和(一个或多个)不可信应用子网1862(例如,图17的(一个或多个)不可信应用子网1762)以及包含在数据平面VCN 1818中的互联网网关1834的(一个或多个)LB子网1822。(一个或多个)可信应用子网1860可以通信地耦合到包含在数据平面VCN 1818中的服务网关1836、包含在数据平面VCN 1818中的NAT网关1838以及包含在数据平面数据层1850中的(一个或多个)DB子网1830。(一个或多个)不可信应用子网1862可以通信地耦合到包含在数据平面VCN 1818中的服务网关1836和包含在数据平面数据层1850中的(一个或多个)DB子网1830。数据平面数据层1850可以包括可以通信地耦合到包含在数据平面VCN 1818中的服务网关1836的(一个或多个)DB子网1830。
(一个或多个)不可信应用子网1862可以包括可以通信地耦合到驻留在(一个或多个)不可信应用子网1862内的租户虚拟机(VM)1866(1)-(N)的主VNIC 1864(1)-(N)。每个租户VM 1866(1)-(N)可以运行相应容器1867(1)-(N)中的代码,并且可通信地耦合到可以包含在数据平面应用层1846中的应用子网1826,该数据平面应用层1846可以包含在容器出口VCN 1868中。相应辅VNIC 1872(1)-(N)可以促进包含在数据平面VCN 1818中的(一个或多个)不可信应用子网1862和包含在容器出口VCN 1868中的应用子网之间的通信。容器出口VCN可以包括可以通信地耦合到公共互联网1854(例如,图15的公共互联网1554)的NAT网关1838。
包含在控制平面VCN 1816中以及包含在数据平面VCN 1818中的互联网网关1834可以通信地耦合到元数据管理服务1852(例如,图15的元数据管理系统1552),该元数据管理服务1852可以通信地耦合到公共互联网1854。公共互联网1854可以通信地耦合到包含在控制平面VCN 1816中以及包含在数据平面VCN 1818中的NAT网关1838。包含在控制平面VCN1816中以及包含在数据平面VCN 1818中的服务网关1836可以通信地耦合到云服务1856。
在一些示例中,图18的框图1800的体系架构所示的模式可以被认为是图17的框图1700的体系架构所示的模式的例外,并且在IaaS提供商不能直接与客户通信(例如,断开连接的区域)的情况下,这种模式可能是IaaS提供商的客户所期望的。客户可以实时访问每个客户的包含在VM 1866(1)-(N)中的相应容器1867(1)-(N)。容器1867(1)-(N)可以被配置为对包含在数据平面应用层1846的(一个或多个)应用子网1826中的相应辅VNIC 1872(1)-(N)进行调用,该数据平面应用层1846可以包含在容器出口VCN 1868中。辅VNIC 1872(1)-(N)可以将调用传输到NAT网关1838,该NAT网关1838可以将调用传输到公共互联网1854。在这个示例中,可以由客户实时访问的容器1867(1)-(N)可以与控制平面VCN 1816隔离,并且可以与包含在数据平面VCN 1818中的其它实体隔离。容器1867(1)-(N)也可以与来自其它客户的资源隔离。
在其它示例中,客户可以使用容器1867(1)-(N)来调用云服务1856。在这个示例中,客户可以运行容器1867(1)-(N)中的从云服务1856请求服务的代码。容器1867(1)-(N)可以将该请求传输到辅VNIC 1872(1)-(N),该辅VNIC 1872(1)-(N)可以将请求传输到NAT网关,该NAT网关可以将请求传输到公共互联网1854。公共互联网1854可以经由互联网网关1834将请求传输到包含在控制平面VCN 1816中的(一个或多个)LB子网1822。响应于确定请求有效,(一个或多个)LB子网可以将请求传输到(一个或多个)应用子网1826,该(一个或多个)应用子网1826可以经由服务网关1836将请求传输到云服务1856。
应当认识到的是,各图中描绘的IaaS体系架构1500、1600、1700、1800可以具有除所描绘的组件之外的其它组件。另外,各图中所示的实施例仅仅是可以结合本公开的实施例的云基础设施系统的一些示例。在一些其它实施例中,IaaS系统可以具有比各图中所示更多或更少的组件、可以组合两个或更多个组件,或者可以具有不同的组件布置或配置。
在某些实施例中,本文描述的IaaS系统可以包括以自助服务、基于订阅、弹性可伸缩、可靠、高度可用和安全的方式交付给客户的应用套件、中间件和数据库服务产品。此类IaaS系统的示例是本受让方提供的Oracle云基础设施(OCI)。
图19是图示根据至少一个实施例的示例计算机系统的框图。
图19图示了其中可以实现本公开的各种实施例的示例计算机系统1900。系统1900可以用于实现上述任何计算机系统。如图所示,计算机系统1900包括经由总线子系统1902与多个外围子系统通信的处理单元1904。这些外围子系统可以包括处理加速单元1906、I/O子系统1908、存储子系统1918和通信子系统1924。存储子系统1918包括有形计算机可读存储介质1922和系统存储器1910。
总线子系统1902提供用于让计算机系统1900的各种组件和子系统按意图与彼此通信的机制。虽然总线子系统1902被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统1902可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围组件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1904控制计算机系统1900的操作。一个或多个处理器可以被包括在处理单元1904中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元1904可以被实现为一个或多个独立的处理单元1932和/或1934,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元1904也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种实施例中,处理单元1904可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1904中和/或存储子系统1918中。通过适当的编程,(一个或多个)处理器1904可以提供上述各种功能。计算机系统1900可以附加地包括处理加速单元1906,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统1908可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括例如运动感测和/或手势识别设备,诸如运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如/>360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为去往输入设备(例如,Google/>)的输入的Google/>眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,/>导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板、以及音频/视频设备,诸如扬声器、数码相机、数码摄录机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括例如医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括例如音频输入设备,诸如MIDI键盘、数字乐器等。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1900向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备、以及调制解调器。
计算机系统1900可以包括存储子系统1918,其提供用于存储提供本公开中描述的实施例的功能的软件和数据构造的有形非暂态计算机可读存储介质。软件可以包括程序、代码系统、指令、脚本等,当它们被处理单元1904的一个或多个核或处理器执行时,提供上述功能。存储子系统1918还可以提供用于存储根据本公开使用的数据的储存库。
如图19中的示例所描绘的,存储子系统1918可以包括各种组件,包括系统存储器1910、计算机可读存储介质1922和计算机可读存储介质读取器1920。系统存储器1910可以存储可由处理单元1904加载和执行的程序指令。系统存储器1910还可以存储在指令的执行期间使用的数据和/或在程序指令的执行期间生成的数据。各种不同类型的程序可以被加载到系统存储器1910(包括但不限于客户端应用、Web浏览器、中间层应用、关系数据库管理系统(RDBMS)、虚拟机、容器等)中。
系统存储器1910还可以存储操作系统1916。操作系统1916的示例可以包括各种版本的MicrosoftApple/>和/或Linux操作系统、各种可商业获得的/>或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、GoogleOS等)和/或移动操作系统(诸如iOS、/>Phone、/>OS、OS和/>OS操作系统)。在计算机系统1900执行一个或多个虚拟机的某些实施方式中,虚拟机连同它们的客人操作系统(GOS)可以被加载到系统存储器1910中并且由处理单元1904的一个或多个处理器或核执行。
取决于计算机系统1900的类型,系统存储器1910可以具有不同的配置。例如,系统存储器1910可以是易失性存储器(诸如随机存取存储器(RAM))和/或非易失性存储器(诸如只读存储器(ROM)、闪存等)。可以提供不同类型的RAM配置,包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。在一些实施方式中,系统存储器1910可以包括基本输入/输出系统(BIOS),其包含帮助诸如在启动期间在计算机系统1900内的元件之间传送信息的基本例程。
计算机可读存储介质1922可以表示远程、本地、固定和/或可移动存储设备加上用于临时和/或更永久地包含、存储供计算机系统1900使用的包括可由计算机系统1900的处理单元1904执行的指令的计算机可读信息的存储介质。
计算机可读存储介质1922可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于:以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除的介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁存储设备,或者其它有形的计算机可读介质。
举例来说,计算机可读存储介质1922可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1922可以包括但不限于:/>驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字视频带等。计算机可读存储介质1922也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如基于固态RAM、动态RAM、静态RAM、DRAM的SSD)、磁阻RAM(MRAM)SSD、以及使用基于DRAM的SSD和基于闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统1900提供计算机可读指令、数据结构、程序系统及其它数据的非易失性存储。
可由处理单元1904的一个或多个处理器或核执行的机器可读指令可以存储在非暂态计算机可读存储介质上。非暂态计算机可读存储介质可以包括物理有形存储器或存储设备,其包括易失性存储器存储设备和/或非易失性存储设备。非暂态计算机可读存储介质的示例包括磁存储介质(例如,盘或带)、光学存储介质(例如,DVD、CD)、各种类型的RAM、ROM或闪存、硬盘驱动器、软盘驱动器、可拆卸存储器驱动器(例如,USB驱动器)、或其它类型的存储设备。
通信子系统1924提供到其它计算机系统和网络的接口。通信子系统1924用作用于从其它系统接收数据和从计算机系统1900向其它系统传输数据的接口。例如,通信子系统1924可以使计算机系统1900能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统1924可以包括用于访问无线语音和/或数据网络的射频(RF)收发器组件(例如,使用蜂窝电话技术、诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术、WiFi(IEEE 802.11系列标准)、或其它移动通信技术、或其任何组合)、全球定位系统(GPS)接收器组件和/或其它组件。在一些实施例中,通信子系统1924可以提供有线网络连接(例如,以太网),作为无线接口的附加或者替代。
在一些实施例中,通信子系统1924也可以代表可以使用计算机系统1900的一个或多个用户接收结构化和/或非结构化的数据馈送1926、事件流1928、事件更新1930等形式的输入通信。
举例来说,通信子系统1924可以被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送1926,诸如馈送、/>更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1924也可以被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流1928和/或事件更新1930。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
通信子系统1924也可以被配置为向一个或多个数据库输出结构化和/或非结构化的数据馈送1926、事件流1928、事件更新1930等,该一个或多个数据库可以与耦合到计算机系统1900的一个或多个流式传输数据源计算机进行通信。
计算机系统1900可以是各种类型之一,包括手持便携式设备(例如,蜂窝电话、/>计算平板电脑、PDA)、可穿戴设备(例如,Google/>头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1900的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
虽然已经描述了本公开的具体实施例,但是各种修改、变更、替代构造和等效形式也包含在本公开的范围内。本公开的实施例不限于在某些特定数据处理环境内操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用特定系列的事务和步骤描述了本公开的实施例,但是本领域技术人员应该清楚本公开的范围不限于所描述系列的事务和步骤。上述实施例的各种特征和方面可以单独或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了本公开的实施例,但是应当认识到硬件和软件的其它组合也在本公开的范围内。本公开的实施例可以仅用硬件、或仅用软件、或使用它们的组合来实现。本文描述的各种处理可以以任何组合在相同的处理器或在不同的处理器上实现。因而,在组件或系统被描述为被配置为执行某些操作的情况下,可以通过例如设计电子电路来执行操作、通过对可编程电子电路(诸如微处理器)进行编程来执行操作、或通过其任何组合来完成这样的配置。处理可以使用多种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同的进程对可以使用不同的技术,或者同一进程对可以在不同时间使用不同的技术。
因而,说明书和附图被认为是说明性的而不是限制性的意义。但是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,显然可以对其进行添加、减少、删除和其它修改和改变。因此,虽然已经描述了具体的公开实施例,但这些并不旨在进行限制。各种修改和等效形式都在以下权利要求的范围内。
在描述所公开的实施例的上下文中(尤其在以下权利要求的上下文中)使用术语“一”和“一个”和“该”以及类似的指称应被解释为涵盖单数和复数两者,除非本文另有指示或与上下文明显矛盾。除非另有说明,否则术语“包括”、“具有”、“包含”和“含有”应被解释为开放式术语(即,意思是“包括但不限于”)。术语“连接”应被解释为部分或全部包含在内、附接到或连接在一起,即使中间存在一些东西。除非本文另有指示,否则本文中的值范围的描述仅旨在用作单独引用落入该范围内的每个单独值的简略方法,并且每个单独值被并入说明书中,就好像它在本文中单独描述一样。除非本文另有指示或另外与上下文明显矛盾,否则本文描述的所有方法都可以以任何合适的顺序执行。除非另有声明,否则本文提供的任何和全部示例或示例性语言(例如,“诸如”)的使用仅旨在更好地阐明本公开的实施例并且不对本公开的范围构成限制。说明书中的任何语言都不应被解释为指示任何未要求保护的元素对于本公开的实践是必不可少的。
除非另有明确说明,否则析取(disjunctive)语言(诸如短语“X、Y或Z中的至少一个”)旨在在上下文中被理解为用作一般地表示项目、术语等可以是X、Y或Z中的一者或者是它们的任何组合(例如,X、Y和/或Z)。因此,这种析取语言通常不旨在也不应暗示某些实施例需要X中的至少一个、Y中的至少一个或Z中的至少一个各自存在。
本文描述了本公开的优选实施例,包括本发明人已知用于实施本公开的最佳模式。这些优选实施例的变型对于本领域普通技术人员在阅读前述的描述后将变得显而易见。本发明人预期技术人员适当地采用这样的变型并且本发明人旨在以不同于本文具体描述的方式来实践本公开。因而,本公开包括在适用法律允许的情况下对所附权利要求中记载的主题的所有修改和等效形式。此外,除非本文另有指示或另外与上下文明显矛盾,否则本公开包括在其所有可能的变型中的上述元素的任何组合。
本文引用的所有参考文献(包括出版物、专利申请和专利)均以相同的程度通过引用并入本文,就好像指示每个参考文献单独且具体地通过引用并入并且在本文中全文阐述一样。
在前述的说明书中,本公开的各方面参考其具体实施例进行了描述,但本领域技术人员将认识到的是,本公开不限于此。上述公开的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的环境和应用之外的任何数量的环境和应用中被使用。因而,本说明书和附图应当被认为是说明性而不是限制性的。
Claims (19)
1.一种方法,包括:
由云服务的集成身份管理系统的令牌交换系统确定实体被授权访问第一身份系统,其中所述实体为应用;
由令牌交换系统生成用于所述实体访问第二身份系统的第一请求,其中第一请求包括与所述实体相关联的第一公钥和持有者令牌;
由令牌交换系统核实所述持有者令牌是有效的持有者令牌;
由令牌交换系统核实所述实体的角色是否为被授权访问第二身份系统的角色;
由令牌交换系统基于在第一请求中接收到的第一公钥和持有者令牌来生成第二令牌;以及
由令牌交换系统向所述实体发送第二令牌,其中第二令牌与第二身份系统相关联,并且第二令牌包括所述实体的第一公钥。
2.根据权利要求1所述的方法,还包括:
由令牌交换系统生成用于所述实体访问第二身份系统的第二请求,其中第二请求包括第二令牌,其中第二请求通过所述实体的私钥进行签名;
由令牌交换系统核实所述实体具有被授权访问第二身份系统的身份;以及
由令牌交换系统授权所述实体访问第二身份系统。
3.根据权利要求2所述的方法,其中核实所述实体具有被授权访问第二身份系统的身份包括:
由令牌交换系统核实所述实体是对第二请求进行签名的实体;以及
由令牌交换系统核实第二令牌被授权访问第二身份系统。
4.根据权利要求1所述的方法,其中第二令牌是拥有证明(PoP)令牌。
5.根据权利要求1所述的方法,其中授权所述实体访问第二身份系统包括向所述实体授予资源主体的特权。
6.根据权利要求1所述的方法,其中授权所述实体访问第二身份系统包括向所述实体授予服务主体的特权。
7.根据权利要求5所述的方法,其中所述资源主体被授权访问第二身份系统的资源。
8.根据权利要求4所述的方法,其中服务主体被授权访问第二身份系统的服务。
9.根据权利要求1所述的方法,其中所述实体被授权使用第二令牌访问第二身份系统的应用编程接口(API),而不需要在第二身份系统中录入实体凭证。
10.根据权利要求2所述的方法,其中基于所述实体用于第一身份系统的凭证来确定所述实体被授权访问第一身份系统。
11.根据权利要求1所述的方法,其中第一身份系统具有第一系统模型,并且其中第二身份系统具有第二系统模型,第二系统模型具有与第一系统模型不同的规范。
12.根据权利要求1所述的方法,其中所述实体是集成云服务应用。
13.根据权利要求12所述的方法,其中集成云服务应用是SaaS应用、PaaS应用或融合应用。
14.一种有形地实施在一个或多个非暂态机器可读介质中的计算机程序产品,包括被配置为使一个或多个数据处理器执行方法的指令,所述方法包括:
由云服务的集成身份管理系统的令牌交换系统确定实体被授权访问第一身份系统,其中所述实体为应用;
由令牌交换系统生成用于所述实体访问第二身份系统的第一请求,其中第一请求包括与所述实体相关联的第一公钥和持有者令牌;
由令牌交换系统核实所述持有者令牌是有效的持有者令牌;
由令牌交换系统核实所述实体的角色是否为被授权访问第二身份系统的角色;
由令牌交换系统基于在第一请求中接收到的第一公钥和持有者令牌来生成第二令牌;以及
由令牌交换系统向所述实体发送第二令牌,其中第二令牌与第二身份系统相关联,并且第二令牌包括所述实体的第一公钥。
15.根据权利要求14所述的计算机程序产品,还包括:
由令牌交换系统生成用于所述实体访问第二身份系统的第二请求,其中第二请求包括第二令牌,其中第二请求通过所述实体的私钥进行签名;
由令牌交换系统核实所述实体具有被授权访问第二身份系统的身份;以及
由令牌交换系统授权所述实体访问第二身份系统。
16.根据权利要求15所述的计算机程序产品,其中核实所述实体具有被授权访问第二身份系统的身份包括:
由令牌交换系统核实所述实体是对第二请求进行签名的实体;以及
由令牌交换系统核实第二令牌被授权访问第二身份系统。
17.一种系统,包括:
一个或多个数据处理器;以及
存储指令的一个或多个非暂态计算机可读介质,所述指令在由所述一个或多个数据处理器执行时,使所述一个或多个数据处理器执行方法,所述方法包括:
由云服务的集成身份管理系统的令牌交换系统确定实体被授权访问第一身份系统,其中所述实体为应用;
由令牌交换系统生成用于所述实体访问第二身份系统的第一请求,其中第一请求包括与所述实体相关联的第一公钥和持有者令牌;
由令牌交换系统核实所述持有者令牌是有效的持有者令牌;
由令牌交换系统核实所述实体的角色是否为被授权访问第二身份系统的角色;
由令牌交换系统基于在第一请求中接收到的第一公钥和持有者令牌来生成第二令牌;以及
由令牌交换系统向所述实体发送第二令牌,其中第二令牌与第二身份系统相关联,并且第二令牌包括所述实体的第一公钥。
18.根据权利要求17所述的系统,还包括:
由令牌交换系统生成用于所述实体访问第二身份系统的第二请求,其中第二请求包括第二令牌,其中第二请求通过所述实体的私钥进行签名;
由令牌交换系统核实所述实体具有被授权访问第二身份系统的身份;以及
由令牌交换系统授权所述实体访问第二身份系统。
19.根据权利要求18所述的系统,其中核实所述实体具有被授权访问第二身份系统的身份包括:
由令牌交换系统核实所述实体是对第二请求进行签名的实体;以及
由令牌交换系统核实第二令牌被授权访问第二身份系统。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/250,980 | 2021-09-30 | ||
US63/250,992 | 2021-09-30 | ||
US17/953,175 US20230109109A1 (en) | 2021-09-30 | 2022-09-26 | Applications as resource principals or service principals |
US17/953,175 | 2022-09-26 | ||
PCT/US2022/044894 WO2023055734A1 (en) | 2021-09-30 | 2022-09-27 | Applications as resource principals or service principals |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118077173A true CN118077173A (zh) | 2024-05-24 |
Family
ID=91106254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280066280.9A Pending CN118077173A (zh) | 2021-09-30 | 2022-09-27 | 应用作为资源主体或服务主体 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118077173A (zh) |
-
2022
- 2022-09-27 CN CN202280066280.9A patent/CN118077173A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6895431B2 (ja) | アクセス管理のためのパスワードレス認証 | |
JP6033990B2 (ja) | 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス | |
US11764961B2 (en) | Techniques for using signed nonces to secure cloud shells | |
US11757636B2 (en) | Access control for short-lived resource principals | |
JP2018533141A (ja) | エンドユーザによって起動されるアクセスサーバ真正性チェック | |
US11418343B2 (en) | Access control for long-lived resource principals | |
US11811679B2 (en) | Stacked identities for resource principals | |
CN113728603A (zh) | 经由不可提取的不对称密钥的浏览器登录会话 | |
CN115989660B (zh) | 云基础设施系统中的安全区策略强制执行 | |
CN116018580B (zh) | 用于跨云壳层的实例持久化数据的技术 | |
US20230224146A1 (en) | Quorum-based authorization | |
US20230109109A1 (en) | Applications as resource principals or service principals | |
CN118077173A (zh) | 应用作为资源主体或服务主体 | |
US20230113325A1 (en) | External identity provider as a domain resource | |
US20230132934A1 (en) | Techniques for dynamically assigning client credentials to an application | |
US20230222204A1 (en) | Authorization brokering | |
WO2023055734A1 (en) | Applications as resource principals or service principals | |
US20230097515A1 (en) | Combined authorization for entities within a domain | |
US20230137359A1 (en) | Multi-region login | |
US20230103886A1 (en) | Single sign-on between 2 independent states | |
US20230140149A1 (en) | Failover of domains | |
US20230370461A1 (en) | Intercloud service gateway | |
CN117751554A (zh) | 作为域资源的外部身份提供者 | |
CN118120181A (zh) | 单点注销 | |
CN118176487A (zh) | 归属区域切换 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |