KR20170096116A - 멀티-테넌트 컴퓨팅 시스템의 보안 및 허가 아키텍처 - Google Patents
멀티-테넌트 컴퓨팅 시스템의 보안 및 허가 아키텍처 Download PDFInfo
- Publication number
- KR20170096116A KR20170096116A KR1020177016411A KR20177016411A KR20170096116A KR 20170096116 A KR20170096116 A KR 20170096116A KR 1020177016411 A KR1020177016411 A KR 1020177016411A KR 20177016411 A KR20177016411 A KR 20177016411A KR 20170096116 A KR20170096116 A KR 20170096116A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- authorized
- task
- request
- signature
- Prior art date
Links
Images
Classifications
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- 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/305—Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
-
- 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/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/104—Grouping of entities
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- 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/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
사용자가 타겟 머신에서 실행할 요청된 명령과 같은 작업 요청을 입력하면, 관리 시스템은 요청을 수신하고 별도의 인증 및 허가 시스템을 사용하여 이를 검증한다. 인증 및 허가 시스템은 요청의 서명을 검증하고 서명하여 승인된 워크 플로우 패키지를 생성한다. 승인된 워크 플로우 패키지가 타겟 머신으로 전송된다.
Description
컴퓨터 시스템은 현재 널리 사용되고 있다. 이러한 컴퓨터 시스템의 일부는 멀티-테넌트 서비스가 여러 다른 테넌트에게 서비스를 제공하는 멀티-테넌트 환경에서 구축된다. 각각의 테넌트는 별도의 조직에 대응할 수 있다.
멀티-테넌트 시스템에 의해 제공되는 서비스의 레벨은 광범위하게 다양할 수 있다. 예를 들어, 그 범위가 인프라의 아이템이 서비스 제공자에 의해 관리되고 다른 모든 아이템은 개별 테넌트에 의해 관리되는 서비스로서의 인프라(infrastructure as a service, IaaS)에서, 테넌트들이 사용 중인 애플리케이션들조차도 서비스 제공자에 의해 수행 및 관리되는 서비스로서의 소프트웨어(software as a service, SaaS)에 이를 수 있다.
이러한 시스템은 보안과 관련하여 문제점을 보여줄 수 있다. 서비스 제공자가 서비스를 제공하는 각 조직은 서비스 제공자가 적절한 서비스를 제공할 수 있도록 서비스 제공자가 조직의 데이터에 대한 충분한 액세스 권한을 갖기를 원한다. 그러나 조직은 또한 조직의 데이터가 서비스 제공자의 관리 시스템에 대한 무분별한 공격에 의해 손상되지 않도록 보안이 제공되기를 원한다.
이러한 문제점을 해결하기 위한 현재의 접근 방법 중 일부는 시스템 내에 고정된, 지속적인 관리 허가를 갖는 관리 직원에 대한 백그라운드 검사를 수행하는 것을 포함한다. 또 다른 접근 방법은 특정관리 직원만이 시스템의 특정 부분에 액세스할 수 있도록 액세스를 분리하는 것이었다.
보안 문제는 서비스 제공자가 다국적 기반으로 멀티-테넌트 서비스를 제공하는 경우 악화될 수 있다. 일부 조직은 자국에 거주하는 관리 직원만이 그들의 정보에 액세스할 수 있다고 주장할 수 있다. 또한, 보안 정책 및 허가의 모든 시행이 해당 국가 또는 관할 구역 내에 있는 시스템에 의해 실행되어야 한다고 주장할 수 있다.
상기 논의는 일반적인 배경 정보를 위해 제공될 뿐이며, 청구 대상의 범위를 정하는 것을 돕는데 이용되고자 함이 아니다.
사용자가 요청된 명령과 같이, 타겟 머신 상에서 수행될 작업 요청을 입력하면, 관리 시스템은 그 요청을 수신하고 별도의 인증 및 허가 시스템(authentication and permission system)으로 그것을 확인한다. 인증 및 허가 시스템은 요청의 서명을 검증하고 서명하여, 승인된 워크 플로우 패키지를 생성한다. 승인된 워크 플로우 패키지가 타겟 머신으로 전송된다. 본 요약은 아래의 상세한 설명에서 추가로 설명되는 일련의 개념을 단순화된 형태로 소개하기 위해 제공된다. 본 요약은 청구 대상의 주요 특징이나 필수 특징을 식별하기 위한 것이 아니며, 청구 대상의 범위를 결정하는데 도움을 주기 위한 것이 아니다. 청구 대상은 배경 기술에서 언급된 임의의 또는 모든 단점을 해결하는 구현에만 국한되지 않는다.
도 1은 전반적인 인가 아키텍처(authorization architecture)의 일례를 도시한다.
도 1a는 인증 및 허가 아키텍처의 일례의 블록도이다.
도 1b는 도 1a의 일부를 보다 상세하게 도시하는 블록도이다.
도 2a-2d(본원에서 집합적으로 도 2로 지칭됨)는 도 1에 도시된 아키텍처의 전체 동작의 일례를 나타내는 흐름도를 도시한다.
도 3a-3c(본원에서 집합적으로 도 3으로 지칭됨)는 도 1에 도시된 아키텍처의 동작 예에 대한 보다 상세한 흐름도를 도시한다.
도 3d는 워크 플로우(또는 명령 요청)를 실행 환경에 매핑하는 매핑 생성 시스템의 일례의 블록도이다.
도 3e는 도 3d에 도시된 시스템의 동작의 일례를 도시하는 흐름도이다.
도 4a-4c(본원에서 집합적으로 도 4로 지칭됨)는 공개 키 인프라가 사용되는, 도 1에 도시된 아키텍처의 다른 동작 예를 도시한다.
도 4d-4g는 도 1a 및 도 1b에 도시된 다수의 아이템을 보다 상세하게 도시하는 블록도이다.
도 5는 명령 또는 워크 플로우를 수행할 때, 용량 머신에서 인가 작업자 컴포넌트(authorization worker component)의 동작의 일례를 나타내는 흐름도이다.
도 6a 및 도 6b(본원에서 집합적으로 도 6으로 지칭됨)은 태스크-기반 액세스 유효성 검증(task-based access validation)의 수행 시에 용량 머신 상의 인가 작업자 컴포넌트의 동작의 일례를 나타내는 흐름도이다.
도 7은 클라우드 컴퓨팅 아키텍처에 배치된, 도 1에 도시된 아키텍처의 일례를 도시하는 블록도이다.
도 8-10은 이전 도면들에서 논의된 아키텍처들에서 사용될 수 있는 모바일 장치들의 다양한 예를 도시한다.
도 11은 이전 도면들에서 설명된 아키텍처들의 다양한 부분들에서 사용될 수 있는 컴퓨팅 환경의 일례의 블록도이다.
도 1a는 인증 및 허가 아키텍처의 일례의 블록도이다.
도 1b는 도 1a의 일부를 보다 상세하게 도시하는 블록도이다.
도 2a-2d(본원에서 집합적으로 도 2로 지칭됨)는 도 1에 도시된 아키텍처의 전체 동작의 일례를 나타내는 흐름도를 도시한다.
도 3a-3c(본원에서 집합적으로 도 3으로 지칭됨)는 도 1에 도시된 아키텍처의 동작 예에 대한 보다 상세한 흐름도를 도시한다.
도 3d는 워크 플로우(또는 명령 요청)를 실행 환경에 매핑하는 매핑 생성 시스템의 일례의 블록도이다.
도 3e는 도 3d에 도시된 시스템의 동작의 일례를 도시하는 흐름도이다.
도 4a-4c(본원에서 집합적으로 도 4로 지칭됨)는 공개 키 인프라가 사용되는, 도 1에 도시된 아키텍처의 다른 동작 예를 도시한다.
도 4d-4g는 도 1a 및 도 1b에 도시된 다수의 아이템을 보다 상세하게 도시하는 블록도이다.
도 5는 명령 또는 워크 플로우를 수행할 때, 용량 머신에서 인가 작업자 컴포넌트(authorization worker component)의 동작의 일례를 나타내는 흐름도이다.
도 6a 및 도 6b(본원에서 집합적으로 도 6으로 지칭됨)은 태스크-기반 액세스 유효성 검증(task-based access validation)의 수행 시에 용량 머신 상의 인가 작업자 컴포넌트의 동작의 일례를 나타내는 흐름도이다.
도 7은 클라우드 컴퓨팅 아키텍처에 배치된, 도 1에 도시된 아키텍처의 일례를 도시하는 블록도이다.
도 8-10은 이전 도면들에서 논의된 아키텍처들에서 사용될 수 있는 모바일 장치들의 다양한 예를 도시한다.
도 11은 이전 도면들에서 설명된 아키텍처들의 다양한 부분들에서 사용될 수 있는 컴퓨팅 환경의 일례의 블록도이다.
도 1은 전반적인 인가 아키텍처(80)의 일례를 도시한다. 아키텍처(80)는 복수의 용량 인스턴스(82-84)가 각각 복수의 상이한 테넌트 용량(86)을 제공하는 멀티-테넌트 시스템일 수 있음을 나타낸다. 각각의 용량 인스턴스(82-84)는 하나 이상의 최종 사용자 시스템(90)을 통해 상이한 테넌트들에 대응하는 하나 이상의 최종 사용자들(88)에 의해 액세스될 수 있다. 용량 인스턴스들(82-84)은 관리 인스턴스(92)에 의해 예시적으로 관리된다. 관리 인스턴스는 허가 게이트웨이 인스턴스(permission gateway instance, 94)와 상호 작용하고, 허가 게이트웨이 인스턴스(94) 자체는 다른 허가 게이트웨이 인스턴스들(96)과 상호 작용할 수 있다. 도 1에 도시된 아키텍처(80)에서, 관리자(97)는 아키텍처(80)에 로그인하여 관리 인스턴스(92) 또는 용량 인스턴스(82-84)(또는 개별 테넌트 인스턴스(86))에서 다양한 작업 또는 명령을 수행하도록 인증될 수 있다. 이렇게 하면, 허가 게이트웨이 인스턴스(94-96)는 시간 위주 및 작업 위주 허가를 부여하므로 허가를 개별 데이터 형식까지도 부여할 수 있다.
각각의 개별 용량 인스턴스(86) 상의 인증 컴포넌트는 클레임-기반의 시행을 수행한다. 즉, 지정된 관리자가 개별 테넌트 용량 인스턴스(86)의 특정 머신 상에서 작업을 수행하도록 인가되었는지 여부에 대한 최종 검사를 수행한다. 관리자는 허가 게이트웨이 인스턴스(94-96)로부터 서명 및 보안된 클레임을 얻는다. 관리자는 이 클레임을 사용하여 다양한 용량 인스턴스(82-84) 및 관리 인스턴스(92)에서 작업을 수행한다. 이는 관리자에게 작업-기반 권한이 부여되는 방식으로 수행된다. 작업-기반 권한은 주어진 명령에서 작업을 수행하는데 필요한 최소 권한 환경(least privileged environment)일 수 있다. 이에 대해서는 아래에서 상세하게 설명한다.
또한, 허가 게이트웨이 인스턴스는 실질적으로 임의의 워크 플로우, 심지어는 제 3 자의 워크 플로우를 실행하기 위한 승인을 지원하는데 사용될 수 있다는 것을 알 수 있다. 예를 들어, 하나 이상의 제 3 자 관리 인스턴스는 허가 게이트웨이 인스턴스(94-96)을 사용하여 하나 이상의 제 3 자 용량 인스턴스(82-84)에서 워크 플로우를 수행할 수 있는 허가를 얻을 수 있다. 관리 인스턴스(92), 허가 게이트웨이 인스턴스들(94-96) 및 용량 인스턴스들(82-84) 모두가 동일한 당사자에 의해 지원되거나 실행될 필요는 없다. 한 당사자가 허가 게이트웨이 인스턴스(94-96)를 실행하고 지원할 수 있는 한편, 다른 당사자는 관리 인스턴스(92) 및 용량 인스턴스(82-84)를 실행하고 지원할 수 있다. 또는 모든 인스턴스를 별개의 당사자들이 실행하고 지원할 수 있다. 이들 및 다른 아키텍처가 본원에서 고려된다.
도 1a는 인증 및 허가 아키텍처(100)의 일례의 보다 상세한 블록도이다. 아키텍처(100)는 예시적으로 멀티-테넌트 작업 부하 시스템(102), 인증 및 허가 시스템(104), 및 하나 이상의 클라이언트 시스템(106)을 포함한다. 도 1b는 멀티-테넌트 작업 부하 시스템(102)의 아이템을 보다 상세하게 도시한다. 도 1a 및 도 1b는 이제 서로 관련하여 설명될 것이다.
클라이언트 시스템(106)은 관리자(112)의 상호 작용을 위해 사용자 입력 메커니즘(110)을 갖는 사용자 인터페이스 디스플레이(108)를 생성하는 것으로 도시되어 있다. 일례에서, 사용자(112)는, 사용자(112)가 멀티-테넌트 작업 부하 시스템(102) 내에서 서비스 동작을 수행할 수 있도록 클라이언트 시스템(106)을 제어 및 조작하기 위해 사용자 입력 메커니즘(110)과 상호 작용하는 (온-콜 엔지니어 또는 다른 관리자와 같은) 관리자이다. 멀티-테넌트 작업 부하 시스템(102) 자체는 예시적으로 하나 이상의 테넌트 조직(114)에 멀티-테넌트 서비스를 제공한다. 테넌트 조직(114) 자체는 예시적으로 멀티-테넌트 작업 부하 시스템(102)에 의해 제공된 정보를 사용하는 최종 사용자(88)를 갖는다.
도 1a 및 도 1b에 도시된 예에서, 멀티-테넌트 작업 부하 시스템(102)은 예시적으로 사용자(112)가 시스템(102) 내에서 관리 동작을 수행할 수 있게 하는 멀티-테넌트 관리 시스템(116)(도 1의 관리 인스턴스(92)일 수 있음)을 포함한다. 멀티-테넌트 관리 시스템(116) 자체는 하나 이상의 관리 머신(118-120)을 포함한다. 각각의 관리 머신은 예시적으로 하나 이상의 프로세서(119), 인증 작업자 컴포넌트(authentication worker component, 122), 로컬 정책(123)을 포함하고, 기타 아이템(124)을 포함할 수 있다. 또한, 멀티-테넌트 관리 시스템(116)은 예시적으로 인증 프론트-엔드 시스템(126), 명령 요청 큐 시스템(CRQS)(128), 요청 큐(130), 로컬 정책(131), 승인된 요청 큐(132), 하나 이상의 서버(133)를 포함할 수 있고, 기타 아이템(134)을 포함할 수 있다. 명령 요청 큐 시스템(128) 자체는 예시적으로 서명 검증 컴포넌트(138)를 포함한다.
멀티-테넌트 작업 부하 시스템(102)은 또한 예시적으로 (도 1의 용량 인스턴스(82-84 또는 86)일 수 있는) 하나 이상의 멀티-테넌트 용량 시스템(140)을 포함한다. (도 1의 인스턴스(92 및 82-84)에 의해 도시된 바와 같이) 멀티-테넌트 관리 시스템(116)이 멀티-테넌트 용량 시스템(140)과 분리될 수 있음을 또한 유의할 것이다. 이들은 단지 예를 들기 위해 도 1a 및 도 1b에 함께 도시되어 있다. 각각의 멀티-테넌트 용량 시스템(140)은, 그들 자신이 인증 작업자 컴포넌트(146), 로컬 정책(145), 프로세서(147)를 예시적으로 포함하고 기타 아이템(148)을 포함할 수 있는 하나 이상의 용량 머신(142-144)을 예시적으로 포함한다. 또한, 멀티-테넌트 용량 시스템(140)은 인증 프론트-엔드 시스템(150), 일련의 로컬 정책(152), 서버(153)를 예시적으로 포함하며, 기타 아이템(154)을 포함할 수 있다.
인증 및 허가 시스템(104)은 예시적으로 아키텍처(100) 내의 태스크-기반 허가의 승인을 제어한다. 도 1a에 도시된 예시에서, 이는 예시적으로 신뢰, 인증 및 인가 시스템(trust, authentication and authorization system, 156), 역할 요청 및 승인 시스템(role requesting and approval system, 158), 비밀 저장소(160), 액세스 관리 시스템(162), 역할-기반 액세스 제어 및 인터페이스 시스템(164), 신원 관리 시스템(identity management system, 166), 인증 프론트-엔드(authentication front-end, 168), 프로세서 및/또는 서버(170)를 포함하고, 기타 아이템(172)을 포함할 수 있다. 비밀 저장소(160)는 예시적으로 패스워드(174) 및 다른 인증 정보(176)를 포함한다. 액세스 관리 시스템(162)은 사용자 액세스 계정(178) 및 서버 액세스 계정을 포함할 수 있다. 인증 프론트-엔드(168)는 예시적으로 자격 토큰 서비스(capability token service, 182)를 포함하고, 기타 아이템(184)을 포함할 수 있다.
또한, 도 1a에 도시된 예에서, 관리 클라이언트 시스템(106)은 예시적으로 인증 프론트-엔드(186), 원격 액세스 시스템(188), 데이터 저장소(190), 프로세서 및/또는 서버(192) 및 사용자 인터페이스 컴포넌트(194)를 포함한다. 이는 기타 아이템(196)도 포함할 수 있다.
도 1a에 도시된 예에서, 네트워크(198)를 통해 통신하는 다양한 컴포넌트들이 도시되어 있다. 네트워크(198)는 광역 통신망, 근거리 통신망일 수 있고, 또는 다수의 다른 네트워크들을 포함할 수 있음을 알 것이다. 아주 다양한 네트워크 구성을 포함할 수 있다.
아키텍처(100)의 전체 동작을 보다 상세하게 설명하기 전에, 먼저 아키텍처(100)의 일부 아이템들에 대한 간략한 개요가 제공될 것이다. 먼저 클라이언트 시스템(106)을 참조하면, 인증 프론트 엔드(186)는 예시적으로 사용자(112)가 아키텍처(100) 내에서 인증될 수 있게 하는 인증 및 허가 통신 및 동작을 처리한다. 원격 액세스 시스템(188)은 예시적으로 사용자(112)가 멀티-테넌트 작업 부하 시스템(102) 내의 다양한 머신에 원격으로 액세스하여 관리 동작을 수행하도록 허용한다. 사용자 인터페이스 컴포넌트(194)는 예시적으로 사용자 입력 메커니즘(110)을 갖는 사용자 인터페이스 디스플레이(108)를 생성하고, 메커니즘(110)과의 사용자 상호 작용을 검출한다.
멀티-테넌트 관리 시스템(116) 및 멀티-테넌트 용량 시스템(140)에서, 각각의 인증 작업자 컴포넌트(122 및 146)는 (명령 또는 워크 플로우와 같은) 작업 아이템을 수신하고 그 작업 아이템을 위한 태스크-기반(예를 들어, 최소 권한의) 실행 환경을 식별한다. 컴포넌트들(122 및 146)은 대응하는 태스크-기반 실행 환경에서 작업 아이템을 예시적으로 실행한다. 컴포넌트들(122 및 146)은 멀티-테넌트 작업 부하 시스템(102)의 각 노드에서 실행되는 프로세스로서 구현될 수 있다. 또한, 일례로, 인증 작업자 컴포넌트들(122 및 146)은 안전한 방식으로 자신의 각각의 머신에 설치될 수 있다. 예를 들어, 컴포넌트들(122 및 146)은 네트워크를 통해 수신될 수 있고, 사전 부팅 실행 환경이 컴포넌트들(122 및 146)을 구현하는 어셈블리를 부팅하도록 유지될 수 있다. 다른 예에서, 각각의 머신의 FPGA(field programmable gate array)가 컴포넌트들(122 및 146)을 안전하게 설치하고 인증하는데 사용될 수 있는 보안 코드, 또는 검증 코드를 포함할 수 있다. 어셈블리는 FPGA의 검증 코드와 마찬가지로 서명될 수 있다. 따라서 머신을 인벤토리에 넣고 인벤토리에서 가져오면서, 보안이 검증될 수 있다. 물론, 이는 단지 하나의 예시에 불과하다.
멀티-테넌트 관리 시스템(116)의 인증 프론트-엔드 시스템(126)은 아키텍처(100) 내의 다른 아이템들과의 인증 통신을 예시적으로 처리한다. 참조하기 쉽도록, 시스템(126)은 본원에서 관리 인증 프론트-엔드(management authentication front-end, MAFE) 시스템(126)로도 지칭된다. 요청 큐(130)는 명령 요청을 수신하고, 명령 요청 큐 시스템(command request queue system, CRQS)(128)은 서명 검증 컴포넌트(138)를 사용하여 요청된 명령의 다양한 서명을 검증한다. 또한, 이것은 인증 및 허가 시스템(104)과 통신하여 요청된 명령이 승인되었는지 여부를 결정한다. 승인되었다면, 승인된 요청 큐(132)에 그것을 배치한다.
멀티-테넌트 용량 시스템(140)에서, 인증 프론트-엔드 시스템(150)은 아키텍처(100)의 다른 컴포넌트들과의 인증 통신을 예시적으로 처리한다. 로컬 정책들(145 및 152)은 인증 프론트-엔드(150) 및 인증 작업자 컴포넌트(146)에 의해 이용되어, 사용자(112)가 실제로 멀티-테넌트 용량 시스템(140) 내의 타겟 머신 상에서 요청된 명령을 수행하도록 인가되었는지의 최종 검증을 할 수 있다.
인증 및 허가 시스템(104)에서, 신뢰, 인증 및 인가 시스템(156)은 발행자가 서명한 자격 티켓(capability ticket)을 제공할 뿐만 아니라 사용자 및 서비스를 식별하는데 사용되는 인증서에 기초한 모델을 이용한다. 여기에는 인증서 기술을 배포하기 위한 공개 키 인프라가 포함될 수 있다. 이에 대해서는 아래에서 상세하게 설명한다.
역할 요청 및 승인 시스템(158)은 역할 요청 및 워크 플로우의 승인을 수행하기 위한 메커니즘을 제공한다. 또한 예시적으로 역할에 대한 멤버쉽을 요청, 승인 및 제거할 수 있는 강제 엔진이 필요에 따라 포함된다. 액세스 관리 시스템(162)은 예시적으로 인증 및 허가 시스템(104)에 의해 관리되는 임의의 멀티-테넌트 작업 부하 시스템(102)(또는 데이터 센터)에 대한 액세스를 획득해야 하는 임의의 사용자에 대한 사용자 액세스 계정(178) 및 서버 액세스 계정(180)를 저장한다. 신원 관리 시스템(166)은 액세스 관리 시스템(162)에서 사용자 액세스 계정(178) 및 서버 액세스 계정(180)을 채우는 피드의 구성을 가능하게 하는 기능을 제공한다. 이는 권한 설정(provisioning, 예를 들어, 생성 및 업데이트), 그룹 멤버쉽 및 계정 속성 등과 같은 사용자 계정에 대한 자격(entitlement) 등과 같은 신원-관련 태스크를 수행한다. 이러한 자격을 이용하여 서비스 내에서 액세스 제어를 수행할 수 있다. 역할-기반 액세스 제어 및 인터페이스 시스템(164)은 예시적으로 역할 멤버쉽 및 허가 질의를 작성, 저장 및 검증하기 위한 인터페이스를 제공한다. 이것은 역할 요청 및 승인 시스템(158)과 통합되어, 역할 멤버쉽이 요청 및 승인을 요구하게 하는 기능을 제공하고, 역할 멤버쉽을 특정 시간으로 제한하기 위한 기능을 제공할 수 있다. 이는 단지 예를 들기 위해 별도로 도시된다.
비밀 저장소(160)는 패스워드(174) 및 아키텍처(100) 내의 사용자(112)를 인증하는데 사용되는 다른 유형의 비밀 정보를 예시적으로 저장한다. 인증 프론트-엔드(168)는 예시적으로 자격 토큰 서비스(182)를 포함한다. 이는 예시적으로 사용자 및 서비스가 인증 및 인가를 위해 자격 토큰을 요청할 수 있는 기능을 제공하며, 아래에서 보다 상세하게 설명될 것이다.
본 설명의 목적을 위해, 아키텍처(100)의 아이템들 사이에 네트워크 토폴로지가 존재한다. 일례에서, 멀티-테넌트 용량 시스템(140)의 인증 프론트-엔드 시스템(150)은 멀티-테넌트 관리 시스템(116)의 인증 프론트-엔드 시스템으로부터 수신된 정보를 신뢰한다. MAFE 시스템(126)은 다시 인증 및 허가 시스템(104)의 인증 프론트-엔드(168)로부터 수신된 정보를 신뢰한다. 일례에서, 이러한 신뢰 관계는 전이적이다. 따라서, 인증 프론트-엔드 시스템(150)은 MAFE 시스템(126)에서의 그 신뢰를 통해 인증 프론트-엔드(168)를 신뢰한다.
다양한 컴포넌트들을 보다 상세하게 설명하기 전에, 이해를 향상시키기 위해 개요로서 런타임 시나리오의 일례가 먼저 설명될 것이다. 또한, 도 2a-도 2d(본원에서 집합적으로 도 2로 지칭됨)는 사용자(112)가 멀티-테넌트 용량 시스템(140)에서 타겟 머신에 대한 관리 동작을 수행하기를 원하는 런타임 시나리오의 일례를 나타내는 흐름도를 도시한다. 본 예를 들기 위해, 사용자(112)는 용량 머신(142)에 대한 관리 동작을 수행하기를 원한다고 가정할 것이다.
일례에서, 클라이언트 시스템(106) 상의 사용자 인터페이스 컴포넌트(194)는 먼저 사용자가 인증 환경(예를 들어, 도 1에 도시된 인증 아키텍처(100))에 액세스하고자 함을 나타내는 사용자 상호 작용 또는 입력을 검출한다. 이것은 블록(200)에 의해 표시된다. 인증 환경에 액세스하는 사용자 입력을 검출하는 것은 특히 스마트 카드 인증을 실시하고, 개인 식별 번호(예를 들어, PIN)를 입력하는 것을 포함할 수 있다. 클라이언트 시스템(106)은 이에 응답하여 클라이언트 인증 프론트-엔드(186)를 클라이언트(106)에 로딩한다. 이것은 동작을 수행하기 위해 사용자(112)를 인증 및 인가하는데 사용되는 클라이언트 콘솔 애플리케이션의 형태로 또는 다른 방식으로 로딩될 수 있다. 이것은 블록(202)에 의해 표시된다.
원격 액세스 시스템(188)은 예시적으로 사용자(112)가 타겟 머신(142) 상에서 수행하기를 원하는 명령 또는 동작을 나타내는 명령 입력을 제공할 수 있게 하는 사용자 입력 메커니즘을 갖는 사용자 인터페이스 디스플레이를 생성한다. 그런 다음 그 사용자 입력 메커니즘과의 사용자 상호 작용을 검출한다. 사용자 상호 작용은 예시적으로 사용자가 수행을 요구하는 특정 명령을 식별한다. 사용자 명령 입력을 수신하는 것은 도 2의 블록(204)에 의해 표시된다.
인증 프론트-엔드(186)는 예시적으로 요구된 명령을 서명하고 이를 멀티-테넌트 관리 시스템(116)의 MAFE(126)에 전송한다. 클라이언트(106)로부터 MAFE 시스템(126)으로의 명령 요청의 서명 및 송신은 도 2의 블럭(206)에 의해 표시된다. MAFE 시스템(126)은 예시적으로 요청을 수행하기 위해 사용자(112)가 (사용자의 관리자로부터 승인과 같은) 수동 승인을 필요로 하는지 여부를 결정한다. 이것은 블록(208)에 의해 표시된다. 필요로 하지 않다면, 처리는 후술되는 블록(230)으로 넘어간다.
그러나, 블록(208)에서, MAFE 시스템(126)이 사용자(112)가 수동 승인을 필요로 한다고 결정하면, 클라이언트 시스템(106)의 인증 프론트-엔드(186)에 이것을 나타내는 코드를 반환한다. 이것은 블록(210)에 의해 표시된다. 또한, 코드는 예시적으로 요청을 승인해야 하는 특정 승인자를 식별할 것이다. 이것은 블록(212)에 의해 표시된다. 이는 기타 아이템들도 포함할 수 있으며, 이는 블록(214)에 의해 표시된다.
클라이언트 시스템(106)은 승인 요청 사용자 입력 메커니즘을 사용자(112)에게 예시적으로 디스플레이한다. 디스플레이는 예시적으로 사용자(112)가 자신의 관리자(또는 다른 승인자)로부터 요청된 명령을 수행하기 위한 승인을 필요로 함을 나타내며, 승인 프로세스를 시작하기 위해 사용자가 작동할 수 있는 사용자 입력 메커니즘을 포함할 것이다. 승인 요청 사용자 입력 메커니즘을 클라이언트(106)에서 디스플레이하는 것은 도 2의 블록(216)에 의해 표시된다. 다음으로 사용자 인터페이스 컴포넌트(194)는 사용자(112)가 승인 프로세스를 시작하기를 원함을 나타내는 사용자 입력 메커니즘과의 사용자 상호 작용(예를 들어, 작동)을 검출한다. 이것은 도 2의 블록(218)에 의해 표시된다.
이에 응답하여, 클라이언트 시스템(106)은 예시적으로 식별된 승인자에게 승인 요청을 전송한다. 예를 들어, 요청을 승인하기 위해, 승인자에 의해 작동될 수 있는 사용자 입력 메커니즘과 함께 승인자에게 이메일을 보낼 수 있다. 승인 요청을 전송하는 것은 도 2의 블록(220)에 의해 표시된다. 승인자(예를 들어, 관리자)가 요청을 승인하는 사용자 입력 메커니즘과 상호 작용할 때, 클라이언트 시스템(106)에 통지가 전송되어 사용자(112)에게 요청된 명령을 수행하도록 승인되었음을 통지한다. 승인을 수신하고 사용자에게 승인을 통지하는 것은 블록(222)에 의해 표시된다. 승인되었으므로, 사용자로의 통지 자체는 사용자가 명령을 수행하기 위한 요청을 다시 시작하도록 작동될 수 있는 사용자 입력 메커니즘을 자체적으로 포함할 수 있다. 이러한 작동기로 통지를 디스플레이하는 것은 블록(224)에 의해 표시된다. 통지는 다른 방식으로도 수행될 수 있으며, 이는 블록(226)에 의해 표시된다.
그런 다음 사용자 인터페이스 컴포넌트(194)는 사용자가 명령을 수행하기를 원한다는 것을 표시하는, 사용자 입력 메커니즘과의 사용자 상호 작용을 검출한다. 이것은 블록(227)에 의해 표시된다.
다음으로 클라이언트 시스템(106) 내의 인증 프론트-엔드(186)는 클라이언트 시스템(106)으로부터 MAFE 시스템(126)으로 명령을 수행하라는 요청을 전송한다. 이는 도 2의 블록(228)에 의해 표시된다. MAFE 시스템(126)은 다시 인증 및 허가 시스템(104)(및 예시적으로는 신뢰, 인증 및 인가 시스템(156))을 호출하여 사용자가 타겟 머신 상에서 요청된 명령을 수행할 권한을 가지고 있는지를 검증하고, 또한 사용자가 사용자 관리자(해당되는 경우)로부터 승인을 받았는지도 검증한다. 이는 블록(230)에 의해 표시된다. 신뢰, 인증 및 인가 시스템(156)은 이를 검증하고 MAFE 시스템(126)에 검증을 반환한다. 이는 도 2의 블록(232)에 의해 표시된다.
일단 신뢰, 인증 및 인가 시스템(156)으로부터 인증이 수신되면, MAFE 시스템(126)은 명령 요청을 서명하고 이를 명령 요청 큐 시스템(CRQS)(128)에 의한 액세스를 위해 큐(130)에 배치한다. CRQS(128)는 큐(130)로부터 명령 요청을 검색하고 서명 검증 컴포넌트(138)를 사용하여 MAFE 시스템(126)의 서명을 검증한다. 이는 도 2의 블록(234)에 의해 표시된다.
그런 다음 CRQS(128)는 승인을 위해 인증 및 허가 시스템(104)에 명령 요청을 전송한다. 인증 프론트-엔드(168)(및 특히 자격 토큰 서비스(182))는 명령 요청에 대한 자격 토큰 또는 승인 티켓을 생성한다. 이는 명령 요청에 서명하고 명령 요청 및 그것의 승인 티켓을 멀티-테넌트 관리 시스템(116) 내의 승인된 요청 큐(132)에 배치한다. 승인을 위해 명령 요청을 시스템(104)에 전송하는 것은 도 2의 블록(236)에 의해 표시되며, 승인된 요청 큐(132)에 명령 요청을 승인, 서명 및 배치하는 것은 블록(238)에 표시된다.
그 다음, CRQS(128)는 승인된 요청 큐(132)로부터 승인된 명령 요청을 순서대로 빼낸다. 일단 승인된 명령 요청이 큐(132)로부터 빼내지면, 서명 검증 컴포넌트(138)는 승인된 명령 요청에 대해 인증 및 허가 시스템(104)의 서명을 검증한다. 이것은 블록(240)에 의해 표시된다. 그 다음에 명령 요청을 서명하여 멀티-테넌트 용량 시스템(140)의 타겟 머신(142)에 전송한다. 이것은 블록(242)에 의해 표시된다.
인증 프론트-엔드 시스템(150)은 클라이언트(106), 명령 요청 큐 시스템(128) 및 인증 및 허가 시스템(104)의 서명을 검증하고, 명령 요청을 인증 작업자 컴포넌트(146)로 전송한다. 이는 블록(244)에 의해 표시된다. 다음으로 인증 작업자 컴포넌트(146)는 로컬 정책들(145)에 액세스하고, 인증 및 허가 시스템(104)이 이 특정 자원에 대해 이 명령 요청을 수행하기 위한 이런 액세스를 승인하도록 인가되었는지 여부를 검증한다. 이는 블록(246)에 의해 표시된다. 이것이 확인되면, 컴포넌트(146)는 이 특정 명령 요청을 타겟 머신(142) 상의 태스크-기반(예를 들어, 최소 권한) 액세스 격리 컨텍스트(isolation context, 또는 최소 권한 실행 환경)에 매핑하는 로컬 정책(145)의 매핑에 액세스한다. 이는 블록(248)에 의해 표시된다. 다음으로 인증 작업자 컴포넌트(146)는 타겟 머신(142) 상의 태스크-기반 액세스 격리 컨텍스트에서 명령을 시작한다. 이는 블록 (250)에 의해 표시된다. 그런 다음 실행된 명령의 결과를 클라이언트 시스템(106)에 반환한다. 이는 블록(254)에 의해 표시된다.
하나의 예에서, 각각의 멀티-테넌트 용량 시스템(140), 멀티-테넌트 관리 시스템(116) 및 인증 및 허가 시스템(104)이 복수 개가 존재할 수 있고, 이들은 지리적으로 서로 다른 곳에 위치할 수 있다. 이들은 다른 시스템에 대한 자신의 위치를 식별하는 식별자를 가질 수 있다. 각 시스템에 의해 구현된 정책은 다양한 인증 및 허가 생성 시에 어떤 지리적인 위치에서 어떤 시스템이 사용될 것인지를 나타낼 수 있다. 또한 각 시스템에는 인증 및 허가 부여 시에 이용될 다양한 정책을 수신하기 위해 플러그인이 있을 수 있다. 따라서 서로 다른 시스템은 예시적으로 그들의 위치에 관계없이 원활하게 서로 작동한다.
일부 예에서, 아키텍처(100)는 티켓(또는 토큰)에 기초하여 작동하는 컴퓨터 네트워크 인증 프로토콜을 사용할 수 있다. 이러한 토큰은 비보안 네트워크를 통해 통신하는 노드들이 공개 키 인프라 없이도 안전한 방법으로 서로의 신원을 증명할 수 있게 한다. 이는 클라이언트-서버 아키텍처에서 사용할 수 있으며 상호 인증을 제공한다. 클라이언트와 서버는 서로의 신원을 확인한다. 신뢰하는 제 3자를 사용하며 공개 키 암호화를 선택적으로 포함할 수 있다. 따라서, 클라이언트 시스템(106)은 이를 이용하여 시스템(102 및 104)에 대해 인증할 수 있다. 도 3a-3c(본원에서 집합적으로 도 3으로 지칭됨)는 멀티-테넌트 관리 시스템(116)에서 타겟 머신(예를 들어, 머신(118))에 대한 명령을 실행할 때 이러한 유형의 인증을 사용하는 아키텍처(100)의 동작의 일례를 나타내는 흐름도를 도시한다.
도 3에서 논의된 예에서, 사용자(112)는 먼저 사용자가 인증 프론트-엔드(186)를 시작하기를 원하고 있음을 나타내는 입력을 제공한다. 이것은 클라이언트 콘솔로서 또는 다른 방식으로 시작될 수 있다. 이것은 블록(260)에 의해 표시된다. 예를 들어, 일례에서, 사용자는 온-콜 엔지니어(또는 OCE)로서 시스템에 로그인하기를 원할 수 있다. 이것은 블록(262)에 의해 표시된다. 물론, 사용자는 다른 방식으로 인증 프론트-엔드(186)를 시작하기를 원함을 나타내는 입력을 제공할 수 있으며, 이는 블록(264)에 의해 표시된다.
다음으로 사용자는 인증 및 허가 시스템(104)에 대해 인증한다. 이는 블록(266)에 의해 표시된다. 인증 및 허가 시스템(104)은 본원에서 AP 시스템(104)으로 지칭될 수 있다. 일례로서, 인증 프론트-엔드(186)는 AP 시스템(104)과 이중 인증(two-factor authentication)을 시행한다. 예를 들어, 블록(268)에 의해 표시된 스마트 카드 인증, 블록(270)에 의해 표시된 계정 패스워드 인증, 또는 블록(272)에 의해 표시된 기타 인증을 시행할 수 있다. 사용자가 로그인하면, 사용자는 멀티-테넌트 관리 시스템(116) 내의 타겟 머신(예를 들어, 관리 머신(118))에 대한 액세스 요청(예를 들어, 명령 및 대응하는 파라미터)을 제출할 수 있다. 이는 블록(274)에 의해 표시된다. 사용자는 예시적으로 인증 프론트-엔드(186)를 형성하는 클라이언트 콘솔에서 실행되는 스크립트를 통해 이를 수행할 수 있다. 이것은 블록(276)에 의해 표시된다. 사용자는 다른 방식으로도 명령을 제출할 수 있고, 이는 블록(278)에 의해 표시된다.
이에 응답하여, 사용자가 MAFE 시스템(126)에 대해 인증된다. 이것은 도 3의 흐름도의 블록(280)에 의해 표시된다. 일례에서, AP 시스템(104)은 멀티-테넌트 관리 시스템(116)에 대한 사용자를 인증한다. 이는 아주 다양한 방법으로 행해질 수 있다. 일례로, 이는 비보안 네트워크(198)를 통해 통신하는 시스템들(104 및 116)이 그들의 신원을 서로 안전한 방식으로 증명할 수 있도록 티켓에 기초하여 동작하는 컴퓨터 네트워크 인증 프로토콜을 사용하여 행해질 수 있다. 이런 예시에서, 클라이언트 시스템(106) 및 멀티-테넌트 관리 시스템(116)은 신뢰하는 제 3 자로서 AP 시스템(104)을 사용하여 서로의 신원을 검증한다.
일단 인증이 완료되면, MAFE 시스템(126)은 사용자(112)에 의해 요청된 명령을 인증 프론트-엔드(168) 및, 일례로, 자격 토큰 서비스(182)에 전달한다. 이것은 도 3의 블록(282)에 의해 표시된다.
자격 토큰 서비스(182)는 예시적으로 명령 요청이 인가되었는지 여부를 결정한다. 이는 블록(284)에 의해 표시된다. 예를 들어, 이는 역할-기반 액세스 제어 및 인터페이스 시스템(164)에 액세스함으로써 그렇게 할 수 있다. 이는 블록(286)에 의해 표시된다. 즉, 시스템(164)에 액세스하여, 사용자의 역할 멤버쉽을 기반으로 사용자가 명령을 수행하도록 인가되었는지 여부를 결정할 수 있다. 이것은 또한 위험 분석(risk analysis)을 포함할 수 있다. 위험 메트릭은 특히 시스템(102)에서 현재 일어나고 있는 일에 기초하여, 요청을 하고 있는 특정 사용자(112)에 대한 사용자 프로파일에 기초하여, 명령을 수행할 시스템에 대한 시스템 프로파일에 기초하여 계산될 수 있다. 예를 들어, 요청하는 사용자(112)가 통상적으로 이러한 요청을 하는 사용자가 아니거나, 또는 요청이 비정상적인 시간(예를 들어, 매우 바쁜 시간 또는 사용자(112)가 휴가 중일 때 등)에 행해지는 경우, 이는 상대적으로 높은 위험 명령임을 나타낼 수 있다. 시스템(164)은 예시적으로 다양한 인자들을 고려하여, 이 시간 및 이런 상황에서 타겟 자원(또는 타겟 머신)에 대해 요청된 명령을 수행하는 요청 사용자(112)에 대응하는 위험을 나타내는 위험 메트릭을 계산한다. 사용자가 자신의 역할 멤버쉽에 기초하여 명령을 수행하도록 인가되었는지 여부를 검증하는 것은 블록(288)에 의해 표시된다. 사용자는 다른 방식으로도 검증될 수 있으며, 이는 블록(290)에 의해 표시된다.
블록(292)에서, 사용자가 요청된 명령을 수행하도록 인가되지 않았다고 결정되면, 처리는 적절한 에러 메시지가 디스플레이되는 블록(294)으로 넘어간다. 그러나, 블록(292)에서, 사용자가 요청된 명령을 수행하도록 인가되었다고 결정되면, 처리는 블록(296)으로 이동하며, 자격 토큰 서비스(182)가 위험 메트릭을 포함할 수 있는 자격 티켓(또는 토큰)을 생성하고 자격 토큰 서비스(182)(또는 인증 프론트-엔드(168))에 대응하는 서명 인증서로 이를 서명한다. 그런 다음, 서명된 티켓 또는 토큰을 MAFE 시스템(126)으로 반환한다. 이는 도 3의 블록(298)에 의해 표시된다.
이에 응답하여, MAFE 시스템(126)은 서명된 토큰 상의 인증 프론트-엔드(168)(또는 자격 토큰 서비스(182))의 서명을 검증한다. 이는 블록(300)에 의해 표시된다. MAFE 시스템(126)은 그 자신의 서명 인증서를 사용하여 티켓(또는 토큰)을 서명하고 티켓(또는 토큰)을 타겟 머신(118) 상의 인증 작업자 컴포넌트(122)로 전송한다. 이는 각각 블록(302 및 304)에 의해 표시된다.
서명된 티켓(또는 토큰)을 수신한 후에, 인증 작업자 컴포넌트(122)는 이들이 유효한지를 결정하기 위해 (인증 프론트-엔드(168) 또는 토큰 서비스(182)뿐만 아니라 MAFE 시스템(126)의) 서명을 모두 검증한다. 서명이 유효하지 않으면, 블록(308)에서 결정된 바와 같이, 다시 에러 메시지가 디스플레이되는 블록(294)으로 처리가 되돌아간다. 그러나, 블록(308)에서, 서명들이 유효하면, 인증 작업자 컴포넌트(122)는 티켓(또는 토큰)으로부터 실행 레벨(또는 격리 레벨)을 획득한다. 이는 블록(310)에 의해 표시된다. 예를 들어, 일례에서, 인증 작업자 컴포넌트(122)는 로컬 정책들(123)에 액세스하여 개별 명령들(또는 명령들의 집합)을 권한 및 허가의 집합들(또는 격리 레벨의 실행 환경을 특징짓는 다른 아이템들)에 매핑하는 맵을 식별한다.
그 다음, 인증 작업자 컴포넌트(122)는 명령 및 그 대응 파라미터를 티켓(또는 토큰)으로부터 꺼낸다. 이것은 블록(312)에 의해 표시된다. 그런 다음 태스크-기반 실행 환경(예를 들어, 명령을 수행하는데 필요한 실행 레벨 또는 격리 레벨을 수용하는데 필요한 최소한의 권한 또는 허가를 갖는 실행 환경)을 오픈한다. 이것은 블록(314)에 의해 표시된다. 일례로서 최소 권한 및 허가가 사용되었지만, 항상 그러한 것은 아닐 수도 있다는 점에 유의한다. 예를 들어, 또 다른 예에서, 실행 환경에서 절대적으로 필요한 것보다는 약간 더 많은 허가 또는 권한이 주어질 수 있다. 그러나 권한 및 허가는 수행할 특정 명령에 따라 결정된다. 전술한 바와 같이, 일례로 명령을 수행하는데 필요한 최소한의 허가 및 권한이 부여되는 경우가 있다.
이어서, 인증 작업자 컴포넌트(122)는 방금 열렸던 실행 환경에서 대응하는 파라미터를 갖고 있는 명령을 시작한다. 이는 블록(316)에 의해 표시된다. 명령이 수행되면, 컴포넌트(122)는 그 결과를 클라이언트 시스템(106)에 반환할 수 있다. 이는 블록(318)에 의해 표시된다.
핵심 아키텍처를 설명하기 전에, 명령 요청들과 실행 환경들 간의 매핑이 먼저 설명될 것이다. 전술한 바와 같이, 로컬 정책(145)이 매핑을 포함할 수 있다. 매핑은 예시적으로 여러 가지 다른 명령 요청(또는 워크 플로우)을 다양한 실행 환경에 매핑한다. 각 실행 환경은 예시적으로 명령 요청(또는 워크 플로우)을 수행하는데 필요한 최소 권한 실행 환경이다. 매핑은 매우 다양한 방법으로 생성될 수 있다.
간략하게 전술한 바와 같이, 명령 요청(또는 워크 플로우)과 실행 환경 간의 매핑은 실행 환경 및 명령 또는 워크 플로우를 수행하는데 필요한 대응 권한을 식별하는데 사용될 수 있다. 일례에서, 워크 플로우는, 워크 플로우를 수행하는데 사용될 수 있는 최소 권한 실행 환경에 매핑된다. 다른 예에서, 각 워크 플로우는, 워크 플로우를 실행하는데 필요한 최소한의 권한은 아니지만, 권한이 제한된 실행 환경에 매핑된다. 이러한 방식으로, (비록 동일하지는 않지만) 유사한 권한들을 필요로 하는 다수의 상이한 워크 플로우들이 함께 그룹화될 수 있다. 그런 다음 각 그룹을 충분한 권한이 있는 실행 환경에 매핑하여, 해당 그룹의 각 워크 플로우를 수행할 수 있다. 매핑은 다양한 방식으로 생성될 수 있다. 도 3d는 워크 플로우(203)의 표현을 자동으로 수신하고 그 워크 플로우(203)로부터 실행 환경(권한들의 집합 등에 의해 정의될 수 있음)으로의 매핑(205)을 생성하는데 사용될 수 있는 매핑 생성 시스템(201)의 일례의 블록도이다. 도 3e는 시스템(201)의 동작의 일례를 나타내는 흐름도이다. 3d 및 3e가 이제 서로 관련하여 설명될 것이다.
시스템(201)은 예시적으로 워크 플로우 파싱 로직(workflow parsing logic, 207), 허가/권한 식별자 로직(209), 허가/권한 분류 로직(211), 워크 플로우-환경 매핑 생성기(213)을 포함하며, 기타 아이템(215)을 포함할 수 있다. 시스템(201)은 먼저 매핑을 위한 하나 이상의 워크 플로우(203)의 표현을 수신한다. 이는 도 3e의 블록(217)에 의해 표시된다. 표현(203)은 매우 다양한 형태를 취할 수 있다. 예를 들어, 이는 워크 플로우를 수행하는 관리자의 기록(219)일 수 있다. 이는 워크 플로우의 메타 데이터 설명(221)일 수 있고, 또는 다른 표현(223)일 수도 있다.
다음으로, 워크 플로우 파싱 로직(207)은 워크 플로우를 수행하는데 사용되는 다양한 단계 또는 태스크를 식별하기 위해 표현(203)을 파싱한다. 이는 블록(225)에 의해 표시된다. 이를 수행함에 있어서, 로직(207)은 워크 플로우의 실행 동안 터치되거나 액세스되는 용량 인스턴스(또는 임의의 다른 인스턴스 또는 머신)의 다른 부분들을 식별할 수 있다. 이는 메타 데이터로 표시되거나 기계 학습을 사용하여 학습되거나 프로그래밍 방식으로 또는 다른 방법으로 식별될 수 있다.
그런 다음 허가/권한 식별자 로직(209)은 분석 중인 워크 플로우 또는 워크 플로우들에서 단계 또는 태스크를 수행하는데 필요한 권한 및/또는 허가의 상위 집합을 식별한다. 이는 도 3e의 블록(229)에 의해 표시된다.
식별된 권한/허가에 기초하여, 분류 로직(211)은 식별된 권한/허가 집합을 수용하는 실행 환경을 식별한다. 이는 블록(231)에 의해 표시된다. 이를 수행함에 있어서, 논리(211)는 권한/허가 집합을 복수의 사전 정의된 실행 환경들 중 하나로 분류할 수 있다. 이것은 블록(233)에 의해 표시된다. 실행 환경은 예시적으로 충분한 권한/허가를 가지므로 태스크 또는 단계들이 실행될 수 있다. 일례로, 로직(211)은 워크 플로우의 태스크 또는 단계를 실행하기 위한 최소 권한 환경으로서 새로운 실행 환경을 동적으로 식별할 수 있다. 이것은 블록(235)에 의해 표시된다. 실행 환경은 기타 방식으로 식별될 수 있다. 이것은 블록(237)에 의해 표시된다.
다음으로 워크 플로우-환경 매핑 생성기(213)는 분석 중인 워크 플로우 또는 워크 플로우들과 식별된 실행 환경 간의 매핑을 생성한다. 이는 블록(239)에 의해 표시된다. 매핑은 런타임 동안 사용을 위해 출력되거나 저장될 수 있다. 하나 이상의 위치에 저장되거나 다른 방법으로 출력될 수 있다.
또한, 도 4a-4c(본원에서 집합적으로 도 4로 지칭됨)는 신뢰, 인증 및 권한 부여 시스템(156)이 공개 키 인프라를 사용하는 타겟 머신 상에서 명령(또는 다른 태스크)을 수행하도록 사용자(112)를 인증하는 아키텍처(100)의 동작의 일례를 나타낸다. 도 4d-4g는 도 1a 및 도 1b에 도시된 다수의 아이템을 보다 상세하게 도시한다.
예를 들어, 도 4d는 신뢰, 인증 및 인가 시스템(156)의 일례를 보다 상세하게 도시한다. 도 4d는 시스템(156)이 이중 인증 컴포넌트(330), 공개 키 인프라 시스템(332)(그 자체가 키 컴포넌트(334), 인증서 컴포넌트(336) 및 기타 아이템(338)을 포함할 수 있음)을 포함할 수 있고, 또한 시스템(156)이 기타 아이템(340)도 포함할 수 있음을 도시한다.
도 4e는 MAFE 시스템(126)의 일례를 보다 상세하게 도시한다. 도 4e는 MAFE 시스템(126)이 키 컴포넌트(342), 해시 함수 엔진(344), 인증서 시스템(346)(그 자체가 검증 컴포넌트(348), 서명 컴포넌트(350) 및 기타 아이템(352)을 포함할 수 있음), 큐 라우팅 컴포넌트(354)를 포함할 수 있고, 기타 아이템(356)도 포함할 수 있다.
또한, 도 4f는 자격 토큰 서비스(182)의 일례를 보다 상세하게 도시한다. 도 4f에 도시된 예에서, 서비스(182)는 예시적으로 서명 검증 엔진(358), 서명 컴포넌트(360), 워크 플로우 패키지 생성기(362)를 포함하며, 기타 아이템(364)을 포함할 수 있다.
도 4g는 인증 작업자 컴포넌트(122)의 일례를 보다 상세하게 도시한다. 컴포넌트(122)는, 예를 들어, 서명 검증 컴포넌트(366), 로컬 유효성 검증 컴포넌트(368), 실행(또는 격리) 레벨 식별자 컴포넌트(370), 실행 환경 생성기(372), 명령 실행 엔진(374)을 포함할 수 있으며, 기타 아이템(376)을 포함할 수 있다. 도 1a, 도 1b, 도 4 및 도 4d-4g는 이제 서로 관련하여 설명될 것이다.
다시, 도 4a-4c(본원에서 집합적으로 도 4로 지칭됨)는 멀티-테넌트 관리 시스템(116)에서 타겟 머신에 대한 명령을 사용자(112)가 수행하게 하는 아키텍처(100)의 동작의 일례를 나타내는 흐름도를 도시한다. 멀티-테넌트 용량 시스템(140)에서 사용자(112)가 타겟 머신에 대한 명령 또는 동작을 수행하는 것에 대해서도 동일한 유형의 프로세스가 수행될 수 있으며, 도 4의 설명은 단지 예로서 제공된다. 또한, 도 4의 설명을 위해, 신뢰, 인증 및 인가 시스템(156)이 도 4d에 도시된 공개 키 인프라(332)와 함께 제공된다고 가정한다.
사용자(112)는 먼저 클라이언트 시스템(106) 상의 클라이언트 콘솔(또는 인증 프론트-엔드(186))을 시작한다. 이는 도 4의 블록(380)에 의해 표시된다. 그 다음에 사용자(112)는 예시적으로 이중 인증을 사용하여 AP 시스템(104)에 대해 인증한다. 이것은 블록(382)에 의해 표시된다. 예로서, 인증 프론트-엔드(186)는 예시적으로 사용자(112)가 사용자 액세스 요청 서명 인증서를 갖고 있는지를 확인한다. 이것은 액세스 관리 시스템(162) 내의 사용자 액세스 계정(178)에 저장될 수 있다. 이것은 블록(384)에 의해 표시된다.
사용자가 사용자 액세스 서명 인증서(UA 서명 인증서)를 갖고 있지 않으면, 인증 프론트-엔드(186)는 그것을 요구한다. 그렇게 함으로써, 인증 프론트-엔드(186)는 예시적으로 공개/비밀 키 쌍을 생성하고, 그 키 쌍을 가지고 UA 서명 인증서에 대한 요청을 생성한다. 이것은 도 4의 블록들(386 및 388)에 의해 표시된다. 다음으로 (도 4d에 도시된 공개 키 인프라(332)의 인증서 컴포넌트(336)와 같이) 발급 인증서 기관(issuing certificate authority)에 요청을 송신한다. 이것은 블록(390)에 의해 표시된다. 인증서 컴포넌트(336)는 요청에 응답하여 UA 서명 인증서를 발급한다. 이것은 블록(392)에 의해 표시된다. 이것은 다양한 다른 방식으로 행해질 수 있다. 예를 들어, 인증서 컴포넌트(336)는 사용자가 지정된 그룹의 구성원인지를, 역할-기반 액세스 제어 및 인터페이스 시스템(164)을 사용하거나, 사용자 액세스 계정(178) 또는 서버 액세스 계정(180)을 사용하여, 신원 관리 시스템(166)을 통해 또는 다른 방법으로 검증할 수 있다. 이것은 각각 블록(394 및 396)에 의해 표시된다.
블록(384)에서, 사용자가 UA 서명 인증서를 갖는 것으로 결정되거나, UA 서명 인증서가 사용자에게 발급되는 블록(392) 후에, 사용자(112)는 사용자가 멀티-테넌트 관리 시스템(116)의 타겟 머신(118)에서 수행하기를 원하는 액세스 요청(예를 들어, 명령)을 MAFE 시스템(126)에 제출할 수 있다. 그렇게 함으로써, 인증 프론트 엔드(186)(또는 인증 클라이언트 콘솔)는 UA 요청 서명 인증서를 사용하여 요청에 서명한다. 이는 도 4의 블록(398)에 의해 표시된다. 서명된 요청은 사용자가 수행하고자 요청하는 특정 명령을 식별하는 사용자 요청(400)을 포함한다. 또한, 사용자 요청의 단방향 해시와 사용자에게 발급된 UA 요청 서명 인증서의 복사본을 모두 포함할 수 있는 요청의 디지털 서명을 예시적으로 포함한다. 이것은 블록(402)에 의해 표시된다. 물론, 이는 블록(404)에 의해 표시된 바와 같이 기타 아이템들도 포함할 수 있다.
(도 4e에 도시된) MAFE 시스템(126)에서의 검증 컴포넌트(348)는 그 요청에 포함된 UA 요청 서명 인증서를 사용하여 클라이언트 서명을 검증한다. 이것은 블록(406)에 의해 표시된다. 검증 컴포넌트(348)는 UA 요청 서명 인증서에 포함된 공개 키가 액세스 요청의 단방향 해시 함수를 성공적으로 재계산하기 때문에 이를 수행할 수 있다. 따라서, 예를 들어, 키 컴포넌트(342)는 UA 요청 서명 인증서로부터 공개 키를 획득한다. 이것은 블록(308)에 의해 표시된다. 해시 함수 엔진(344)은 액세스 요청 데이터(예를 들어, 명령을 나타내는 데이터)를 얻기 위해 단방향 해시를 계산한다. 이것은 블록(410)에 의해 표시된다. 사용자의 UA 요청 서명 인증서 자체는 발급 인증서 기관(예를 들어, 도 4d에 도시된 바와 같이 신뢰, 인증 및 인가 시스템(156)의 인증서 컴포넌트(336))에 의해 서명되기 때문에, 검증 컴포넌트(348)는 발급 인증서 기관(인증서 컴포넌트(336))이 신뢰되는지를 알기 위해 발급 인증서 체인을 검증한다. 이것은 블록(412)에 의해 표시된다. MAFE 시스템(126)은 다른 방식으로도 클라이언트 서명을 검증할 수 있으며, 이는 블록(414)에 의해 표시된다.
다음으로 MAFE 시스템(126)의 서명 컴포넌트(350)는 MAFE 액세스 요청 서명 인증서를 사용하여 사용자 액세스 요청을 서명한다. 이것은 블록(416)에 의해 표시된다.
MAFE 시스템(126)의 큐 라우팅 컴포넌트(354)는 그 후 요청 큐(130)에 서명된 요청(예를 들어, 본원에서 워크 플로우 블랍(blob)이라고도 함)을 배치한다. 이는 도 4의 블록(418)에 의해 표시된다. 다음으로 CRQS 시스템(128)은 큐(130)로부터 서명된 요청을 검색하고 이를 AP 시스템(104) 내의 자격 토큰 서비스(182)에 전송한다. 이는 도 4의 블록(420)에 의해 표시된다. 자격 토큰 서비스(182)의 서명 검증 엔진(358)(도 4f)은 MAFE 시스템(126)의 서명 및 사용자 서명(또는 클라이언트 시스템(106)의 서명)을 검증하고 사용자(112)가 워크 플로우를 수행하도록 인가되었는지를 검증한다. 그 다음, 서명 컴포넌트(360)는 자격 토큰(CT) 서비스 서명 인증서로 서명하고, 워크 플로우 패키지 생성기(362)는 새로운, 승인된 워크 플로우를 생성하여 승인된 요청 큐(132)에 새로운, 승인된 워크 플로우를 배치한다. 이는 도 4의 블록(422)에 의해 표시된다.
일례에서, 워크 플로우 블랍은 요청을 하는 사용자, 명령에 대응하는 요청된 동작, 및 명령이 수행되는 타겟 자원을 식별한다. 이는 블록(424)에 의해 표시된다. 자격 토큰 서비스(182)는 블록(426)에 의해 표시된 바와 같이, 역할-기반 액세스 제어 및 인터페이스 시스템(164)에 액세스할 수 있다. 시스템(164)은 사용자가 워크 플로우에 의해 표시된 명령을 수행하도록 인가되었는지 여부에 대한 표시를 제공한다.
자격 토큰 서비스(182)는 또한 명령을 수행하기 위해 이 사용자가 (예를 들어, 사용자의 관리자로부터의) 승인을 필요로 하는지 여부를 결정하기 위해 역할 요청 및 승인 시스템(158)에 액세스할 수 있다. 승인이 필요하다면, 그것은 도 2와 관련하여 전술한 승인 프로세스를 수행할 수 있다. 이것은 블록(428)에 의해 표시된다.
일단 시스템(182)이 워크 플로우를 승인하면, 이는 AP 시스템(104)이 타겟 머신 상의 타겟 자원에 대한 워크 플로우를 인가한 것을 나타낸다. 이것은 도 4의 블록(430)에 의해 표시된다. 자격 토큰 서비스(182)는 물론 다른 동작들도 수행할 수 있으며, 이는 블록(432)에 의해 표시된다.
승인된 워크 플로우가 승인된 요청 큐(132)에서 나타날 때, CRQS 시스템(128)은 예시적으로 그것을 추출하고, 그것을 분류하며, 새로운, 승인된 워크 플로우를 대응하는 타겟 머신(118)에 분배하여, 명령이 그 머신 상에서 시작될 수 있게 한다. 이것은 블록(434)에 의해 표시된다. 새로운, 승인된 워크 플로우는 예시적으로 타겟 머신 상에서 수행될 태스크들(436)의 집합으로 분류된다. 또한, 예시적으로 태스크를 정의하는 파라미터와 각 태스크의 실행 레벨 또는 스코프로 분류될 수 있다. 이것은 블록(438)에 의해 표시된다. 분류는 다른 정보(440) 역시 포함할 수 있다.
인증 작업자 컴포넌트(122)는 예시적으로 타겟 머신 상에서 이렇게 분류되고 승인된 워크 플로우를 수신하고, 이전에 수신한 루트 인증서 기관 인증서에 액세스하고, 작업 부하 상의 모든 서명을 검증하고, 또한 로컬 정책(131)(또는 머신(118)에 국부적인 로컬 정책들(123))을 사용하여 워크 플로우의 유효성을 국부적으로 검증한다. 이것은 블록(442)에 의해 표시된다. 워크 플로우는 예시적으로 사용자(또는 클라이언트)(106), MAFE 시스템(126) 및 자격 토큰 서비스(182)의 서명을 포함할 것이라는 것을 상기하자. 이것은 블록(444)에 의해 표시된다. 따라서, 인증 작업자 컴포넌트(122)의 서명 검증 컴포넌트(366)가 서명을 검증한다. 로컬 유효성 검증 컴포넌트(368)는 로컬 시스템(123)에 액세스하여, AP 시스템(104)이 이들 타겟 자원에 대해 이런 명령에 대해 이 사용자를 인증하도록 인가되었는지를 결정할 수 있다. 그것은 또한 명령 내의 다양한 태스크의 유효성을 검증할 수 있으며, 그 일례가 도 6과 관련하여 아래에서 설명된다. 물론, 기타 동작들도 수행할 수 있으며, 이는 블록(446)에 의해 표시된다.
블록(448)에서 결정된 바와 같이 서명 또는 워크 플로우가 무효인 경우, 블록(450)에 표시된 바와 같이 적절한 에러 메시지가 디스플레이될 수 있다. 그러나, 서명 및 워크 플로우가 유효한 경우, 블록(452)에서 처리가 계속된다.
다음으로 실행(또는 격리) 레벨 식별자 컴포넌트(370)는 명령을 완수하기 위해 작업할 워크 플로우에 대한 실행 레벨(또는 격리 레벨)을 식별한다. 일례로, 로컬 정책(131 또는 123)에 액세스한다. 로컬 정책은 예시적으로 다양한 개별 명령과 실행 레벨(또는 명령을 수행하는데 필요한 격리 레벨) 간의 맵을 포함한다. 예를 들어, 맵은 명령과, 그 명령 및 명령의 다양한 태스크를 수행하는데 필요한 허가 또는 권한 집합 간의 매핑을 포함할 수 있다. 실행 레벨(또는 격리 레벨)을 식별하는 것은 블록(452)에 의해 표시된다.
그런 다음 인증 작업자 컴포넌트(122)는 실행 환경 생성기(372)를 사용하여, 명령에 대응하는 워크 플로우를 수행하는데 사용되는 실행 레벨(또는 격리 레벨)을 수용하는데 필요한 최소한의 권한(또는 적어도 태스크-기반 권한)을 갖는 실행 환경을 오픈한다. 이는 블록(454)에 의해 표시된다. 블록(456)에 의해 표시된 바와 같이, 명령 실행 엔진(374)은 최소 권한 실행 환경에서 워크 플로우를 실행한다. 일례에서, 컴포넌트(122)는 실행된 명령의 결과를 반환한다. 이것은 블록(458)에 의해 표시된다.
도 5는 인증 작업자 컴포넌트(122)의 동작의 일례를 보다 상세하게 도시한 흐름도이다. 일례에서, 타겟 머신(118) 상에서 수행될 다양한 워크 플로우가 큐에 저장되고, 순서대로 실행된다. 따라서, 인증 작업자 컴포넌트(122)는 수신된 워크 플로우에 대한 로컬 워크 플로우 큐를 모니터링한다. 이것은 블록(460)에 의해 표시된다. 블록(462)에 표시된 바와 같이, 로컬 큐에서 워크 플로우 패키지를 꺼내고, 서명 검증 컴포넌트(366)는 워크 플로우 패키지 상의 서명을 검증한다.
그런 다음 컴포넌트(122)는 워크 플로우를 풀어 다양한 태스크 및 이들 태스크에 대한 대응 스코프(또는 파라미터)를 식별한다. 이는 블록(466)에 의해 표시된다. 예를 들어, 지정된 워크 플로우는 다수의 하위 레벨 명령 또는 태스크를 포함할 수 있으며, 상이한 머신 및 상이한 역할에 걸친 실행을 나타낼 수 있다. 각 작업은 지정된 스코프의 일부 컴퓨터 역할에만 적용될 수 있다. 예를 들어, 스코프는 명령 요청이 제출된 시스템, 테넌트, 사이트 등을 정의하는 하나 이상의 파라미터의 조합일 수 있다. 다음으로, 로컬 유효성 검증 컴포넌트(368)는 로컬 인가 정책에 액세스하여 워크 플로우가 로컬 정책에 의해 인가되는지를 검증한다. 이는 블록(468 및 470)에 의해 표시된다. 일례로서, 인증 정책은 상이한 스코프를 상이한 머신에 매핑할 수 있다. 따라서, 로컬 유효성 검증 컴포넌트(368)는 스코프가 현재의 타겟 머신을 위한 것인지를 검증할 수 있다. 이것은 블록(472)에 의해 표시된다. 컴포넌트(368)는 또한 태스크-기반 액세스 유효성 검증을 수행할 수 있다(이는 도 6과 관련하여 보다 상세하게 설명됨). 이는 블록(474)에 의해 표시된다. 또한, 워크 플로우가 로컬 정책에 의해 인가되었는지를 다른 방식으로도 검증할 수 있으며, 이는 블록(476)에 의해 표시된다.
실행 레벨 식별자 컴포넌트(370)는 태스크-기반 실행 환경을 식별한다. 일례로, 이것은 명령이나 다른 요청에서 다양한 작업을 수행하는데 필요한 최소 권한 환경이다. 또 다른 예로, 권한은 그룹으로 나누어져 있으며, 이는 시스템을 최소한으로 액세스할 수 있게 해주지만 여전히 작업을 수행할 수 있게 하는 권한 그룹이다. 이것은 기술적으로는 "최소 권한" 실행 환경이 아니지만, 수행할 작업에 기초하여 제한된 실행 환경이다. 이것은 블록(478)에 의해 표시된다. 다시, 이것은 다수의 방법으로 행해질 수 있다. 예를 들어, 블록(480)으로 표시된 바와 같이, 실행 환경은 워크 플로우 개발자에 의해 지정될 수 있다. 이는 블록(482)에 의해 표시된 바와 같이 로컬 서비스에 한정될 수 있다. 이는 블록(484)로 표시된 바와 같이 네트워크 서비스에 한정될 수 있고, 또는 블록(486)에 표시된 바와 같이 특정 서비스 계정에 기초하여 식별될 수 있다. 이는 다른 방식으로도 식별될 수 있으며, 이것은 블록(488)에 의해 표시된다.
다음으로 실행 환경 생성기(372)는 명령 또는 태스크 집합을 수행하는데 필요한 실행 환경을 생성한다. 일례로, AP 시스템(104)으로부터, 식별된 최소 권한 실행 환경에 대응하는 액세스 토큰을 획득한다. 이것은 블록(490)에 의해 표시된다. 그런 다음 명령 실행 엔진(374)은 최소 권한 액세스 토큰을 사용하여 자식 프로세스로 워크 플로우를 시작한다. 이것은 블록(492)에 의해 표시된다.
도 6a 및 도 6b(본원에서 집합적으로 도 6으로 지칭됨)은 작업-기반 액세스 유효성 검증을 수행하는 인증 작업자 컴포넌트(122)의 동작의 일례를 도시한다. 이것은 또한 상기 도 5의 블록(474)에 의해 표현된다.
AP 시스템(104)으로부터 수신된 인가 명령문(또는 인가된 명령 요청)은 사용자의 사용자(또는 클라이언트) 서명된 식별자, 및 워크 플로우 및 워크 플로우가 실행될 타겟 스코프를 식별하는 워크 플로우 식별자를 포함하는 서명된 메시지이다. AP 시스템(104)이 워크 플로우를 인증할 때, 필요하다면, 사용자의 역할 멤버쉽, 사용자 역할 멤버쉽과 연관된 스코프 및 관리자 승인 워크 플로우의 완료에 기초하여 인증한다. 지정된 워크 플로우는 다수의 하위 레벨 명령 또는 태스크를 포함할 수 있으며, 상이한 머신 및 상이한 역할에 걸친 실행을 나타낼 수 있다.
AP 시스템(104)으로부터 수신된 인가 명령문은 예시적으로 사용자에 의해 식별된 스코프 내의 워크 플로우의 상위 레벨 인가이다. 그러나 이 명령문은 각 타겟 머신에서 태스크-레벨 액세스 유효성 검증을 제공하지 않는다. 아키텍처(100)의 분산된 인가 설계로 인해, CRQS(128)는 워크 플로우의 실행을 인가할 권한이 없다. 따라서, 타깃 머신 상의 인가 작업자 컴포넌트(122)는 그것의 실행 이전에 각각의 태스크의 인가를 수행한다. 인증 작업자 컴포넌트(122)는 CRQS(128)로부터 작업 아이템을 수신할 때, 시스템(128)이 워크 플로우를 필요한 태스크 및 이들 태스크에 대한 파라미터(또는 스코프)로 분류했기 때문에 이를 수행할 수 있다. 인증 작업자 컴포넌트(122) 상의 로컬 유효성 검증 컴포넌트(368)가 태스크를 인증한다. 이는 태스크 및 스코프가 워크 플로우의 일부인지, AP 시스템(104)에 의해 인가된 스코프가 타겟 머신에 해당하는지를 검증할 수 있다. 이를 수행하기 위해, 인증 작업자 컴포넌트(122)의 로컬 유효성 검증 컴포넌트(368)는 로컬 인증 정책(123)에 대해 각 태스크를 검사하는데, 이는 대응하는 태스크에 대한 각각의 워크 플로우의 매핑을 포함한다.
일반적으로, AP 시스템(104)은 사용자 식별 워크 플로우 및 사용자 식별 스코프를 포함하는 클레임 집합을 발행한다. 작업 부하가 지정된 태스크를 포함하고 있음을 검증할 때, CRQS(128)는 로컬 인가 정책(131)을 질의하여 워크 플로우가 지정된 태스크를 포함하는지를 확인한다. 태스크의 스코프를 검증할 때, 인증 작업자 컴포넌트(122)는 CRQS(128)에 의해 제공된 스코프가 AP 시스템(104)에 의해 승인된 클레임의 스코프와 일치하는지를 검증하고, 또한 지정된 스코프가 로컬 머신(또는 타겟 머신)(118)을 실제로 포함하는지를 검증한다. 또한, 도 6a 및 도 6b(본원에서 집합적으로 도 6으로 지칭됨)은 이러한 동작을 보다 상세하게 도시한다.
먼저, 인증 작업자 컴포넌트(122)가 워크 플로우 패키지를 수신하고, 서명을 검증하고, 워크 플로우 패키지를 푼다고 가정한다. 이는 도 6의 블록(494)에 의해 표시된다. 일례로, 사용자 ID에 의해 식별된 지정된 사용자가 태스크 집합(T)에 대해 지정된 스코프를 갖는 워크 플로우(X)를 요청한다. 각 태스크는 대응하는 태스크 스코프를 갖는다. 이것은 블록(496)에 도시된 바와 같이 표현될 수 있다. 물론, 이는 다른 방식들(498)로 표현될 수도 있다.
로컬 유효성 검증 컴포넌트(368)는 먼저 워크 플로우 패키지로부터 태스크 및 해당 스코프를 선택한다. 이것은 블록(500)에 의해 표시된다. 그런 다음 로컬 인가 정책 데이터 저장소(예를 들어, 로컬 정책(123))에 액세스한다. 이것은 블록(502)에 의해 표시된다. 로컬 정책(123)은 예시적으로 태스크를 워크 플로우에 매핑한다. 이것은 블록(504)에 의해 표시된다. 이는 블록(506)에 의해 표시된 것 이외의 다른 정보를 포함할 수 있다. 로컬 유효성 검증 컴포넌트(368)는 선택된 태스크가 블록(496)에 표시된, 식별된 워크 플로우에 매핑되는지 여부를 결정한다. 이 결정은 도 6의 블록(508)으로 표시된다. 매핑되지 않는 경우, 블록(510)에 의해 표시된 바와 같이 적절한 에러 메시지가 생성된다. 그러나, 매핑된다면, 로컬 유효성 검증 컴포넌트(368)는 선택된 태스크에 대응하는 스코프가 자격 토큰 서비스(182)에 의해 인가된 스코프와 일치하는지 여부를 결정한다. 이것은 블록(512)에 의해 표시된다. 일치된다면, 로컬 유효성 검증 컴포넌트(368)는 선택된 태스크에 대응하는 스코프가 이 특정 로컬 머신(예를 들어, 머신(118))에 적용되는지의 여부를 결정한다. 이것은 블록(514)에 의해 표시된다. 블록(512 또는 514)에서의 응답이 아니오이면, 처리는 다시 적절한 에러 메시지가 생성되는 블록(510)으로 되돌아간다. 그러나 각각의 블록에서 응답이 예일 경우, 이 특정 타겟 머신에서 실행을 위해 국부적으로 태스크의 유효성이 검증된다. 이는 블록(516)에 의해 표시된다. 그 후 로컬 유효성 검증 컴포넌트(368)는 블록(518)에서, 블록(496)에 의해 표시된 워크 플로우에서 처리할 임의의 추가 태스크가 있는지 여부를 결정한다. 추가 태스크가 있으면, 처리는 블록(500)으로 되돌아간다. 추가 태스크가 없다면, 이 머신에 대해 모든 태스크의 유효성이 검증되었다.
본 논의는 프로세서 및 서버를 다루고 있다. 일 실시예에서, 프로세서 및 서버는, 별도로 도시되어 있지는 않지만, 연관 메모리 및 타이밍 회로를 갖춘 컴퓨터 프로세서를 포함한다. 이들은, 자신이 속해서 활성화되는 시스템 또는 장치의 기능부이고, 해당 시스템 내의 다른 컴포넌트 또는 아이템의 기능을 가능하게 한다.
또한, 다수의 사용자 인터페이스 디스플레이가 논의되어 있다. 이들 디스플레이는 매우 다양한 여러 형태를 취할 수 있으며, 매우 다양한 사용자 작동식 입력 메커니즘이 배치되어 있을 수 있다. 예컨대, 사용자 작동식 입력 메커니즘은 텍스트 박스, 체크 박스, 아이콘, 링크, 드롭-다운(drop-down) 메뉴, 검색 박스 등일 수 있다. 이들은 또한, 매우 다양한 여러 방식으로 작동될 수 있다. 예컨대, 이들은 포인트 클릭 장치(예컨대, 트랙 볼 또는 마우스)를 이용해서 작동될 수 있다. 이들은 하드웨어 버튼, 스위치, 조이스틱 또는 키보드, 엄지 스위치 또는 엄지 패드 등을 이용해서 작동될 수 있다. 이들은 또한, 가상 키보드 또는 그 밖의 가상 액추에이터를 이용해서 작동될 수도 있다. 또한, 이들이 디스플레이되는 스크린이 터치 감응식 스크린인 경우에는, 이들은 터치 제스처를 이용해서 작동될 수 있다. 또한, 이들을 디스플레이하는 장치가 음성 인식 컴포넌트를 구비하는 경우에는, 이들은 음성 명령을 이용해서 작동될 수 있다.
또한 다수의 데이터 저장소가 논의되어 있다. 이들은 각각 다수의 데이터 저장소로 나뉠 수 있다는 점에 유의한다. 전부가 이들에 액세스하는 시스템에 대하여 국부적일 수 있고, 전부가 원격으로 될 수 있으며, 또는 일부는 로컬이고 나머지는 원격으로 될 수 있다. 이들 구성이 모두 본원에서 고려된다.
또한, 도면은 각각의 블록에 기능이 할당되어 있는 다수의 블록을 도시한다. 보다 적은 수의 컴포넌트로 기능을 수행하도록 보다 적은 수의 블록이 이용될 수 있다는 점에 유의한다. 또한, 보다 많은 수의 컴포넌트에 기능이 분산되어 있는, 보다 많은 수의 블록이 이용될 수도 있다.
상기 논의는 여러 다른 시스템들, 컴포넌트들 및/또는 로직을 기술하였다는 것을 알 것이다. 이러한 시스템, 컴포넌트 및/또는 로직은 이들 시스템, 컴포넌트 및/또는 로직과 관련된 기능을 수행하는 하드웨어 아이템(예를 들어, 프로세서 및 관련 메모리 또는 다른 처리 컴포넌트, 그 일부가 아래에 설명됨)으로 구성될 수 있다는 것을 이해할 것이다. 또한, 시스템, 컴포넌트 및/또는 로직은 메모리에 로딩된 소프트웨어로 구성될 수 있으며, 후술하는 바와 같이, 프로세서 또는 서버, 또는 다른 컴퓨팅 컴포넌트에 의해 연속적으로 실행된다. 시스템, 컴포넌트 및/또는 로직은 또한 하드웨어, 소프트웨어, 펌웨어 등의 상이한 조합으로 구성될 수 있으며, 그 중 몇 가지 예가 아래에서 설명된다. 이들은 전술한 시스템, 컴포넌트 및/또는 로직을 형성하는데 사용될 수 있는 상이한 구조의 일부 예에 불과하다. 다른 구조도 사용될 수 있다.
도 7은 구성 요소가 클라우드 컴퓨팅 아키텍처(520)에 배치된다는 점을 제외하면, 도 1a에 도시된 아키텍처(100)의 블록도와 마찬가지이다. 클라우드 컴퓨팅은 서비스를 전달하는 시스템의 물리적 위치 또는 구성에 관한 최종-사용자 지식을 필요로 하지 않는 계산, 소프트웨어, 데이터 액세스, 및 저장 서비스를 제공한다. 다양한 실시예에 있어서, 클라우드 컴퓨팅은 적절한 프로토콜을 이용해서, 인터넷과 같은 광역 통신망을 통해 서비스를 전달한다. 예컨대, 클라우드 컴퓨팅 제공자는 광역 통신망을 통해 애플리케이션을 전달하고, 이들은 웹 브라우저 또는 임의의 다른 컴퓨팅 컴포넌트를 통해 액세스될 수 있다. 아키텍처(100)의 소프트웨어 또는 컴포넌트뿐만 아니라, 상응하는 데이터는 원격지에 있는 서버에 저장될 수 있다. 클라우드 컴퓨팅 환경에서의 컴퓨팅 리소스는 원격 데이터 센터 위치에서 통합될 수 있고, 또는 분산될 수 있다. 클라우드 컴퓨팅 기반 시설은, 비록 사용자에 대하여 단일의 액세스 지점으로서 나타난다고 해도, 공유 데이터 센터를 통해 서비스를 전달할 수 있다. 따라서, 본원에 기술된 컴포넌트 및 기능은 원격지에 있는 서비스 제공자로부터 클라우드 컴퓨팅 아키텍처를 이용해서 제공될 수 있다. 대안으로서, 이들은 종래의 서버로부터 제공될 수 있고, 또는 클라이언트 장치에 직접, 또는 다른 방식으로 설치될 수 있다.
발명의 상세한 설명 부분은 공용 클라우드 컴퓨팅 및 사설 클라우드 컴퓨팅을 모두 포함하는 것을 의도한다. 클라우드 컴퓨팅(공용 및 사설 모두)은 실질적으로 리소스의 원활한 통합을 제공할 뿐만 아니라, 기본 하드웨어 기반 시설의 관리 및 구축 필요성을 감소시킨다.
공용 클라우드는 벤더(vendor)에 의해 관리되고, 통상적으로 동일한 기반 시설을 이용해서 다수의 소비자를 지원한다. 또한, 사설 클라우드와는 대조적으로, 공용 클라우드는 최종 사용자를 하드웨어 관리로부터 해방시킬 수 있다. 사설 클라우드는 조직에 의해 자체적으로 관리될 수 있고, 기반 시설이 다른 조직과 공유되지 않는 것이 보통이다. 조직은 설치 및 보수 등과 같이 어느 정도까지는 하드웨어를 계속 유지해야 한다.
도 7에 도시된 예시에 있어서, 일부 아이템은 도 1a에 도시된 것과 유사하며 같은 번호가 부여된다. 도 7은, 구체적으로 멀티-테넌트 작업 부하 시스템(102) 및 인증 및 허가 시스템(104)이 클라우드(522, 공용, 사설, 또는 부분적으로 공용이고 나머지가 사설인 조합으로 될 수 있음)에 위치될 수 있음을 보여준다. 따라서, 사용자(112)는 클라우드(522)를 통해 해당 시스템에 액세스하기 위해 사용자 장치(524)를 이용한다.
도 7은 또한 클라우드 아키텍처의 다른 예시를 도시한다. 도 7은, 아키텍처(100)의 일부 구성 요소가 클라우드(522) 내에 배치되지만 나머지 구성 요소는 배치되지 않는 경우도 고려됨을 보여준다. 예시로서, 데이터 저장소(160)는 클라우드(522) 외부에 배치되고, 클라우드(522)를 통해 액세스될 수 있다. 다른 예시에 있어서, 시스템(104)도 클라우드(522) 외부에 있을 수 있다. 이들이 어디에 위치되는지에 관계없이, 이들은 네트워크(광역 통신망 또는 근거리 통신망)를 통해, 장치(524)에 의해 직접 액세스될 수 있거나, 서비스에 의해 원격 위치에서 호스팅될 수 있고, 또는 클라우드를 통해 서비스로서 제공될 수 있으며 또는 클라우드 내에 상주하는 접속 서비스에 의해 액세스될 수 있다. 이들 아키텍처가 모두 본원에서 고려된다.
아키텍처(100), 또는 아키텍처의 일부가 매우 다양한 여러 장치에 배치될 수 있다는 점도 유의해야 한다. 이들 장치의 일부는 서버, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 또는 그 밖에도 팜탑(palm top) 컴퓨터, 셀폰, 스마트폰, 멀티미디어 플레이어, 개인 정보 단말 등과 같은 모바일 장치를 포함한다.
도 8은 본 발명의 시스템(또는 그 일부)이 배치될 수 있는 사용자의 또는 클라이언트의 핸드헬드 장치(16)로서 사용될 수 있는 핸드헬드 또는 모바일 컴퓨팅 장치의 하나의 예시적인 실시예의 간략화된 블록도이다. 도 9-10은 핸드헬드 또는 모바일 장치의 예시이다.
도 8은 데이터 센터(102) 또는 AP 시스템(104) 또는 관리 클라이언트 시스템(106)의 컴포넌트를 가동할 수 있거나, 또는 아키텍처(100)와 상호 작용할 수 있거나, 또는 양쪽 모두가 가능한 클라이언트 장치(16)의 컴포넌트의 일반적인 블록도를 제공한다. 장치(16)에 있어서, 핸드헬드 장치가 다른 컴퓨팅 장치와 통신하는 것을 허용하는 한편, 일부 예시에서는 스캐닝에 의해서와 같이 자동으로 정보를 수신하는 채널을 제공하는 통신 링크(13)가 제공된다. 통신 링크(13)의 예시는, 적외선 포트, 시리얼/USB 포트, 이더넷 포트와 같은 케이블 네트워크 포트, 그리고 네트워크 뿐만 아니라, 네트워크에 대한 로컬 무선 접속을 제공하는 Wi-Fi 프로토콜, 및 블루투스 프로토콜에 대한 셀룰러 액세스를 제공하는데 이용된 무선 서비스인 GPRS(General Packet Radio Service), LTE, HSPA, HSPA+ 및 그 밖의 3G 및 4G 무선 프로토콜, 1Xrtt, 및 단문 메시지 서비스를 포함하는 하나 이상의 통신 프로토콜을 통한 통신을 허용하는 무선 네트워크 포트를 포함한다.
다른 예시에서, 애플리케이션 또는 시스템은 보안 디지털(SD) 카드 인터페이스(15)에 접속되는 이동식 SD 카드 상에 수신된다. SD 카드 인터페이스(15) 및 통신 링크(13)는, 메모리(21) 및 입/출력(I/O) 컴포넌트(23)에 뿐만 아니라 클록(25) 및 위치 시스템(27)에도 접속되는 버스(19)를 따라 프로세서(17, 도 1a의 프로세서들을 구현할 수도 있음)와 통신한다.
일 실시예에서, I/O 컴포넌트(23)는 입력 및 출력 동작을 용이하게 하기 위해 제공된다. 장치(16)의 다양한 실시예에 대한 I/O 컴포넌트(23)는 버튼, 터치 센서, 멀티-터치 센서, 광학 또는 비디오 센서, 음성 센서, 터치 스크린, 근접도 센서, 마이크, 기울기 센서 및 중력 스위치와 같은 입력 컴포넌트와, 디스플레이 장치, 스피커 및/또는 프린터 포트와 같은 출력 컴포넌트를 포함할 수 있다. 그 밖의 I/O 컴포넌트(23)가 사용될 수 있음은 물론이다.
클록(25)은 시간 및 날짜를 출력하는 실시간 클록 컴포넌트를 예시적으로 포함한다. 클록은 또한, 예시적으로, 프로세서(17)에 타이밍 기능을 제공할 수도 있다.
위치 시스템(27)은 장치(16)의 현재의 지리적 위치를 출력하는 컴포넌트를 예시적으로 포함한다. 이는, 예컨대, GPS(global positioning system) 수신기, LORAN 시스템, 추측 항법(dead reckoning) 시스템, 셀룰러 삼각측량 시스템, 또는 그 밖의 위치 결정 시스템을 포함할 수 있다. 예컨대, 원하는 맵, 내비게이션 경로 및 그 밖의 지리적 기능을 생성하는 매핑 소프트웨어 또는 내비게이션 소프트웨어도 포함할 수 있다.
메모리(21)는 운영 체제(29), 네트워크 설정(31), 애플리케이션(33), 애플리케이션 구성 설정(35), 데이터 저장소(37), 통신 드라이버(39), 및 통신 구성 설정(41)을 저장한다. 메모리(21)는 모든 타입의 유형(tangible)의 휘발성 및 비휘발성 컴퓨터 판독가능 메모리 장치를 포함할 수 있다. 메모리는 컴퓨터 저장 매체(아래에서 기술됨)를 또한 포함할 수 있다. 메모리(21)는, 프로세서(17)에 의한 실행 시에, 프로세서로 하여금 컴퓨터 구현 스텝 또는 기능을 명령어에 따라 수행하게 하는 컴퓨터 판독가능 명령어를 저장한다. 유사하게, 장치(16)는 다양한 비즈니스 애플리케이션을 가동할 수 있거나 또는 테넌트(114)의 일부 또는 전부 또는 관리 클라이언트(100)를 구체화할 수 있는 클라이언트 시스템(24)을 구비할 수 있다. 프로세서(17)는 그 밖의 다른 컴포넌트에 의해 그들의 기능을 가능하게 하도록 활성화될 수 있음은 물론이다.
네트워크 설정(31)의 예시로는 프록시 정보, 인터넷 접속 정보, 및 매핑과 같은 것을 포함한다. 애플리케이션 구성 설정(35)은 특정 기업 또는 사용자에게 애플리케이션을 맞추는 설정을 포함한다. 통신 구성 설정(41)은 다른 컴퓨터와의 통신을 위한 파라미터를 제공하고, GPRS 파라미터, SMS 파라미터, 접속 사용자 이름 및 패스워드와 같은 아이템을 포함한다.
애플리케이션(33)은 장치(16)에 이미 저장되어 있는 애플리케이션일 수 있고, 또는 사용 중에 설치되는 애플리케이션일 수 있으며, 이들 애플리케이션은 운영 체제(29)의 일부이거나 또는 장치(16)의 외부에서 호스팅될 수 있음은 물론이다.
도 9는 장치(16)가 태블릿 컴퓨터(600)인 일 실시예를 도시한다. 도 6에 있어서, 컴퓨터(600)는 사용자 인터페이스 디스플레이 스크린(602)을 구비하는 것으로 도시된다. 스크린(602)은 터치 스크린(사용자 손가락으로부터의 터치 제스처가 애플리케이션과의 상호 작용에 이용될 수 있음) 또는 펜 또는 스타일러스로부터 입력을 수신하는 펜-사용가능(pen-enabled) 인터페이스일 수 있다. 스크린은 또한, 온-스크린 가상 키보드를 이용할 수도 있다. 물론, 스크린은 무선 링크 또는 USB 포트와 같은 적절한 부착 메커니즘을 통해 키보드 또는 그 밖의 사용자 입력 장치에 부착될 수도 있다. 컴퓨터(600)는 예시적으로 음성 입력을 수신할 수도 있음은 물론이다.
장치(16)의 부가적인 예시가 이용될 수도 있다. 장치(16)는 피쳐폰, 스마트폰 또는 모바일폰일 수 있다. 전화는 전화 번호를 걸기 위한 일련의 키패드, 애플리케이션 이미지, 아이콘, 웹 페이지, 사진, 및 비디오를 포함하는 이미지를 디스플레이할 수 있는 디스플레이, 및 디스플레이 상에 도시된 아이템을 선택하기 위한 제어 버튼을 포함할 수 있다. 전화는 GPRS(General Packet Radio Service) 및 1Xrtt와 같은 셀룰러 폰 신호, 및 SMS(Short Message Service) 신호를 수신하는 안테나를 포함할 수 있다. 일부 예시에서, 전화는 또한 SD 카드를 수용하는 SD 카드 슬롯을 포함한다.
모바일 장치는 개인 정보 단말기 또는 멀티미디어 플레이어 또는 태블릿 컴퓨팅 장치 등(이하에서 PDA라고도 지칭됨)일 수도 있다. PDA는 스타일러스가 스크린 위에 위치할 때 스타일러스(또는 사용자의 손가락과 같은 다른 포인터)의 위치를 감지하는 유도 감응식 스크린을 포함할 수 있다. 이는, 사용자가 스크린 상의 아이템을 선택, 강조 표시, 및 이동시키게 할 수 있을 뿐만 아니라, 그리기 및 쓰기를 가능하게 한다. PDA는 또한, 디스플레이 상에 디스플레이되는 메뉴 옵션 또는 그 밖의 디스플레이 옵션을 통해 사용자가 스크롤할 수 있게 하는 한편, 디스플레이에 접촉하지 않고도 사용자가 애플리케이션을 변경하거나 사용자 입력 기능을 선택할 수 있게 하는 다수의 사용자 입력 키 또는 버튼을 포함할 수도 있다. PDA는 다른 컴퓨터와의 무선 통신을 허용하는 내부 안테나 및 적외선 송수신기뿐만 아니라 다른 컴퓨팅 장치에 대한 하드웨어 접속을 허용하는 접속 포트를 포함할 수 있다. 이러한 하드웨어 접속은 시리얼 또는 USB 포트를 통해 다른 컴퓨터에 접속하는 크래들을 통해 이루어지는 것이 일반적이다. 전술한 바와 같이, 이들 접속은 비-네트워크 접속이다.
도 10은 전화가 스마트폰(71)일 수 있음을 도시한다. 스마트폰(71)은 아이콘 또는 타일을 디스플레이하는 터치 감응식 디스플레이(73) 또는 그 밖의 사용자 입력 메커니즘(75)을 구비한다. 메커니즘(75)은 사용자에 의해, 애플리케이션 가동, 전화 걸기, 데이터 전송 동작 수행 등을 행하는데 이용될 수 있다. 일반적으로, 스마트폰(71)은 모바일 운영 체제로 구축되며, 피처폰보다 더 진전된 컴퓨팅 자격 및 접속성을 제공한다.
다른 형태의 장치(16)도 가능하다는 점에 유의한다.
도 11은 아키텍처(100), 또는 그 일부가(예를 들어) 배치될 수 있는 컴퓨팅 환경의 일례이다. 도 11을 참조하면, 일부 실시예를 구현하는 예시적인 시스템은 컴퓨터(810) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(810)의 컴포넌트들은, 처리 유닛(820, 전술한 임의의 프로세서를 포함할 수 있음), 시스템 메모리(830), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 처리 유닛(820)에 연결하는 시스템 버스(821)를 포함할 수 있지만, 이들에 한정되는 것은 아니다. 시스템 버스(821)는 다양한 버스 아키텍처 중 어느 하나를 이용하는 메 모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 및 로컬 버스를 포함하는 몇 가지 유형의 버스 구조 중 어느 하나일 수 있다. 한정이 아닌, 예시로서, 이런 아키텍처는 업계 표준 아키텍처(ISA) 버스, 마이크로 채널 아키텍처(MCA) 버스, 강화된 ISA(EISA) 버스, 비디오 전자 표준 위원회(VESA) 로컬 버스, 및 메자닌(Mezzanine) 버스로서도 알려져 있는 주변 컴포넌트 상호접속(PCI) 버스를 포함한다. 도 1a에 대하여 기술된 메모리 및 프로그램은 도 11의 상응하는 부분에 배치될 수 있다.
컴퓨터(810)는 다양한 컴퓨터 판독가능 매체를 포함하는 것이 보통이다. 컴퓨터 판독가능 매체는 컴퓨터(810)에 의해 액세스될 수 있는 한편, 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 모두 포함하는 임의의 가용 매체일 수 있다. 한정이 아닌, 예시로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 변조된 데이터 신호 또는 반송파와는 다르며, 이들을 포함하지 않는다. 해당 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 그 밖의 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성의, 이동식 및 비이동식 매체를 포함하는 하드웨어 저장 매체를 포함한다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 그 밖의 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 그 밖의 광 디스크 저장, 자기 카세트, 자기 테이프, 자기 디스크 저장 또는 그 밖의 자기 저장 장치, 또는 원하는 정보를 저장하는데 이용될 수 있으며 컴퓨터(810)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들에 한정되는 것은 아니다. 통신 매체는 통상적으로, 전송 메커니즘 내의 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 데이터를 구체화하고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 하나 이상의 그 특징 세트가 신호 내의 정보를 암호화하는 것과 같은 방식으로 설정 또는 변경된 신호를 의미한다. 한정이 아닌, 예시로서, 통신 매체는 유선 네트워크 또는 직접-유선 접속과 같은 유선 매체, 및 음향, RF, 적외선 및 그 밖의 무선 매체와 같은 무선 매체를 포함한다. 전술한 것의 임의의 조합도 컴퓨터 판독가능 매체의 범주 내에 포함되어야 한다.
시스템 메모리(830)는 리드 온리 메모리(ROM, 831) 및 랜덤 액세스 메모리(RAM, 832)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 예컨대, 시동 도중에, 컴퓨터(810) 내부의 구성 요소 사이에서 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS, 833)은 통상적으로 ROM(831)에 저장된다. RAM(832)은 통상적으로, 처리 유닛(820)에 즉시 액세스 가능하거나 및/또는 현재 처리 유닛에 의해 동작되는 데이터 및/또는 프로그램 모듈을 포함한다. 한정이 아닌 예시로서, 도 11는 운영 체제(834), 애플리케이션 프로그램(835), 기타 프로그램 모듈(836), 및 프로그램 데이터(837)를 도시한다.
컴퓨터(810)는 또한, 다른 이동식/비이동식의 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수도 있다. 단지 예시일 뿐이지만, 도 11는 비이동식, 비휘발성의 자기 매체에 대하여 판독 또는 기입하는 하드 디스크 드라이브(841), 및 CD ROM 또는 그 밖의 광학 매체와 같은 이동식의 비휘발성 광 디스크(856)에 대하여 판독 또는 기입하는 광 디스크 드라이브(855)를 도시한다. 예시적인 동작 환경에서 이용될 수 있는 다른 이동식/비이동식의, 휘발성/비휘발성 컴퓨터 저장 매체는, 자기 테이프 카세트, 플래시 메모리 카드, 디지털 다기능 디스크, 디지털 비디오 테이프, 반도체 RAM, 반도체 ROM 등을 포함하지만, 이들에 한정되는 것은 아니다. 하드 디스크 드라이브(841)는 통상적으로, 인터페이스(840)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(821)에 접속되고, 광 디스크 드라이브(855)는 통상적으로, 인터페이스(850)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(821)에 접속된다.
대안으로서, 또는 부가적으로, 본원에 기술된 기능은, 적어도 부분적으로, 하나 이상의 하드웨어 로직 컴포넌트에 의해 수행될 수 있다. 예컨대, 이용될 수 있는 하드웨어 로직 컴포넌트의 예시적인 유형은 필드-프로그래머블 게이트 어레이(FPGAs), 프로그램-지정 집적 회로(ASICs), 프로그램-지정 표준 제품(ASSPs), 시스템-온-칩 시스템(SOCs), 복합 프로그래머블 로직 장치(CPLDs) 등을 포함하며, 다만 이에 한정되지는 않는다.
앞서 논의되고 도 11에서 도시된 드라이브 및 이들의 연관 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 그 밖의 데이터의 저장을 컴퓨터(810)에 제공한다. 도 11에 있어서, 예컨대, 하드 디스크 드라이브(841)는 운영 체제(844), 애플리케이션 프로그램(845), 기타 프로그램 모듈(846), 및 프로그램 데이터(847)를 저장하는 것으로 도시된다. 이들 컴포넌트는 운영 체제(834), 애플리케이션 프로그램(835), 기타 프로그램 모듈(836), 및 프로그램 데이터(837)와 동일하거나 또는 상이할 수 있다는 점에 유의한다. 운영 체제(844), 애플리케이션 프로그램(845), 기타 프로그램 모듈(846), 및 프로그램 데이터(847)는 최소한 그들이 상이한 복사본임을 설명하도록 여기서는 서로 다른 번호가 부여된다.
사용자는, 키보드(862), 마이크(863), 및 마우스, 트랙볼 또는 터치패드와 같은 포인팅 장치(861) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(810)에 입력할 수 있다. 그 밖의 입력 장치(도시되지 않음)는 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 다른 입력 장치는 흔히 시스템 버스에 연결되는 사용자 입력 인터페이스(860)를 통해 처리 유닛(820)에 접속되지만, 병렬 포트, 게임 포트 또는 범용 직렬 버스(USB)와 같은 그 밖의 인터페이스 및 버스 구조에 의해 접속될 수 있다. 시각 디스플레이(891) 또는 그 밖의 유형의 디스플레이 장치가 또한, 비디오 인터페이스(890)와 같은 인터페이스를 통해 시스템 버스(821)에 접속된다. 모니터 외에도, 컴퓨터는 출력 주변장치 인터페이스(895)를 통해 접속될 수 있는 스피커(897) 및 프린터(896)와 같은 다른 주변 출력 장치를 또한 포함할 수 있다.
컴퓨터(810)는 원격 컴퓨터(880)와 같은 하나 이상의 원격 컴퓨터에 대한 논리적 접속을 이용하여 네트워크화된 환경에서 작동된다. 원격 컴퓨터(880)는 개인용 컴퓨터, 핸드헬드 장치, 서버, 라우터, 네트워크 PC, 피어(peer) 장치 또는 그 밖의 공통 네트워크 노드일 수 있고, 통상적으로 컴퓨터(810)와 관련하여 전술한 구성 요소를 다수 또는 전부 포함한다. 도 11에 묘사된 논리적 접속은 근거리 통신망(LAN, 871) 및 광역 통신망(WAN, 873)을 포함하지만, 다른 네트워크를 포함할 수도 있다. 이런 네트워킹 환경은 오피스, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서 아주 흔하다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(810)는 네트워크 인터페이스 또는 어댑터(870)를 통해 LAN(871)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(810)는 통상적으로 인터넷과 같은 WAN(873)을 통한 통신을 확립하는 모뎀(872) 또는 그 밖의 수단을 포함한다. 내부 또는 외부에 있을 수 있는 모뎀(872)은 사용자 입력 인터페이스(860), 또는 그 밖의 적절한 메커니즘을 통해 시스템 버스(821)에 접속될 수 있다. 네트워크화된 환경에서, 컴퓨터(810), 또는 그 일부분에 관하여 묘사된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 한정이 아닌 예시로서, 도 11는 원격 애플리케이션 프로그램(885)을 원격 컴퓨터(880)에 상주하는 것으로 도시한다. 도시된 네트워크 접속은 예시이며, 컴퓨터들 사이에서 통신 링크를 확립하는 다른 수단이 이용될 수 있다는 점을 인식할 것이다.
본원에 기술된 상이한 실시예들은 다양하게 결합될 수 있다는 점도 유의해야 한다. 즉, 하나 이상의 실시예 중 일부는 하나 이상의 다른 실시예들 중 일부와 결합될 수 있다. 본원에서는 이들 모두가 고려된다.
예시 1은 허가 컴퓨팅 시스템이며, 서명된 사용자 액세스 요청을 수신하는 서명 검증 엔진- 상기 사용자 액세스 요청은 사용자를 식별하고 원격 멀티-테넌트 용량 시스템에서 타겟 머신 상의 타겟 자원에 대한 액세스를 요청하여, 상기 타겟 자원에 대한 워크 플로우를 수행하고, 상기 사용자 액세스 요청은 원격 멀티-테넌트 관리 시스템으로부터 수신하며, 상기 서명 검증 엔진은 상기 멀티-테넌트 관리 시스템에 속하는 것으로서 상기 사용자 액세스 요청에 대한 제 1 서명을 검증함 -, 사용자 액세스 계정들의 집합, 상기 사용자 액세스 계정들에 액세스하고 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 역할-기반 액세스 제어 시스템, 및 상기 제 1 서명을 검증하는 상기 서명 검증 엔진 및 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 상기 역할-기반 액세스 제어 시스템에 적어도 부분적으로 기초하여, 상기 사용자 액세스 요청에 기초하는 출력 패키지를 생성하는 자격 토큰 서비스를 포함한다.
예시 2는 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 사용자 액세스 요청은 상기 사용자에 대응하는 원격 클라이언트 시스템에 의해 추가로 서명되고, 상기 서명 검증 시스템은 상기 원격 클라이언트 시스템에 속하는 것으로서 제 2 서명을 검증한다.
예시 3은 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 자격 토큰 서비스는 상기 서명 검증 엔진이 상기 제 1 및 제 2 서명을 검증하고 상기 역할-기반 액세스 제어 시스템이 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 것에 응답하여 서비스 컴포넌트 서명 인증서로 상기 워크 플로우에 서명하는 서명 컴포넌트를 더 포함한다.
예시 4는 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 자격 토큰 서비스는 상기 워크 플로우를 수행하기 위해 상기 타겟 머신 상의 상기 타겟 자원에 액세스하도록 상기 허기 컴퓨팅 시스템이 사용자를 인가한 것을 나타내는 승인된 워크 플로우 패키지를 생성하는 워크 플로우 패키지 생성기를 포함한다.
예시 5는 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 워크 플로우 패키지 생성기는 상기 승인된 워크 플로우 패키지를 상기 원격 멀티-테넌트 관리 시스템의 승인된 요청 큐에 출력한다.
예시 6은 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 허가 컴퓨팅 시스템은 상기 사용자가 상기 워크 플로우를 수행하기 위해 다른 사용자의 승인을 필요로 하는지 여부를 식별하는 승인 요청 시스템을 더 포함한다.
예시 7은 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 원격 클라이언트 시스템은 사용자 액세스 서명 인증서로 상기 사용자 액세스 요청에 서명하고, 상기 허가 컴퓨팅 시스템은 사용자 액세스 서명 인증서에 대한 요청을 수신하고 상기 해당 사용자가 사용자 액세스 서명 인증서를 수신하도록 인가된 지정된 그룹의 구성원인지를 검증하고, 그렇다면, 상기 사용자 액세스 서명 인증서에 대한 요청에 응답하여 상기 사용자 액세스 서명 인증서를 상기 원격 클라이언트 시스템으로 반환하는 인증서 컴포넌트를 더 포함한다.
예시 8은 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 사용자 액세스 서명 인증서에 대한 요청은 공개/비밀 키 쌍 내의 키로 암호화되고, 상기 허가 컴퓨팅 시스템은 공개 키/개인 키 쌍 내의 적어도 하나의 키를 사용하여 상기 사용자 액세스 서명 인증서 요청을 해독하는 키 컴포넌트를 더 포함한다.
예시 9는 임의의 또는 모든 이전 예시의 허가 컴퓨팅 시스템이며, 상기 허가 컴퓨팅 시스템은 그룹 멤버쉽 정보를 식별하기 위해 사용자 액세스 계정 및 서버 액세스 계정에 액세스하는 신원 관리 시스템을 더 포함하며, 상기 인증서 컴포넌트는 상기 신원 관리 시스템에 액세스하여 상기 원격 클라이언트 시스템에 대응하는 사용자가 상기 지정된 그룹의 구성원인지를 결정한다.
예시 10은 컴퓨터 구현 방법이며, 허가 컴퓨팅 시스템에서, 서명된 사용자 액세스 요청을 수신하는 단계 - 상기 사용자 액세스 요청은 사용자를 식별하고 원격 멀티-테넌트 용량 시스템에서 타겟 머신 상의 타겟 자원에 대한 액세스를 요청하여, 상기 타겟 자원에 대한 워크 플로우를 수행하고, 상기 사용자 액세스 요청은 멀티-테넌트 관리 시스템으로부터 수신됨 -, 상기 멀티-테넌트 관리 시스템에 속하는 것으로서 상기 사용자 액세스 요청에 대한 제 1 서명을 검증하는 단계, 사용자 액세스 계정에 액세스하는 단계, 상기 사용자가 상기 사용자 액세스 계정에 기초하여 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 단계, 및 적어도 부분적으로는 상기 제 1 서명의 검증 및 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지의 검증에 기초하여, 검증 표시 및 상기 사용자 액세스 요청에서 식별된 워크 플로우를 포함하는 출력 패키지를 생성하는 단계를 포함한다.
예시 11은 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 사용자 액세스 요청은 상기 사용자에 대응하는 원격 클라이언트 시스템에 의해 추가로 서명되고, 상기 방법은 상기 원격 클라이언트 시스템에 속하는 것으로서 제 2 서명을 검증하는 단계를 더 포함한다.
예시 12는 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 방법은 상기 제 1 및 제 2 서명을 검증하고 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 것에 응답하여, 서명 인증서로 상기 워크 플로우에 서명하는 단계를 더 포함한다.
예시 13은 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 출력 패키지를 생성하는 단계는 상기 워크 플로우를 수행하기 위해 상기 타겟 머신 상의 상기 타겟 자원에 액세스하도록 상기 허가 컴퓨팅 시스템이 사용자를 인가한 것을 나타내는 승인된 워크 플로우 패키지를 생성하는 단계를 포함한다.
예시 14는 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 승인된 워크 플로우 패키지를 생성하는 단계는 상기 승인된 워크 플로우 패키지를 상기 원격 멀티-테넌트 관리 시스템의 승인된 요청 큐로 전송하는 단계를 포함한다.
예시 15는 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 원격 클라이언트 시스템은 사용자 액세스 서명 인증서로 상기 사용자 액세스 요청에 서명하고, 상기 방법은 사용자 액세스 서명 인증서에 대한 요청을 상기 원격 클라이언트 시스템으로부터 수신하는 단계, 상기 해당 사용자가 사용자 액세스 서명 인증서를 수신하도록 인가된 지정된 그룹의 구성원인지를 검증하는 단계, 그렇다면, 상기 사용자 액세스 서명 인증서에 대한 요청에 응답하여 상기 사용자 액세스 서명 인증서를 상기 원격 클라이언트 시스템으로 반환하는 단계를 더 포함한다.
예시 16은 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 사용자 액세스 서명 인증서에 대한 요청은 공개/비밀 키 쌍 내의 키로 암호화되고, 상기 방법은 상기 공개 키/개인 키 쌍 내의 키를 사용하여 상기 사용자 액세스 서명 인증서 요청을 해독하는 단계를 더 포함한다.
예시 17은 임의의 또는 모든 이전 예시의 컴퓨터 구현 방법이며, 상기 해당 사용자가 지정된 그룹의 구성원인지를 검증하는 단계는 그룹 멤버쉽 정보를 식별하기 위해 사용자 액세스 계정 및 서버 액세스 계정에 액세스하여, 상기 원격 클라이언트 시스템에 대응하는 사용자가 상기 지정된 그룹의 구성원인지를 결정하는 단계를 포함한다.
예시 18은 컴퓨팅 시스템이며, 서명된 사용자 액세스 요청을 수신하는 서명 검증 엔진 - 상기 사용자 액세스 요청은 사용자를 식별하고 원격 멀티-테넌트 용량 시스템에서 타겟 머신 상의 타겟 자원에 대한 액세스를 요청하여, 상기 타겟 자원에 대한 워크 플로우를 수행하고, 상기 사용자 액세스 요청은 원격 멀티-테넌트 관리 시스템으로부터 수신하며, 상기 서명 검증 엔진은 상기 멀티-테넌트 관리 시스템에 속하는 것으로서 상기 사용자 액세스 요청에 대한 제 1 서명을 검증함 -, 사용자 액세스 계정들의 집합, 상기 사용자 액세스 계정들에 액세스하고 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 역할-기반 액세스 제어 시스템, 및 상기 제 1 서명을 검증하는 상기 서명 검증 엔진 및 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 상기 역할-기반 액세스 제어 시스템에 적어도 부분적으로 기초하여, 상기 컴퓨팅 시스템이 상기 워크 플로우를 수행하도록 상기 타겟 머신의 상기 타겟 자원에 액세스하도록 상기 사용자를 인가했음을 나타내는 승인된 워크 플로우 패키지를 생성하는 워크 플로우 패키지 생성기를 포함한다.
예시 19는 임의의 또는 모든 이전 예시의 컴퓨팅 시스템이며, 상기 사용자 액세스 요청은 상기 사용자에 대응하는 원격 클라이언트 시스템에 의해 추가로 서명되고, 상기 서명 검증 시스템은 상기 원격 클라이언트 시스템에 속하는 것으로서 제 2 서명을 검증하며, 상기 컴퓨팅 시스템은 상기 제 1 및 제 2 서명을 검증하는 상기 서명 검증 엔진 및 상기 사용자가 상기 워크 플로우를 수행하도록 인가되었는지를 검증하는 상기 역할-기반 액세스 제어 시스템에 응답하여, 서비스 컴포넌트 서명 인증서로 상기 워크 플로우에 서명하는 서명 컴포넌트를 더 포함한다.
예시 20은 임의의 또는 모든 이전 예시의 컴퓨팅 시스템이며, 상기 워크 플로우 패키지 생성기는 상기 승인된 워크 플로우 패키지를 상기 원격 멀티-테넌트 관리 시스템의 승인된 요청 큐에 전송한다.
청구 대상이 구조적 특징 및/또는 방법론적 동작을 특정하는 내용으로 기술되어 있지만, 첨부된 청구항에 규정된 청구 대상은 반드시 전술한 특정한 특징 또는 동작에 한정되는 것은 아님을 이해해야 한다. 오히려, 전술한 특정한 특징 및 동작은 청구항을 구현하는 예시적인 형태로서 개시된다.
Claims (15)
- 허가 컴퓨팅 시스템으로서,
서명된 사용자 액세스 요청을 수신하는 서명 검증 엔진(358) - 상기 사용자 액세스 요청은 사용자를 식별하고 원격 멀티-테넌트 용량 시스템(140)에서 타겟 머신 상의 타겟 자원에 대한 액세스를 요청하여, 상기 타겟 자원에 대한 태스크를 수행하고, 상기 사용자 액세스 요청은 원격 멀티-테넌트 관리 시스템(116)으로부터 수신하며, 상기 서명 검증 엔진(358)은 상기 멀티-테넌트 관리 시스템(116)에 속하는 것으로서 상기 사용자 액세스 요청에 대한 제 1 서명을 검증함 -,
사용자 액세스 계정들(178)의 집합,
상기 사용자 액세스 계정들(178)에 액세스하고 상기 사용자가 상기 태스크를 수행하도록 인가되었는지를 검증하는 역할-기반 액세스 제어 시스템(164), 및
상기 제 1 서명을 검증하는 상기 서명 검증 엔진(358) 및 상기 사용자가 상기 태스크를 수행하도록 인가되었는지를 검증하는 상기 역할-기반 액세스 제어 시스템(164)에 적어도 부분적으로 기초하여, 상기 사용자 액세스 요청에 기초하는 출력 패키지를 생성하는 자격 토큰 서비스(182)를 포함하는
허가 컴퓨팅 시스템.
- 제 1 항에 있어서,
상기 사용자 액세스 요청은 상기 사용자에 대응하는 원격 클라이언트 시스템에 의해 추가로 서명되고, 상기 서명 검증 시스템은 상기 원격 클라이언트 시스템에 속하는 것으로서 제 2 서명을 검증하는
허가 컴퓨팅 시스템.
- 제 2 항에 있어서,
상기 자격 토큰 서비스는
상기 서명 검증 엔진이 상기 제 1 및 제 2 서명을 검증하고 상기 역할-기반 액세스 제어 시스템이 상기 사용자가 상기 태스크를 수행하도록 인가되었는지를 검증하는 것에 응답하여 서비스 컴포넌트 서명 인증서로 상기 워크 플로우에 서명하는 서명 컴포넌트를 더 포함하는
허가 컴퓨팅 시스템.
- 제 3 항에 있어서,
상기 자격 토큰 서비스는
상기 태스크를 수행하기 위해 상기 타겟 머신 상의 상기 타겟 자원에 액세스하도록 상기 허기 컴퓨팅 시스템이 사용자를 인가한 것을 나타내는 승인된 태스크 패키지를 생성하는 태스크 패키지 생성기를 포함하는
허가 컴퓨팅 시스템.
- 제 4 항에 있어서,
상기 태스크 패키지 생성기는 상기 승인된 태스크 패키지를 상기 원격 멀티-테넌트 관리 시스템의 승인된 요청 큐에 출력하는
허가 컴퓨팅 시스템.
- 제 5 항에 있어서,
상기 시스템은
상기 사용자가 상기 태스크를 수행하기 위해 다른 사용자의 승인을 필요로 하는지 여부를 식별하는 승인 요청 시스템을 더 포함하는
허가 컴퓨팅 시스템.
- 제 2 항에 있어서,
상기 원격 클라이언트 시스템은 사용자 액세스 서명 인증서로 상기 사용자 액세스 요청에 서명하고,
상기 시스템은
사용자 액세스 서명 인증서에 대한 요청을 수신하고 상기 해당 사용자가 사용자 액세스 서명 인증서를 수신하도록 인가된 지정된 그룹의 구성원인지를 검증하고, 그렇다면, 상기 사용자 액세스 서명 인증서에 대한 요청에 응답하여 상기 사용자 액세스 서명 인증서를 상기 원격 클라이언트 시스템으로 반환하는 인증서 컴포넌트를 더 포함하는
허가 컴퓨팅 시스템.
- 제 7 항에 있어서,
상기 사용자 액세스 서명 인증서에 대한 요청은 공개/비밀 키 쌍 내의 키로 암호화되고,
상기 시스템은
공개 키/개인 키 쌍 내의 적어도 하나의 키를 사용하여 상기 사용자 액세스 서명 인증서 요청을 해독하는 키 컴포넌트를 더 포함하는
허가 컴퓨팅 시스템.
- 제 7 항에 있어서,
상기 시스템은
그룹 멤버쉽 정보를 식별하기 위해 사용자 액세스 계정 및 서버 액세스 계정에 액세스하는 신원 관리 시스템을 더 포함하며, 상기 인증서 컴포넌트는 상기 신원 관리 시스템에 액세스하여 상기 원격 클라이언트 시스템에 대응하는 사용자가 상기 지정된 그룹의 구성원인지를 결정하는
허가 컴퓨팅 시스템.
- 컴퓨터 구현 방법으로서,
허가 컴퓨팅 시스템(104)에서, 서명된 사용자 액세스 요청을 수신하는 단계(420) - 상기 사용자 액세스 요청은 사용자를 식별하고 원격 멀티-테넌트 용량 시스템(140)에서 타겟 머신 상의 타겟 자원에 대한 액세스를 요청하여, 상기 타겟 자원에 대한 태스크를 수행하고, 상기 사용자 액세스 요청은 멀티-테넌트 관리 시스템(116)으로부터 수신됨 -,
상기 멀티-테넌트 관리 시스템(116)에 속하는 것으로서 상기 사용자 액세스 요청에 대한 제 1 서명을 검증하는 단계(422),
사용자 액세스 계정에 액세스하는 단계(178),
상기 사용자가 상기 사용자 액세스 계정(178)에 기초하여 상기 태스크를 수행하도록 인가되었는지를 검증하는 단계(422), 및
적어도 부분적으로는 상기 제 1 서명의 검증 및 상기 사용자가 상기 태스크를 수행하도록 인가되었는지의 검증에 기초하여, 검증 표시 및 상기 사용자 액세스 요청에서 식별된 태스크를 포함하는 출력 패키지를 생성하는 단계(430)를 포함하는
방법.
- 제 10 항에 있어서,
상기 사용자 액세스 요청은 상기 사용자에 대응하는 원격 클라이언트 시스템에 의해 추가로 서명되고,
상기 방법은
상기 원격 클라이언트 시스템에 속하는 것으로서 제 2 서명을 검증하는 단계를 더 포함하는
방법.
- 제 11 항에 있어서,
상기 방법은
상기 제 1 및 제 2 서명을 검증하고 상기 사용자가 상기 태스크를 수행하도록 인가되었는지를 검증하는 것에 응답하여, 서명 인증서로 상기 태스크에 서명하는 단계를 더 포함하는
방법.
- 제 12 항에 있어서,
상기 출력 패키지를 생성하는 단계는
상기 태스크를 수행하기 위해 상기 타겟 머신 상의 상기 타겟 자원에 액세스하도록 상기 허가 컴퓨팅 시스템이 사용자를 인가한 것을 나타내는 승인된 태스크 패키지를 생성하는 단계를 포함하는
방법.
- 제 13 항에 있어서,
상기 승인된 태스크 패키지를 생성하는 단계는
상기 승인된 태스크 패키지를 상기 원격 멀티-테넌트 관리 시스템의 승인된 요청 큐로 전송하는 단계를 포함하는
방법.
- 컴퓨팅 시스템으로서,
서명된 사용자 액세스 요청을 수신하는 서명 검증 엔진(358) - 상기 사용자 액세스 요청은 사용자를 식별하고 원격 멀티-테넌트 용량 시스템(140)에서 타겟 머신 상의 타겟 자원에 대한 액세스를 요청하여, 상기 타겟 자원에 대한 태스크를 수행하고, 상기 사용자 액세스 요청은 원격 멀티-테넌트 관리 시스템(116)으로부터 수신하며, 상기 서명 검증 엔진은 상기 멀티-테넌트 관리 시스템(116)에 속하는 것으로서 상기 사용자 액세스 요청에 대한 제 1 서명을 검증함 -,
사용자 액세스 계정들(178)의 집합,
상기 사용자 액세스 계정들(178)에 액세스하고 상기 사용자가 상기 태스크를 수행하도록 인가되었는지를 검증하는 역할-기반 액세스 제어 시스템(164), 및
상기 제 1 서명을 검증하는 상기 서명 검증 엔진(358) 및 상기 사용자가 상기 태스크를 수행하도록 인가되었는지를 검증하는 상기 역할-기반 액세스 제어 시스템(164)에 적어도 부분적으로 기초하여, 상기 컴퓨팅 시스템(104)이 상기 태스크를 수행하도록 상기 타겟 머신의 상기 타겟 자원에 액세스하도록 상기 사용자를 인가했음을 나타내는 승인된 태스크 패키지를 생성하는 태스크 패키지 생성기(362)를 포함하는
컴퓨팅 시스템.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462094791P | 2014-12-19 | 2014-12-19 | |
US62/094,791 | 2014-12-19 | ||
US14/714,786 US9787690B2 (en) | 2014-12-19 | 2015-05-18 | Security and permission architecture |
US14/714,786 | 2015-05-18 | ||
US14/970,773 US10063537B2 (en) | 2014-12-19 | 2015-12-16 | Permission architecture for remote management and capacity instances |
US14/970,773 | 2015-12-16 | ||
PCT/US2015/066352 WO2016100649A1 (en) | 2014-12-19 | 2015-12-17 | Security and permission architecture in a multi-tenant computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170096116A true KR20170096116A (ko) | 2017-08-23 |
KR102459199B1 KR102459199B1 (ko) | 2022-10-25 |
Family
ID=55080203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177016411A KR102459199B1 (ko) | 2014-12-19 | 2015-12-17 | 멀티-테넌트 컴퓨팅 시스템의 보안 및 허가 아키텍처 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10063537B2 (ko) |
EP (1) | EP3235216B1 (ko) |
KR (1) | KR102459199B1 (ko) |
CN (1) | CN107113302B (ko) |
WO (1) | WO2016100649A1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9804891B1 (en) * | 2015-03-20 | 2017-10-31 | Antara Teknik LLC | Parallelizing multiple signing and verifying operations within a secure routing context |
US10915299B2 (en) * | 2015-10-16 | 2021-02-09 | Salesforce.Com, Inc. | Automatically matching start criteria and completion criteria of a walkthrough for an application or online service |
US10298589B2 (en) | 2016-01-27 | 2019-05-21 | International Business Machines Corporation | User abstracted RBAC in a multi tenant environment |
US10320572B2 (en) * | 2016-08-04 | 2019-06-11 | Microsoft Technology Licensing, Llc | Scope-based certificate deployment |
CN107689938A (zh) * | 2016-08-04 | 2018-02-13 | 捷而思股份有限公司 | 伪造指令自动过滤系统、协同运作系统、与相关的指令核实电路 |
US10992698B2 (en) * | 2017-06-05 | 2021-04-27 | Meditechsafe, Inc. | Device vulnerability management |
GB2565052B (en) * | 2017-07-27 | 2020-08-19 | Arm Ip Ltd | Authorized operations in electronic systems |
US10862831B2 (en) * | 2017-08-03 | 2020-12-08 | Digital 14 Llc | System, method, and computer program product providing end-to-end security of centrally accessible group membership information |
CN109600336B (zh) * | 2017-09-30 | 2021-09-21 | 武汉极意网络科技有限公司 | 验证码应用方法、装置和计算机可读存储介质 |
KR102485368B1 (ko) | 2018-01-15 | 2023-01-05 | 삼성전자주식회사 | 전자 장치, 그 제어 방법 및 컴퓨터 판독가능 기록 매체 |
EP3511820A1 (en) * | 2018-01-15 | 2019-07-17 | Siemens Aktiengesellschaft | Cloud based artifact lifecycle management system and method thereof |
US10437634B1 (en) | 2018-04-16 | 2019-10-08 | Microsoft Technology Licensing Llc | Independently threading API calls to service a request |
US10558794B2 (en) * | 2018-05-09 | 2020-02-11 | Cody Myers | Indexable authentication system and method |
US11363028B2 (en) * | 2018-09-27 | 2022-06-14 | The Toronto-Dominion Bank | Systems and methods for delegating access to a protected resource |
CN111192100A (zh) * | 2018-11-14 | 2020-05-22 | 中兴通讯股份有限公司 | 一种工作流调度方法、装置和系统 |
US11138598B2 (en) * | 2018-12-17 | 2021-10-05 | Mastercard International Incorporated | Method and system for consent to time-bound queries in a blockchain |
EP3909250A4 (en) * | 2019-01-11 | 2022-08-24 | Nokia Technologies Oy | METHOD AND DEVICE FOR AUTHENTICATION AND AUTHORIZATION OF NETWORK-BASED MEDIA PROCESSING |
JP7247692B2 (ja) * | 2019-03-22 | 2023-03-29 | 富士フイルムビジネスイノベーション株式会社 | トークン管理装置及びトークン管理プログラム |
WO2020222823A1 (en) * | 2019-04-30 | 2020-11-05 | Hewlett-Packard Development Company, L.P. | Verifications of workload signatures |
CN110532074B (zh) * | 2019-08-08 | 2021-11-23 | 北明云智(武汉)网软有限公司 | 一种多租户模式SaaS服务集群环境的任务调度方法及系统 |
US11494763B2 (en) * | 2019-08-19 | 2022-11-08 | Anchor Labs, Inc. | Cryptoasset custodial system with custom logic |
CN111800392B (zh) * | 2020-06-15 | 2023-08-25 | 广州海颐信息安全技术有限公司 | 动态最小化特权访问控制方法及装置 |
US11483148B2 (en) | 2021-01-15 | 2022-10-25 | Micron Technology, Inc. | Batch transfer of control of memory devices over computer networks |
US20220231838A1 (en) * | 2021-01-15 | 2022-07-21 | Micron Technology, Inc. | Server System to Control Memory Devices over Computer Networks |
US20220300332A1 (en) * | 2021-03-17 | 2022-09-22 | Microsoft Technology Licensing, Llc | Dynamically acquiring scoped permissions to perform operations in compute capacity and resources |
US20230093122A1 (en) * | 2021-09-20 | 2023-03-23 | Cisco Technology, Inc. | Authorization scope management for low-code programming environments |
US11546358B1 (en) * | 2021-10-01 | 2023-01-03 | Netskope, Inc. | Authorization token confidence system |
US11902804B2 (en) * | 2022-01-04 | 2024-02-13 | Cisco Technology, Inc. | Fault triage and management with restricted third-party access to a tenant network |
US20230224146A1 (en) * | 2022-01-07 | 2023-07-13 | Oracle International Corporation | Quorum-based authorization |
US12010112B2 (en) * | 2022-03-28 | 2024-06-11 | Lenovo Global Technology (United States) Inc. | Remote secured console over a secured connection for inoperable virtual machine |
US20230353557A1 (en) * | 2022-04-28 | 2023-11-02 | Vmware, Inc. | Authentication orchestration across remote appliances |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009131656A2 (en) * | 2008-04-22 | 2009-10-29 | Barclays Capital Inc. | System and method for secure remote computer task automation |
US20110307947A1 (en) * | 2010-06-14 | 2011-12-15 | Microsoft Corporation | Flexible end-point compliance and strong authentication for distributed hybrid enterprises |
US20120096271A1 (en) * | 2010-10-15 | 2012-04-19 | Microsoft Corporation | Remote Access to Hosted Virtual Machines By Enterprise Users |
KR20130047070A (ko) * | 2011-10-31 | 2013-05-08 | 삼성에스디에스 주식회사 | 커넥터 어플리케이션의 자동화 배포를 위한 멀티 테넌트 SaaS 플랫폼 및 그를 위한 방법, 그리고, 가상머신을 이용하는 테넌트와 서비스 공급업체 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6775781B1 (en) | 1999-12-13 | 2004-08-10 | Microsoft Corporation | Administrative security systems and methods |
WO2003034179A2 (en) * | 2001-10-16 | 2003-04-24 | Outtask, Inc. | System and method for managing booking and expensing of travel products and services |
US7757281B2 (en) | 2006-06-09 | 2010-07-13 | Microsoft Corporation | Privilege restriction enforcement in a distributed system |
US10007767B1 (en) * | 2007-12-21 | 2018-06-26 | EMC IP Holding Company LLC | System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service |
US7987900B2 (en) | 2008-04-21 | 2011-08-02 | Mikutay Corporation | Heat exchanger with heat exchange chambers utilizing respective medium directing members |
US20100281173A1 (en) | 2009-05-01 | 2010-11-04 | Microsoft Corporation | Delegated administration for remote management |
CN101694685A (zh) * | 2009-10-12 | 2010-04-14 | 南京联创科技集团股份有限公司 | 采用基于xml加密和数字证书的安全产品许可证管理方法 |
CN102594841B (zh) * | 2012-03-21 | 2015-01-07 | 山东绿计算电子科技有限公司 | 用于云计算环境下的分布式多租户节点数字认证体系 |
US9185114B2 (en) | 2012-12-05 | 2015-11-10 | Symantec Corporation | Methods and systems for secure storage segmentation based on security context in a virtual environment |
US9027087B2 (en) | 2013-03-14 | 2015-05-05 | Rackspace Us, Inc. | Method and system for identity-based authentication of virtual machines |
US9426226B2 (en) | 2013-05-03 | 2016-08-23 | Secureworks Corp. | System and method for as needed connection escalation |
US9787690B2 (en) | 2014-12-19 | 2017-10-10 | Microsoft Technology Licensing, Llc | Security and permission architecture |
-
2015
- 2015-12-16 US US14/970,773 patent/US10063537B2/en active Active
- 2015-12-17 EP EP15823085.4A patent/EP3235216B1/en active Active
- 2015-12-17 CN CN201580069392.XA patent/CN107113302B/zh active Active
- 2015-12-17 WO PCT/US2015/066352 patent/WO2016100649A1/en active Application Filing
- 2015-12-17 KR KR1020177016411A patent/KR102459199B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009131656A2 (en) * | 2008-04-22 | 2009-10-29 | Barclays Capital Inc. | System and method for secure remote computer task automation |
US20110307947A1 (en) * | 2010-06-14 | 2011-12-15 | Microsoft Corporation | Flexible end-point compliance and strong authentication for distributed hybrid enterprises |
US20120096271A1 (en) * | 2010-10-15 | 2012-04-19 | Microsoft Corporation | Remote Access to Hosted Virtual Machines By Enterprise Users |
KR20130047070A (ko) * | 2011-10-31 | 2013-05-08 | 삼성에스디에스 주식회사 | 커넥터 어플리케이션의 자동화 배포를 위한 멀티 테넌트 SaaS 플랫폼 및 그를 위한 방법, 그리고, 가상머신을 이용하는 테넌트와 서비스 공급업체 |
Also Published As
Publication number | Publication date |
---|---|
WO2016100649A1 (en) | 2016-06-23 |
US20160182487A1 (en) | 2016-06-23 |
EP3235216B1 (en) | 2020-07-29 |
CN107113302A (zh) | 2017-08-29 |
KR102459199B1 (ko) | 2022-10-25 |
CN107113302B (zh) | 2020-05-19 |
EP3235216A1 (en) | 2017-10-25 |
US10063537B2 (en) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102459199B1 (ko) | 멀티-테넌트 컴퓨팅 시스템의 보안 및 허가 아키텍처 | |
KR102454203B1 (ko) | 멀티-테넌트 컴퓨팅 시스템의 보안 및 허가 아키텍처 | |
US10666643B2 (en) | End user initiated access server authenticity check | |
US10735196B2 (en) | Password-less authentication for access management | |
JP6033990B2 (ja) | 単一のフレキシブルかつプラガブルOAuthサーバを備える複数のリソースサーバ、OAuth保護したREST式OAuth許諾管理サービス、およびモバイルアプリケーションシングルサインオンするOAuthサービス | |
US10157275B1 (en) | Techniques for access management based on multi-factor authentication including knowledge-based authentication | |
US10581826B2 (en) | Run-time trust management system for access impersonation | |
US10225283B2 (en) | Protection against end user account locking denial of service (DOS) | |
US20170034152A1 (en) | Restricting access for a single sign-on (sso) session | |
CN110546979B (zh) | 在服务与应用之间的多级分布式访问控制 | |
US20190332790A1 (en) | Impersonation for a federated user | |
EP3619904B1 (en) | Smart card thumb print authentication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |