CN112154639B - 在没有用户足迹的情况下的多因素认证 - Google Patents
在没有用户足迹的情况下的多因素认证 Download PDFInfo
- Publication number
- CN112154639B CN112154639B CN202080002876.3A CN202080002876A CN112154639B CN 112154639 B CN112154639 B CN 112154639B CN 202080002876 A CN202080002876 A CN 202080002876A CN 112154639 B CN112154639 B CN 112154639B
- Authority
- CN
- China
- Prior art keywords
- user
- service
- idcs
- transaction identifier
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3823—Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0838—Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/41—User authentication where a single sign-on provides access to a plurality of computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/385—Payment protocols; Details thereof using an alias or single-use codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/082—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication
Abstract
实施例在没有用户足迹的情况下实现多因素认证。可以从客户端应用接收包括消息传递标识符的应用编程接口调用。事务标识符可以发送到客户端应用并且被存储。使用共享秘密,可以生成临时密码,其中共享秘密可以与事务标识符相关联并且可以被存储。可以将临时密码发送到消息传递标识符。可以接收包括参考事务标识符和输入的第二应用编程接口调用,其中用户将输入提供给客户端应用。当参考事务标识符与存储的事务标识符匹配并且输入与预期密码匹配时,可以对用户进行认证,其中预期密码基于与匹配的存储的事务标识符相关联的存储的共享秘密。可以基于认证将成功指示符发送到客户端应用。
Description
技术领域
一个实施例一般涉及身份管理,尤其涉及云系统中的身份管理。
背景技术
一般而言,基于云的应用(例如,企业公共云应用、第三方云应用等等)的使用正在飞速发展,其中访问来自各种设备(例如,桌面和移动设备)以及各种用户(例如,员工、合作伙伴、客户等等)。基于云的应用的丰富多样性和可访问性已经导致身份管理和访问安全性成为中心问题。云环境中的典型安全问题是未经授权的访问、账户劫持、恶意的内部人员等等。因而,需要安全地访问基于云的应用或位于任何地方的应用,而不管应用被何种设备类型或何种用户类型访问。
发明内容
实施例在没有用户足迹(footprint)的情况下实现多因素认证。可以从客户端应用接收包含消息传递标识符的应用编程接口调用。在服务器处从客户端应用接收的第一应用编程接口调用可以包括客户端访问令牌和消息传递标识符。服务器可以将事务标识符发送到客户端应用,其中事务标识符由服务器存储。使用共享秘密,可以生成临时密码,其中共享秘密与事务标识符相关联并由服务器存储。服务器可以将包含临时密码的消息发送到消息传递标识符。在服务器处从客户端应用接收的第二应用编程接口调用可以包括参考事务标识符和输入,其中用户将输入提供给客户端应用。当参考事务标识符与存储在服务器处的事务标识符匹配并且输入与预期密码匹配时,用户可以被认证,其中预期密码基于与匹配的存储的事务标识符相关联的存储的共享秘密。可以基于认证来将成功指示符发送到客户端应用。
附图说明
图1-图5是提供基于云的身份管理的示例实施例的框图。
图6是提供实施例的系统视图的框图。
图6A是提供实施例的功能视图的框图。
图7是实现云门的实施例的框图。
图8图示了在一个实施例中实现多个租户的示例系统。
图9是实施例的网络视图的框图。
图10是一个实施例中的单点登录(“SSO”)功能的系统架构视图的框图。
图11是一个实施例中的SSO功能的消息序列流。
图12图示了一个实施例中的分布式数据网格的实例。
图13图示了用于在没有用户足迹的情况下实现多因素认证的系统。
图14图示了在没有用户足迹的情况下实现多因素认证的流程图。
具体实施方式
实施例在没有用户足迹的情况下实现多因素认证(“MFA”)。例如,实施例可以包括提供事务性MFA的MFA服务。在一些实施例中,可以为企业系统的用户提供事务性MFA。例如,企业系统可以包括身份存储库,其中存储用户通信标识符(例如,消息传递地址,诸如电子邮件地址或移动电话号码)。在一些情况下,诸如当用户尝试访问敏感或安全资源时,企业可以强制执行MFA。
实施例可以提供事务性MFA应用编程接口(“API”),其中安全应用可以调用这些API来完成认证。例如,与企业系统相关联的安全应用可以调用事务性MFA API来请求认证,其中调用可以包括企业系统内用户的通信标识符。事务性MFA服务然后可以基于请求生成事务标识符和临时密码,并且可以将临时密码发送到所提供的用户通信标识符(例如,电子邮件地址或移动电话号码)。在一些示例中,事务性MFA服务也可以将事务标识符发送到安全应用。实施例还存储事务标识符和用于在MFA服务处生成临时密码的共享秘密。然后,用户可以从用户的通信标识符中检索临时密码,并将其输入到与企业系统相关联的安全应用中。
在一些实施例中,安全应用然后可以进行另一个事务性MFA API调用,其包括输入的临时密码和事务标识符。基于存储的事务标识符和共享秘密,MFA服务可以将输入的临时通行码(passcode)和事务标识符与存储的值进行匹配,以认证用户可以访问所提供的通信地址。因此,可以为用户执行MFA,而无需将用户的通信标识符持久存储在MFA系统内(例如,企业身份存储库外部)。
实施例提供实现基于微服务的架构的身份云服务,并提供多租户身份和数据安全性管理以及对基于云的应用的安全访问。实施例支持对于混合云部署的安全访问(即,包括公共云和私有云的组合的云部署)。实施例保护云中和内部部署(on-premise)的应用和数据。实施例支持经由web、移动和应用编程接口(“API”)的多信道访问。实施例管理对于不同用户(诸如客户、合作伙伴和员工)的访问。实施例管理、控制和审计跨整个云以及内部部署的访问。实施例与新的和现有的应用和身份集成。实施例是水平可伸缩的。
一个实施例是在无状态中间层环境中实现多个微服务以提供基于云的多租户身份和访问管理服务的系统。在一个实施例中,每个被请求的身份管理服务被分解成实时任务和近实时任务。实时任务由中间层中的微服务处理,而近实时任务被卸载到消息队列。实施例实现由路由层和中间层消耗以强制实施用于访问微服务的安全模型的访问令牌。因而,实施例提供基于多租户、微服务架构的云规模的身份和访问管理(“IAM”)平台。
一个实施例提供了使得组织能够为其新业务计划迅速开发快速、可靠和安全的服务的身份云服务。在一个实施例中,身份云服务提供多个核心服务,每个核心服务解决许多企业面临的独特挑战。在一个实施例中,身份云服务在以下方面支持管理员,例如,初始登入(on-boarding)/导入用户、导入具有用户成员的组、创建/更新/禁用/启用/删除用户、向/从组中分配/取消分配用户、创建/更新/删除组、重置密码、管理策略、发送激活等等。身份云服务还在以下方面支持最终用户,例如,修改简档、设置主要/恢复电子邮件、核实电子邮件、解锁其账户、更改密码、忘记密码时恢复密码等等。
访问的统一安全性
一个实施例保护云环境中以及内部部署环境中的应用和数据。该实施例保护任何人从任何设备对任何应用的访问。由于两个环境之间的安全性不一致会导致较高的风险,因此该实施例提供跨两种环境的保护。例如,这种不一致会使销售人员即使在已经叛逃到竞争对手之后仍能继续访问其客户关系管理(“CRM”)账户。因而,实施例将在内部部署环境中提供的安全性控制扩展到云环境中。例如,如果一个人离开公司,那么实施例确保他们的账户在内部部署和云中都被禁用。
一般而言,用户可以通过许多不同的渠道(诸如web浏览器、台式机、移动电话、平板电脑、智能手表、其它可穿戴设备等等)来访问应用和/或数据。因而,一个实施例提供跨所有这些渠道的安全访问。例如,用户可以使用他们的移动电话完成他们在台式机上开始的事务。
一个实施例还管理对于各种用户(诸如客户、合作伙伴、员工等等)的访问。一般而言,应用和/或数据不仅可以由员工访问,而且可以由客户或第三方访问。虽然许多已知的系统在员工登入时采取安全措施,但是在向客户、第三方、合作伙伴等等给予访问时一般不采取相同级别的安全措施,从而导致由未妥善管理的各方造成的安全漏洞的可能。但是,实施例确保为每种类型的用户的访问而不仅仅是员工的访问提供足够的安全措施。
身份云服务
实施例提供了作为多租户、云规模的IAM平台的身份云服务(“IDCS”)。IDCS提供认证、授权、审计和联合。IDCS管理对公共云上以及内部部署系统上运行的自定义应用和服务的访问。在替代或附加的实施例中,IDCS还可以管理对公共云服务的访问。例如,可以使用IDCS在这样各种服务/应用/系统中提供单点登录(“SSO”)功能。
实施例基于用于设计、构建和递送云规模的软件服务的多租户、微服务架构。多租户是指让服务的一个物理实现安全地支持多个客户购买那个服务。服务是可以被不同客户端用于不同的目的的软件功能或软件功能集合(诸如检索指定的信息或执行一组操作),以及控制该软件功能或该软件功能集合的使用的策略(例如,基于请求服务的客户端的身份)。在一个实施例中,服务是使得能够访问一个或多个能力的机制,其中访问是使用规定的接口提供的并且与由服务描述指定的约束和策略一致地被实施(exercised)。
在一个实施例中,微服务是独立可部署的服务。在一个实施例中,术语微服务设想了一种软件架构设计模式,其中复杂应用由使用语言不可知的API彼此通信的小型独立进程组成。在一个实施例中,微服务是小的、高度解耦的服务,并且每个微服务可以专注于做一个小任务。在一个实施例中,微服务架构样式是将单个应用开发为一套小服务的做法,每个小服务在其自己的进程中运行并与轻量级机制(例如,HTTP资源API)通信。在一个实施例中,相对于执行全部或许多相同功能的单件式服务,微服务更容易更换。而且,每个微服务可以被更新而不会对其它微服务产生不利影响。相比之下,对单件式服务的一部分的更新会不期望地或无意地对单件服务的其它部分产生负面影响。在一个实施例中,微服务可以围绕其能力被有益地组织。在一个实施例中,微服务集合中的每一个微服务的启动时间远小于笼统执行那些微服务的所有服务的单个应用的启动时间。在一些实施例中,这种微服务中的每一个微服务的启动时间是大约一秒或更少,而这种单个应用的启动时间可以是大约一分钟、几分钟或更长。
在一个实施例中,微服务架构是指用于面向服务的架构(“SOA”)的专业化(即,系统内任务的分离)和实现做法,以构建灵活的、独立可部署的软件系统。微服务架构中的服务是经网络彼此通信以便履行目标的进程。在一个实施例中,这些服务使用技术不可知的协议。在一个实施例中,服务具有小粒度并使用轻量级协议。在一个实施例中,服务是独立可部署的。通过将系统的功能分配到不同的小型服务中,增强了系统的内聚性并降低了系统的耦合度。这使得更容易随时改变系统以及向系统添加功能和质量。它还允许个体服务的架构通过不断的重构而出现,从而减少了对大型前期设计的需求,并且允许及早和持续地发布软件。
在一个实施例中,在微服务架构中,应用作为服务的集合被开发,并且每个服务运行相应的进程并使用轻量级协议进行通信(例如,用于每个微服务的唯一API)。在微服务架构中,取决于要提供的服务,将软件分解成各个服务/能力可以以不同的粒度级别来执行。服务是运行时组件/进程。每个微服务是可以与其它模块/微服务交谈的自包含(self-contained)模块。每个微服务具有可以被其它微服务联系的未命名的通用端口。在一个实施例中,微服务的未命名的通用端口是微服务按照惯例暴露并允许同一服务中的任何其它模块/微服务与其交谈的标准通信信道(例如,作为常规的超文本传输协议(“HTTP”)端口)。微服务或任何其它自包含的功能模块可以统称为“服务”。
实施例提供多租户身份管理服务。实施例基于开放标准,以确保易于与各种应用集成,从而通过基于标准的服务来递送IAM能力。
实施例管理用户身份的生命周期,这需要确定和强制实施身份可以访问什么、谁可以被给予这种访问、谁可以管理这种访问等等。对于不一定在云中的应用,实施例在云中运行身份管理工作负载并且支持安全功能。由实施例提供的身份管理服务可以从云购买。例如,企业可以从云购买这种服务,以管理他们的员工访问他们的应用。
实施例提供系统安全性、大规模可伸缩性、最终用户可用性和应用互操作性。实施例解决了云的增长和客户对身份服务的使用。基于微服务的基础解决了水平可伸缩性需求,同时服务的仔细编排解决了功能需求。实现这两个目标需要(尽可能)分解业务逻辑以实现具有最终一致性的无状态性,而大多数不受实时处理影响的操作逻辑通过卸载到高度可伸缩的异步事件管理系统而转移到近实时,具有有保证的递送和处理。实施例从网络层到数据层是完全多租户的,以便实现成本效率和系统管理的容易性。
实施例基于行业标准(例如,OpenID Connect、OAuth2、安全声明标记语言2(“SAML2”)、用于跨域身份管理的系统(“SCIM”)、代表性状态转移(“REST”))等等)以便于与各种应用集成。一个实施例提供了云规模API平台并实现了用于弹性可伸缩性的水平可伸缩微服务。该实施例充分利用云原理并提供具有每租户数据分离的多租户架构。该实施例还提供了具有租户自助服务的每租户定制。该实施例经由API可用于与其它身份服务的按需集成,并提供持续的特征发布。
一个实施例提供互操作性并充分利用对云中和内部部署的身份管理(“IDM”)功能的投资。该实施例提供从内部部署轻量级目录访问协议(“LDAP”)数据到云数据的自动化身份同步,反之亦然。该实施例在云和企业之间提供SCIM身份总线,并且允许混合云部署的不同选项(例如,身份联合和/或同步、SSO代理、用户供应连接器等等)。
因而,一个实施例是在无状态中间层中实现多个微服务以提供基于云的多租户身份和访问管理服务的系统。在一个实施例中,每个被请求的身份管理服务被分解成实时任务和近实时任务。实时任务由中间层中的微服务处理,而近实时任务被卸载到消息队列。实施例实现由路由层消耗以强制实施用于访问微服务的安全模型的令牌。因而,实施例提供了基于多租户、微服务架构的云规模的IAM平台。
一般而言,已知的系统提供对由不同环境提供的应用(例如,企业云应用、合作伙伴云应用、第三方云应用和客户应用)的孤立(siloed)访问。这种孤立的访问可能需要多个密码、不同的密码策略、不同的账户供应和解除供应方案、全异的审计等等。但是,一个实施例实现了IDCS,以在这种应用上提供统一的IAM功能。图1是具有IDCS 118的示例实施例的框图100,其提供了用于对用户和应用进行登入的统一身份平台126。该实施例跨各种应用(诸如企业云应用102、合作伙伴云应用104、第三方云应用110和客户应用112)提供无缝的用户体验。应用102、104、110、112可以通过不同的渠道来访问,例如,由移动电话用户108经由移动电话106、由台式计算机用户116经由浏览器114等等。web浏览器(通常称为浏览器)是用于检索、呈现和遍历万维网上的信息资源的软件应用。web浏览器的示例是MozillaGoogle/>Microsoft Internet/>和Apple
IDCS 118提供用户的应用、(经由身份平台126)跨设备和应用的统一安全凭证以及(经由管理控制台122)统一的管理方式的统一视图124。IDCS服务可以通过调用IDCS API142来获得。这种服务可以包括例如登录/SSO服务128(例如,OpenID Connect)、联盟服务130(例如,SAML)、令牌服务132(例如,OAuth)、目录服务134(例如,SCIM)、供应服务136(例如,SCIM或任何经多协议的传输(“ATOM”))、事件服务138(例如,REST)以及授权服务140(例如,SCIM)。IDCS 118还可以提供与所提供的服务相关的报告和仪表盘120。
集成工具
一般而言,大型公司通常具有IAM系统以保护对其内部部署应用的访问。业务实践通常都是围绕内部IAM系统(诸如来自Oracle公司的“Oracle IAM套件”)成熟和标准化的。甚至中小企业通常也会通过简单目录解决方案(诸如Microsoft Active Directory(“AD”))来围绕管理用户访问设计其业务进程。为了启用内部部署集成,实施例提供了允许客户将其应用与IDCS集成的工具。
图2是在云环境208中具有IDCS 202的示例实施例的框图200,其提供与内部部署206的AD 204的集成。该实施例提供跨包括内部部署及第三方应用(例如,内部部署应用218和云208中诸如云服务210、云应用212、合作伙伴应用214和客户应用216的各种应用/服务)在内的所有应用的无缝用户体验。云应用212可以包括例如人力资本管理(“HCM”)、CRM、人才获取(例如,来自Oracle公司的Oracle Taleo云服务)、配置价格和报价(“CPQ”)等等。云服务210可以包括例如平台即服务(“PaaS”)、Java、数据库、商业智能(“BI”)、文档等等。
应用210、212、214、216、218可以通过不同的渠道被访问,例如,由移动电话用户220经由移动电话222、由台式计算机用户224经由浏览器226等等。该实施例提供经由云208和企业206之间的SCIM身份总线234从内部部署AD数据到云数据的自动化身份同步。该实施例还提供SAML总线228,用于将来自云208的认证联合到内部部署AD 204(例如,使用密码232)。
一般而言,身份总线是用于身份相关的服务的服务总线。服务总线为从一个系统到另一个系统传送消息提供平台。它是用于在受信任的系统之间交换信息的受控机制,例如,在面向服务的架构(“SOA”)中。身份总线是根据基于标准HTTP的机制(诸如web服务、web服务器代理等等)构建的逻辑总线。身份总线中的通信可以根据相应的协议(例如,SCIM、SAML、OpenID Connect等等)。例如,SAML总线是两个系统之间基于HTTP的连接,用于传送用于SAML服务的消息。类似地,SCIM总线用于根据SCIM协议传送SCIM消息。
图2的实施例实现身份(“ID”)桥接器230,其是可以与客户的AD 204一起下载并安装在内部部署206的小二进制文件(例如,1MB尺寸)。ID桥接器230监听来自客户选择的组织单位(“OU”)的用户和组(例如,用户组),并将那些用户同步到云208。在一个实施例中,用户的密码232不同步到云208。客户可以通过将IDCS用户的组映射到在IDCS 208中管理的云应用来管理用户的应用访问。每当用户的组成员资格在内部部署206被改变时,其对应的云应用访问自动改变。
例如,从工程转移到销售的员工可以几乎即时访问销售云并失去对开发者云的访问。当这种改变反映在内部部署AD 204中时,云应用访问改变是近实时完成的。类似地,对于离开公司的用户,对在IDCS 208中管理的云应用的访问被撤销。为了完全自动化,客户可以通过例如AD联合服务(“AD/FS”或实现SAML联合的某种其它机制)在内部部署AD 204和IDCS 208之间设置SSO,使得最终用户可以用单个公司密码332访问云应用210、212、214、216以及内部部署应用218。
图3是包括与图2中相同的组件202、206、208、210、212、214、216、218、220、222、224、226、228、234的示例实施例的框图300。但是,在图3的实施例中,IDCS 202提供与内部部署IDM 304(诸如Oracle IDM)的集成。Oracle IDM 304是Oracle公司提供IAM功能的软件套件。该实施例提供跨包括内部部署和第三方应用在内的所有应用的无缝用户体验。该实施例经由云202和企业206之间的SCIM身份总线234从内部部署IDM 304到IDCS 208供应用户身份。该实施例还提供SAML总线228(或OpenID Connect总线),用于将来自云208的认证联合到内部部署206。
在图3的实施例中,来自Oracle公司的Oracle身份管理器(“OIM”)连接器302和来自Oracle公司的Oracle访问管理器(“OAM”)联合模块306被实现为Oracle IDM 304的扩展模块。连接器是具有关于如何与系统交谈的物理意识的模块。OIM是被配置为管理用户身份(例如,基于用户应当和不应当访问的内容来管理不同系统中的用户账户)的应用。OAM是提供访问管理功能的安全应用,访问管理功能诸如Web SSO;身份上下文;认证和授权;策略管理;测试;记录;审计等等。OAM具有对SAML的内置支持。如果用户在IDCS 202中有账户,那么OIM连接器302和OAM联合306可以与Oracle IDM 304一起使用,以创建/删除那个账户并且管理来自那个账户的访问。
图4是包括与图2和图3中相同的组件202、206、208、210、212、214、216、218、220、222、224、226、234的示例实施例的框图400。但是,在图3的实施例中,IDCS 202提供将云身份扩展到内部部署应用218的功能。该实施例提供跨包括内部部署和第三方应用在内的所有应用的身份的无缝视图。在图4的实施例中,SCIM身份总线234用于使IDCS 202中的数据与称为“云高速缓存”402的内部部署LDAP数据同步。下面更详细地公开云高速缓存402。
一般而言,被配置为基于LDAP进行通信的应用需要LDAP连接。由于LDAP需要在本地网络上,因此这种应用不能通过URL建立LDAP连接(不像例如连接到Google的“www.google.com”)。在图4的实施例中,基于LDAP的应用218做出到云高速缓存402的连接,并且云高速缓存402建立到IDCS 202的连接并随后在其被请求时从IDCS 202拉出数据。IDCS 202与云高速缓存402之间的通信可以根据SCIM协议来实现。例如,云高速缓存402可以使用SCIM总线234来向IDCS 202发送SCIM请求并作为回报接收对应数据。
一般而言,完全实现应用包括构建消费者门户、在外部用户群体上运行营销活动、支持web和移动渠道以及处理用户认证、会话、用户简档、用户组、应用角色、密码策略、自助服务/注册、社会整合、身份联合等等。一般而言,应用开发人员不是身份/安全专家。因此,按需身份管理服务是期望的。
图5是包括与图2-图4中相同的组件202、220、222、224、226、234、402的示例实施例的框图500。但是,在图5的实施例中,IDCS 202按需提供安全身份管理。该实施例按需提供与IDCS 202的身份服务的集成(例如,基于诸如OpenID Connect、OAuth2、SAML2或SCIM的标准)。应用505(其可以是内部部署的、在公共云中或在私有云中)可以调用IDCS 202中的身份服务API 504。由IDCS 202提供的服务可以包括例如自助服务注册506、密码管理508、用户简档管理510、用户认证512、令牌管理514、社会整合516等等。
在这个实施例中,SCIM身份总线234用于使IDCS 202中的数据与内部部署的LDAP云高速缓存402中的数据同步。另外,在web服务器/代理(例如,NGINX、Apache等等)上运行的“云门(Cloud Gate)”502可以被应用505使用,以从IDCS 202获得用户web SSO和RESTAPI安全性。云门502是通过确保客户端应用提供有效访问令牌和/或用户成功认证来保护到多租户IDCS微服务的访问的组件,以便建立SSO会话。云门502在下面进一步公开。云门502(类似于webgate/webagent的强制实施点)使得在被支持的web服务器后面运行的应用能够参与SSO。
一个实施例提供SSO和云SSO功能。在许多组织中,用于内部部署的IAM和IDCS的一般入口点是SSO。云SSO使用户能够用单一用户登录来访问多个云资源。组织常常想要联合他们的内部部署的身份。因而,实施例利用开放标准来允许与现有SSO集成,以保持和扩展投资(例如,直到进行了到身份云服务方法的完全最终过渡)。
一个实施例可以提供以下功能:
·维护身份存储,以跟踪已被授权的用户账户、所有权、访问和许可,
·与工作流集成,以促进应用访问所需的各种审批(例如,管理、IT、人力资源、法律和合规性),
·为选择性设备(例如,移动和个人计算机(“PC”))提供SaaS用户账户,以访问包含许多私有和公共云资源的用户门户,
·促进周期性管理鉴证(attestation)审查,以符合法规和当前的工作职责。
除了这些功能之外,实施例还可以提供:
·云账户供应,以管理云应用中的账户生命周期,
·更健壮的多因素认证(“MFA”)集成,
·广泛的移动安全能力,以及
·动态认证选项。
一个实施例提供自适应的认证和MFA。一般而言,密码和挑战问题被认为是不够的,并且易于受诸如网络钓鱼等常见攻击。如今的大多数商业实体都在寻求某种形式的MFA以降低风险。但是,为了被成功部署,解决方案需要由最终用户轻松供应、维护和理解,因为最终用户通常会抵制干扰其数字体验的任何事情。公司正在寻找安全地结合自带设备(“BYOD”)、社交身份、远程用户、客户和承包商的方式,同时使MFA成为无缝用户访问体验中几乎透明的组件。在MFA部署中,诸如OAuth和OpenID Connect等行业标准对于确保现有多因素解决方案的集成和新型自适应认证技术的结合至关重要。因而,实施例将动态(或自适应)认证定义为在用户会话已经发起之后证明身份的可用信息(即,IP地址、位置、一天中的时间和生物测定)的评估。通过适当的标准(例如,开放认证(“OATH”)和快速身份在线(“FIDO”))集成和可扩展身份管理框架,实施例提供了可以在IT组织中被容易地采用、升级和集成的MFA解决方案,作为端到端安全IAM部署的一部分。在考虑MFA和自适应策略时,组织必须在内部部署和云资源上实现一致的策略,这在混合IDCS和内部部署IAM环境中需要系统之间的集成。
一个实施例提供用户供应和证实(certification)。一般而言,IAM解决方案的基本功能是启用和支持整个用户供应生命周期。这包括为用户提供适合于他们在组织内的身份和角色的应用访问、证实他们具有正确的持续访问许可(例如,当他们的角色或在其角色内使用的任务或应用随时间变化时),并且在他们离开组织时迅速地解除供应。这是重要的,不仅为了满足各种合规要求,而且还因为不适当的内部人员访问是安全漏洞和攻击的主要来源。身份云解决方案中的自动化用户供应能力不仅可以作为自身的重要组成部分,而且也可以作为混合IAM解决方案的一部分,借此,对于当公司缩小规模、扩大规模、合并或指望将现有系统与IaaS/PaaS/SaaS环境集成在一起时的过渡,IDCS供应可以提供比内部部署解决方案更大的灵活性。IDCS方法可以节省一次性升级的时间和精力,并确保必要的部门、分区和系统之间的适当集成。伸缩这项技术的需求常常在企业中悄然发现,并且跨企业立即递送可伸缩的IDCS能力的能力可以提供灵活性、成本和控制方面的好处。
一般而言,随着她/他的工作改变,员工随着年限被授予附加的特权(即,“特权蠕动(creep)”)。受到轻度监管的公司一般缺乏要求管理人员定期审计员工的特权(例如,访问网络、服务器、应用和数据)以中止或减慢导致超级特权账户的特权蠕动的“鉴证”处理。因而,一个实施例可以提供定期进行(至少一年一次)的鉴证处理。另外,随着并购,对这些工具和服务的需求将以指数形式增长,因为用户在SaaS系统上、内部部署、跨不同部门和/或正在被解除供应或重新分配。迁移到云可以进一步使这种情况复杂,并且处理可以迅速升级到超出现有的、常常是人工管理的证实方法。因而,一个实施例使这些功能自动化,并将复杂的分析应用于用户简档、访问历史记录、供应/解除供应和精细粒度赋权。
一个实施例提供身份分析。一般而言,能够将身份分析与IAM引擎集成以进行全面证实和鉴证对于确保组织的风险简档至关重要。正确部署的身份分析可以要求全面的内部策略强制实施。在积极主动的治理、风险和合规性(“GRC”)企业环境中,非常需要跨云和内部部署提供统一的单个管理视图的身份分析,并且可以帮助提供闭环处理以降低风险和满足合规性法规。因而,一个实施例提供客户端能够容易定制的身份分析,以适应管理者、主管人员和审计人员所需的用于报告和分析的具体行业需求和政府法规。
一个实施例提供自助服务和访问请求功能,以改进最终用户的体验和效率并降低服务台呼叫的成本。一般而言,虽然许多公司为员工部署了内部部署的自助访问请求,但是许多公司并没有在正式的公司范围之外充分扩展这些系统。除了员工使用,积极的数字客户体验增加商业信誉并最终有助于增加收入,并且公司不仅可以节省客户服务台呼叫和成本,而且还可以改进客户满意度。因而,一个实施例提供基于开放标准并且在必要时无缝地与现有访问控制软件和MFA机制集成的身份云服务环境。SaaS递送模式节省了以前投入于系统升级和维护的时间和精力,从而使专业IT人员能够专注于更核心的业务应用。
一个实施例提供特权账户管理(“PAM”)。一般而言,无论是使用SaaS、PaaS、IaaS还是内部部署应用,每个组织都容易受到具有超级用户访问凭证的内部人员(诸如系统管理员、主管人员、人事主管、承包商、系统集成商等等)对未经授权的特权账户的滥用的攻击。而且,外部威胁通常首先突破低级用户账户,以最终到达并利用企业系统内的特权用户访问控制。因而,一个实施例提供PAM,以防止这种未经授权的内部人员账户使用。PAM解决方案的主要组成部分是可以以各种方式递送的密码保险库(valult),例如作为安装在企业服务器上的软件、作为同样企业服务器上的虚拟设备、作为打包的硬件/软件设备,或者作为云服务的一部分。PAM功能类似于用于存储保存在信封中并定期改变的密码的物理保险箱,具有用于签入和签出的清单。一个实施例允许密码校验(password checkout)以及设置时间限制、强制周期性改变、自动跟踪校验以及报告所有活动。一个实施例提供直接连接到所请求的资源而无需用户甚至知道密码的方式。这个能力还为会话管理和附加功能铺平了道路。
一般而言,大多数云服务利用API和管理界面,其为渗透者提供了绕过安全性的机会。因而,一个实施例在PAM实践中考虑这些漏洞,因为向云的移动给PAM带来了新的挑战。现在许多中小型企业都在管理他们自己的SaaS系统(例如,Office 365),而更大型的企业越来越多地拥有各自的业务单元,这些业务单元分别启动(spinning up)自己的SaaS和IaaS服务。这些客户在身份云服务解决方案或其IaaS/PaaS提供者身上发现自己具有PAM能力,但在在处理这个责任方面经验不足。而且,在一些情况下,许多不同的地理位置分散的业务单元正试图将针对相同SaaS应用的管理责任隔离。因而,一个实施例允许客户在这些情况下将现有的PAM链接到身份云服务的整体身份框架中,并且朝着更大的安全性和与确保伸缩到如业务需求规定的云负载要求的合规性移动。
API平台
实施例提供了将能力的集合作为服务来暴露的API平台。API被聚合到微服务中,并且每个微服务暴露API中的一个或多个。即每个微服务可以暴露不同类型的API。在一个实施例中,每个微服务仅通过其API来进行通信。在一个实施例中,每个API可以是微服务。在一个实施例中,基于要由服务提供的目标能力(例如,OAuth、SAML、管理员等等)将多个API聚合到该服务中。因此,类似的API不作为分开的运行时进程来被暴露。API是使得可用于使服务消费者使用由IDCS提供的服务的东西。
一般而言,在IDCS的web环境中,URL包括三个部分:主机、微服务和资源(例如,主机/微服务/资源)。在一个实施例中,微服务的特征在于具有特定的URL前缀,例如“host/oauth2/v1”,其中实际的微服务是“oauth2/v1”,并且在“oauth2/v1”下有多个API,例如请求令牌的API:“host/oauth2/v1/令牌”、认证用户的API:“host/oauth2/v1/授权”等。即,URL实现微服务,并且URL的资源部分实现API。因而,在同一微服务下聚合了多个API。在一个实施例中,URL的主机部分识别租户(例如,https://tenant3.identity.oraclecloud.com:/oauth2/v1/token”)。在一些实施例中,可以实现其它安全协议,并且URL/API可以采用其它形式(例如,“host/oauth2/v1”、“host/oauth2/v1/token”、“host/oauth2/v1/authorize”、“https://tenant3.identity.oraclecloud.com:/oauth2/v1/token”等)。
配置利用必要的端点与外部服务集成的应用以及保持那种配置最新通常是一个挑战。为了应对这一挑战,实施例在众所周知的位置暴露公开的发现API,从那里应用可以发现关于它们为了消费IDCS API而需要的IDCS的信息。在一个实施例中,支持两个发现文档:IDCS配置(其包括IDCS、SAML、SCIM、OAuth和OpenID Connect配置,例如在<IDCS-URL>/.well-know/idcs-configuration)和行业标准OpenID连接配置(例如,<IDCS-URL>/.well-known/openid-configuration)。应用可以通过配置有单个IDCS URL来检索发现文档。
图6是在一个实施例中提供IDCS的系统视图600的框图。在图6中,各种应用/服务602中的任何一个可以对IDCS API进行HTTP调用,以使用IDCS服务。这种应用/服务602的示例是web应用、本机应用(例如,被构建为在具体操作系统上运行的应用,诸如Windows应用、iOS应用、Android应用等等)、web服务、客户应用、合作伙伴应用或者由公共云提供的任何服务(诸如软件即服务(“SaaS”)、PaaS和基础设施即服务(“IaaS”))。
在一个实施例中,需要IDCS服务的应用/服务602的HTTP请求经过Oracle公共云BIG-IP应用604和IDCS BIG-IP应用606(或类似技术,诸如负载均衡器,或者实现适当的安全规则以保护流量的被称为云负载均衡器即服务(“LBaaS”)的组件)。但是,请求可以以任何方式被接收。在IDCS BIG-IP应用606(或者如适用的,诸如负载均衡器或云LBaaS的类似技术),云供应引擎608执行租户和服务编排。在一个实施例中,云供应引擎608管理与正登入到云中的新租户或由客户购买的新服务实例相关联的内部安全工件(artifact)。
然后,HTTP请求由实现安全门(即,云门)的IDCS web路由层610接收,并提供服务路由以及微服务注册和发现612。取决于所请求的服务,HTTP请求被转发到IDCS中间层614中的IDCS微服务。IDCS微服务处理外部和内部HTTP请求。IDCS微服务实现平台服务和基础设施服务。IDCS平台服务是分开部署的基于Java的运行时服务,其实现了IDCS的业务。IDCS基础设施服务是分开部署的运行时服务,其为IDCS提供基础设施支持。IDCS还包括基础设施库,基础设施库是作为由IDCS服务和共享库使用的共享库打包的公共代码。基础设施服务和库提供平台服务用于实现其功能所需的支持能力。
平台服务
在一个实施例中,IDCS支持标准认证协议,因此IDCS微服务包括诸如OpenIDConnect、OAuth、SAML2、用于跨域身份管理的系统++(“SCIM++”)等等的平台服务。
OpenID Connect平台服务实现标准的OpenIDConnect登录/注销流。交互式的基于web的本机应用充分利用标准的基于浏览器的OpenID Connect流来请求用户认证,从而接收是传达用户经认证的身份的JavaScript对象标记(“JSON”)Web令牌(“JWT”)的标准身份令牌。在内部,运行时认证模型是无状态的,从而以主机HTTP cookie(包括JWT身份令牌)的形式维护用户的认证/会话状态。经由OpenID Connect协议发起的认证交互被委托给受信任的SSO服务,该服务为本地和联合登录实现用户登录/注销仪式。下面参考图10和图11公开这个功能的更多细节。在一个实施例中,根据例如OpenID Foundation标准来实现OpenIDConnect功能。
OAuth2平台服务提供令牌授权服务。它提供了丰富的API基础设施,用于创建和验证传达进行API调用的用户权限的访问令牌。它支持一系列有用的令牌授予类型,从而使客户能够安全地将客户端连接到他们的服务。它实现了标准的双参与方(2-legged)和三参与方(3-legged)OAuth2令牌授予类型。支持OpenID Connect(“OIDC”)使得兼容的应用(OIDC中继方(“RP”))与作为身份提供者(OIDC OpenID提供者(“OP”))的IDCS集成。类似地,将IDCS作为OIDC RP与社交OIDC OP(例如,Facebook、Google等等)集成使得客户能够允许对应用进行基于社交身份策略的访问。在一个实施例中,根据例如互联网工程任务组(“IETF”)请求评论(“RFC”)文案6749来实现OAuth功能。
SAML2平台服务提供身份联合服务。它使得客户能够基于SAML身份提供者(“IDP”)和SAML服务提供者(“SP”)关系模型与其合作伙伴建立联合协议。在一个实施例中,SAML2平台服务实现标准SAML2浏览器POST登录和注销简档。在一个实施例中,根据例如IETF、RFC7522来实现SAML功能。
SCIM是用于自动化身份域或信息技术(“IT”)系统之间的用户身份信息交换的开放标准,如由例如IETF,RFC 7642、7643、7644提供的。SCIM++平台服务提供身份管理服务,并使客户能够访问IDCS的IDP特征。管理服务暴露覆盖身份生命周期、密码管理、组管理等的无状态REST接口(即API)集合,从而将这些工件作为web可访问的资源暴露。
所有IDCS配置工件都是资源,并且管理服务的API允许管理IDCS资源(例如,用户、角色、密码策略、应用、SAML/OIDC身份提供者、SAML服务提供者、密钥、证实、通知模板等等)。管理服务充分利用和扩展SCIM标准,以便为所有IDCS资源上的创建、读取、更新、删除和查询(“CRUDQ”)操作实现基于模式的REST API。此外,用于管理和配置IDCS本身的所有IDCS内部资源都作为基于SCIM的REST API暴露。对身份存储库618的访问被隔离到SCIM++API。
在一个实施例中,例如,SCIM标准被实现,以管理如由SCIM规范定义的用户和组资源,而SCIM++被配置为使用由SCIM标准定义的语言支持附加的IDCS内部资源(例如,密码策略、角色、设置等等)。
管理服务在需要的地方利用标准SCIM 2.0核心模式和模式扩展来支持SCIM 2.0标准端点。此外,管理服务还支持若干个SCIM 2.0兼容端点扩展,以管理其它IDCS资源,例如用户、组、应用、设置等等。管理服务还支持远程过程调用样式(“RPC样式”)REST接口集合,其不执行CRUDQ操作,而是代替地提供功能服务,例如“UserPasswordGenerator”,“serPasswordValidator”等等。
IDCS管理API使用OAuth2协议进行认证和授权。IDCS支持常见的OAuth2场景,诸如用于web服务器、移动和JavaScript应用的场景。对IDCS API的访问受访问令牌的保护。为了访问IDCS管理API,应用需要通过IDCS管理控制台将应用注册为OAuth2客户端或IDCS应用(在这种情况下,OAuth2客户端是自动创建的)并被授予期望的IDCS管理角色。在进行IDCS管理API调用时,应用首先从IDCS OAuth2服务请求访问令牌。在获取令牌之后,应用通过将访问令牌包括在HTTP授权报头中来将访问令牌发送给IDCS API。应用可以直接使用IDCS管理REST API,或者使用IDCS Java客户端API库。
基础设施服务
IDCS基础设施服务支持IDCS平台服务的功能。这些运行时服务包括:事件处理服务(用于异步处理用户通知、应用预订和数据库审计);作业调度器服务(用于调度和执行作业,例如,立即执行或在配置的时间执行不需要用户干预的长时间运行的任务);高速缓存管理服务;存储管理服务(用于与公共云存储服务集成);报告服务(用于生成报告和仪表盘);SSO服务(用于管理内部用户认证和SSO);用户界面(“UI”)服务(用于托管不同类型的UI客户端);以及服务管理器服务。服务管理器是Oracle公共云和IDCS之间的内部接口。服务管理器管理由Oracle公共云发布的命令,其中命令需要由IDCS实现。例如,当客户在云商店购买东西之前先注册账户时,云会向IDCS发送要求创建租户的请求。在这种情况下,服务管理器实现了云预期IDCS支持的特定于云的操作。
IDCS微服务可以通过网络接口(即,HTTP请求)调用另一个IDCS微服务。
在一个实施例中,IDCS还可以提供允许使用数据库模式的模式服务(或持久性服务)。模式服务允许将管理数据库模式的责任委托给IDCS。因而,IDCS的用户不需要管理数据库,因为存在提供那个功能的IDCS服务。例如,用户可以使用数据库以每个租户为基础来持久化模式,并且当数据库中没有更多的空间时,模式服务将管理获得另一个数据库和增加空间的功能,使得用户不需要必须自己管理数据库。
IDCS还包括数据存储,这些数据存储是IDCS所需/生成的数据储存库,包括身份存储库618(存储用户、组等等)、全局数据库620(存储由IDCS使用以配置自身的配置数据)、操作模式622(提供每个租户的模式分离并且以每个客户为基础来存储客户数据)、审计模式624(存储审计数据)、高速缓存集群626(存储高速缓存的对象,以加速性能)等等。所有内部和外部IDCS消费者经基于标准的协议与身份服务进行集成。这使得能够使用域名系统(“DNS”)来解决将请求路由到何处,并且使得消费应用与对身份服务的内部实现的理解解耦。
实时任务和近实时任务
IDCS将所请求服务的任务分离成同步实时任务和异步近实时任务,其中实时任务仅包括用户继续前进所需的操作。在一个实施例中,实时任务是以最小延迟执行的任务,而近实时任务是在后台执行、无需用户等待它的任务。在一个实施例中,实时任务是基本上没有延迟或以可忽略的延迟被执行的任务,并且对于用户而言几乎是瞬间执行的。
实时任务执行具体身份服务的主要业务功能。例如,当请求登录服务时,应用发送消息以认证用户的凭证,并作为回报获得会话cookie。用户体验到的就是登录系统。但是,结合用户的登录可以执行若干其它任务,诸如验证用户是谁、审计、发送通知等等。因而,验证凭证是实时执行的任务,使得用户被给予开始会话的HTTP cookie,但是与通知(例如,发送电子邮件以通知创建账户)、审计(例如,跟踪/记录)等相关的任务是可以异步执行的近实时任务,这样用户可以以最少的延迟继续前进。
当接收到针对微服务的HTTP请求时,对应的实时任务由中间层中的微服务执行,而剩余的近实时任务(诸如不必实时处理的操作逻辑/事件)被卸载到消息队列628,消息队列628支持具有有保证的递送和处理的高度可伸缩的异步事件管理系统630。因而,某些行为被从前端推送到后端,以使IDCS能够通过减少响应时间中的等待时间来向客户提供高级服务。例如,登录处理可以包括凭证的验证、日志报告的提交、最后登录时间的更新等等,但是这些任务可以被卸载到消息队列并且近实时地而不是实时执行。
在一个示例中,系统可能需要注册或创建新的用户。系统调用IDCS SCIM API,以创建用户。最终的结果是,当用户在身份存储库618中被创建时,用户得到包括重置他们的密码的链接的通知电子邮件。当IDCS接收到注册或创建新用户的请求时,对应的微服务查看操作数据库(位于图6中的全局数据库620中)中的配置数据,并确定“创建用户”操作被标记有“创建用户”事件,这在配置数据中被识别为异步操作。微服务返回给客户端并且指示用户的创建成功完成,但是通知电子邮件的实际发送被推迟并被推送到后端。为了这样做,微服务使用消息传送API 616将消息在作为存储的队列628中排队。
为了从队列628中出队,作为基础设施微服务的消息传送微服务在后台连续地运行并且扫描队列628,以在队列628中查找事件。队列628中的事件由事件订户630处理,诸如审计、用户通知、应用订阅、数据分析等等。取决于由事件指示的任务,事件订户630可以与例如审计模式624、用户通知服务634、身份事件订户632等等通信。例如,当消息传送微服务在队列628中发现“创建用户”事件时,它执行对应的通知逻辑并向用户发送对应的电子邮件。
在一个实施例中,队列628将由微服务614公布的操作事件以及由管理IDCS资源的API 616公布的资源事件排队。
IDCS使用实时高速缓存结构来增强系统性能和用户体验。高速缓存本身也可以作为微服务提供。IDCS实现弹性高速缓存集群626,其随着IDCS所支持的客户数量的伸缩而增长。高速缓存集群626可以利用下面更详细公开的分布式数据网格来实现。在一个实施例中,只写资源绕过高速缓存。
在一个实施例中,IDCS运行时组件向公共云监视模块636公布健康和操作度量,公共云监视模块636从公共云(诸如来自Oracle公司的Oracle公共云)收集这种度量。
在一个实施例中,可以使用IDCS来创建用户。例如,客户端应用602可以发布创建用户的REST API调用。管理服务(614中的平台服务)将调用委托给用户管理器(614中的基础设施库/服务),该用户管理器进而在ID存储库618中的特定于租户的ID存储条带中创建用户。在“用户创建成功”时,用户管理器在审计模式624下审计对审计表的操作,并向消息队列628公布“identity.user.create.success”事件。身份订户632拾取事件并向新创建的用户发送“欢迎”电子邮件,包括新创建的登录细节信息。
在一个实施例中,可以使用IDCS向用户授予角色,从而导致用户供应动作。例如,客户端应用602可以发布授予用户角色的REST API调用。管理服务(614中的平台服务)将该调用委托给角色管理器(614中的基础设施库/服务),该角色管理器在ID存储库618中特定于租户的ID存储条带状授予用户角色。在“角色授予成功”时,角色管理器在审计模式624下审计对审计表的操作,并向消息队列628公布“identity.user.role.grant.success”事件。身份订户632拾取事件并评估供应授权策略。如果在角色被授予时存在活动的应用授予,那么供应订户执行某种验证、发起账户创建、调出目标系统、在目标系统上创建账户并将账户创建标记为成功。这些功能中的每一个可以导致对应事件的公布,诸如“prov.account.create.initiate”、“prov.target.create.initiate”、“prov.target.create.success”或“prov.account.create.success”。这些事件可以具有其自己的聚合过去N天内在目标系统中创建的账户数量的业务度量。
在一个实施例中,IDCS可以被用于用户登录。例如,客户端应用602可以使用所支持的认证流之一来请求用户的登录。IDCS对用户进行认证,并且在成功时在审计模式624下审计审计表中的操作。在失败时,IDCS在审计模式624下审计失败,并在消息队列628中公布“login.user.login.failure”事件。登录订户拾取事件、更新其用于用户的度量,并确定是否需要执行对用户的访问历史的附加分析。
因而,通过实现“控制反转”功能(例如,改变执行的流以在稍后时间安排操作的执行,使得操作在另一个系统的控制下),实施例使得附加的事件队列以及订户能够被动态添加,以便在部署到更广泛的用户基础之前针对小的用户样本测试新功能,或者处理针对具体的内部或外部客户的具体事件。
无状态功能
IDCS微服务是无状态的,这意味着微服务本身不维持状态。“状态”是指应用为了执行其功能而使用的数据。IDCS通过将所有状态持久化到IDCS数据层中特定于租户的储存库中来提供多租户功能。中间层(即,处理请求的代码)不具有与应用代码存储在相同位置的数据。因而,IDCS在水平和垂直方面都具有高度的可伸缩性。
垂直伸缩(或扩大/缩小)意味着向系统中的单个节点添加资源(或从中移除资源),通常涉及将CPU或存储器添加到单个计算机。垂直可伸缩性允许应用扩大到其硬件的极限。水平伸缩(或扩大/缩小)意味着向系统中添加更多节点(或从中移除节点),诸如将新计算机添加到分布式软件应用。水平可伸缩性允许应用几乎无限地伸缩,仅受网络提供的带宽量限制。
IDCS的中间层的无状态使得仅通过增加更多的CPU就可以水平伸缩,并且执行应用的工作的IDCS组件不需要具有运行特定应用的指定物理基础设施。IDCS中间层的无状态使得IDCS具有高度的可用性,即使在向大量客户/租户提供身份服务时也是如此。每次通过IDCS应用/服务都只关注CPU使用情况来执行应用事务本身,而不使用硬件来存储数据。伸缩是通过在应用运行时添加更多的片(slice)来完成的,而用于事务的数据存储在持久层上,在那里,在需要时可以添加更多的副本。
IDCS网络层、中间层和数据层可以各自独立和分开地进行伸缩。web层可以伸缩,以处理更多的HTTP请求。中间层可以伸缩,以支持更多的服务功能。数据层可以伸缩,以支持更多的租户。
IDCS功能视图
图6A是一个实施例中的IDCS的功能视图的示例框图600b。在框图600b中,IDCS功能堆栈包括服务、共享库和数据存储。服务包括IDCS平台服务640b、IDCS高级服务650b和IDCS基础设施服务662b。在一个实施例中,IDCS平台服务640b和IDCS高级服务650b是分开部署的、实现IDCS的业务的、基于Java的运行时服务,而IDCS基础设施服务662b是分开部署的、为IDCS提供基础设施支持的运行时服务。共享库包括IDCS基础设施库680b,该IDCS基础设施库680b是作为由IDCS服务和共享库使用的共享库被打包的公共代码。数据存储是IDCS所需/生成的数据储存库,包括身份存储698b、全局配置700b、消息存储702b、全局租户704b、个性化设置706b、资源708b、用户瞬态数据710b、系统瞬态数据712b、每租户模式(受管理的ExaData)714b、操作存储(未示出)、高速缓存存储(未示出)等等。
在一个实施例中,IDCS平台服务640b包括例如OpenID Connect服务642b、OAuth2服务644b、SAML2服务646b和SCIM++服务648b。在一个实施例中,IDCS高级服务包括例如云SSO和治理(governance)652b、企业治理654b、AuthN中介656b、联合中介658b和私人账户管理660b。
IDCS基础设施服务662b和IDCS基础设施库680b提供IDCS平台服务640b完成其工作所需的支持能力。在一个实施例中,IDCS基础设施服务662b包括作业调度器664b、UI666b、SSO 668b、报告670b、高速缓存672b、存储装置674b、服务管理器676b(公共云控制)和事件处理器678b(用户通知、应用订阅、审计、数据分析)。在一个实施例中,IDCS基础设施库680b包括数据管理器API 682b、事件API 684b、存储API 686b、认证API 688b、授权API690b、cookie API 692b、密钥API 694b和凭证API 696b。在一个实施例中,云计算服务602b(内部Nimbula)支持IDCS基础设施服务662b和IDCS基础设施库680b的功能。
在一个实施例中,IDCS为IDCS服务的消费者提供各种UI 602b,诸如客户最终用户UI 604b、客户管理UI 606b、DevOps管理UI 608b和登录UI 610b。在一个实施例中,IDCS允许应用(例如,客户应用614b、合作伙伴应用616b和云应用618b)的集成612b和固件集成620b。在一个实施例中,各种环境可以与IDCS集成,以支持其访问控制需求。这种集成可以由例如身份桥622b(提供AD集成、WNA和SCIM连接器)、Apache代理624b或MSFT代理626b提供。
在一个实施例中,内部和外部IDCS消费者经基于标准的协议628b(诸如OpenIDConnect 630b、OAuth2 632b、SAML2 634b、SCIM 636b和REST/HTTP 638b)与IDCS的身份服务集成。这使得能够使用域名系统(“DNS”)来解决将请求路由到何处,并且使得消费应用与对身份服务的内部实现的理解解耦。
图6A中的IDCS功能视图还包括公共云基础设施服务,其提供IDCS为了用户通知(云通知服务718b)、文件存储(云存储服务716b)以及用于DevOps的度量/警告(云监视服务(EM)722b和云度量服务(Graphite)720b)而依赖的常见功能。
云门
在一个实施例中,IDCS在web层中实现“云门”。云门是web服务器插件,它使web应用能够将用户SSO外部化到身份管理系统(例如,IDCS),类似于与企业IDM堆栈一起工作的WebGate或WebAgent技术。云门充当保护对IDCS API的访问的安全守卫。在一个实施例中,云门由web/代理服务器插件实现,其提供用于基于OAuth保护HTTP资源的web策略强制实施点(“PEP”)。
图7是实现云门702的实施例的框图700,云门702在web服务器712中运行并充当被配置为使用开放标准(例如,OAuth2,OpenID Connect等)与IDCS策略决定点(“PDP”)集成的策略强制实施点(“PEP”),同时保护对应用的REST API资源和web浏览器714的访问。在一些实施例中,PDP在OAuth和/或OpenID Connect微服务704上实现。例如,当用户浏览器706向IDCS发送用于用户710的登录的请求时,对应的IDCS PDP验证凭证,然后决定凭证是否充足(例如,是否请求诸如第二密码的进一步的凭证)。在图7的实施例中,云门702可以既充当PEP又充当PDP,因为它具有本地策略。
作为一次部署的一部分,云门702作为OAuth2客户端向IDCS注册,从而使其能够针对IDCS请求OIDC和OAuth2操作。其后,它根据请求匹配规则(如何匹配URL,例如,通配符、正则表达式等等)来维护关于应用的受保护和不受保护的资源的配置信息。可以部署云门702,以保护具有不同安全策略的不同应用,并且受保护的应用可以是多租户的。
在基于web浏览器的用户访问期间,云门702充当发起用户认证流的OIDC RP 718。如果用户710没有有效的本地用户会话,那么云门702将用户重定向到SSO微服务并且与SSO微服务一起参与OIDC“授权码”流。该流以递送JWT作为身份令牌结束。云门708验证JWT(例如,查看签名、到期、目的地/观众等等)并且为用户710发布cookie。它充当会话管理器716,以保护web浏览器访问受保护的资源以及发布、更新并验证cookie。它还提供了用于移除其cookie的注销URL。
云门户702还充当HTTP基本认证认证器,从而针对IDCS验证HTTP基本认证凭证。这种行为在无会话和基于会话(本地会话cookie)模式下均受支持。在这种情况下,不创建服务器侧的IDCS会话。
在REST API客户端708的编程访问期间,云门702可以充当应用的受保护的RESTAPI 714的OAuth2资源服务器/过滤器720。它检查具有授权报头和访问令牌的请求的存在。当客户端708(例如,移动、web应用、JavaScript等等)呈现访问令牌(由IDCS发布)以与受保护的REST API 714一起使用时,云门702在允许访问API(例如,签名、到期、观众等等)之前验证访问令牌。原始访问令牌未经修改就被传递。
一般而言,OAuth用于生成客户端身份传播令牌(例如,指示客户端是谁)或者用户身份传播令牌(例如,指示用户是谁)。在这些实施例中,云门中OAuth的实现基于JWT,JWT定义用于web令牌的格式,如由例如IETF、RFC 7519提供的。
当用户登录时,发布JWT。JWT由IDCS签署,并支持IDCS中的多租户功能。云门验证由IDCS发布的JWT,以允许IDCS中的多租户功能。因而,IDCS在物理结构中以及在支撑安全模型的逻辑业务流程中提供多租户。
租赁类型
IDCS指定三种类型的租赁:客户租赁、客户端租赁和用户租赁。客户或资源租赁指定IDCS的客户是谁(即,正在为谁执行工作)。客户端租赁指定哪个客户端应用在试图访问数据(即,哪个应用正在做工作)。用户租赁指定哪个用户在使用该应用来访问数据(即,由谁来执行工作)。例如,当专业服务公司为仓储俱乐部提供系统集成功能并使用IDCS为仓储俱乐部系统提供身份管理时,用户租赁与专业服务公司对应,客户端租赁是用于提供系统集成功能的应用,并且客户租赁是仓储俱乐部。
这三种租赁的分离和识别在基于云的服务中启用多租户功能。一般而言,对于安装在内部部署的物理机器上的内部部署软件,由于用户需要在机器上物理地登录,因此不需要指定三种不同的租赁。但是,在基于云的服务结构中,实施例使用令牌来确定谁在使用什么应用来访问哪些资源。这三种租赁由令牌编码,由云门强制实施并由中间层的业务服务使用。在一个实施例中,OAuth服务器生成令牌。在各种实施例中,令牌可以与除OAuth以外的任何安全协议结合使用。
解耦用户、客户端和资源租赁为IDCS提供的服务的用户提供了实质性的业务优势。例如,它允许服务提供者了解业务(例如,医疗保健业务)的需求和他们的身份管理问题,以购买IDCS提供的服务、开发消费IDCS的服务的自己的后端应用,并向目标业务提供后端应用。因而,服务提供者可以扩展IDCS的服务,以提供其期望的能力并将那里能力提供给某些目标业务。服务提供者不需要构建和运行软件来提供身份服务,而是可以代替地扩展和定制IDCS的服务以适应目标业务的需求。
一些已知的系统仅解决了客户租赁这单一的租赁。但是,这种系统在处理由用户(诸如客户用户、客户的合作伙伴、客户的客户端、客户端本身或者客户委托访问的客户端)的组合进行的访问时是不足够的。在实施例中定义和强制实施多种租赁促进对这各种用户的身份管理功能。
在一个实施例中,IDCS的一个实体不同时属于多个租户;它只属于一个租户,而“租赁”是工件存活的地方。一般而言,存在实现某些功能的多个组件,并且这些组件可以属于租户,或者它们也可以属于基础设施。当基础设施需要代表租户行事时,它代表租户与实体服务进行交互。在那种情况下,基础设施本身具有它自己的租赁,并且客户具有其自己的租赁。在提交请求时,请求中可以涉及多种租赁。
例如,属于“租户1”的客户端可以执行用于获得让“租户2”指定“租户3”中的用户的令牌的请求。作为另一个示例,存在于“租户1”中的用户可以需要在由“租户2”拥有的应用中执行动作。因此,用户需要去“租户2”的资源命名空间并为他们自己请求令牌。因而,授权的委托通过识别“谁”可以对“谁”做“什么”来完成。作为又一个示例,为第一组织(“租户1”)工作的第一用户可以允许为第二组织(“租户2”)工作的第二用户有权访问由第三组织(“租户3”)托管的文档。
在一个示例中,“租户1”中的客户端可以请求让“租户2”中的用户访问“租户3”中的应用的访问令牌。客户端可以通过转到“http://tenant3/oauth2/token”来调用对令牌的OAuth请求。客户端通过在请求中包括“客户端断言”将自己识别为存在于“租户1”中的客户端。客户端断言包括客户端ID(例如,“客户端1”)和客户端租赁“租户1”。作为“租户1”中的“客户端1”,该客户端有权调用对“租户3”上的令牌的请求,并且客户端想要用于“租户2”中的用户的令牌。因而,“用户断言”也作为同一个HTTP请求的一部分被传递。所生成的访问令牌将在作为应用租赁(“租户3”)的目标租赁的上下文中发布,并将包括用户租赁(“租户2”)。
在一个实施例中,在数据层中,每个租户被实现为分离的条带。从数据管理的角度来看,工件存在于租户中。从服务的角度来看,服务知道如何与不同的租户共事,而多租赁是服务的业务功能中的不同维度。图8图示了实施例中实现多租赁的示例系统800。系统800包括客户端802,客户端802请求由理解如何与数据库806中的数据共事的微服务804提供的服务。数据库包括多个租户808,并且每个租户包括对应租赁的工件。在一个实施例中,微服务804是通过https://tenant3/oauth2/token请求的OAuth微服务,用于获得令牌。在微服务804中使用来自数据库806的数据执行核实客户端802的请求是合法的OAuth微服务的功能,并且如果是合法的,那么使用来自不同租赁808的数据来构造令牌。因而,系统800是多租户的,因为,通过不仅支持进入每个租赁的服务,而且还支持代表不同租户行事的服务,它可以在跨租户环境中工作。
系统800是有利的,因为微服务804在物理上与数据库806中的数据解耦,并且通过在更靠近客户端的位置复制数据,微服务804可以作为本地服务被提供给客户端并且系统800可以管理服务的可用性并在全球提供。
在一个实施例中,微服务804是无状态的,这意味着运行微服务804的机器不维护将服务指向任何具体租户的任何标记。代替地,例如,可以在进入的请求的URL的主机部分上标记租赁。那种租赁指向数据库806中的租户808之一。当支持大量租户(例如,数百万租户)时,微服务804不能具有到数据库806的相同数量的连接,而是代替地使用连接池810,其在数据库用户的上下文中提供到数据库806的实际物理连接。
一般而言,通过向底层驱动器或提供者供给连接字符串来构建连接,连接字符串被用于寻址具体的数据库或服务器并提供实例和用户认证凭证(例如,“Server=sql_box;Database=Common;User ID=uid;Pwd=Password;”)。一旦连接已经建立,它就可以被打开和关闭,并且可以设置特性(例如,命令超时长度,或事务(如果存在的话))。连接字符串包括由数据提供者的数据访问接口规定的键-值对的集合。连接池是所维护的数据库连接的高速缓存,使得在将来需要对数据库的请求时可以重用连接。在连接池中,在创建连接之后,它被放在池中并被再次使用,使得不必建立新连接。例如,当微服务804和数据库808之间需要10个连接时,在连接池810中将存在10个打开的连接,全部在数据库用户的上下文中(例如,与具体的数据库用户相关联,例如,谁是那个连接的所有者、谁的凭证正在验证中、是数据库用户吗、是系统凭证吗等)。
连接池810中的连接是为可以访问任何东西的系统用户创建的。因此,为了正确处理由代表租户处理请求的微服务804进行的审计和特权,在与指派给具体租户的模式所有者相关联的“代理用户”812的上下文中执行数据库操作。这个模式所有者只能访问为其创建模式的租赁,并且租赁的价值是模式所有者的价值。当请求数据库806中的数据时,微服务804使用连接池810中的连接来提供那个数据。因而,多租赁是通过使无状态的、弹性的中间层服务在特定于租户的数据存储绑定的上下文中(例如,与其相关联)处理传入的请求来实现的,其中特定于租户的数据存储绑定是以每个请求为基础的在与资源租赁相关联的数据存储代理用户上下文中(例如,与其相关联)创建的数据连接之上建立的,并且数据库可以独立于服务进行伸缩。
以下提供了用于实现代理用户812的示例功能:
dbOperation=<prepare DB command to execute>
dbConnection=getDBConnectionFromPool()
dbConnection.setProxyUser(resourceTenant)
result=dbConnection.executeOperation(dbOperation)
在这个功能中,微服务804将在从连接池810拉出的连接上的“代理用户”设置设置为“租户”,并且在使用连接池810中的数据库连接的同时在租户的上下文中执行数据库操作。
当将每个表分条以针对不同租户配置同一个数据库中的不同列时,一个表可以包括混合在一起的所有租户的数据。相反,一个实施例提供租户驱动的数据层。该实施例不为不同租户将同一个数据库分条,而是代替地为每个租户提供不同的物理数据库。例如,多租赁可以通过使用可插拔数据库(例如,来自Oracle公司的Oracle数据库12c)来实现,其中每个租户被分配分离的分区。在数据层,资源管理器处理请求,然后请求用于该请求的数据源(与元数据分离)。该实施例依据请求执行到相应数据源/存储的运行时切换。通过将每个租户的数据与其他租户隔离,该实施例提供了改进的数据安全性。
在一个实施例中,各种令牌编码不同的租赁。URL令牌可以识别请求服务的应用的租赁。身份令牌可以编码将被认证的用户的身份。访问令牌可以识别多个租赁。例如,访问令牌可以对作为这种访问的目标的租赁(例如,应用租赁)以及被给予访问的用户的用户租赁进行编码。客户端断言令牌可以识别客户端ID和客户端租赁。用户断言令牌可以识别用户和用户租赁。
在一个实施例中,身份令牌至少包括指示用户租户名字(即,用户所在的地方)的声称/声明。与授权令牌相关的“声称”(如由安全领域的普通技术人员所使用的)是一个主题对自己或另一个主题做出的声明。例如,声明可以是关于名字、身份、密钥、组、特权或能力。声称由提供者发布,并且它们被给予一个或多个值,然后被打包在由发布者发布的安全令牌中,通常称为安全令牌服务(“STS”)。
在一个实施例中,访问令牌至少包括指示在对访问令牌做出请求时的资源租户名字(例如,客户)的声称/声明、指示用户租户名字的声称、指示做出请求的OAuth客户端的名字的声称以及指示客户端租户名字的声称。在一个实施例中,访问令牌可以根据以下JSON功能来实现:
在一个实施例中,客户端断言令牌包括至少指示客户端租户名字的声称以及指示做出请求的OAuth客户端的名字的声称。
本文描述的令牌和/或多种租赁可以在除IDCS以外的任何其它基于多租户云的服务中实现。例如,本文描述的令牌和/或多租赁可以在SaaS或企业资源规划(“ERP”)服务中实现。
图9是一个实施例中的IDCS的网络视图900的框图。图9图示了在一个实施例中在应用“区”904之间执行的网络交互。基于所需的保护级别和到各种其它系统(例如,SSL区、无SSL区等等)的连接的实现,将应用分成区。一些应用区提供需要从IDCS内部进行访问的服务,而一些应用区提供需要从IDCS外部进行访问的服务,并且一些应用区域是开放访问。因而,针对每种区强制实施相应的保护级别。
在图9的实施例中,服务到服务通信是使用HTTP请求来执行的。在一个实施例中,IDCS使用本文描述的访问令牌不仅提供服务,而且还保护对IDCS自身的访问以及在IDCS自身内的访问。在一个实施例中,IDCS微服务通过REST性的接口暴露并由本文所述的令牌保护。
在图9的实施例中,各种应用/服务902中的任何一个都可以对IDCS API进行HTTP调用,以使用IDCS服务。在一个实施例中,应用/服务902的HTTP请求经历Oracle公共云负载均衡外部虚拟IP地址(“VIP”)906(或其它类似技术)、公共云web路由层908以及IDCS负载均衡内部VIP应用910(或其它类似的技术),以被IDCS web路由层912接收。IDCS web路由层912接收来自IDCS的外部或内部的请求,并且跨IDCS平台服务层914或IDCS基础设施服务层916路由它们。IDCS平台服务层914包括从IDCS外部调用的IDCS微服务,诸如OpenIDConnect、OAuth、SAML、SCIM等等。IDCS基础设施服务层916包括支持从IDCS的内部调用的微服务,以支持其它IDCS微服务的功能。IDCS基础设施微服务的示例是UI、SSO、报告、高速缓存、作业调度器、服务管理器、用于制作密钥的功能等等。IDCS高速缓存层926支持用于IDCS平台服务层914和IDCS基础设施服务层916的高速缓存功能。
通过强制实施在外部访问IDCS和IDCS内部的安全性,IDCS的客户可以被提供对于他们运行的应用的杰出的安全合规性。
在图9的实施例中,除了基于结构化查询语言(“SQL”)通信的数据层918和基于LDAP通信的ID存储层920之外,OAuth协议也被用于保护IDCS内的IDCS组件(例如,微服务)之间的通信,并且用于保护来自IDCS外部的访问的相同令牌也被用于IDCS内的安全性。即,web路由层912使用相同的令牌和协议来处理它接收到的请求,而不管请求是从IDCS外部还是从IDCS内部接收到的。因而,IDCS为保护整个系统提供了单一一致的安全模型,由此允许卓越的安全合规性,因为在系统中实现的安全模型越少,系统越安全。
在IDCS云环境中,应用通过进行网络调用来进行通信。网络调用可以基于适用的网络协议,诸如HTTP、传输控制协议(“TCP”)、用户数据报协议(“UDP”)等等。例如,通过将应用“Y”作为HTTP统一资源定位符(“URL”)暴露,应用“X”可以基于HTTP与应用“Y”通信。在一个实施例中,“Y”是暴露各自与能力对应的多个资源的IDCS微服务。当“X”(例如,另一个IDCS微服务)需要调用“Y”时,它构造包括“Y”和需要被调用的资源/能力的URL(例如https://host/Y/resource),并进行对应的REST调用,该REST调用经过web路由层912并被定向到“Y”。
在一个实施例中,IDCS之外的调用者可以不需要知道“Y”在哪里,但是web路由层912需要知道应用“Y”在哪里运行。在一个实施例中,IDCS实现发现功能(由OAuth服务的API实现),以确定每个应用在哪里运行,因此不需要静态路由信息的可用性。
在一个实施例中,企业管理器(“EM”)922提供将内部部署的和基于云的管理扩展到IDCS的“单一虚拟管理平台(single pane of glass)”。在一个实施例中,是来自ChefSoftware公司的配置管理工具的“Chef”服务器924为各种IDCS层提供配置管理功能。在一个实施例中,服务部署基础设施和/或持久性存储模块928可以将OAuth2 HTTP消息发送到IDCS web路由层912,以进行租户生命周期管理操作、公共云生命周期管理操作或其它操作。在一个实施例中,IDCS基础设施服务层916可以将ID/密码HTTP消息发送到公共云通知服务930或公共云存储服务932。
云访问控制–SSO
一个实施例支持用于实现云规模的SSO服务的轻量级云标准。轻量级云标准的示例是HTTP、REST以及通过浏览器提供访问的任何标准(因为web浏览器是轻量级的)。相反,SOAP是重量级云标准的示例,其需要更多的管理、配置和工具来构建客户端。该实施例对于应用使用OpenID Connect语义来针对IDCS请求用户认证。该实施例使用轻量级的基于HTTPcookie的用户会话跟踪来在IDCS处跟踪用户的活动会话,而无需有状态的服务器端会话支持。该实施例对于应用使用基于JWT的身份令牌,以在将经认证的身份映射回其自己的本地会话时使用。该实施例支持与联合的身份管理系统的集成,并且暴露用于企业部署的SAMLIDP支持,以针对IDCS请求用户认证。
图10是一个实施例中的IDCS中的SSO功能的系统架构视图的框图1000。该实施例使得客户端应用能够充分利用基于标准的web协议来发起用户认证流。需要将SSO与云系统集成的应用可以位于企业数据中心中、远程合作伙伴数据中心中,或者甚至由客户内部部署操作。在一个实施例中,不同的IDCS平台服务实现SSO的业务,诸如OpenID Connect,用于处理来自所连接的本机应用(即,利用OpenID Connect与IDCS集成的应用)的登录/注销请求;SAML IDP服务,用于处理来自所连接的应用的基于浏览器的登录/注销请求;SAML SP服务,用于编排针对外部SAML IDP的用户认证;以及内部IDCS SSO服务,用于编排包括本地或联合登录流的最终用户登录仪式以及用于管理IDCS主机会话cookie。一般而言,HTTP可以带表单或不带表单工作。当它带表单工作时,表单就会在浏览器中被看到。当它不带表单工作时,它作为客户端到服务器的通信。OpenID Connect和SAML都需要能够呈现表单,这可以通过存在浏览器来实现,或者通过充当浏览器起作用的应用虚拟执行。在一个实施例中,通过IDCS实现用户认证/SSO的应用客户端需要作为OAuth2客户端在IDCS中注册,并且需要获得客户端标识符和凭证(例如,ID/密码、ID/证书等等)。
图10的示例实施例包括共同提供登录能力的三个组件/微服务,包括两个平台微服务:OAuth2 1004和SAML2 1006,以及一个基础设施微服务:SSO 1008。在图10的实施例中,IDCS提供“身份元系统”,其中在不同类型的应用(诸如需要三参与方OAuth流并充当OpenID Connect中继方(“RP”,将其用户认证功能外包给IDP的应用)的基于浏览器的web或本机应用1010、需要双参与方OAuth流并充当OpenID Connect RP的本机应用1011以及充当SAML SP的web应用1012)上提供SSO服务1008。
一般而言,身份元系统是用于数字身份的可互操作架构,从而允许基于多种底层技术、实现和提供者来采用数字身份的集合。LDAP、SAML和OAuth是提供身份能力并且可以是用于构建应用的基础的不同安全标准的示例,并且身份元系统可以被配置为在这种应用之上提供统一的安全系统。LDAP安全模型指定用于处理身份的具体机制,并严格保护系统的所有次通过。开发SAML,以允许一组应用安全地与属于不同安全域中的不同组织的另一组应用交换信息。由于这两个应用之间没有信任,因此开发了SAML,以允许一个应用对另一个不属于同一组织的应用进行认证。OAuth提供了OpenIDConnect,它是用于执行基于web的认证的轻量级协议。
在图10的实施例中,当OpenID应用1010连接到IDCS中的OpenID服务器时,其“通道”请求SSO服务。类似地,当SAML应用1012连接到IDCS中的SAML服务器时,其“通道”也请求SSO服务。在IDCS中,相应的微服务(例如,OpenID微服务1004和SAML微服务1006)将处理每个应用,并且这些微服务从SSO微服务1008请求SSO能力。通过针对每个协议添加微服务,然后对于SSO能力使用SSO微服务1008,可以扩展这个架构,以支持任意数量的其它安全协议。SSO微服务1008发布会话(即提供SSO cookie 1014)并且是架构中具有发布会话的权限的唯一系统。IDCS会话通过浏览器1002使用SSO cookie 1014来实现。浏览器1002还使用本地会话cookie 1016来管理其本地会话。
在一个实施例中,例如,在浏览器内,用户可以使用基于SAML的第一应用并且登录,并且随后使用由诸如OAuth之类的不同协议构建的第二应用。在同一浏览器内的第二应用上向用户提供SSO。因而,浏览器是状态或用户代理并且维护cookie。
在一个实施例中,SSO微服务1008提供登录仪式1018、ID/密码恢复1020、首次登录流1022、认证管理器1024、HTTP cookie管理器1026以及事件管理器1028。登录仪式1018实现基于客户设置和/或应用上下文的SSO功能,并且可以根据本地表单(即,基本Auth)、外部SAML IDP、外部OIDC IDP等等进行配置。使用ID/密码恢复1020来恢复用户的ID和/或密码。当用户第一次登录时(即,SSO会话尚不存在时),实现首次登录流1022。认证管理器1024在成功认证时发布认证令牌。HTTP cookie管理器1026将认证令牌保存在SSO cookie中。事件管理器1028公布与SSO功能相关的事件。
在一个实施例中,OAuth微服务1004和SSO微服务1008之间的交互是基于浏览器重定向,使得SSO微服务1008使用HTML表单挑战用户、验证凭证并发布会话cookie。
在一个实施例中,例如,OAuth微服务1004可以从浏览器1002接收授权请求,以根据三参与方OAuth流认证应用的用户。OAuth微服务1004然后充当OIDC提供者1030、将浏览器1002重定向到SSO微服务1008,并沿着应用上下文传递。取决于用户是否具有有效的SSO会话,SSO微服务1008验证现有会话或者执行登录仪式。在成功认证或验证后,SSO微服务1008将认证上下文返回到OAuth微服务1004。然后OAuth微服务1004用授权(“AZ”)代码将浏览器1002重定向到回调URL。浏览器1002将AZ代码发送到OAuth微服务1004,以请求所需的令牌1032。浏览器1002还在HTTP授权报头中包括其客户端凭证(当在IDCS中注册为OAuth2客户端时获得的)。作为回报,OAuth微服务1004向浏览器1002提供所需的令牌1032。在一个实施例中,提供给浏览器1002的令牌1032包括由IDCS OAuth2服务器签署的JW身份和访问令牌。这个功能的进一步细节在下面参考图11公开。
在一个实施例中,例如,OAuth微服务1004可以从本机应用1011接收授权请求,以根据双参与方OAuth流来认证用户。在这种情况下,OAuth微服务1004中的认证管理器1034执行对应的认证(例如,基于从客户端1011接收到的ID/密码),并且令牌管理器1036在成功认证后发布对应的访问令牌。
在一个实施例中,例如,SAML微服务1006可以从浏览器接收SSO POST请求,以认证充当SAML SP的web应用1012的用户。然后,SAML微服务1006充当SAML IDP 1038,将浏览器1002重定向到SSO微服务1008,并沿着应用上下文传递。取决于用户是否具有有效的SSO会话,SSO微服务1008验证现有会话或者执行登录仪式。在成功认证或验证后,SSO微服务1008将认证上下文返回给SAML微服务1006。然后SAML微服务用所需的令牌重定向到SP。
在一个实施例中,例如,SAML微服务1006可以充当SAML SP 1040并前往远程SAMLIDP 1042(例如,活动目录联合服务(“ADFS”))。一个实施例实现标准SAML/AD流。在一个实施例中,SAML微服务1006和SSO微服务1008之间的交互是基于浏览器重定向,使得SSO微服务1008使用HTML表单挑战用户、验证凭证并发布会话cookie。
在一个实施例中,通过防火墙1044执行IDCS内的组件(例如,1004、1006、1008)与IDCS外的组件(例如,1002、1011、1042)之间的交互。
登录/注销流
图11是在一个实施例中由IDCS提供的SSO功能的消息序列流1100。当用户使用浏览器1102访问客户端1106(例如,基于浏览器的应用或移动/本机应用)时,云门1104充当应用强制实施点并执行在本地策略文本文件中定义的策略。如果云门1104检测到用户没有本地应用会话,那么需要对用户进行认证。为了这样做,云门1104将浏览器1102重定向到OAuth2微服务1110,以发起针对OAuth2微服务1110的OpenID Connect登录流(范围=“openid简档”的三参与方AZ授予流)。
浏览器1102的请求遍历IDCS路由层web服务1108和云门1104并到达OAuth2微服务1110。OAuth2微服务1110构造应用上下文(即,描述应用的元数据,例如,连接应用的身份、客户端ID、配置,应用可以做什么等等),并将浏览器1102重定向到SSO微服务1112以便登录。
如果用户具有有效的SSO会话,那么SSO微服务1112验证现有会话而不开始登录仪式。如果用户不具有有效的SSO会话(即,不存在会话cookie),那么SSO微服务1112根据客户的登录偏好(例如,显示有品牌的登录页面)来发起用户登录仪式。为了这样做,SSO微服务1112将浏览器1102重定向到以JavaScript实现的登录应用服务1114。登录应用服务1114在浏览器1102中提供登录页面。浏览器1102将REST POST发送到包括登录凭证的SSO微服务1112。SSO微服务1112生成访问令牌并将其发送到REST POST中的云门1104。云门1104将认证信息发送到管理SCIM微服务1116,以验证用户的密码。管理SCIM微服务1116确定成功的认证,并向SSO微服务1112发送对应的消息。
在一个实施例中,在登录仪式期间,登录页面不显示同意页面,因为“登录”操作不需要进一步的同意。相反,在登录页面上声明隐私政策,以通知用户关于向应用暴露的某些简档属性。在登录仪式期间,SSO微服务1112尊重客户的IDP偏好,并且如果被配置,那么重定向到IDP,以针对经配置的IDP进行认证。
在成功认证或验证后,SSO微服务1112利用包含用户的认证令牌的新创建/更新的SSO主机HTTP cookie(例如,在由“HOSTURL”指示的主机的上下文中创建的cookie)将浏览器1102重定向回到OAuth2微服务1110。OAuth2微服务1110将AZ代码(例如,OAuth概念)返回给浏览器1102并重定向到云门1104。浏览器1102将AZ代码发送到云门1104,并且云门1104将REST POST发送到OAuth2微服务1110,以请求访问令牌和身份令牌。这两个令牌都被限定到OAuth微服务1110(由观众令牌声称来指示)。云门1104从OAuth2微服务1110接收令牌。
云门1104使用身份令牌将用户的经认证的身份映射到其内部账户表示,并且它可以将这个映射保存在其自己的HTTP cookie中。然后,云门1104将浏览器1102重定向到客户端1106。然后浏览器1102到达客户端1106,并从客户端1106接收对应的响应。从这个时候开始,浏览器1102可以无缝地访问应用(即,客户端1106),只要该应用的本地cookie是有效的就可以。一旦本地cookie失效,认证过程就重复。
云门1104还使用在请求中接收的访问令牌来从OAuth2微服务1110或SCIM微服务获得“用户信息”(“user info”)。访问令牌足以访问用于“profile(简档)”作用域允许的属性的“userinfo”资源。经由SCIM微服务访问“/me”资源也是足够的。在一个实施例中,默认情况下,接收到的访问令牌仅适用于在“profile”范围下所允许的用户简档属性。访问其它简档属性是基于由云门1104发布的AZ授予登录请求中提交的附加(可选)范围来授权的。
当用户访问另一个OAuth2集成的连接应用时,重复相同的处理。
在一个实施例中,SSO集成架构使用相似的OpenID Connect用户认证流来进行基于浏览器的用户注销。在一个实施例中,具有现有应用会话的用户访问云门1104,以发起注销。可替代地地,用户可能已经在IDCS侧发起了注销。云门1104终止特定于该应用的用户会话,并且发起针对OAuth2微服务1110的OAuth2 OpenID提供者(“OP”)注销请求。OAuth2微服务1110重定向到杀死用户的主机SSO cookie的SSO微服务1112。SSO微服务1112针对如在用户的SSO cookie中被跟踪的已知注销端点发起重定向的集合(OAuth2 OP和SAML IDP)。
在一个实施例中,如果云门1104使用SAML协议来请求用户认证(例如,登录),那么在SAML微服务和SSO微服务1112之间开始相似的处理。
云高速缓存
一个实施例提供被称为云高速缓存的服务/能力。在IDCS中提供云高速缓存,以支持与基于LDAP的应用(例如,电子邮件服务器、日历服务器、一些业务应用等等)的通信,因为IDCS不根据LDAP进行通信,而此类应用被配置为仅基于LDAP进行通信。通常,云目录经由REST API暴露,并且不根据LDAP协议进行通信。一般而言,管理跨公司防火墙的LDAP连接需要特殊的配置,这些配置难以建立和管理。
为了支持基于LDAP的应用,云高速缓存将LDAP通信翻译为适合与云系统进行通信的协议。一般而言,基于LDAP的应用经由LDAP使用数据库。应用可以可替代地被配置为经由诸如SQL之类的不同协议来使用数据库。但是,LDAP在树结构中提供资源的分层表示,而SQL将数据表示为表和字段。因而,LDAP可能更适合搜索功能,而SQL可能更适合于事务功能。
在一个实施例中,由IDCS提供的服务可以在基于LDAP的应用中使用,以例如认证应用的用户(即,身份服务)或者为该应用强制实施安全策略(即,安全服务)。在一个实施例中,与IDCS的接口是通过防火墙并基于HTTP(例如,REST)的。通常,公司防火墙不允许访问内部LDAP通信,即使通信实现了安全套接字层(“SSL”),并且不允许通过防火墙暴露TCP端口。但是,云高速缓存在LDAP和HTTP之间进行翻译,以允许基于LDAP的应用到达由IDCS提供的服务,并且防火墙将对HTTP开放。
一般而言,LDAP目录可以在一系列业务(诸如营销和开发)中使用,并且定义用户、组、工作等等。在一个示例中,营销和开发业务可以具有不同的有针对性的客户,并且对于每个客户,可以有其自己的应用、用户、组、工作等等。可以运行LDAP高速缓存目录的一系列业务的另一个示例是无线服务提供者。在这种情况下,由无线服务提供者的用户进行的每个呼叫都针对LDAP目录来认证用户的设备,并且LDAP目录中的对应信息中的一些可以与计费系统同步。在这些示例中,LDAP提供了在运行时在物理上隔离正在被搜索的内容的功能。
在一个示例中,无线服务提供者可以在使用由IDCS提供的服务以支持短期营销活动的同时处理用于其核心业务(例如,常规呼叫)的自身的身份管理服务。在这种情况下,当云高速缓存具有它针对云运行的单个用户集合和单个组集合时,云高速缓存将“扁平化”LDAP。在一个实施例中,可以在IDCS中实现任何数量的云高速缓存。
分布式数据网格
在一个实施例中,IDCS中的高速缓存集群是基于分布式数据网格来实现的,如在例如美国专利公开No.2016/0092540中所公开的,其公开内容通过引用结合于此。分布式数据网格是一种系统,其中计算机服务器的集合在一个或多个集群中一起工作,以管理分布式或集群环境中的信息和相关操作(诸如计算)。分布式数据网格可以被用于管理跨服务器共享的应用对象和数据。分布式数据网格提供低响应时间、高吞吐量、可预测的可伸缩性、持续可用性和信息可靠性。在特定的示例中,分布式数据网格(诸如来自Oracle公司的Oracle Coherence数据网格)存储存储器中的信息,以实现更高的性能,并且在保持那种信息的副本跨多个服务器同步时采用冗余,从而在服务器发生故障的情况下确保系统的弹性和数据的持续可用性。
在一个实施例中,IDCS实现诸如Coherence之类的分布式数据网格,使得每个微服务可以请求访问共享的高速缓存对象而不被阻塞。Coherence是专有的基于Java的存储器内数据网格,其被设计为比传统的关系型数据库管理系统具有更好的可靠性、可伸缩性和性能。Coherence提供了点对点(即,没有中央管理器)、存储器内的分布式高速缓存。
图12图示了分布式数据网格1200的示例,其存储数据并向客户端1250提供数据访问并实现本发明的实施例。“数据网格集群”或“分布式数据网格”是包括多个计算机服务器(例如,1220a、1220b、1220c和1220d)的系统,这些多个计算机服务器在一个或多个集群(例如,1200a、1200b、1200c)中一起工作,以在分布式或集群环境中存储和管理信息和相关操作(诸如计算)。虽然分布式数据网格1200被示为在集群1200a中包括四个服务器1220a、1220b、1220c、1220d,具有五个数据节点1230a、1230b、1230c、1230d和1230e,但是分布式数据网格1200可以包括任意数量的集群以及每个集群中任意数量的服务器和/或节点。在实施例中,分布式数据网格1200实现本发明。
如图12中所示,分布式数据网格通过在一起工作的多个服务器(例如,1220a、1220b、1220c和1220d)上分布数据来提供数据存储和管理能力。数据网格集群的每个服务器可以是常规的计算机系统,诸如像具有一到两个处理器插槽和每个处理器插槽两到四个CPU核心的“商品x86”服务器硬件平台。每个服务器(例如,1220a、1220b、1220c和1220d)被配置有一个或多个CPU、网络接口卡(“NIC”)和存储器,其中存储器包括例如至少4GB的RAM,高达64GB RAM或更多。服务器1220a被示为具有CPU 1222a、存储器1224a和NIC 1226a(这些元件在其它服务器1220b、1220c、1220d中也存在,但未示出)。可选地,每个服务器也可以提供有闪存(例如,SSD 1228a),以提供外溢(spillover)存储容量。在被提供时,SSD容量优选地是RAM的尺寸的十倍。数据网格集群1200a中的服务器(例如,1220a、1220b、1220c、1220d)使用高带宽NIC(例如,PCI-X或PCIe)连接到高性能网络交换机1220(例如,千兆以太网或更好)。
集群1200a优选地包含最少四个物理服务器,以避免在故障期间丢失数据的可能性,但是典型的安装具有多得多的服务器。每个集群中存在的服务器数量越多,故障转移和故障回复的效率越高,并且服务器故障对集群的影响更小。为了最小化服务器之间的通信时间,每个数据网格集群理想地限于提供服务器之间的单跳通信的单个交换机1202。因此,集群可以受到交换机1202上的端口数量的限制。因此,典型的集群将包括4到96个物理服务器。
在分布式数据网格1200的大多数广域网(“WAN”)配置中,WAN中的每个数据中心具有独立但互连的数据网格集群(例如,1200a、1200b和1200c)。WAN可以例如包括比图12中所示的多得多的集群。此外,通过使用互连但独立的集群(例如,1200a、1200b、1200c)和/或在彼此远离的数据中心中定位互连但独立的集群,分布式数据网格可以保护到客户端1250的数据和服务,防止由于自然灾害、火灾、洪水、延长的掉电等造成的一个集群中的所有服务器的同时丢失。
一个或多个节点(例如,1230a、1230b、1230c、1230d和1230e)在集群1200a的每个服务器(例如,1220a、1220b、1220c、1220d)上操作。在分布式数据网格中,节点可以是例如软件应用、虚拟机等,并且服务器可以包括节点在其上操作的操作系统、管理程序等(未示出)。在Oracle Coherence数据网格中,每个节点都是Java虚拟机(“JVM”)。取决于服务器上可用的CPU处理能力和存储器,可以在每个服务器上提供多个JVM/节点。可以根据分布式数据网格的需要添加、开始、停止和删除JVM/节点。运行Oracle Coherence的JVM在被开始时自动加入集群。加入集群的JVM/节点被称为集群成员或集群节点。
架构
每个客户端或服务器包括用于传送信息的总线或其它通信机制,以及耦合到总线以用于处理信息的处理器。处理器可以是任何类型的通用或专用处理器。每个客户端或服务器还可以包括用于存储要由处理器执行的信息和指令的存储器。存储器可以由随机存取存储器(“RAM”)、只读存储器(“ROM”)、诸如磁盘或光盘的静态存储器或任何其它类型的计算机可读介质的任意组合组成。每个客户端或服务器还可以包括通信设备,诸如网络接口卡,以提供对网络的访问。因此,用户可以直接与每个客户端或服务器进行接口,或者通过网络或其它任何方式进行远程接口。
计算机可读介质可以是可由处理器访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质以及通信介质。通信介质可以包括计算机可读指令、数据结构、程序模块或者经调制的数据信号(诸如载波或其它传输机制)中的其它数据,并且包括任何信息传递介质。
处理器还可以经由总线耦合到显示器,诸如液晶显示器(“LCD”)。键盘和光标控制设备(诸如计算机鼠标)也可以耦合到总线,以使得用户能够与每个客户端或服务器进行交互。
在一个实施例中,存储器存储在由处理器执行时提供功能的软件模块。这些模块包括为每个客户端或服务器提供操作系统功能的操作系统。这些模块还可以包括用于提供云身份管理功能的云身份管理模块以及本文公开的所有其它功能。
客户端可以访问网络服务,诸如云服务。在一个实施例中,web服务可以在来自Oracle公司的webLogic Server上实现。在其它实施例中,可以使用web服务的其它实现。web服务访问存储云数据的数据库。
IAM功能示例
在一个实施例中,IAM功能由存储在存储器或其它计算机可读或有形介质中的软件实现,并由处理器执行。
接收用于执行身份管理服务的请求。在一个实施例中,该请求包括对识别身份管理服务的API和被配置为执行身份管理服务的微服务的调用。在一个实施例中,微服务是可以与其它模块/微服务通信的自包含模块,并且每个微服务具有可以被其它微服务联系的未命名通用端口。例如,在一个实施例中,各种应用/服务602可以对IDCS API进行HTTP调用以使用IDCS微服务614,如图6所示。在一个实施例中,微服务是运行时组件/进程。
在一个实施例中,请求包括URL。在一个实施例中,在URL的前缀中识别微服务。在一个实施例中,URL的资源部分识别API。在一个实施例中,URL的主机部分识别与请求相关的资源的租赁。例如,在IDCS的web环境中的诸如“host/microservice/resource”的URL中,微服务的特征在于具有特定的URL前缀,例如“host/oauth2/v1”,其中实际的微服务是“oauth2/v1”,并且在“oauth2/v1”下有多个API,例如,用于请求令牌的API:“host/oauth2/v1/token”,用于认证用户的API:“host/oauth2/v1/authorize”等。即URL实现微服务,并且URL的资源部分实现API。相应地,多个API被聚合在同一微服务下。在一个实施例中,URL的主机部分识别租户(例如,https://tenant3.identity.oraclecloud.com:/oauth2/v1/token”)。
然后,请求被认证。在一个实施例中,请求被安全门认证,安全门诸如,如本文例如参考图6中的web路由层610和/或图7中的云门702所描述的云门。
然后,基于API访问微服务,例如,如本文参考图6中的IDCS中间层614中的访问微服务和IDCS“API平台”所描述的。在一个实施例中,通过微服务的未命名通用端口来配置与微服务的通信。在一个实施例中,微服务的未命名通用端口是微服务按照传统公开的(例如,作为传统HTTP端口)并且允许同一服务内的任何其它模块/微服务与其进行对话的标准通信信道。在一个实施例中,微服务通过公开一个或多个API来提供一种或多种能力。在一个实施例中,仅通过一个或多个API来实现与微服务的通信。即,只有通过调用此类API才能到达/联系到微服务。在一个实施例中,根据轻量级协议来配置与微服务的通信。在一个实施例中,轻量级协议包括HTTP和REST。在一个实施例中,请求包括对RESTful HTTP API的调用。因此,一个实施例提供分派(dispatch)功能。每个HTTP请求包含URI和动词。实施例解析来自URI的端点(host/service/resource),并将其与HTTP动词(例如,POST、PUT、PATCH或Delete)组合,以分派(或调用)适当模块的适当方法。这种模式是REST所共有的,并受到各种包(例如,Jersey)的支持。
然后,由微服务执行身份管理服务,例如,如本文参考图6中的IDCS中间层614中的访问微服务和IDCS“API平台”所描述的。在一个实施例中,微服务是无状态的、水平可伸缩的且可独立部署的。在一个实施例中,微服务的每种物理实现被配置为安全地支持多个租户。在一个实施例中,身份管理服务包括登录服务、SSO服务、联合服务、令牌服务、目录服务、供应服务或RBAC服务。
在没有用户足迹的情况下的事务按需多因素认证
企业经常利用被众多用户/客户使用的多个应用(例如,软件应用)。关于用户、用户的偏好、应用访问信息等的信息有时存储在所谓的“身份存储库”中。在一些实现中,用户将他们的电话号码、电子邮件地址或其它合适的消息传递/通信标识符注册为他们的标识数据。另外,用户经常在向应用注册电话号码或电子邮件地址之前核实并验证电话号码或电子邮件地址的拥有权(possession)。
但是,安全威胁继续以复杂的方式发展,并且在帮助用户保持其账户安全时,企业实体面临挑战。一些实现通过使用多因素认证(“MFA”)解决方案来实现此项。MFA可以采用多种形式,诸如:
·您所知道的–密码、安全问题的答案。
·您所拥有的–经由电子邮件/SMS/硬件令牌或软件认证设备的一次性密码(“OTP”)
·您是什么–触摸ID、面部识别、语音识别。
存在这样几种用例/事务,其中针对这样几种用例/事务企业可能想要要求客户使用MFA实现。例如,在以下情况下访问关键和敏感应用时,使用MFA解决方案会是有益的:
·对于超过特定阈值的购买申请(例如,待批准的购买申请),应用可能需要MFA以及用户名+密码。
·MFA可能是用于访问敏感员工数据的安全协议的一部分。
·如果高层管理人员想要访问敏感的公司财务数据,那么可以使用MFA。
在一些实现中,在用户使用附加的MFA因素(以及第一因素,诸如用户名+密码)进行认证之后,可以允许该用户访问应用。当提供MFA解决方案时,企业可用的选项具有多个优点和/或缺点:
·企业构建其自己的MFA解决方案:
ο公司内部开发其自己的MFA解决方案。
ο要求具有安全领域专业知识的人员。
ο可能既昂贵又耗时。
·与提供MFA解决方案的第三方提供者集成。几个提供者(例如,Duo、Okta等)提供其自己的MFA解决方案,但是许多有缺点:
ο即使采用按使用模型付费,这也会产生额外的成本。
ο使用最近的“通用数据保护法规”(“GDPR”)法规(https://eugdpr.org/),企业在与第三方共享用户数据时面临限制。违反该规定可能导致罚款,在一些情况下,罚款额达数十亿美元。
ο未经用户同意,用户的个人身份信息(“PII”)可能不能存储在企业外部。因而,任何存储的PII数据都应被负责任地处理。
·与第三方MFA提供者共享用户的数据:
ο第三方提供者通常创建用户的足迹以提供MFA支持。这意味着将PII数据(诸如,电子邮件地址、电话号码等)保留在企业环境外部的计算设备(例如,服务器)中。
ο这些解决方案中的许多解决方案要求用户在使用第三方提供者的MFA服务之前完成用户的电子邮件地址和/或电话号码的“登记”。
通常,当部署此类MFA解决方案时,用户足迹通常将保持在提供MFA功能的外部系统中,这可能难以实现。
在一些实施例中,完成事务(例如,敏感事务)的MFA操作可以被称为“事务性按需MFA”。一个实施例实现不保持用户的足迹的轻量级事务性按需MFA解决方案(例如,在身份云服务(“IDCS”)中)。该解决方案使得能够将电子邮件和其它消息传递/通信地址(例如,短消息服务(“SMS”))用作MFA因素,而无需存储用户数据(例如,在IDCS或任何其它合适的服务中)。实施例公开(例如,由在IDCS中注册的企业创建的)特权客户端应用可以代表其用户而调用的受保护的REST API。API可以接受电话号码/电子邮件地址,然后将一次性通行码发送给期望的目标。在一些实施例中,电子邮件地址/电话号码不保持在系统中。一旦接收到请求,实施例就向期望的目标发送一次性密码(“OTP”)或其它临时密码,并丢弃PII数据。在一些实施例中,一旦用户接收到OTP并将其输入到应用中,客户端就调用事务性REST API来验证OTP。
在一些实施例中,寻求向企业的用户提供MFA的企业可以(例如,向IDCS服务器)注册机密客户端应用。可以向该应用提供客户端id和客户端秘密,客户端id和客户端秘密应该被安全地存储。可以授予该应用某些“范围/权限”以访问事务性MFA API。在一些实施例中,范围(例如,在IDCS的上下文内)确保不发生REST API的滥用。
在一些实施例中,服务(例如,IDCS)可以公开一组API以使用诸如SMS和/或电子邮件之类的多种因素来支持事务性MFA。当访问令牌已被分配适当的“范围/权限”时,客户端可以调用这些API。例如,当向IDCS注册的客户端应用获得其令牌时,它可以是JWT,其声明诸如以下所示:
{
"sub":"e8sfdg6337a...",
"user.tenant.name":"tenant1",
"sub_mappingattr":"userName",
...
"tok_type":"AT",
"client_id":"d8765963373d4...",
...
"sub_type":"client",
"clientAppRoles":[
"Authenticated Client",
"Signin"
],
"scope":...urn:opc:idm:t.namedappadmin urn:opc:idm:t.user.signin",
"client_tenantname":"tenant1",
"exp":155772...,
"iat":15577...,
"tenant_iss":"https://tenant1.identity.internal.oracle.com:____",
"client_guid":"9ad9c8abd6...",
"client_name":"Authn API",
"tenant":"tenant1",
...
}
在一些实施例中,如果在JWT的范围声明中存在预定范围(例如,“urn:opc:idm:t.user.signin”),那么可以访问事务性MFA REST API。例如,可以在IDCS中创建应用时添加该范围。在一些实施例中,当用JWT调用IDCS时,可以在处理该调用之前验证到期和签名以及相关范围。
图13图示了用于实现多因素认证的系统。图13可以包括用户1302、安全应用1304、事务性MFA API 1306、用户设备1308和数据库1310。在一些实施例中,这些系统元素可以实现以下示例流程:
1)用户1302可以尝试访问已经实现事务性MFA解决方案(例如,在IDCS环境内)的企业上的安全应用1304。
2)安全应用1304可以确定用户1302将执行MFA以获得访问。然后,安全应用1304可以调用事务性MFA API 1306(例如,使用由IDCS发行的其机密客户端应用访问令牌),并提供将被发送OTP的用户的电子邮件地址/电话号码。安全应用1304还可以在来自事务性MFAAPI 1306的响应中接收txnid(事务ID)。
3)在调用事务性MFA API 1306之后,可以将OTP发送到指定的电子邮件地址/电话号码。例如,用户1302可以在用户设备1308(例如,移动设备)上访问发送的OTP。在一些实施例中,该服务(例如,IDCS)不在其服务器上存储(例如,持久地存储)该PII数据。
4)服务(例如,IDCS)然后可以在数据库1310中为事务生成条目,而无需存储诸如电子邮件地址或电话号码的用户数据。每个记录/txnid可以具有与其相关联的到期时间。
5)用户1302可以通过访问相关的电子邮件地址/消息传递地址(例如,使用用户设备1308)来检索OTP。
6)用户1302可以在安全应用1304中输入接收到的OTP。
7)安全应用1304可以再次调用事务性MFA API 1306,并发送用于验证的OTP以及事务标识符。
8)事务性MFA API 1306可以基于供应的事务标识符来验证OTP,并以成功或失败来响应该发出调用的客户端。
9)在成功验证的情况下,事务性MFA API 1306可以删除事务记录,例如,以避免OTP重用。在无效OTP的情况下,事务性MFA API 1306可以保留该记录并更新无效OTP尝试的次数的计数。
10)被调度的作业可以定期在数据库1310上运行以删除到期的记录。
示例用例可以是具有大量(例如,数百万)客户的银行。在一些示例中,该银行已经可以存储来自这些客户的已核实的敏感数据。例如,可以存储客户的电子邮件地址和电话号码。考虑一个场景,在该场景中,银行计划在客户执行高价值事务时实现MFA。银行可能会尝试通过云提供者的MFA解决方案来实现这种MFA,但是传统的云MFA解决方案包括在其身份存储库中创建的用户足迹。将用户的个人数据存储在银行外部可能是有问题的,并且在一些情况下可能会导致传统选项不可行。
实施例可以提供更安全的选项,因为MFA服务的示例实现没有其自己的身份存储库。例如,银行可以根据需要调用事务性REST API来请求MFA。在一些情况下,每当客户执行高价值事务时,银行可以调用API并请求将临时密码发送到用户的消息传递/通信地址(例如,电子邮件地址、电话号码等)。在一些示例中,该消息传递/通信地址未保持在MFA服务中,诸如IDCS。实施例然后可以生成临时密码并将其发送到相关的消息传递/通信地址。实施例然后可以将事务ID和共享秘密一起存储以供将来使用(例如,用于认证)。
一旦客户接收到临时密码,就可以提示客户在银行的网站上输入该密码。然后,银行可以向API发送包含事务标识符的反向通道(back-channel)请求,以核实所提供的临时密码。实施例可以查找该事务ID,获取共享秘密,并重新生成临时密码。如果两个临时密码匹配,那么可以发送成功消息。然后可以删除txn记录。在这个示例中,可以看出MFA服务(例如,IDCS)内没有存储诸如名字、姓氏、地址、年龄等的个人数据。换句话说,提供MFA服务不需要与银行的身份存储库分开的身份存储库。
在一些实施例中,MFA被提供用于向(例如,与企业相关联的)IDCS注册的安全应用。因而,企业系统可以自由地为企业在企业的身份存储库中拥有的任何用户请求MFA,因为企业存储了PII数据并且可以决定用户是否应该执行MFA。实施例提供事务性MFA解决方案,并且不关心基础(underlying)用户数据。在安全应用/客户端调用事务性MFA API的实施例中,验证个人用户数据的责任在于安全应用/客户端和相关联的企业。
在一些实施例中,除了使用API来执行按需MFA之外,企业/客户还可以验证他们已经存储或想要为企业的用户保持的PII数据。例如,企业系统通常存储可能会或可能不会被核实的PII数据(例如,电子邮件地址、电话号码等)。在许多情况下,在保持此类数据或允许使用该数据之前(例如,经由MFA),企业可能想要首先核实用户是否可访问通信地址(例如,电子邮件地址、电话号码等)。事务性MFA API也可以用于提供这种核实。这些API可以由企业和/或安全应用调用,并且在接收到“成功”响应之后,可以将通信地址保持或标记为已核实。由于没有PII数据被存储在其系统之外,因此该解决方案也可以确保符合数据隐私法规(例如,GDPR)。
一些实施例使用电子邮件因素来实现MFA。例如,用户可以请求将OTP发送到用户的电子邮件地址。在这个示例中,applicationName可以是用户正在尝试访问的受保护应用的名称。在一些实施例中,该名称可以出现在包含OTP的电子邮件文本中。下面图示了请求和响应的示例。
在一些实施例中,用户可能未接收电子邮件,并且可以请求重新发送OTP。在一些实施例中,由于用户数据不保持在服务器中,因此客户端可以在请求重新发送时再次发送appName和电子邮件地址。
下面图示了重新发送请求和响应的示例。
*注意transactionId引用先前的transactionId,因为该请求是重新发送请求
在一些实施例中,用户可以接收包含OTP的电子邮件并在应用界面上输入OTP。然后,客户端可以将该输入的OTP与事务标识符一起提交给服务(例如,IDCS服务器)。
一些实施例使用电话号码因素(例如,移动电话号码)实现MFA。例如,用户可以请求将OTP发送到用户的移动电话号码(例如,使用SMS消息或任何其它合适的消息)。在这个示例中,applicationName可以是用户正在尝试访问的受保护应用的名称。在一些实施例中,该名称可以出现在包含OTP的消息文本中。下面图示了请求和响应的示例。
在一些实施例中,用户可能未接收消息,并且可以请求重新发送OTP。在一些实施例中,由于用户数据不保持在服务器中,因此客户端可以在请求重新发送时再次发送appName和移动号码。下面图示了重新发送请求和响应的示例。
在一些实施例中,MFA服务可以向安全应用通知用户将来可以请求重新发送X次。如果该属性返回为0,那么安全应用将不会为用户提供重新发送的选项。
在一些实施例中,用户可以接收包含OTP的消息,并在应用界面上输入OTP。然后,客户端可以将该输入的OTP与事务标识符一起提交给服务(例如,IDCS服务器)。
在一些实施例中,MFA服务可以向安全应用通知用户还有X次的验证尝试(例如,输入密码以进行验证)。如果该属性返回为0,那么安全应用将不会向用户提供输入密码的选项(例如,用户将被阻止)。
实施例包括OTP的任何合适的变体(例如,包括预定长度的数字、字母和/或符号的字符串)。例如,可以使用用于生成临时或一次性密码的数学函数或任何其它合适的软件来生成OTP。
样本实现可以包括以下数据元素:
/>
在一些实施例中,来自应用的请求(例如,来自安全应用的对临时密码的请求)可以遵循流程。例如,服务器(例如,MFA服务器)可以生成与访问尝试相关联的唯一的txnid和共享秘密。在一些实施例中,txnid可以包括用于请求的嵌入的时间戳。共享秘密可以用于生成唯一的临时密码,在一些示例中,还会生成一些其它参数。在一些实施例中,该共享秘密对于请求/访问尝试是唯一的。例如,共享秘密可以是伪随机数和/或字符。
在一些实施例中,可以通过使用共享秘密、事务标识符以及在一些示例中使用(例如,在事务标识符内的)嵌入的时间戳作为输入来生成临时密码(例如,OTP)。在一些实施例中,共享秘密本身不是基于用于共享秘密的生成的时间戳而被生成的(例如,它可以简单地是随机数)。例如,一些实施例在事务标识符中包括第一OTP请求的时间戳,并且共享秘密、事务标识符和嵌入的时间戳可以用于生成OTP。
当服务器创建新的txnid记录时,它可以设置remainingResendOTPAttempts和remainingValidateOTPAttempts(例如,分别设置为5和10)。这些值由客户端设置驱动,并且是可配置的。
在一些实施例中,来自应用的重新发送请求(例如,来自安全应用的对临时密码的请求)也可以遵循流程。例如,当服务器(例如,MFA服务器)得到对重新发送临时密码(例如,OTP)的请求时,它可以使用重新发送请求中提供的txnid来查找先前存储的记录。如果服务器找不到txnid记录,那么这可能意味着请求无效或已被验证。在一些示例中,此时服务器可以返回失败响应。如果它找到txnid的记录,那么服务器可以执行以下检查:
·它可以确保属性remainingResendOTPAttempts不为0。如果它为0,那么这意味着用户已请求重新发送达客户端允许的最大次数。服务器可以返回失败响应并停止进一步处理。
·如果remainingResendOTPAttempts不为零,那么该服务器可以检索txnid的共享秘密。该共享秘密可以用于生成临时密码(例如,OTP)。在一些实施例中,使用共享秘密、事务标识符和嵌入的时间戳来生成临时密码。
·服务器可以经由相关因素(例如,电子邮件、SMS等)将此临时密码发送到如请求中指定的目标消息传递/通信地址。
·服务器可以将remainingResendOTPAttempts递减1。
·服务器可以用成功消息以及remainingResendOTPAttempts属性进行响应。如果超过限制,那么客户端(例如,安全应用)可以使用它来阻止用户做出进一步的请求。
在一些实施例中,验证临时密码也可以遵循流程。例如,当服务器(例如,MFA服务器)得到对验证临时密码的请求时,服务器可以使用请求中提供的txnid来查找先前存储的记录。如果服务器找不到txnid记录,那么这可能意味着请求无效或已被验证。服务器可以返回失败响应。如果服务器找到txnid的记录,那么它可以执行以下检查:
·它确保属性remainingValidateOtpAttempts不为0。如果为0,那么可能意味着用户已使用错误的临时密码尝试太多次数。服务器可以返回失败响应并停止进一步处理。
·如果remainingValidateOtpAttempts不为零,那么服务器可以检索txnid的共享秘密。该共享秘密可以用于生成临时密码。在一些实施例中,使用共享秘密、事务标识符和嵌入的时间戳来生成临时密码。
·在一些实施例中,服务器可以确定生成的临时密码与请求中发送的临时密码匹配。
·如果发送的临时密码与服务器所生成的临时密码匹配,那么服务器可以返回成功。然后,服务器可以删除txnid行,以避免重复使用该临时密码。
·如果输入的临时密码与服务器所生成的临时密码不匹配,那么这可能意味着这是无效的尝试。服务器可以将remainingValidateOtpAttempts递减1并返回失败响应,在一些示例中,返回remainingValidateOtpAttempts属性。
在一些实施例中,可以使用各种清除(purge)操作从实现中清除数据。例如:
·成功的OTP验证:
ο一旦成功验证给定的OTP,就可以从数据库中移除对应的事务ID行,使得相关联的OTP不能被重用。
·被调度的清除作业:
ο被调度的作业可以查阅事务性MFA表,并移除所有“到期”行。在一些实施例中,每行可以具有附到该行的到期时间,并且该清除作业可以扫描数据库并删除已超过该到期时间的所有行。
实施例提供了超过MFA解决方案的传统实现的许多优点。例如,实施例不将用户足迹保持在企业外部。到目前为止,大多数MFA解决方案提供者创建带有详细信息的用户足迹,诸如电子邮件地址、电话号码等。有时,即使用户从不执行MFA,这用户足迹也可以保留在系统中。作为对照,在实施例中,如果用户从不执行MFA,那么用户的数据不会被发送到用户正在尝试访问的应用之外。消除企业外部保持的用户足迹可以增强数据安全性并符合旨在保护用户数据安全性的法规。另外,在没有用户足迹的情况下,实施例提供了一种有利于扩展的解决方案,因为该实现可以以较低的成本处理较高的MFA负载。
一些实施例还简化了用于实现MFA的处理,因为用户不需要“登记”以进行MFA认证。在大多数保持用户足迹的MFA解决方案中,经常会要求用户执行“MFA登记”。即,经常指示用户提供电子邮件地址或移动电话号码,在所提供的消息传递地址处接收OTP,并且然后通过输入OTP(例如,通过应用、网站或其它合适的接口)来验证地址。对于最终用户而言,这可能是耗时的过程,并且还可能减少MFA的采用,从而增加了企业的安全风险。此外,对于拥有大量用户的企业而言,让其所有用户都登记可能在逻辑上具有挑战性,而减少的步骤则简化了这些挑战。对于其中的一些解决方案,这种一次性活动会创建将来一些用户甚至可能永远不会使用的用户足迹。消除这种登记的实施例提供了针对这些问题的解决方案。
实施例还可以为希望核实用户的通信地址(例如,电子邮件地址、移动电话号码等)的企业提供核实服务。例如,当用户更新他或她的简档或以其它方式提供新的通信地址时,保持该数据的企业应用(或任何其它合适的企业应用)可以调用已公开的API来验证用户是否可以访问该通信地址,如所声明的。
实施例还可以提供重新发送功能和账户锁定。例如,在第一次未接收到OTP的情况下,用户/安全应用可以请求将OTP重新发送到用户的通信地址。MFA服务也可以跟踪无效尝试的次数,并在必要时阻止黑客入侵尝试。
一些实施例还简化了开发工作,因为不需要开发消耗REST API的用户接口。例如,可以实现基于REST的具有最小有效负载的API,并且在这些实现中,客户端不需要构建UI来调用API。例如,用户可以使用接受临时密码(例如,OTP)的简单命令行接口来完成登录。
一些实施例也可以由异构应用使用。例如,由于MFA功能可以经由REST API公开,因此它们可以被程序客户端、用户接口客户端、命令行接口和其它合适的应用调用。另外,由于实施例可以提供轻量级的MFA解决方案,考虑到消耗更少的资源,因此可以使成本最小化。
一些实施例也可以由小型客户/企业实现。例如,可能有许多小型足迹企业/公司,它们可以从MFA中受益,但避免购买功能全面的MFA解决方案,因为它们可能不会使用其所有特征。功能全面的MFA解决方案可以包括用户/组管理、访问管理、登录策略、IDP策略等,并且此功能中的许多功能对于这样的企业/公司可能没有用。提供按需事务性MFA解决方案可以降低成本,因此对小型实体是有用的。
IDCS中的MFA API的更好的性能—由于实施例可以提供轻量级MFA解决方案,因此,可能影响性能的诸如用户、组、策略、设备等资源的复杂度可能被不必要地呈现。因此,该按需解决方案的实施例将消耗更少的资源。例如,在具有用户足迹的传统MFA实现中,将在接收到访问请求时获取用户的简档。然后,将获取并评估登录策略,这可能是耗时的。通常,访问请求也会被审核。由于所提出的实施例是轻量级的并且不保持用户数据,因此降低了使用过多计算资源的风险。另外,由于实施例还清除事务性数据,因此数据库大小是可管理的和/或可以更快地读取。这对于认证所花费的时间也可能是有益的。
实施例还可以提供一种具有成本效益的MFA解决方案,因为示例实现提供了增强的存储效率,并且用户数据不被保持。例如,可以减少整个系统(例如,IDCS系统)内存储的数据量,这将导致增强的性能。
图14图示了在没有用户足迹的情况下实现多因素认证的流程图。在一个实施例中,下面图14的功能由存储在存储器或其它计算机可读或有形介质中的软件实现,并由处理器执行。在其它实施例中,每个功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等),或硬件和软件的任何组合来执行。
在1402处,可以在服务器处从客户端应用接收包括客户端访问令牌和消息传递标识符的第一API调用,其中消息传递标识符没有被服务器持久存储。在一些实施例中,API调用可以与用户访问安全资源的尝试相关。例如,可以确定用户在访问安全资源之前应该经历MFA。在一些实施例中,消息传递标识符可以用于实现MFA。例如,消息传递标识符可以是电子邮件地址或移动电话号码。
在一些实施例中,客户端访问令牌由身份云管理系统发布,并用于保护服务器与客户端应用之间的通信。例如,客户端应用可以基于向身份云管理系统的注册来发布客户端访问令牌。在一些实施例中,身份云管理系统可以是IDCS。
在1404处,可以将事务标识符从服务器发送到客户端应用,其中事务标识符由服务器存储。例如,事务标识符可以用于识别用户进行认证的尝试。在一些实施例中,可以将与请求相关联的时间戳嵌入在事务标识符中。
在1406处,可以使用共享秘密来生成临时密码,其中共享秘密与事务标识符相关联并且由服务器存储。例如,临时密码可以是OTP和/或一系列字符(例如,数字、字母数字字符和任何其它合适的密码)。在一些实施例中,可以使用共享秘密、事务标识符和嵌入的时间戳生成临时密码。
在1408处,服务器可以将消息发送到包括临时密码的消息传递标识符。例如,可以将消息发送到用户的电子邮件地址或移动电话号码。
在1410处,可以在服务器处从客户端应用接收包括参考事务标识符和输入的第二API调用,其中用户将输入提供给客户端应用。例如,(例如,向IDCS注册的)客户端应用可以调用API,并包括参考事务标识符和从用户接收到的输入。
在1412处,当参考事务标识符与存储在服务器处的事务标识符匹配并且输入与预期密码匹配时,可以对用户进行认证,其中预期密码可以基于与匹配的存储的事务标识符相关联的存储的共享秘密。例如,存储在服务器处的共享秘密和相关联的事务标识符可以指示已针对该共享秘密/事务标识符进行了认证流程的第一部分(例如,第一个API调用已被接收到并且事务标识符/相关的临时密码已被提供给用户的消息传递标识符)。换句话说,存储的共享秘密和相关联的事务标识符可以指示该组合对于认证是有效的。
在一些实施例中,接收到的输入可以是被发送到用户的消息传递标识符的临时密码。另外,参考事务标识符可以与存储在服务器处的事务标识符进行匹配。在找到该匹配时,可以基于与匹配的事务标识符相关联的存储的共享秘密生成预期的临时密码。在一些实施例中,可以使用共享秘密、相关联的事务标识符以及相关联的事务标识符中的嵌入的时间戳来生成预期的临时密码。如果用户提供的临时密码(例如,API调用中提供的输入)与预期的临时密码匹配,那么这指示用户检索到被发送给用户的消息传递标识符的临时密码,并将该临时密码作为安全应用/API调用中的输入来提供。换句话说,这将核实消息传递标识符作为用户认证的因素。
在一些实施例中,存储的事务标识符/记录具有相关联的到期时间(例如,5分钟、10分钟、30分钟和小时等)。例如,当创建事务记录/标识符时,存储到期时间(例如,当前时间+10分钟)。当(例如,从安全应用)接收到包括来自用户的输入和事务标识符的验证请求时,与接收到的事务标识符匹配的存储的事务标识符直到到期时间有效时才会完成验证。换句话说,当所包含的事务标识符未能使存储的事务标识符与有效到期时间匹配时,验证请求不会完成认证。
在1414处,可以基于认证将成功指示符发送到客户端应用。在一些实施例中,基于成功指示符,允许用户访问安全资源。因而,在没有足迹的情况下的多因素认证可以通过用户的认证来实现,而无需持久存储用户的消息传递标识符。
本文具体地图示和/或描述了若干实施例。但是,应当认识到的是,在不背离本发明的精神和预期范围的情况下,所公开的实施例的修改和变化被上述教导涵盖并在所附权利要求的范围内。
Claims (18)
1.一种用于实现多因素认证的方法,所述方法包括:
在认证服务器处从第一客户端应用接收包括客户端访问令牌和消息传递标识符的第一应用编程接口调用,其中认证服务器不持久存储个人用户数据,并且认证服务器不持久存储所述消息传递标识符;
由认证服务器响应于第一应用编程接口调用向第一客户端应用发送事务标识符,其中认证服务器将所述事务标识符进行存储;
使用共享秘密和所述事务标识符以及在所述事务标识符中的嵌入的时间戳生成临时密码,其中认证服务器将所述共享秘密与所述事务标识符相关联地存储,多个事务标识符和共享秘密被存储;
向消息传递标识符发送包括临时密码的消息;
在认证服务器处从第二客户端应用接收包括参考事务标识符和输入的第二应用编程接口调用,其中用户将所述输入提供给第二客户端应用,并且第一客户端应用是第二客户端应用;
当参考事务标识符与存储的事务标识符之一匹配并且所述输入与预期密码匹配时,在认证服务器处对用户进行认证,其中预期密码是使用匹配的存储的事务标识符以及与匹配的存储的事务标识符一起存储的共享秘密以及在匹配的存储的事务标识符中的嵌入的时间戳来生成的;以及
基于认证来向第二客户端应用发送成功指示符。
2.如权利要求1所述的方法,其中所述消息传递标识符包括电子邮件地址或移动电话号码。
3.如权利要求1所述的方法,其中所述事务标识符包括与第一应用编程接口调用相关联的嵌入的时间戳,并且生成的临时密码基于所述共享秘密、所述事务标识符和所述嵌入的时间戳。
4.如权利要求3所述的方法,其中所述参考事务标识符和匹配的存储的事务标识符包括匹配的嵌入的时间戳。
5.如权利要求2所述的方法,其中第一应用编程接口调用和第二应用编程接口调用包括安全REST API调用。
6.如权利要求2所述的方法,其中所述客户端访问令牌是由身份云管理系统发布的,并且用于保护认证服务器与第一客户端应用之间的通信。
7.如权利要求6所述的方法,其中所述第一客户端应用是基于向所述身份云管理系统的注册而被发布所述客户端访问令牌的。
8.如权利要求2所述的方法,其中在没有用户足迹的情况下的多因素认证通过用户的认证来实现,而无需在认证服务器处持久存储所述消息传递标识符。
9.如权利要求8所述的方法,其中在没有用户足迹的情况下的多因素认证通过用户的认证来实现,而无需在认证服务器处持久存储用户的个人数据,其中用户的个人数据包括用户的姓名和地址。
10.如权利要求2所述的方法,其中基于成功指示符来允许用户访问安全资源。
11.如权利要求1所述的方法,其中第一应用编程接口调用在时间上早于第二应用编程接口调用被接收到。
12.一种用于实现多因素认证的系统,所述系统包括:
服务器,包括处理器和存储由处理器执行的指令的存储器,所述指令将处理器配置为:
在认证服务器处从第一客户端应用接收包括客户端访问令牌和消息传递标识符的第一应用编程接口调用,其中认证服务器不持久存储个人用户数据,并且认证服务器不持久存储所述消息传递标识符;
由认证服务器响应于第一应用编程接口调用向第一客户端应用发送事务标识符,其中认证服务器将所述事务标识符进行存储;
使用共享秘密和所述事务标识符以及在所述事务标识符中的嵌入的时间戳生成临时密码,其中认证服务器将所述共享秘密与所述事务标识符相关联地存储,多个事务标识符和共享秘密被存储;
向消息传递标识符发送包括临时密码的消息;
在认证服务器处从第二客户端应用接收包括参考事务标识符和输入的第二应用编程接口调用,其中用户将所述输入提供给第二客户端应用,并且第一客户端应用是第二客户端应用;
当参考事务标识符与存储的事务标识符之一匹配并且所述输入与预期密码匹配时,在认证服务器处对用户进行认证,其中预期密码是使用匹配的存储的事务标识符以及与匹配的存储的事务标识符一起存储的共享秘密以及在匹配的存储的事务标识符中的嵌入的时间戳来生成的;以及
基于认证来向第二客户端应用发送成功指示符。
13.如权利要求12所述的系统,其中所述消息传递标识符包括电子邮件地址或移动电话号码。
14.如权利要求12所述的系统,其中所述事务标识符包括与第一应用编程接口调用相关联的嵌入的时间戳,并且生成的临时密码基于所述共享秘密、所述事务标识符和所述嵌入的时间戳。
15.如权利要求13所述的系统,其中在没有用户足迹的情况下的多因素认证通过用户的认证来实现,而无需在认证服务器处持久存储所述消息传递标识符。
16.一种用于实现多因素认证的系统,所述系统包括:
服务器,包括处理器和存储由处理器执行的指令的存储器,所述指令将处理器配置为执行权利要求4-7和9-11中任一项所述的方法的操作。
17.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其上的指令,所述指令在由处理器执行时,使所述处理器实现多因素认证,其中所述指令在执行时,使所述处理器:
在认证服务器处从第一客户端应用接收包括客户端访问令牌和消息传递标识符的第一应用编程接口调用,其中认证服务器不持久存储个人用户数据,并且认证服务器不持久存储所述消息传递标识符;
由认证服务器响应于第一应用编程接口调用向第一客户端应用发送事务标识符,其中认证服务器将所述事务标识符进行存储;
使用共享秘密和所述事务标识符以及在所述事务标识符中的嵌入的时间戳生成临时密码,其中认证服务器将所述共享秘密与所述事务标识符相关联地存储,多个事务标识符和共享秘密被存储;
向消息传递标识符发送包括临时密码的消息;
在认证服务器处从第二客户端应用接收包括参考事务标识符和输入的第二应用编程接口调用,其中用户将所述输入提供给第二客户端应用,并且第一客户端应用是第二客户端应用;
当参考事务标识符与存储的事务标识符之一匹配并且所述输入与预期密码匹配时,在认证服务器处对用户进行认证,其中预期密码是使用匹配的存储的事务标识符以及与匹配的存储的事务标识符一起存储的共享秘密以及在匹配的存储的事务标识符中的嵌入的时间戳来生成的;以及
基于认证来向第二客户端应用发送成功指示符。
18.一种非暂态计算机可读介质,所述非暂态计算机可读介质具有存储在其上的指令,所述指令在由处理器执行时,使所述处理器实现多因素认证,其中所述指令在执行时,使所述处理器执行权利要求2-11中任一项所述的方法的操作。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201941004076 | 2019-02-01 | ||
IN201941004076 | 2019-02-01 | ||
US16/426,186 US11651357B2 (en) | 2019-02-01 | 2019-05-30 | Multifactor authentication without a user footprint |
US16/426,186 | 2019-05-30 | ||
PCT/US2020/012873 WO2020159687A1 (en) | 2019-02-01 | 2020-01-09 | Multifactor authentication without a user footprint |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112154639A CN112154639A (zh) | 2020-12-29 |
CN112154639B true CN112154639B (zh) | 2023-08-11 |
Family
ID=71836591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080002876.3A Active CN112154639B (zh) | 2019-02-01 | 2020-01-09 | 在没有用户足迹的情况下的多因素认证 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11651357B2 (zh) |
EP (1) | EP3918766A1 (zh) |
JP (1) | JP7438984B2 (zh) |
CN (1) | CN112154639B (zh) |
WO (1) | WO2020159687A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11102648B2 (en) * | 2015-08-18 | 2021-08-24 | Proteqsit Llc | System, method, and apparatus for enhanced personal identification |
US20170272547A1 (en) * | 2016-03-18 | 2017-09-21 | Interactive Intelligence Group, Inc. | System and method for configuration and interchanging of business functionality implementations |
US11223622B2 (en) | 2018-09-18 | 2022-01-11 | Cyral Inc. | Federated identity management for data repositories |
US11477197B2 (en) | 2018-09-18 | 2022-10-18 | Cyral Inc. | Sidecar architecture for stateless proxying to databases |
US11165585B2 (en) * | 2019-06-11 | 2021-11-02 | International Business Machines Corporation | Token repository and integration |
US11245717B1 (en) * | 2019-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Automated detection, alarming, and removal of subdomain takeovers |
US11405379B1 (en) * | 2020-02-26 | 2022-08-02 | Amazon Technologies, Inc. | Multi-factor message-based authentication for network resources |
US11477187B2 (en) * | 2020-03-06 | 2022-10-18 | International Business Machines Corporation | API key access authorization |
US11763278B2 (en) * | 2020-03-13 | 2023-09-19 | Bottomline Technologies, Inc. | Deposit token service system, apparatus and method |
US20220294788A1 (en) * | 2021-03-09 | 2022-09-15 | Oracle International Corporation | Customizing authentication and handling pre and post authentication in identity cloud service |
US11853100B2 (en) * | 2021-04-12 | 2023-12-26 | EMC IP Holding Company LLC | Automated delivery of cloud native application updates using one or more user-connection gateways |
US11386194B1 (en) * | 2021-07-09 | 2022-07-12 | Oversec, Uab | Generating and validating activation codes without data persistence |
US20230099355A1 (en) * | 2021-09-29 | 2023-03-30 | Dell Products L.P. | Single sign-on services for database clusters |
US20230137359A1 (en) * | 2021-10-29 | 2023-05-04 | Oracle International Corporation | Multi-region login |
KR102654983B1 (ko) * | 2023-12-29 | 2024-04-05 | 한국과학기술정보연구원 | 다요소 인증 방법 및 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101534196A (zh) * | 2008-03-12 | 2009-09-16 | 因特伟特公司 | 用于安全调用rest api的方法和装置 |
US7697920B1 (en) * | 2006-05-05 | 2010-04-13 | Boojum Mobile | System and method for providing authentication and authorization utilizing a personal wireless communication device |
CN103563294A (zh) * | 2011-06-30 | 2014-02-05 | 国际商业机器公司 | 用于云计算平台安全性的认证和授权方法 |
CN106063308A (zh) * | 2014-03-17 | 2016-10-26 | 瑞典爱立信有限公司 | 基于用户标识符的装置、身份和活动管理系统 |
Family Cites Families (332)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5550971A (en) | 1993-06-30 | 1996-08-27 | U S West Technologies, Inc. | Method and system for generating a user interface adaptable to various database management systems |
US6353834B1 (en) | 1996-11-14 | 2002-03-05 | Mitsubishi Electric Research Laboratories, Inc. | Log based data architecture for a transactional message queuing system |
US6097382A (en) | 1998-05-12 | 2000-08-01 | Silverstream Software, Inc. | Method and apparatus for building an application interface |
US6266058B1 (en) | 1998-09-08 | 2001-07-24 | Hewlett Packard Company | Apparatus and method for linking browser bars with active documents for a browser |
US6606663B1 (en) | 1998-09-29 | 2003-08-12 | Openwave Systems Inc. | Method and apparatus for caching credentials in proxy servers for wireless user agents |
US7116310B1 (en) | 1999-04-06 | 2006-10-03 | Microsoft Corporation | Application programming interface that maps input device controls to software actions |
US6631497B1 (en) | 1999-07-19 | 2003-10-07 | International Business Machines Corporation | Binding data from data source to cells in a spreadsheet |
US8032634B1 (en) | 1999-08-23 | 2011-10-04 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on resource requirements |
US6578068B1 (en) | 1999-08-31 | 2003-06-10 | Accenture Llp | Load balancer in environment services patterns |
US7424543B2 (en) | 1999-09-08 | 2008-09-09 | Rice Iii James L | System and method of permissive data flow and application transfer |
US7111307B1 (en) | 1999-11-23 | 2006-09-19 | Microsoft Corporation | Method and system for monitoring and verifying software drivers using system resources including memory allocation and access |
GB2364139B (en) | 1999-12-22 | 2004-05-26 | Ibm | A security mechanism providing access control for locally-held data |
US20060173873A1 (en) | 2000-03-03 | 2006-08-03 | Michel Prompt | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US6631519B1 (en) | 2000-03-30 | 2003-10-07 | Microsoft Corporation | Automated schema and interface generation |
US6990653B1 (en) | 2000-05-18 | 2006-01-24 | Microsoft Corporation | Server-side code generation from a dynamic web page content file |
US6880086B2 (en) | 2000-05-20 | 2005-04-12 | Ciena Corporation | Signatures for facilitating hot upgrades of modular software components |
US7028301B2 (en) | 2000-12-08 | 2006-04-11 | Bmc Software, Inc. | System and method for automatic workload characterization |
US7917888B2 (en) | 2001-01-22 | 2011-03-29 | Symbol Technologies, Inc. | System and method for building multi-modal and multi-channel applications |
US7203678B1 (en) | 2001-03-27 | 2007-04-10 | Bea Systems, Inc. | Reconfigurable query generation system for web browsers |
US7546576B2 (en) | 2001-06-15 | 2009-06-09 | Lightsurf Technology, Inc. | Software framework for web-based applications |
US7546602B2 (en) | 2001-07-10 | 2009-06-09 | Microsoft Corporation | Application program interface for network software platform |
US20030028583A1 (en) | 2001-07-31 | 2003-02-06 | International Business Machines Corporation | Method and apparatus for providing dynamic workload transition during workload simulation on e-business application server |
US7428725B2 (en) | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
US6978305B1 (en) | 2001-12-19 | 2005-12-20 | Oracle International Corp. | Method and apparatus to facilitate access and propagation of messages in communication queues using a public network |
US7062502B1 (en) | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US20030149717A1 (en) | 2002-02-05 | 2003-08-07 | William Heinzman | Batch processing job streams using and/or precedence logic |
US7222148B2 (en) | 2002-05-02 | 2007-05-22 | Bea Systems, Inc. | System and method for providing highly available processing of asynchronous service requests |
US7395355B2 (en) | 2002-07-11 | 2008-07-01 | Akamai Technologies, Inc. | Method for caching and delivery of compressed content in a content delivery network |
US20040046789A1 (en) | 2002-08-23 | 2004-03-11 | Angelo Inanoria | Extensible user interface (XUI) framework and development environment |
US7487248B2 (en) | 2002-10-08 | 2009-02-03 | Brian Moran | Method and system for transferring a computer session between devices |
US20040128546A1 (en) | 2002-12-31 | 2004-07-01 | International Business Machines Corporation | Method and system for attribute exchange in a heterogeneous federated environment |
US7610575B2 (en) | 2003-01-08 | 2009-10-27 | Consona Crm Inc. | System and method for the composition, generation, integration and execution of business processes over a network |
US7703128B2 (en) | 2003-02-13 | 2010-04-20 | Microsoft Corporation | Digital identity management |
US20060155993A1 (en) | 2003-02-21 | 2006-07-13 | Axel Busboon | Service provider anonymization in a single sign-on system |
US7577934B2 (en) | 2003-03-12 | 2009-08-18 | Microsoft Corporation | Framework for modeling and providing runtime behavior for business software applications |
US7337434B2 (en) | 2003-04-29 | 2008-02-26 | Sony Ericsson Mobile Communications Ab | Off-device class/resource loading methods, systems and computer program products for debugging a Java application in a Java micro device |
US20040250257A1 (en) | 2003-06-04 | 2004-12-09 | Oleg Koutyrine | System and method for generator state object validation |
EP1639734A4 (en) | 2003-06-06 | 2010-12-01 | Intellambda Systems Inc | OPTICAL NETWORK TOPOLOGY DATABASES AND OPTICAL NETWORK OPERATIONS |
US20070112574A1 (en) | 2003-08-05 | 2007-05-17 | Greene William S | System and method for use of mobile policy agents and local services, within a geographically distributed service grid, to provide greater security via local intelligence and life-cycle management for RFlD tagged items |
US7587667B2 (en) | 2003-09-04 | 2009-09-08 | Oracle International Corporation | Techniques for streaming validation-based XML processing directions |
US7430732B2 (en) | 2003-10-23 | 2008-09-30 | Microsoft Corporation | Design of application programming interfaces (APIs) |
CN100437551C (zh) | 2003-10-28 | 2008-11-26 | 联想(新加坡)私人有限公司 | 使多个用户设备自动登录的方法和设备 |
US7529825B1 (en) | 2003-12-02 | 2009-05-05 | Cisco Technology, Inc. | Server-side XML-based development environment for network device management applications |
US7647256B2 (en) | 2004-01-29 | 2010-01-12 | Novell, Inc. | Techniques for establishing and managing a distributed credential store |
US20050172261A1 (en) | 2004-01-30 | 2005-08-04 | Yuknewicz Paul J. | Architecture for creating a user interface using a data schema |
US7676785B2 (en) | 2004-02-13 | 2010-03-09 | Microsoft Corporation | Hosted application as a designer in an integrated development environment |
US7650594B2 (en) | 2004-05-27 | 2010-01-19 | National Instruments Corporation | Graphical program analyzer with framework for adding user-defined tests |
US7757207B2 (en) | 2004-08-20 | 2010-07-13 | Microsoft Corporation | Form skin and design time WYSIWYG for .net compact framework |
US7562358B2 (en) | 2004-10-04 | 2009-07-14 | United Parcel Service Of America, Inc. | Controlled deployment of software in a web-based architecture |
US7926027B2 (en) | 2004-10-19 | 2011-04-12 | Microsoft Corporation | Binding to business objects and web services |
US8458467B2 (en) | 2005-06-21 | 2013-06-04 | Cisco Technology, Inc. | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element |
US8732182B2 (en) | 2004-12-02 | 2014-05-20 | Desktopsites Inc. | System and method for launching a resource in a network |
US7886294B2 (en) | 2004-12-28 | 2011-02-08 | Sap Ag | Virtual machine monitoring |
US20060185004A1 (en) | 2005-02-11 | 2006-08-17 | Samsung Electronics Co., Ltd. | Method and system for single sign-on in a network |
US8972929B2 (en) | 2005-03-31 | 2015-03-03 | International Business Machines Corporation | Generic user input for GUI framework |
US7685430B1 (en) | 2005-06-17 | 2010-03-23 | Sun Microsystems, Inc. | Initial password security accentuated by triple encryption and hashed cache table management on the hosted site's server |
US7464297B2 (en) | 2005-06-23 | 2008-12-09 | Microsoft Corporation | System and method for testing software using data-driven test variations |
GB0514377D0 (en) | 2005-07-13 | 2005-08-17 | Kemshall Andrew | Password automation |
US8554846B2 (en) | 2005-09-27 | 2013-10-08 | Oracle International Corporation | System and method for providing a messaging kernel |
US7562087B2 (en) | 2005-09-30 | 2009-07-14 | Computer Associates Think, Inc. | Method and system for processing directory operations |
JP2007102778A (ja) | 2005-10-04 | 2007-04-19 | Forval Technology Inc | ユーザ認証システムおよびその方法 |
US7849447B1 (en) | 2005-11-21 | 2010-12-07 | Verizon Laboratories Inc. | Application testing and evaluation |
US7735068B2 (en) | 2005-12-01 | 2010-06-08 | Infosys Technologies Ltd. | Automated relationship traceability between software design artifacts |
US7779383B2 (en) | 2005-12-01 | 2010-08-17 | Sap Ag | Composition model and composition validation algorithm for ubiquitous computing applications |
US7707553B2 (en) | 2005-12-08 | 2010-04-27 | International Business Machines Corporation | Computer method and system for automatically creating tests for checking software |
US7730427B2 (en) | 2005-12-29 | 2010-06-01 | Sap Ag | Desktop management scheme |
US20070174290A1 (en) | 2006-01-19 | 2007-07-26 | International Business Machines Corporation | System and architecture for enterprise-scale, parallel data mining |
US8578282B2 (en) | 2006-03-15 | 2013-11-05 | Navisense | Visual toolkit for a virtual user interface |
US20070219956A1 (en) | 2006-03-16 | 2007-09-20 | Milton Michael L | Excel spreadsheet parsing to share cells, formulas, tables, etc. |
US7757177B1 (en) | 2006-03-21 | 2010-07-13 | Oracle America, Inc. | Virtual forms |
US7802245B2 (en) | 2006-04-27 | 2010-09-21 | Agere Systems Inc. | Methods and apparatus for performing in-service upgrade of software in network processor |
US7577909B2 (en) | 2006-05-16 | 2009-08-18 | Microsoft Corporation | Flexible management user interface from management models |
US8364968B2 (en) | 2006-05-19 | 2013-01-29 | Symantec Corporation | Dynamic web services systems and method for use of personal trusted devices and identity tokens |
JP2008027043A (ja) | 2006-07-19 | 2008-02-07 | Gaiax Co Ltd | ウェブサイト管理システム、ウェブサイト管理方法、ウェブサイト管理プログラムおよび該プログラムを記録した記録媒体 |
US20080077982A1 (en) | 2006-09-22 | 2008-03-27 | Bea Systems, Inc. | Credential vault encryption |
US8645973B2 (en) | 2006-09-22 | 2014-02-04 | Oracle International Corporation | Mobile applications |
US9183321B2 (en) | 2006-10-16 | 2015-11-10 | Oracle International Corporation | Managing compound XML documents in a repository |
US20080141138A1 (en) | 2006-12-06 | 2008-06-12 | Yahoo! Inc. | Apparatus and methods for providing a person's status |
US8930555B2 (en) | 2007-03-08 | 2015-01-06 | Microsoft Corporation | Extending functionality of web-based applications |
US8099766B1 (en) | 2007-03-26 | 2012-01-17 | Netapp, Inc. | Credential caching for clustered storage systems |
US7934191B2 (en) | 2007-04-10 | 2011-04-26 | Sap Portals IL | Method and modules for generating client-server applications |
US8739131B2 (en) | 2007-05-04 | 2014-05-27 | International Business Machines Corporation | Completing functional testing |
US8219970B2 (en) | 2007-05-08 | 2012-07-10 | Research In Motion Limited | XML push and remote execution of a wireless applications |
US8037135B2 (en) | 2007-06-29 | 2011-10-11 | Microsoft Corporation | Automatic distributed downloading |
US8417728B1 (en) | 2007-08-03 | 2013-04-09 | Adobe Systems Incorporated | User interfaces, methods, and systems for developing computer applications using artwork |
US20090064001A1 (en) | 2007-08-30 | 2009-03-05 | Nicole Summers Robbins | Personalizing Default Settings on a GUI |
US9268849B2 (en) | 2007-09-07 | 2016-02-23 | Alexander Siedlecki | Apparatus and methods for web marketing tools for digital archives—web portal advertising arts |
CN101399813B (zh) | 2007-09-24 | 2011-08-17 | 中国移动通信集团公司 | 身份联合方法 |
US7756038B2 (en) | 2007-09-27 | 2010-07-13 | Cisco Technology, Inc. | Service advertisement framework (SAF) in a communications network |
KR100953092B1 (ko) | 2007-11-06 | 2010-04-19 | 한국전자통신연구원 | Sso서비스 방법 및 시스템 |
US8539097B2 (en) | 2007-11-14 | 2013-09-17 | Oracle International Corporation | Intelligent message processing |
US9886524B1 (en) | 2007-11-28 | 2018-02-06 | Sterling Infosystems, Inc. | System and method for providing a report of generally available information |
US8825758B2 (en) | 2007-12-14 | 2014-09-02 | Microsoft Corporation | Collaborative authoring modes |
US11366676B2 (en) | 2008-01-14 | 2022-06-21 | Oracle International Corporation | Embedded user assistance for software applications |
WO2009110725A2 (ko) | 2008-03-04 | 2009-09-11 | 주식회사 코드에스이 | 3차원 응용프로그램 프레임워크 구조 및 이를 기반으로 하는 응용프로그램 구현 방법과, 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트 시스템 및 그 방법 |
US8452567B1 (en) | 2008-06-06 | 2013-05-28 | Keithley Instruments, Inc. | Test recipe distribution method and system |
WO2009148481A1 (en) | 2008-06-06 | 2009-12-10 | Sapient Corporation | Systems and methods for visual test authoring and automation |
US8166387B2 (en) | 2008-06-20 | 2012-04-24 | Microsoft Corporation | DataGrid user interface control with row details |
US8769553B2 (en) | 2008-07-18 | 2014-07-01 | Sybase, Inc. | Deploy anywhere framework for heterogeneous mobile application development |
WO2010022100A2 (en) | 2008-08-18 | 2010-02-25 | F5 Networks, Inc. | Upgrading network traffic management devices while maintaining availability |
US8417723B1 (en) | 2008-09-12 | 2013-04-09 | Salesforce.Com, Inc. | System, method and computer program product for enabling access to a resource of a multi-tenant on-demand database service utilizing a token |
US8959000B2 (en) | 2008-09-16 | 2015-02-17 | Verizon Patent And Licensing Inc. | Integrated testing systems and methods |
CN102217225B (zh) | 2008-10-03 | 2014-04-02 | 杰出网络公司 | 内容递送网络加密 |
US8353026B2 (en) | 2008-10-23 | 2013-01-08 | Dell Products L.P. | Credential security system |
US8245037B1 (en) | 2009-02-17 | 2012-08-14 | Amazon Technologies, Inc. | Encryption key management |
US8418150B2 (en) | 2009-04-03 | 2013-04-09 | Oracle International Corporation | Estimating impact of configuration changes |
CN102460393B (zh) | 2009-05-01 | 2014-05-07 | 思杰系统有限公司 | 用于在虚拟存储资源之间建立云桥的系统和方法 |
US20100281475A1 (en) | 2009-05-04 | 2010-11-04 | Mobile On Services, Inc. | System and method for mobile smartphone application development and delivery |
SG166028A1 (en) | 2009-05-04 | 2010-11-29 | Privylink Private Ltd | Methods of robust multi-factor authentication and authorization and systems thereof |
US20100286992A1 (en) | 2009-05-08 | 2010-11-11 | Microsoft Corporation | Integration of Third-Party Business Applications with Hosted Multi-Tenant Business Software System |
US8607189B2 (en) | 2009-05-18 | 2013-12-10 | National Instruments Corporation | Dynamic analysis of a graphical program in a browser |
US8863111B2 (en) | 2009-06-26 | 2014-10-14 | Oracle International Corporation | System and method for providing a production upgrade of components within a multiprotocol gateway |
US20110010394A1 (en) | 2009-07-08 | 2011-01-13 | International Business Machines Corporation | Client-specific data customization for shared databases |
US9003387B2 (en) | 2009-09-25 | 2015-04-07 | Fisher-Rosemount Systems, Inc. | Automated deployment of computer-specific software updates |
US8312367B2 (en) | 2009-10-30 | 2012-11-13 | Synopsys, Inc. | Technique for dynamically sizing columns in a table |
US9129052B2 (en) | 2009-12-03 | 2015-09-08 | International Business Machines Corporation | Metering resource usage in a cloud computing environment |
US9805322B2 (en) | 2010-06-24 | 2017-10-31 | Bmc Software, Inc. | Application blueprint and deployment model for dynamic business service management (BSM) |
US8473951B2 (en) | 2009-12-30 | 2013-06-25 | Bmc Software, Inc. | Method and system for traversing in reverse chronological order along a critical path of a plurality of jobs, and reducing time gaps between jobs until an estimated end time of the last job is less than or equal to a target end time |
CN102473097B (zh) | 2010-01-13 | 2015-06-17 | 塔塔咨询服务有限公司 | 利用模型驱动技术开发可配置可扩展的业务应用产品线的高效计算系统 |
US8627309B2 (en) | 2010-02-25 | 2014-01-07 | Microsoft Corporation | Automated deployment and servicing of distributed applications |
CN102170457A (zh) | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 向应用的多租户提供服务的方法和装置 |
US8655859B2 (en) | 2010-03-01 | 2014-02-18 | International Business Machines Corporation | Concurrency control for extraction, transform, load processes |
US8464063B2 (en) | 2010-03-10 | 2013-06-11 | Avaya Inc. | Trusted group of a plurality of devices with single sign on, secure authentication |
US8873401B2 (en) | 2010-03-16 | 2014-10-28 | Futurewei Technologies, Inc. | Service prioritization in link state controlled layer two networks |
US8631390B2 (en) | 2010-04-02 | 2014-01-14 | Apple Inc. | Archiving a build product |
US9448790B2 (en) | 2010-04-26 | 2016-09-20 | Pivotal Software, Inc. | Rapid updating of cloud applications |
US8977693B2 (en) | 2010-04-27 | 2015-03-10 | Mindware, Inc. | Browser based application development framework |
US8209491B2 (en) | 2010-04-27 | 2012-06-26 | Symantec Corporation | Techniques for directory server integration |
US20110302516A1 (en) | 2010-06-02 | 2011-12-08 | Oracle International Corporation | Mobile design patterns |
WO2011159842A2 (en) | 2010-06-15 | 2011-12-22 | Nimbula, Inc. | Virtual computing infrastructure |
US20110314159A1 (en) | 2010-06-22 | 2011-12-22 | Iwatchlife | System and method of local resource delivery |
US9160710B2 (en) | 2010-06-25 | 2015-10-13 | Salesforce.Com, Inc. | Methods and systems for context-based application firewalls |
EP2589004A1 (en) | 2010-06-30 | 2013-05-08 | Telefonaktiebolaget LM Ericsson (publ) | Method for selectively distributing information in a computer or communication network, and physical entities therefor |
US9560036B2 (en) | 2010-07-08 | 2017-01-31 | International Business Machines Corporation | Cross-protocol federated single sign-on (F-SSO) for cloud enablement |
JP4803311B2 (ja) | 2010-08-04 | 2011-10-26 | 富士ゼロックス株式会社 | 認証装置、認証方法及びプログラム |
US11386510B2 (en) | 2010-08-05 | 2022-07-12 | Thomson Reuters Enterprise Centre Gmbh | Method and system for integrating web-based systems with local document processing applications |
US20140310243A1 (en) | 2010-08-16 | 2014-10-16 | Mr. Steven James McGee | Heart beacon cycle |
US8812627B2 (en) | 2010-08-20 | 2014-08-19 | Adobe Systems Incorporated | System and method for installation and management of cloud-independent multi-tenant applications |
US20120090021A1 (en) | 2010-10-12 | 2012-04-12 | Ansca, Inc. | Platform Specific Application Building |
US8949939B2 (en) | 2010-10-13 | 2015-02-03 | Salesforce.Com, Inc. | Methods and systems for provisioning access to customer organization data in a multi-tenant system |
US20120151479A1 (en) | 2010-12-10 | 2012-06-14 | Salesforce.Com, Inc. | Horizontal splitting of tasks within a homogenous pool of virtual machines |
US9699168B2 (en) * | 2010-12-13 | 2017-07-04 | International Business Machines Corporation | Method and system for authenticating a rich client to a web or cloud application |
CN102567436B (zh) | 2010-12-22 | 2017-04-12 | 塔塔咨询服务有限公司 | 多租户系统 |
US8559642B2 (en) | 2010-12-29 | 2013-10-15 | Secureall Corporation | Cryptographic communication with mobile devices |
US8773251B2 (en) | 2011-02-10 | 2014-07-08 | Sitting Man, Llc | Methods, systems, and computer program products for managing operation of an automotive vehicle |
US9413750B2 (en) | 2011-02-11 | 2016-08-09 | Oracle International Corporation | Facilitating single sign-on (SSO) across multiple browser instance |
US20170243168A1 (en) | 2011-02-17 | 2017-08-24 | Congruent Solutions Pvt. Ltd. | Computer implemented system and method for automatically aggregating, analyzing, and identifying retirement plans for plurality of users |
US20120215582A1 (en) | 2011-02-23 | 2012-08-23 | International Business Machines Corporation | Executing workflows based on service level agreements |
US9047414B1 (en) | 2011-03-15 | 2015-06-02 | Symantec Corporation | Method and apparatus for generating automated test case scripts from natural language test cases |
US9118657B1 (en) | 2011-03-15 | 2015-08-25 | Avior, Inc. | Extending secure single sign on to legacy applications |
US9268545B2 (en) | 2011-03-31 | 2016-02-23 | Intel Corporation | Connecting mobile devices, internet-connected hosts, and cloud services |
US9223632B2 (en) | 2011-05-20 | 2015-12-29 | Microsoft Technology Licensing, Llc | Cross-cloud management and troubleshooting |
US9037723B2 (en) | 2011-05-31 | 2015-05-19 | Red Hat, Inc. | Triggering workload movement based on policy stack having multiple selectable inputs |
US20120317172A1 (en) | 2011-06-13 | 2012-12-13 | International Business Machines Corporation | Mobile web app infrastructure |
US20120323553A1 (en) | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Mobile Emulator Integration |
US8732665B2 (en) | 2011-06-28 | 2014-05-20 | Microsoft Corporation | Deploying environments for testing by providing instantaneous availability of prebuilt environments |
US20130019015A1 (en) | 2011-07-12 | 2013-01-17 | International Business Machines Corporation | Application Resource Manager over a Cloud |
TWI476586B (zh) | 2011-07-13 | 2015-03-11 | Inst Information Industry | 以雲端技術為基礎之測試系統、方法以及其電腦可讀取記錄媒體 |
US8745641B1 (en) | 2011-07-14 | 2014-06-03 | Google Inc. | Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface |
JP5744656B2 (ja) | 2011-07-15 | 2015-07-08 | キヤノン株式会社 | シングルサインオンを提供するシステムおよびその制御方法、サービス提供装置、中継装置、並びにプログラム |
US8898472B2 (en) | 2011-07-18 | 2014-11-25 | Echoworx Corporation | Mechanism and method for managing credentials on IOS based operating system |
EP2737742A4 (en) | 2011-07-27 | 2015-01-28 | Seven Networks Inc | AUTOMATIC PRODUCTION AND DISTRIBUTION OF GUIDELINES INFORMATION ON MOBILE MOBILE TRANSPORT IN A WIRELESS NETWORK |
US8615528B2 (en) | 2011-07-28 | 2013-12-24 | International Business Machines Corporation | Cloud database sharing |
US9105046B1 (en) | 2011-08-05 | 2015-08-11 | Google Inc. | Constraining ad service based on app content |
US8984605B2 (en) * | 2011-08-23 | 2015-03-17 | Zixcorp Systems, Inc. | Multi-factor authentication |
US8612599B2 (en) | 2011-09-07 | 2013-12-17 | Accenture Global Services Limited | Cloud service monitoring system |
US9525900B2 (en) | 2011-09-15 | 2016-12-20 | Google Inc. | Video management system |
US9270459B2 (en) | 2011-09-20 | 2016-02-23 | Cloudbyte, Inc. | Techniques for achieving tenant data confidentiality from cloud service provider administrators |
US9043886B2 (en) | 2011-09-29 | 2015-05-26 | Oracle International Corporation | Relying party platform/framework for access management infrastructures |
US9578014B2 (en) | 2011-09-29 | 2017-02-21 | Oracle International Corporation | Service profile-specific token attributes and resource server token attribute overriding |
JP5357340B1 (ja) | 2011-11-04 | 2013-12-04 | 株式会社メディアシーク | アプリケーションソフトウェアを生成するシステム |
WO2013071087A1 (en) | 2011-11-09 | 2013-05-16 | Unisys Corporation | Single sign on for cloud |
US9805054B2 (en) | 2011-11-14 | 2017-10-31 | Panzura, Inc. | Managing a global namespace for a distributed filesystem |
EP2783284B1 (en) | 2011-11-22 | 2019-03-13 | Solano Labs, Inc. | System of distributed software quality improvement |
US9483491B2 (en) | 2011-11-29 | 2016-11-01 | Egnyte, Inc. | Flexible permission management framework for cloud attached file systems |
US9413538B2 (en) | 2011-12-12 | 2016-08-09 | Microsoft Technology Licensing, Llc | Cryptographic certification of secure hosted execution environments |
US8799641B1 (en) | 2011-12-16 | 2014-08-05 | Amazon Technologies, Inc. | Secure proxying using network intermediaries |
US8824274B1 (en) | 2011-12-29 | 2014-09-02 | Juniper Networks, Inc. | Scheduled network layer programming within a multi-topology computer network |
US9286040B2 (en) | 2012-01-18 | 2016-03-15 | Mobilesmith, Inc. | Software builder |
US9164997B2 (en) | 2012-01-19 | 2015-10-20 | Microsoft Technology Licensing, Llc | Recognizing cloud content |
US20140053126A1 (en) | 2012-02-13 | 2014-02-20 | Mark A. Watson | Integrated mobile application development platform |
JP5773910B2 (ja) | 2012-02-29 | 2015-09-02 | 三菱電機株式会社 | アクセス制御装置及びアクセス制御方法及びプログラム |
US10067940B2 (en) | 2012-03-02 | 2018-09-04 | International Business Machines Corporation | Enhanced storage quota management for cloud computing systems |
US20130254262A1 (en) | 2012-03-26 | 2013-09-26 | Quickmobile Inc. | System and method for a user to dynamically update a mobile application from a generic or first application within a class of applications to create a specific or second application with said class of applications |
US8997038B2 (en) | 2012-03-30 | 2015-03-31 | Anypresence, Inc. | Systems and methods for building and deploying mobile applications |
JP5844001B2 (ja) | 2012-04-01 | 2016-01-13 | オーセンティファイ・インクAuthentify Inc. | マルチパーティシステムにおける安全な認証 |
EP2850552B1 (en) | 2012-05-16 | 2019-05-08 | Okta, Inc. | Systems and methods for providing and managing distributed enclaves |
WO2013186070A1 (en) | 2012-06-12 | 2013-12-19 | Telefonica, S.A. | A method and a system for providing access to protected resources via an oauth protocol |
US8782632B1 (en) | 2012-06-18 | 2014-07-15 | Tellabs Operations, Inc. | Methods and apparatus for performing in-service software upgrade for a network device using system virtualization |
US8954732B1 (en) | 2012-06-27 | 2015-02-10 | Juniper Networks, Inc. | Authenticating third-party programs for platforms |
US20140007205A1 (en) | 2012-06-28 | 2014-01-02 | Bytemobile, Inc. | No-Click Log-In Access to User's Web Account Using a Mobile Device |
US9628493B2 (en) | 2012-07-03 | 2017-04-18 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for managing permission sets and validating user assignments |
US9009463B2 (en) | 2012-07-09 | 2015-04-14 | Verizon Patent And Licensing Inc. | Secure delivery of trust credentials |
US8978114B1 (en) | 2012-07-15 | 2015-03-10 | Identropy, Inc. | Recommendation engine for unified identity management across internal and shared computing applications |
US8813028B2 (en) | 2012-07-19 | 2014-08-19 | Arshad Farooqi | Mobile application creation system |
US8983987B2 (en) | 2012-07-25 | 2015-03-17 | Cisco Technology, Inc. | System and method for a service metering framework in a network environment |
US9350536B2 (en) | 2012-08-16 | 2016-05-24 | Digicert, Inc. | Cloud key management system |
US20140053056A1 (en) | 2012-08-16 | 2014-02-20 | Qualcomm Incorporated | Pre-processing of scripts in web browsers |
US8949776B2 (en) | 2012-08-23 | 2015-02-03 | Sap Se | Gateway consumption framework |
WO2014039895A1 (en) | 2012-09-07 | 2014-03-13 | Oracle International Corporation | System and method for supporting message pre-processing in a distributed data grid cluster |
US9621435B2 (en) | 2012-09-07 | 2017-04-11 | Oracle International Corporation | Declarative and extensible model for provisioning of cloud based services |
US9069979B2 (en) | 2012-09-07 | 2015-06-30 | Oracle International Corporation | LDAP-based multi-tenant in-cloud identity management system |
EP2893683A1 (en) | 2012-09-07 | 2015-07-15 | Oracle International Corporation | Ldap-based multi-customer in-cloud identity management system |
US8769651B2 (en) | 2012-09-19 | 2014-07-01 | Secureauth Corporation | Mobile multifactor single-sign-on authentication |
US8938622B2 (en) | 2012-09-21 | 2015-01-20 | Sap Ag | Encryption in the cloud with customer controlled keys |
US9369456B2 (en) | 2012-09-21 | 2016-06-14 | Intuit Inc. | Single sign-on in multi-tenant environments |
US8566414B2 (en) | 2012-10-12 | 2013-10-22 | Freedomone Mobile, Inc. | Systems and methods for subscription management in a multi-channel context aware communication environment |
US20140109072A1 (en) | 2012-10-16 | 2014-04-17 | Citrix Systems, Inc. | Application wrapping for application management framework |
CN103780635B (zh) | 2012-10-17 | 2017-08-18 | 百度在线网络技术(北京)有限公司 | 云环境中的分布式异步任务队列执行系统和方法 |
US10395215B2 (en) | 2012-10-19 | 2019-08-27 | International Business Machines Corporation | Interpretation of statistical results |
US9612070B2 (en) | 2013-11-22 | 2017-04-04 | Larry P. Hatch | Cartridge loading device |
CN104813614B (zh) | 2012-12-03 | 2018-02-09 | 慧与发展有限责任合伙企业 | 用于iaas的管理的异步框架 |
TWI490716B (zh) | 2012-12-07 | 2015-07-01 | Ind Tech Res Inst | 多租戶應用程序的開發方法、資料存取方法與系統 |
US20140173454A1 (en) | 2012-12-18 | 2014-06-19 | Logic Studio, S.A. | Method and system for designing, deploying and executing transactional multi-platform mobile applications |
US8955081B2 (en) | 2012-12-27 | 2015-02-10 | Motorola Solutions, Inc. | Method and apparatus for single sign-on collaboraton among mobile devices |
US9374369B2 (en) * | 2012-12-28 | 2016-06-21 | Lookout, Inc. | Multi-factor authentication and comprehensive login system for client-server networks |
US8893230B2 (en) | 2013-02-22 | 2014-11-18 | Duo Security, Inc. | System and method for proxying federated authentication protocols |
US9292502B2 (en) | 2013-02-28 | 2016-03-22 | Web Computing AS | Modular platform for web applications and systems |
US9158518B2 (en) | 2013-03-11 | 2015-10-13 | Blackberry Limited | Collaborative application development environment using a connected device |
US9608958B2 (en) | 2013-03-12 | 2017-03-28 | Oracle International Corporation | Lightweight directory access protocol (LDAP) join search mechanism |
US20140280931A1 (en) | 2013-03-13 | 2014-09-18 | Meetrix Communications, Inc. | Controlling access to enterprise software |
US9467395B2 (en) | 2013-03-13 | 2016-10-11 | Vmware, Inc. | Cloud computing nodes for aggregating cloud computing resources from multiple sources |
US9047404B1 (en) | 2013-03-13 | 2015-06-02 | Amazon Technologies, Inc. | Bridge to connect an extended development capability device to a target device |
US9027087B2 (en) | 2013-03-14 | 2015-05-05 | Rackspace Us, Inc. | Method and system for identity-based authentication of virtual machines |
US8769644B1 (en) | 2013-03-15 | 2014-07-01 | Rightscale, Inc. | Systems and methods for establishing cloud-based instances with independent permissions |
US9489372B2 (en) | 2013-03-15 | 2016-11-08 | Apple Inc. | Web-based spell checker |
US20140282398A1 (en) | 2013-03-15 | 2014-09-18 | Wolters Kluwer U.S. Corporation | Platform for developing and distributing mobile applications |
US9158534B2 (en) | 2013-03-15 | 2015-10-13 | Wolters Kluwer United States Inc. | Smart endpoint architecture |
US20140358816A1 (en) | 2013-03-16 | 2014-12-04 | Curtis Kinsey | Unified Digitization of Company Essentials with Remote Accessibility |
KR20140122072A (ko) | 2013-04-09 | 2014-10-17 | 삼성전자주식회사 | 전자 장치에서 어플리케이션을 업데이트하기 위한 장치 및 방법 |
US9268798B2 (en) | 2013-04-26 | 2016-02-23 | Oracle International Corporation | Support for cloud-based multi-tenant environments using connection labeling |
US9411973B2 (en) | 2013-05-02 | 2016-08-09 | International Business Machines Corporation | Secure isolation of tenant resources in a multi-tenant storage system using a security gateway |
US9264436B2 (en) | 2013-05-08 | 2016-02-16 | International Business Machines Corporation | Policy-based automated consent |
TR201810890T4 (tr) | 2013-06-20 | 2018-08-27 | Censornet As | Kimlik hırsızlığına veya kopya istismarına karşı koruyan yöntem ve sistem. |
US9116766B2 (en) | 2013-07-31 | 2015-08-25 | Sap Se | Extensible applications using a mobile application framework |
KR101471589B1 (ko) | 2013-08-22 | 2014-12-10 | (주)잉카엔트웍스 | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 |
CN103442049B (zh) | 2013-08-22 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种面向构件的混合型云操作系统体系结构及其通信方法 |
US9432457B2 (en) | 2013-08-30 | 2016-08-30 | Citrix Systems, Inc. | Redirecting local storage to cloud storage |
US9772987B2 (en) | 2013-09-20 | 2017-09-26 | Oracle International Corporation | Model-driven desktop integration framework |
US9544293B2 (en) | 2013-09-20 | 2017-01-10 | Oracle International Corporation | Global unified session identifier across multiple data centers |
US9223684B2 (en) | 2013-09-25 | 2015-12-29 | Microsoft Technology Licensing, Llc | Online application testing across browser environments |
US10104082B2 (en) | 2013-11-06 | 2018-10-16 | William P. Jones | Aggregated information access and control using a personal unifying taxonomy |
WO2015069234A1 (en) | 2013-11-06 | 2015-05-14 | Intel Corporation | Unifying interface for cloud content sharing services |
US9152812B2 (en) | 2013-12-03 | 2015-10-06 | Paypal, Inc. | Sensitive data protection during user interface automation testing systems and methods |
US9246840B2 (en) | 2013-12-13 | 2016-01-26 | International Business Machines Corporation | Dynamically move heterogeneous cloud resources based on workload analysis |
US10063654B2 (en) | 2013-12-13 | 2018-08-28 | Oracle International Corporation | Systems and methods for contextual and cross application threat detection and prediction in cloud applications |
US9569634B1 (en) | 2013-12-16 | 2017-02-14 | Amazon Technologies, Inc. | Fine-grained structured data store access using federated identity management |
US9614745B2 (en) | 2014-01-09 | 2017-04-04 | Citrix Systems, Inc. | Systems and methods for cloud-based probing and diagnostics |
JP6364496B2 (ja) | 2014-02-07 | 2018-07-25 | オラクル・インターナショナル・コーポレイション | モバイルクラウドサービスアーキテクチャ |
JP6256116B2 (ja) | 2014-03-10 | 2018-01-10 | 富士通株式会社 | 通信端末、セキュアログイン方法、及びプログラム |
US9729539B1 (en) | 2014-03-28 | 2017-08-08 | Pulse Secure, Llc | Network access session detection to provide single-sign on (SSO) functionality for a network access control device |
CA2981789A1 (en) | 2014-04-04 | 2015-10-08 | David Goldschlag | Method for authentication and assuring compliance of devices accessing external services |
JP2015204087A (ja) | 2014-04-16 | 2015-11-16 | キヤノン株式会社 | 管理システム及び管理方法 |
US10924554B2 (en) | 2014-05-05 | 2021-02-16 | Citrix Systems, Inc. | Application customization |
US20150332596A1 (en) | 2014-05-15 | 2015-11-19 | Jones International, Ltd. | Integrated learning system |
US9306939B2 (en) | 2014-05-30 | 2016-04-05 | Oracle International Corporation | Authorization token cache system and method |
US10057354B2 (en) | 2014-05-30 | 2018-08-21 | Genesys Telecommunications Laboratories, Inc. | System and method for single logout of applications |
US9848277B2 (en) | 2014-06-03 | 2017-12-19 | Samsung Electronics Co., Ltd. | High-speed application for installation on mobile devices for permitting remote configuration of such mobile devices |
JP2016009299A (ja) | 2014-06-24 | 2016-01-18 | キヤノン株式会社 | シングルサインオンシステム、端末装置、制御方法およびコンピュータプログラム |
US9948700B2 (en) | 2014-07-01 | 2018-04-17 | Oracle International Corporation | ADFDI support for custom attribute properties |
US10127206B2 (en) | 2014-07-16 | 2018-11-13 | Oracle International Corporation | Dynamic column groups in excel |
US10909552B2 (en) | 2014-08-15 | 2021-02-02 | International Business Machines Corporation | Mobile application analytics framework |
US9769122B2 (en) | 2014-08-28 | 2017-09-19 | Facebook, Inc. | Anonymous single sign-on to third-party systems |
WO2016043994A1 (en) | 2014-09-15 | 2016-03-24 | Okta, Inc. | Detection and repair of broken single sign-on integration |
US9514031B2 (en) | 2014-09-22 | 2016-12-06 | International Business Machines Corporation | Auto-deployment and testing of system application test cases in remote server environments |
US10664495B2 (en) | 2014-09-25 | 2020-05-26 | Oracle International Corporation | System and method for supporting data grid snapshot and federation |
US11036933B2 (en) | 2014-09-25 | 2021-06-15 | Oracle International Corporation | User interface component autowiring |
US10290133B2 (en) | 2014-09-26 | 2019-05-14 | Oracle International Corporation | High fidelity interactive screenshots for mobile applications |
US9826045B2 (en) | 2014-09-26 | 2017-11-21 | Oracle International Corporation | Efficient means to test server generated applications on mobile device |
US10073679B2 (en) | 2014-09-26 | 2018-09-11 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
US9858174B2 (en) | 2014-09-26 | 2018-01-02 | Oracle International Corporation | Updatable native mobile application for testing new features |
US9851968B2 (en) | 2014-09-26 | 2017-12-26 | Oracle International Corporation | High performant iOS template based application build system |
WO2016049626A1 (en) | 2014-09-26 | 2016-03-31 | Oracle International Corporation | Efficient and intuitive databinding for mobile applications |
US10757170B2 (en) | 2014-10-13 | 2020-08-25 | Vmware, Inc. | Cross-cloud namespace management for multi-tenant environments |
US10152211B2 (en) | 2014-11-11 | 2018-12-11 | Amazon Technologies, Inc. | Application delivery agents on virtual desktop instances |
US9749428B2 (en) | 2014-10-21 | 2017-08-29 | Twilio, Inc. | System and method for providing a network discovery service platform |
US10230571B2 (en) | 2014-10-30 | 2019-03-12 | Equinix, Inc. | Microservice-based application development framework |
US10783565B2 (en) | 2014-10-30 | 2020-09-22 | Ebay Inc. | Method, manufacture, and system of transferring authenticated sessions and states between electronic devices |
JP6476760B2 (ja) | 2014-10-31 | 2019-03-06 | 株式会社リコー | 情報処理システム、情報処理装置、ログイン方法、及びプログラム |
US9917746B2 (en) | 2014-11-04 | 2018-03-13 | Futurewei Technologies, Inc. | Adaptive allocation of server resources |
US9185063B1 (en) | 2014-11-08 | 2015-11-10 | Ashish Kumar | System and method for sharing and synchronization of information within a specified information context among users with a mobile electronic device |
US9419958B2 (en) | 2014-11-25 | 2016-08-16 | Oracle International Corporation | Multi-tenancy support in a cloud based data grid |
US9760343B2 (en) | 2014-11-28 | 2017-09-12 | Sap Se | Application builder based on metadata |
US10193837B2 (en) | 2014-12-12 | 2019-01-29 | At&T Intellectual Property I, L.P. | Presence-based communications |
US10230600B2 (en) | 2014-12-19 | 2019-03-12 | Oracle International Corporation | Performance analysis and bottleneck detection in service-oriented applications |
US9456014B2 (en) | 2014-12-23 | 2016-09-27 | Teradata Us, Inc. | Dynamic workload balancing for real-time stream data analytics |
US10198348B2 (en) | 2015-08-13 | 2019-02-05 | Spirent Communications, Inc. | Method to configure monitoring thresholds using output of load or resource loadings |
US11100477B1 (en) | 2015-01-20 | 2021-08-24 | Pollen, Inc. | Electronic capital marketplace systems and methods |
US10313463B2 (en) | 2015-02-19 | 2019-06-04 | Akamai Technologies, Inc. | Systems and methods for avoiding server push of objects already cached at a client |
US9961037B2 (en) | 2015-03-10 | 2018-05-01 | Oracle International Corporation | Bi-directional multi-channel social media brokering |
US10089384B2 (en) | 2015-03-12 | 2018-10-02 | Ca, Inc. | Machine learning-derived universal connector |
US9772822B2 (en) | 2015-03-16 | 2017-09-26 | Microsoft Technology Licensing, Llc | Visualization framework for customizable types in a development environment |
US9395893B1 (en) | 2015-03-23 | 2016-07-19 | Dropbox, Inc. | Shared folder backed integrated workspaces |
US10454938B2 (en) | 2015-05-28 | 2019-10-22 | International Business Machines Corporation | Dynamic permission roles for cloud based applications |
US10484385B2 (en) | 2015-06-04 | 2019-11-19 | Sap Se | Accessing an application through application clients and web browsers |
US10148493B1 (en) | 2015-06-08 | 2018-12-04 | Infoblox Inc. | API gateway for network policy and configuration management with public cloud |
US20160364231A1 (en) | 2015-06-10 | 2016-12-15 | Telefonaktiebolaget L M Ericsson (Publ) | Method for minimal service impact during software upgrade in network elements (nes) |
US9648007B1 (en) | 2015-06-17 | 2017-05-09 | Amazon Technologies, Inc. | Token-based storage service |
US9996321B2 (en) | 2015-06-23 | 2018-06-12 | Microsoft Technology Licensing, Llc | Multi-tenant, tenant-specific applications |
US10013364B1 (en) | 2015-06-26 | 2018-07-03 | EMC IP Holding Company LLC | Securing data using per tenant encryption keys |
US9851953B2 (en) | 2015-06-29 | 2017-12-26 | Oracle International Corporation | Cloud based editor for generation of interpreted artifacts for mobile runtime |
US10048948B2 (en) | 2015-07-06 | 2018-08-14 | Oracle International Corporation | Optimized retrieval of custom string resources |
US11102313B2 (en) | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US9959100B2 (en) | 2015-08-12 | 2018-05-01 | Oracle International Corporation | Efficient storage and transfer of iOS binary files |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10013668B2 (en) | 2015-08-14 | 2018-07-03 | Oracle International Corporation | Secure storage of enterprise certificates for cloud services |
US10277582B2 (en) | 2015-08-27 | 2019-04-30 | Microsoft Technology Licensing, Llc | Application service architecture |
US10360086B2 (en) | 2015-08-28 | 2019-07-23 | Vmware, Inc. | Fair decentralized throttling in distributed cloud-based systems |
TWI624783B (zh) | 2015-09-17 | 2018-05-21 | 長茂科技股份有限公司 | 整合動態連結功能函式的行動裝置應用程式之建置系統及方法 |
WO2017070412A1 (en) | 2015-10-23 | 2017-04-27 | Oracle International Corporation | Password-less authentication for access management |
US10749854B2 (en) | 2015-11-12 | 2020-08-18 | Microsoft Technology Licensing, Llc | Single sign-on identity management between local and remote systems |
US9735961B2 (en) | 2015-11-16 | 2017-08-15 | Verizon Patent And Licensing Inc. | Managing key rotations with multiple key managers |
CN105515759B (zh) | 2015-11-27 | 2018-11-09 | 国网信息通信产业集团有限公司 | 一种微服务注册方法及系统 |
US20170187785A1 (en) | 2015-12-23 | 2017-06-29 | Hewlett Packard Enterprise Development Lp | Microservice with decoupled user interface |
US10298589B2 (en) | 2016-01-27 | 2019-05-21 | International Business Machines Corporation | User abstracted RBAC in a multi tenant environment |
US10339153B2 (en) | 2016-04-12 | 2019-07-02 | International Business Machines Corporation | Uniformly accessing federated user registry topologies |
US9838377B1 (en) | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US10469487B1 (en) * | 2016-05-31 | 2019-11-05 | Wells Fargo Bank, N.A. | Biometric electronic signature authenticated key exchange token |
US10242073B2 (en) | 2016-07-27 | 2019-03-26 | Sap Se | Analytics mediation for microservice architectures |
US11349931B2 (en) | 2016-08-31 | 2022-05-31 | Sap Se | Session management for collaboration sessions |
US10484382B2 (en) | 2016-08-31 | 2019-11-19 | Oracle International Corporation | Data management for a multi-tenant identity cloud service |
US10594684B2 (en) | 2016-09-14 | 2020-03-17 | Oracle International Corporation | Generating derived credentials for a multi-tenant identity cloud service |
US10346443B2 (en) | 2017-05-09 | 2019-07-09 | Entit Software Llc | Managing services instances |
US10348735B2 (en) | 2017-09-01 | 2019-07-09 | Atlassian Pty Ltd | Systems and methods for accessing cloud resources from a local development environment |
US10834482B2 (en) | 2017-12-05 | 2020-11-10 | The Government of the United States of America, as represented by the Secretary of Homeland Security | Systems and methods for integrating first responder technologies |
US10416996B1 (en) | 2018-05-29 | 2019-09-17 | Nutanix, Inc. | System and method for translating affliction programming interfaces for cloud platforms |
US20190386984A1 (en) * | 2018-06-14 | 2019-12-19 | Paypal, Inc. | Two-factor authentication through ultrasonic audio transmissions |
US11012444B2 (en) | 2018-06-25 | 2021-05-18 | Oracle International Corporation | Declarative third party identity provider integration for a multi-tenant identity cloud service |
US10764273B2 (en) | 2018-06-28 | 2020-09-01 | Oracle International Corporation | Session synchronization across multiple devices in an identity cloud service |
US11122049B2 (en) | 2019-02-22 | 2021-09-14 | Visa International Service Association | Attribute database system and method |
-
2019
- 2019-05-30 US US16/426,186 patent/US11651357B2/en active Active
-
2020
- 2020-01-09 JP JP2020565420A patent/JP7438984B2/ja active Active
- 2020-01-09 WO PCT/US2020/012873 patent/WO2020159687A1/en unknown
- 2020-01-09 CN CN202080002876.3A patent/CN112154639B/zh active Active
- 2020-01-09 EP EP20704648.3A patent/EP3918766A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7697920B1 (en) * | 2006-05-05 | 2010-04-13 | Boojum Mobile | System and method for providing authentication and authorization utilizing a personal wireless communication device |
CN101534196A (zh) * | 2008-03-12 | 2009-09-16 | 因特伟特公司 | 用于安全调用rest api的方法和装置 |
CN103563294A (zh) * | 2011-06-30 | 2014-02-05 | 国际商业机器公司 | 用于云计算平台安全性的认证和授权方法 |
CN106063308A (zh) * | 2014-03-17 | 2016-10-26 | 瑞典爱立信有限公司 | 基于用户标识符的装置、身份和活动管理系统 |
Also Published As
Publication number | Publication date |
---|---|
US20200250664A1 (en) | 2020-08-06 |
WO2020159687A1 (en) | 2020-08-06 |
JP7438984B2 (ja) | 2024-02-27 |
US11651357B2 (en) | 2023-05-16 |
JP2022518638A (ja) | 2022-03-16 |
EP3918766A1 (en) | 2021-12-08 |
CN112154639A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112154639B (zh) | 在没有用户足迹的情况下的多因素认证 | |
CN110603802B (zh) | 多租户身份云服务的跨区域信任 | |
US11463488B2 (en) | Dynamic client registration for an identity cloud service | |
CN108701182B (zh) | 多租户身份云服务的数据管理 | |
US11023555B2 (en) | Cookie based state propagation for a multi-tenant identity cloud service | |
CN107852417B (zh) | 多租户身份和数据安全性管理云服务 | |
CN109565511B (zh) | 用于多租户身份和数据安全管理云服务的租户和服务管理 | |
US10848543B2 (en) | Security tokens for a multi-tenant identity and data security management cloud service | |
CN110622484B (zh) | 多租户身份云服务的本地写入 | |
CN110557975B (zh) | 用于多租户身份云服务的租户数据比较 | |
CN112913208B (zh) | 具有内部部署的认证集成和桥接器高可用性的多租户身份云服务 | |
US10200358B2 (en) | Microservices based multi-tenant identity and data security management cloud service | |
US10511589B2 (en) | Single logout functionality for a multi-tenant identity and data security management cloud service | |
US10846390B2 (en) | Single sign-on functionality for a multi-tenant identity and data security management cloud service | |
CN109314704B (zh) | 用于多租户身份和数据安全管理云服务的单点登录和单点注销功能 | |
US10218705B2 (en) | Multi-tenant identity and data security management cloud service | |
US10425386B2 (en) | Policy enforcement point for a multi-tenant identity and data security management cloud service | |
CN112088373A (zh) | 用于多租户身份云服务的声明性第三方身份提供者集成 | |
CN112805699A (zh) | 具有内部部署的认证集成的多租户身份云服务 | |
US11611548B2 (en) | Bulk multifactor authentication enrollment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |