KR102006198B1 - 공통 엔드포인트에 액세스하도록 서로 다른 디렉토리에 저장된 자격증명의 사용 - Google Patents

공통 엔드포인트에 액세스하도록 서로 다른 디렉토리에 저장된 자격증명의 사용 Download PDF

Info

Publication number
KR102006198B1
KR102006198B1 KR1020177011744A KR20177011744A KR102006198B1 KR 102006198 B1 KR102006198 B1 KR 102006198B1 KR 1020177011744 A KR1020177011744 A KR 1020177011744A KR 20177011744 A KR20177011744 A KR 20177011744A KR 102006198 B1 KR102006198 B1 KR 102006198B1
Authority
KR
South Korea
Prior art keywords
directory
service
user
authentication
directories
Prior art date
Application number
KR1020177011744A
Other languages
English (en)
Other versions
KR20170063893A (ko
Inventor
가우랑 파카지 메타
닐람 사티쉬 아그라왈
로렌스 훈-기 아웅
치라그 프라빈 판드야
Original Assignee
아마존 테크놀로지스, 인크.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 아마존 테크놀로지스, 인크. filed Critical 아마존 테크놀로지스, 인크.
Publication of KR20170063893A publication Critical patent/KR20170063893A/ko
Application granted granted Critical
Publication of KR102006198B1 publication Critical patent/KR102006198B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • H04L61/15
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4523Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4552Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1002
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • H04L67/16
    • H04L67/18
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

글로벌 엔드포인트는 서로 다른 지리적 영역들에 위치하는 복수의 디렉토리 및 조직명에 연관될 수도 있다. 글로벌 엔드포인트는 애플리케이션 또는 서비스에 액세스하도록 사용자들에 의해 사용되는 페이지를 호스팅하는 컴퓨팅 시스템일 수도 있다. 사용자는 이미 존재하고 있는 자격증명을 이용하여 애플리케이션 또는 서비스에 액세스할 수도 있다. 예를 들어, 사용자는, 사용자 자신이 가입한 엔티티에 의해 저장 및 유지되는 자격증명을 이용하여 애플리케이션 또는 서비스에 액세스할 수도 있다. 서로 다른 지리적 영역에 저장된 자격증명을 갖는 사용자들은 동일한 글로벌 엔드포인트를 통해 애플리케이션 또는 서비스에 액세스할 수도 있다.

Description

공통 엔드포인트에 액세스하도록 서로 다른 디렉토리에 저장된 자격증명의 사용{USING CREDENTIALS STORED IN DIFFERENT DIRECTORIES TO ACCESS A COMMON ENDPOINT}
관리자는 디렉토리 서비스를 빈번하게 이용하여 사용자 및/또는 컴퓨팅 자원 관리 및/또는 다양한 컴퓨팅 자원(예를 들어, 파일 시스템, 파일, 사용자, 보안 정책, 네트워크 자원, 애플리케이션, 시스템 저장 장치 등)에 대한 액세스를 제공하기 위한 디렉토리를 생성하고 유지한다. 디렉토리 서비스는 관리자(예를 들어, 온-프레미스(on-premise))에 의해 운영되는 데이터 서버에 구현될 수도 있다. 또한, 관리자는 데이터 서버와 네트워크 또는 도메인을 각각 공유하는 사용자들에 의해 운영되는 복수의 클라이언트 장치를 관리할 수도 있다. 클라이언트 장치들의 보안을 유지하고 도메인에 걸친 호환성을 보장하도록, 데이터 서버는, 클라이언트 장치에 보안 정책을 할당 및 시행할 수도 있고 클라이언트 장치에서 실행되는 소프트웨어를 설치 또는 업데이트할 수도 있다.
그러나, 데이터 서버의 설치, 유지, 및 운영은 부담일 수 있다. 데이터 서버 자체는 여러 컴퓨팅 시스템을 포함할 수도 있으므로 고가의 하드웨어를 구입해야 하고 복잡한 소프트웨어를 구성해야 할 수도 있다. 일부 경우에는, 데이터 서버에 대한 전력 공급 및 냉각을 위한 전용 설비도 필요할 수도 있다. 데이터 서버와 클라이언트 장치 간의 접속을 확립하고 유지하려면, 고가의 네트워크 장비를 설치해야 할 수도 있다. 게다가, 데이터 서버에 장애가 발생하거나 그 외에는 데이터가 손실되는 경우에는, 백업 및 복구 절차를 구현하기 위해 추가 하드웨어 및/또는 소프트웨어가 필요할 수도 있다.
도면 전체에 걸쳐, 참조 부호는 참조된 요소들 간의 대응 관계를 나타내기 위해 재사용될 수도 있다. 도면은, 본 명세서에 기술된 예시적인 실시예들을 설명하기 위해 제공된 것이며, 본 개시 내용의 범위를 제한하고자 하는 것이 아니다.
도 1a는 일 실시예에 따라 디렉토리 서비스를 제공하는 다양한 영역을 갖는 관리형 디렉토리 서비스 환경을 도시한다.
도 1b는 일부 실시예들에 따라 본 개시 내용의 디렉토리 관리 특징부들, 및 사용자, 그룹 및 장치 관리 및 인증 특징부들이 구현될 수 있는 네트워크 환경의 일례를 도시한다.
도 2a는 사용자 장치에 의해 액세스되는 서비스에 토큰을 제공하는 프로세스 동안 사용자 관리 및 인증 모듈(142)에 대한 상호작용을 도시한다.
도 2b는 토큰을 제공하고 API 호출을 처리하는 프로세스 동안 사용자 관리 및 인증 모듈(142)에 대한 상호작용을 도시한다.
도 3은 컴퓨터 자원 서비스 제공자 시스템에 의해 제공되는 제3자 애플리케이션 서버 또는 애플리케이션들 또는 서비스들에 의해 사용될 수도 있는 서로 다른 영역들에 있는 복수의 디렉토리에 연관된 공통 엔드포인트에서 사용자를 인증하기 위한 프로세스를 도시한다.
도 4a 및 도 4b는 도 1a 및 도 1b의 사용자 장치 등의 사용자 장치에서 보이는 네트워크 페이지의 표현의 일례를 도시한다.
도입 - 조직명이 있는 글로벌 엔드포인트
전술한 바와 같이, 디렉토리 서비스를 구현하는 온-프레미스 데이터 서버는 부담이 될 수 있다. 따라서, 종래의 일부 시스템에서, 관리되는 디렉토리 서비스(예를 들어, 마이크로소프트(MICROSOFT)(등록상표) 액티브 디렉토리(ACTIVE DIRECTORY)(등록상표)와 같이 컴퓨터 운영 체제의 디렉토리에 있는 정보를 저장하고, 조직하고, 이러한 정보에 대한 액세스를 제공하는 시스템)는, 원격으로 위치하며 복수의 관리자 및/또는 조직에 의해 공유되는 중앙 관리형 데이터 서버에 의해 구현될 수 있다. 관리되는 디렉토리 서비스는 복수의 디렉토리를 관리할 수도 있다. 중앙 관리형 데이터 서버는 네트워크(예를 들어, 인터넷)를 통해 관리되는 디렉토리 서비스에 대한 액세스를 제공할 수도 있고, 관리자는 기존의 네트워크 기반 클라이언트 장치를 사용하여 디렉토리를 관리할 수도 있다. 예를 들어, 관리자는 중앙 관리형 데이터 서버를 제공하는 엔티티와 계정을 개설할 수도 있다. 관리자는, 계정에 액세스하는 경우, 하나 이상의 디렉토리를 생성할 수 있고, 디렉토리 내에 도메인(예를 들어, 컴퓨터, 프린터, 스캐너, 서비스, 프로세스, 스레드 등의 모든 사용자 계정 및 컴퓨팅 자원이 단일 디렉토리 서비스에 등록된 컴퓨터 네트워크)를 생성할 수 있고, 멤버 서버(예를 들어, LDAP(경량 디렉토리 액세스 프로토콜), 케베로스(Kerberos), DNS(도메인 네임 시스템(domain name system)) 서비스, 또는 디렉토리의 레코드를 관리하는 다른 액티브 디렉토리 도구)를 도메인에 추가할 수 있다. 관리자는, 도메인에 추가된 멤버 서버를 사용하여 도메인 사용자들을 생성 및 관리할 수 있다. 이에 따라, 관리자는, 디렉토리 서비스를 구현하는 데 일반적으로 사용되는 인프라스트럭처를 설치하거나 유지할 필요없이 디렉토리 서비스를 구현할 수 있다.
기존의 관리되는 디렉토리 서비스에는 몇 가지 제한 사항이 있다. 예를 들어, 두 개 이상의 엔티티가, 관리되는 디렉토리 서비스를 사용하여 디렉토리들을 생성하였을 수도 있다. 엔티티들은 분리되어 있으며 개별적인 디렉토리들을 생성하였기 때문에, 사용자들은 자신들의 각 엔티티의 디렉토리에 액세스함으로써 인증될 수도 있다. 일부 경우에, 엔티티들은 자원이나 콘텐츠를 공유하고자 할 수도 있다. 엔티티들이 자원 또는 콘텐츠를 공유할 수 있는 한 가지 가능한 방식은, 어느 한 엔티티에 연관된 사용자들에 의해 액세스가능한 공통 엔드포인트로서 기능하는 공유된 조직을 생성하는 것이다. 그러나, 엔티티들은 서로 다른 디렉토리를 유지하기 때문에, 한 엔티티의 사용자들은, 새로운 사용자 계정이 생성되지 않는 한 다른 엔티티에 의해 생성된 디렉토리에 액세스하도록 자신들의 기존의 자격증명(credential)을 사용하지 못할 수도 있고, 그 반대의 경우도 마찬가지이다. 또한, 공통 엔드포인트는 자격증명을 유지하는 디렉토리에 대한 액세스를 갖지 않을 수도 있다. 엔티티들은, 자격증명들이 개별적인 디렉토리에 연관되더라도 임의의 엔티티로부터의 사용자들이 인증을 위해 자신들의 기존의 자격증명을 입력할 수 있는 공통 엔드포인트 및 로그인 시스템을 원할 수도 있다.
이러한 문제들 중 적어도 일부를 다루는 일반적인 글로벌 엔드포인트를 본 명세서에서 설명한다. 글로벌 엔드포인트는, 기존의 자격증명을 통해 애플리케이션 또는 서비스에 액세스하는 데 사용되는 페이지(예를 들어, 웹 페이지 등의 콘텐츠 페이지 또는 네트워크 페이지)를 호스팅하는 컴퓨팅 시스템일 수도 있다. 글로벌 엔드포인트는, 조직명에 의해 식별될 수도 있으며, 글로벌 엔드포인트의 위치(예를 들어, 인터넷 프로토콜(IP) 어드레스)는 조직명을 식별하는 URL(유니폼 리소스 로케이터)에 연관될 수도 있다(예를 들어, <조직명>.<애플리케이션 호스트>.com). 글로벌 엔드포인트는, 사용자들의 기존의 자격증명을 통해 애플리케이션 또는 서비스에 대한 액세스를 사용자들에게 제공하고자 하는 엔티티들에 의해 생성된 디렉토리 등의 복수의 디렉토리에 연관될 수도 있다.
관리되는 디렉토리 서비스들은 서로 다른 지리적 영역들에 분산되어 있을 수도 있다. 예를 들어, 하나 이상의 콘텐츠 전달 네트워크(CDN)는 백엔드 서버와 함께 구성될 수도 있고, 백엔드 서버는 관리되는 디렉토리 서비스를 구현하는 시스템과 통신할 수도 있다. 관리되는 디렉토리 서비스를 구현하는 시스템은, 다중 영역 분산 컴퓨터 시스템의 단일 영역에서 동작할 수도 있으며, 그 단일 영역에 있는 다른 장치 또는 시스템하고만 통신할 수도 있다. 따라서, CDN은 지역적 엔드포인트로서 간주될 수도 있으며, 관리되는 디렉토리 서비스를 구현하는 시스템은 단일 엔드포인트로서 간주될 수도 있다. CDN을 사용하고 관리되는 디렉토리 서비스를 다양한 영역에 분배하는 것은, (예를 들어, 데이터의 캐싱을 통한) 저 지연 통신 및 (예를 들어, 단일 엔드포인트로부터의 계산을 오프로딩함으로써) 개선된 자원 밸런싱 등의 몇 가지 이점을 제공할 수도 있다. 그러나, 사용자의 자격증명을 인증하기 위해, 글로벌 엔드포인트는 수신된 자격증명에 연관된 디렉토리가 위치하고 있는 영역을 먼저 식별해야 할 수도 있다.
디렉토리가 위치한 영역을 식별하는 데 도움을 주기 위해, 글로벌 엔드포인트의 조직명을 DNS 엔트리(예를 들어, 대응하는 IP 어드레스)와 맵핑하는 라우트 서비스(route service)(예를 들어, 도메인 네임 시스템(DNS) 웹 서비스)를 유지할 수 있다. 예를 들어, 맵핑은, 글로벌 엔드포인트가 조직 또는 조직들의 그룹에 대해 생성될 때 라우트 서비스에 저장될 수도 있다. 라우트 서비스는 하나 이상의 CDN의 어드레스와 DNS 엔트리의 맵핑을 더 포함할 수도 있다. 따라서, 라우트 서비스는, 글로벌 엔드포인트의 조직명에 연관된 DNS 엔트리를 식별하도록 질의될 수 있고, DNS 엔트리에 연관된 하나 이상의 CDN의 어드레스를 식별하도록 질의될 수 있다. 이어서, 라우트 서비스는 글로벌 엔드포인트를 식별된 CDN들로 향하게 할 수 있다. 식별된 CDN들 중 하나 이상은, 저장된 맵핑에 기초하여 글로벌 엔드포인트를 영역 서비스(예를 들어, 관리되는 디렉토리 서비스)로 향하게 할 수 있으며, 영역 서비스는 조직명에 기초하여 디렉토리의 위치를 식별할 수 있다.
예를 들어, 영역 내의 디렉토리들 또는 다른 컴퓨팅 시스템 엔티티들은, 그 영역 내의 컴퓨팅 시스템 엔티티들이 이용할 수 있고 및/또는 그 영역의 외부에 있는 컴퓨팅 시스템 엔티티들이 이용할 수 없는 고유 식별자(예를 들어, 유니폼 리소스 식별자, 즉, URL, 또는 다른 임의의 리소스 식별자)를 가질 수도 있다. 고유 식별자는, 보안을 위해(예를 들어, 엔티티에 대한 특정 위치 및 디렉토리의 유형이 숨겨진 상태로 유지되도록) 및/또는 고유 식별자가 변경될 수 있기 때문에 그 영역 외부의 컴퓨팅 시스템 엔티티들에게 이용가능하지 않을 수도 있다. 고유 식별자가 이용가능하지 않을 수도 있기 때문에, CDN 또는 CDN을 통한 영역 서비스는, 글로벌 엔드포인트 및 라우트 서비스 등의 분산형 컴퓨팅 시스템 내의 다양한 컴퓨팅 시스템에 대한 디렉토리의 실제 고유 식별자에 대한 별명(alias)으로서 기능하는 다른 고유 식별자를 제공할 수도 있다. 따라서, 글로벌 엔드포인트가 별명 식별자를 사용하여 디렉토리에 액세스하기 위한 요청을 나타내는 경우, 라우트 서비스는 그 요청을 적절한 CDN으로 재지정(redirect)할 수 있다. 이어서, CDN은 별명 식별자의 콘텐츠에 기초하여 적절한 디렉토리를 결정할 수 있는 영역 서비스를 식별할 수 있다. 이러한 기술을 사용하여 호출 또는 요청을 적절한 엔드포인트로 재지정하는 것은, "TECHNIQUES FOR NETWORK REDIRECTION"이라는 명칭으로 2013년 12월 12일자로 출원된 미국 특허출원 제14/098,446호에 더욱 상세히 기술되어 있으며, 이 문헌의 전체 내용은 본 명세서에 참고로 원용된다.
일단 적절한 지역이 식별되고 영역 서비스가 글로벌 엔드포인트를 적절한 디렉토리로 향하게 하면, 사용자의 기존의 자격증명이 그 적절한 디렉토리에 의해 인증될 수 있다. 인증이 통과되면, 사용자는 성공적으로 로그인하여 애플리케이션 또는 서비스에 액세스할 수도 있다. 따라서, 사용자는, 자신의 기존의 자격증명와는 별개인 새로운 자격증명들의 세트를 생성 또는 사용할 필요 없이 애플리케이션 또는 서비스에 액세스할 수 있다.
사용자가 애플리케이션이나 서비스에 액세스하도록 자신의 자격증명을 사용하여 로그인하는 경우, 라우트 서비스가 사용자를 (글로벌 엔드포인트의 요청시) 글로벌 엔드포인트로부터 CDN으로 재지정하고 CDN이 영역 서비스를 식별하는 경우에도 브라우저 애플리케이션의 URL 바가 고정 상태로 있을 수도 있다. 예를 들어, 사용자는 조직명에 의해 식별된 페이지를 방문할 수도 있으며, URL 바는 조직명을 표시할 수도 있다. 조직명을 입력하면, 글로벌 엔드포인트는, 사용자가 자신의 기존의 자격증명을 입력할 수 있고 URL 바가 변경되지 않은 상태로 유지될 수도 있도록 브라우저 애플리케이션이 영역 서비스에 의해 생성된 로그인 페이지로 재지정되게 할 수도 있다. 대안으로, 사용자는 조직명과 서비스를 식별하는 URL(예를 들어, <조직 이름>.<애플리케이션 호스트>.com/news-service, 여기서 news-service는 식별된 서비스)을 입력할 수도 있다. URL 바는, 식별된 조직명과 서비스를 표시할 수도 있지만, 브라우저 애플리케이션은 영역 서비스에 의해 생성된 로그인 페이지로 재지정될 수도 있다. 사용자는, 일단 로그인하면, 애플리케이션 또는 서비스의 홈페이지로 재지정될 수도 있지만, URL 바는 원래의 URL을 여전히 표시할 수도 있다.
도입 - 조직명을 이용한 디렉토리 관리
일반적으로, 전술한 바와 같이, 멤버 서버는 디렉토리의 자원들을 관리하는 데 사용된다. 일부 관리자들은, 멤버 서버에 액세스할 수 없거나 멤버 서버(예를 들어, 웹 개발자, 애플리케이션 개발자, 모바일 애플리케이션 개발자 등)를 운영하지 않으려 할 수도 있고, 따라서 임의의 사용자 관리를 수행하지 못할 수도 있고 또는 디렉토리의 자원들을 관리하지 못할 수도 있다. 예를 들어, 애플리케이션 서버에 의해 호스팅되는 글로벌 엔드포인트는, 멤버 서버가 아닐 수도 있고, 일반적으로 디렉토리를 관리하거나 액세스하는 데 사용될 수 없을 수도 있다. 그러나, 본 명세서에서 설명하는 실시예들은, 또한, 관리자들이 애플리케이션 프로그래밍 인터페이스(API)의 세트를 통해 글로벌 엔드포인트 등의 컴퓨팅 시스템을 통해 디렉토리를 관리하거나 액세스할 수 있게 하는 사용자 관리 및 인증 시스템을 제시한다.
사용자 관리 및 인증 시스템은, 본 명세서에서 설명하는 기능을 제공하도록 관리되는 디렉토리 서비스와 함께 동작하는 애드온 시스템일 수도 있다. 예를 들어, 사용자 관리 및 인증 시스템은, 일단 라우트 서비스가 글로벌 엔드포인트를 정확한 CDN으로 재지정하고 CDN이 영역을 해결하면 글로벌 엔드포인트에 의해 액세스될 수 있는 일련의 로그인 페이지들(예를 들어, 웹 페이지 등의 콘텐츠 컨텐츠 또는 네트워크 페이지)를 생성할 수도 있다. 관리자는, 자신의 자격증명, 도메인에 대한 액세스를 요청하는 애플리케이션이나 서비스를 식별하는 클라이언트 식별자, 재지정 페이지(예를 들어, 관리자가 글로벌 엔드포인트를 통해 액세스하려 하는 애플리케이션 또는 서비스에 의해 생성된 페이지), 및/또는 조직명(예를 들어, 글로벌 엔드포인트를 식별하는 이름 또는 디렉토리의 이름)을 입력할 수 있다. 사용자 관리 및 인증 시스템은 조직에 연관된 디렉토리에 자격증명을 송신할 수도 있으며, 디렉토리는 자격증명이 인증될 수 있는지의 여부(예를 들어, 관리자가 디렉토리에 액세스할 수 있는지의 여부)를 결정할 수도 있다. 자격증명이 인증될 수 있으면, 사용자 관리 및 인증 시스템은 통지받고 인증 코드(예를 들어, OAuth 코드)를 생성한다.
인증 코드는 재지정 페이지에 액세스하라는 지시와 함께 사용자 장치에 사용자 관리 및 인증 시스템에 의해 송신될 수도 있다. 인증 코드는, 설정된 기간(예를 들어, 10분, 1시간 등) 동안 유효한 일회용 코드일 수도 있으며, 인증 코드의 만료 전에 조직에 연관된 디렉토리에 대한 액세스를 개시하도록 재지정 페이지에 연관된 애플리케이션 또는 서비스에 의해 사용될 수도 있다. 예를 들어, 사용자 관리 및 인증 시스템은 getToken API를 포함할 수도 있다. 애플리케이션 또는 서비스는, getToken API를 호출하여 인증 코드를 파라미터로서 통과시킬 수도 있다.
getToken API는, 유효한 인증 코드의 수신에 응답하여 액세스 토큰 및/또는 리프레시 토큰을 생성할 수도 있고 이 토큰들을 애플리케이션 또는 서비스에 제공할 수도 있다. 액세스 토큰 및/또는 리프레시 토큰은 자격증명 및/또는 조직명에 기초하여 생성될 수도 있다. 예를 들어, 액세스 토큰 및/또는 리프레시 토큰은 보안 포맷으로 된 자격증명 및/또는 조직명을 포함할 수도 있다. 액세스 토큰은, 애플리케이션 또는 서비스가 API들의 세트를 통해 조직에 연관된 디렉토리에 액세스 및/또는 그 디렉토리를 관리하게 할 수도 있고, 관리자에 의해 정의된 또는 미리 정의된 기간(예를 들어, 1시간, 1일 등) 동안 유효할 수도 있다. 리프레시 토큰은, 관리자에 의해 정의된 또는 미리 정의된 기간(예를 들어, 1주, 1달 등) 동안 유효할 수도 있고, 일단 이전의 액세스 토큰이 만료되면 새로운 토큰을 수신하도록 애플리케이션 또는 서비스에 의해 사용될 수 있다. 일부 실시예들에서, 리프레시 토큰은 아예 유효하지 않을 수도 있다(예를 들어, 액세스 토큰이 일단 만료되면 리프레시되지 않을 수도 있다).
일 실시예에서, 사용자 관리 및 인증 시스템은 여러 API를 제공한다. 이러한 API들은, 사용자 API, 그룹 API, 조직 유닛 API, 패스워드 API, 액세스 토큰 API, 및/또는 서비스 API를 포함할 수도 있다. 사용자 API는, createUser API(예를 들어, 디렉토리에 사용자를 생성), describeUsers API(예를 들어, 디렉토리 내의 사용자들 및 이들의 속성의 임의의 수 또는 모두를 열거), updateUser API(예를 들어, 디렉토리의 사용자의 속성을 업데이트), deleteUser API(예를 들어, 디렉토리로부터 사용자를 삭제), 및/또는 listGroupsForUser API(예를 들어, 디렉토리 내의 사용자들 및 이들의 그룹들의 임의의 수 또는 전부를 열거)를 포함할 수도 있다. 그룹 API는, createGroup API(예를 들어, 디렉토리 내에 새로운 그룹을 생성), describeGroups API(예를 들어, 디렉토리 내의 그룹들의 속성 및 그룹들을 열거), updateGroup API(예를 들어, 디렉토리 내의 기존의 그룹을 업데이트), deleteGroup API(예를 들어, 디렉토리로부터 그룹을 삭제), listMembersInGroup API(예를 들어, 디렉토리의 그룹들의 멤버들을 열거), addMemberToGroup API(예를 들어, 멤버들(사용자들 또는 그룹들)을 디렉토리의 그룹에 추가), 및/또는 removeMemberFromGroup API(예를 들어, 디렉토리의 그룹으로부터 멤버를 삭제)를 포함할 수도 있다. 조직 유닛 API는 describeOrganizationalUnits API(예를 들어, 디렉토리 내의 조직 유닛들 및 이들의 속성의 임의의 수 또는 전부를 열거)를 포함할 수도 있다. 패스워드 API는, authenticateUser API(예를 들어, 디렉토리의 사용자를 인증하고 인증 코드를 리턴), authenticateKerberosUser API(예를 들어, 디렉토리의 사용자를 인증하고 인증 코드를 리턴), authenticateRadiusUser API(예를 들어, 디렉토리에 연관된 반경 서버에 대하여 사용자를 인증하고 인증 코드를 리턴), resetPassword API(예를 들어, 사용자의 패스워드를 리셋), 및/또는 changePassword API(예를 들어, 사용자의 패스워드를 변경)를 포함할 수도 있다. 액세스 토큰 API는, createAnonymousToken API(예를 들어, 저장할 익명 토큰을 생성), getToken API(예를 들어, 인증 코드에 기초하여 액세스 토큰 및/또는 리프레시 토큰을 생성), validateToken API(예를 들어, 이전에 발행된 액세스 토큰 또는 익명 토큰이 여전히 유효함을 검증), refreshToken API(예를 들어, 이전에 발행된 리프레시 토큰을 사용하여 새로운 액세스 토큰을 생성), 및/또는 revokeToken API(예를 들어, 이전에 발행된 액세스 토큰, 익명 토큰, 또는 리프레시 토큰을 무효화)를 포함할 수도 있다. 서비스 API는 getServiceAccountCreds API(예를 들어, 등록된 애플리케이션 또는 서비스가 도메인 연결 자격증명을 검색할 수 있게 함)를 포함할 수도 있다.
애플리케이션 또는 서비스는 사용자 관리 및 인증 시스템에 의해 지원되는 API들 중 임의의 것을 호출하도록 액세스 토큰을 사용할 수 있다. 예를 들어, 액세스 토큰 및/또는 다른 특정 동작 파라미터들은 디렉토리를 관리하도록 API를 통해 사용자 관리 및 인증 시스템에 제공될 수 있다. 전술한 바와 같이, 액세스 토큰은 인증 코드 및/또는 조직명에 기초하여 생성될 수도 있다. 따라서, API를 통한 수신시 사용자 관리 및 인증 시스템에 의해 풀리는 경우, 액세스 토큰은, 인증 코드를 식별할 수도 있고, 따라서 액션을 수행하고 있는 관리자, 및/또는 그 액션이 수행될 디렉토리를 식별할 수도 있다. 이에 따라, 애플리케이션 또는 서비스는 액세스될 및/또는 관리될 디렉토리를 별도로 식별하지 않을 수도 있다. 디렉토리를 별도로 식별하지 않음으로써, 종래의 시스템에서는 찾을 수 없는 추가 레벨의 보안을 제공할 수도 있다. 일반적으로 단일 디렉토리를 액세스 및 관리하는 것을 포함하는 종래의 시스템에서, 관리자는 단순히 디렉토리명 및/또는 특정 동작 파라미터를 제공함으로써 디렉토리를 관리할 수도 있다. 그러나, 본 명세서에서 개시하는 실시예들에서, 사용자 또는 관리자는, 단순히 조직명 및/또는 다른 특정 동작 파라미터를 제공함으로써 미인가 방식으로 디렉토리를 액세스 및 조작하지 못할 수도 있다. 대신에, 특정 디렉토리를 액세스 및/또는 조작하는 데 액세스 토큰이 필요하며, 사용자 또는 관리자는, 본 명세서에서 설명하는 바와 같이, 자신의 자격증명이 특정 디렉토리에 대하여 검증된 후에만(예를 들어, 인증 코드가 수신된 후에) 액세스 토큰을 취득할 수도 있다.
일 실시예에서, 액세스 토큰을 생성하는 경우, 사용자 관리 및 인증 시스템은, 액세스 토큰을, 일반적으로 조직명에 연관된 디렉토리에 액세스하도록 멤버 서버에 의해 사용될 수 있는 디렉토리 서비스 토큰(예를 들어, 케베로스 토큰, 다른 특정 디렉토리 자격증명 등)에 맵핑할 수도 있다. 따라서, 애플리케이션 또는 서비스가 액세스 토큰을 사용하여 API를 호출하는 경우, 사용자 관리 및 인증 시스템은, 데이터베이스에 액세스하여 액세스 토큰에 맵핑되는 토큰을 결정할 수도 있고, 맵핑된 토큰(및/또는 애플리케이션 또는 서비스에 의해 제공되는 다른 특정 동작 파라미터)을 관리되는 디렉토리 서비스에 통과시켜 API 호출을 통해 요청되는 액션 또는 동작을 수행할 수도 있다. 일부 실시예들에서, 리프레시 토큰의 유효성은, (예를 들어, 수명이 관리자에 의해 미리 설정되거나 정의될 수 있는) 맵핑된 토큰의 유효성에 연결될 수도 있다. 결과는, 존재하는 경우, 관리되는 디렉토리 서비스에 의해 사용자 관리 및 인증 시스템으로 리턴될 수도 있고, 사용자 관리 및 인증 시스템은 그 결과를 애플리케이션 또는 서비스에 포워딩할 수도 있다.
애플리케이션 또는 서비스는, 이 프로세스를 반복하여 관리자에 의해 동작되는 하나 이상의 디렉토리에 대하여 액세스 토큰을 생성할 수 있다. 따라서, 관리자는, 애플리케이션 또는 서비스를 사용하여 복수의 디렉토리를 액세스 및/또는 관리할 수 있다.
추가 실시예들에서, 사용자 관리 및 인증 시스템은, 단일-인자 인증 및/또는 다중-인자 인증(예를 들어, 액세스가 승인되기 전에 자격증명의 다수의 서로 다른 세트가 인증을 위해 사용자에 의해 제공될 수 있음)을 지원한다. 사용자 관리 및 인증 시스템은 사용자 인터페이스 및/또는 API를 통해 인증의 양측 유형을 지원할 수도 있다. 사용자 관리 및 인증 시스템은, 또한, 단일 사인-온(sign-on)을 지원할 수도 있다(예를 들어, 관리자는, 디렉토리에 액세스할 때마다 다시 로그인하라는 메시지가 뜨지 않고 한 번의 로그인으로 모든 적절한 디렉토리에 대한 액세스를 얻을 수도 있다).
시스템 구성요소
도 1a는, 일 실시예에 따라 디렉토리 서비스를 제공하는 다양한 영역이 있는 관리되는 디렉토리 서비스 환경을 도시한다. 도 1a에 도시한 관리되는 디렉토리 서비스 환경은, 다양한 사용자 장치(102), 라우트 서비스(130), 제3자 애플리케이션 서버(108), 다양한 CDN(150A, 150B), 다양한 컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C), 및 다양한 확장형 개인 서버 시스템(170)을 포함한다. 다양한 사용자 장치(102), 라우트 서비스(130), 제3자 애플리케이션 서버(108), 및 다양한 CDN(150A, 150B)은 하나 이상의 통신 네트워크(110)를 통해 서로 통신할 수도 있다. 네트워크(110)는, 인터넷과 같이 다양한 별개의 당사자가 운영하는 공개적으로 액세스할 수 있는 연결된 네트워크들의 네트워크일 수도 있다. 다른 실시예들에서, 네트워크(110)는, 개인 네트워크, 퍼스널 에리어 네트워크, 로컬 에리어 네트워크, 광역 네트워크, 케이블 네트워크, 위성 네트워크, 셀룰러 전화 네트워크 등, 또는 이들의 조합을 포함할 수도 있으며, 이들 각각은 인터넷으로의 액세스 및/또는 인터넷으로부터의 액세스를 갖는다.
컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C)과 다양한 개인 서버 시스템(170A 내지 170C)은 별개의 통신 네트워크(160A 내지 160C)를 통해 각각 서로 통신할 수도 있다. 네트워크(160A 내지 160C)는, 네트워크(160A 내지 160C)에 연관된 컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C)과 개인 서버 시스템(170A 내지 170C)인, 두 개의 엔드포인트를 갖는 개인 네트워크일 수도 있다. 다양한 개인 서버 시스템(170A 내지 170C)은 네트워크(160A 내지 160C)를 공유하지 않을 수도 있다. 대신에, 각 네트워크(160A 내지 160C)는 특정한 개인 서버 시스템(170A 내지 170C)에 대하여 전용될 수도 있다.
통상의 기술자라면 인식하듯이, 관리되는 디렉토리 서비스 환경은, 개별적인 사용자 장치(102), 컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C), CDN(150A, 150B), 및/또는 개인 서버 시스템(170A 내지 170C)의 임의의 개수를 포함할 수도 있다. 개별적인 컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C)은, 개인 서버 시스템들(170A 내지 170C) 또는 현재의 또는 잠재적 사용자 장치들(102)의 그룹들에 (지리적으로 또는 네트워킹 관점에서) 가깝게 위치할 수도 있다.
일 실시예에서, 관리되는 디렉토리 서비스들은 서로 다른 지리적 영역들(120A, 120B)에 분산된다. 예를 들어, 하나 이상의 CDN(150A, 150B)은 백엔드 서버와 함께 구성될 수도 있고, 백엔드 서버는 컴퓨팅 자원 서비스 제공자 시스템들(140A 내지 140C) 등의 관리되는 디렉토리 서비스들을 구현하는 시스템과 통신할 수도 있다. 컴퓨팅 자원 서비스 제공자 시스템들(104A 내지 104C)은, 다중 영역 분산형 컴퓨터 시스템의 단일 영역에서 동작할 수도 있고, 단일 영역의 단일 장치들 또는 시스템들하고만 통신할 수도 있다. 따라서, CDN(150A 또는 150B)은 지역적 엔드포인트로서 간주될 수도 있고, 컴퓨팅 자원 서비스 제공자 시스템들(140A 내지 140C)은 단일 엔드포인트로서 간주될 수도 있다.
사용자 장치들(102)은, 멤버 서버, 퍼스널 컴퓨팅 장치, 단말 컴퓨팅 장치, 랩톱 컴퓨팅 장치, 태블릿 컴퓨팅 장치들, 전자 판독 장치, 이동 장치(예를 들어, 이동 전화, 핸드헬드 게임 장치 등), 네트워크 액세스 및 프로그램 실행 기능을 갖춘 착용식 장치(예를 들어, "스마트 시계" 또는 "스마트 아이웨어"), 무선 장치, 셋톱 박스, 게임 콘솔, 엔터테인먼트 시스템, 네트워크 액세스와 프로그램 실행 기능을 갖춘 텔레비전(예를 들어, "스마트 TV"), 및 다양한 다른 전자 장치와 어플라이언스를 포함하는 다양한 컴퓨팅 장치를 포함할 수 있다. 개별 사용자 장치들(102)은, 하나 이상의 디렉토리를 관리하도록 네트워크(110)를 통해 컴퓨팅 자원 서비스 시스템(104)과 통신하기 위한 애플리케이션을 실행할 수도 있다. 예를 들어, 애플리케이션은 사용자 장치(102) 상에 설치된 독립형 애플리케이션일 수도 있다. 다른 일례로, 애플리케이션은, 컴퓨팅 자원 서비스 공급자 시스템(104A 내지 104C), 제3자 애플리케이션 서버(108), 및/또는 다른 컴퓨팅 시스템(도시되지 않음)이 호스팅하는 애플리케이션 또는 서비스(예를 들어, 웹 서비스)에 액세스하는 브라우저(예를 들어, 웹 브라우저)일 수도 있다.
제3자 애플리케이션 서버(108)는, 애플리케이션 또는 서비스(예를 들어, 디렉토리 관리 서비스, 문서 공유 서비스, 워드 처리 애플리케이션 등)를 호스팅하고 이러한 애플리케이션 또는 서비스에 대한 액세스를 제공하는 컴퓨팅 시스템일 수도 있다. 예를 들어, 제3자 애플리케이션 서버들(108)은, 호스팅된 애플리케이션 또는 서비스에 대한 액세스를 제공하는 서로 다른 조직명들에 연관된 다양한 페이지를 호스팅할 수도 있다. 페이지들은 <조직명>.<애플리케이션 호스트>.com의 포맷으로 URL을 가질 수도 있다. 따라서, 제3자 애플리케이션 서버들(108)은, 하나 이상의 엔티티들에 연관된 페이지에 액세스하려는 관리자 또는 사용자를 위한 글로벌 엔드포인트로서 기능할 수도 있다. 제3자 애플리케이션 서버들(108)에 의해 호스팅되는 단일 페이지는, 엔티티들의 사용자들의 기존의 자격증명을 사용하여 제3자 애플리케이션 서버들(108)에 의해 호스팅되는 애플리케이션 또는 서비스에 대한 액세스를 그 사용자들에게 제공하고자 하는 그 엔티티들에 의해 생성된 디렉토리 등의 복수의 디렉토리에 연관될 수도 있다. 제3자 애플리케이션 서버들(108)은 영역(120A) 또는 영역(120B) 등의 임의의 영역에 위치할 수도 있다.
사용자 장치들(102)은 네트워크(110)를 통해 호스팅된 애플리케이션 또는 서비스에 액세스할 수도 있다. 애플리케이션 또는 서비스는, 컴퓨팅 자원 서비스 제공자 시스템(104)을 동작시키는 엔티티에 가입될 수도 있고 또는 제3자 엔티티들에 의해 동작할 수도 있다. 일 실시예에서, 컴퓨팅 자원 서비스 제공자 시스템(104)에 등록된 제3자 애플리케이션 서버들(108) 또는 컴퓨팅 자원 서비스 제공자 시스템(104)에 의해 제공되는 애플리케이션 또는 서비스는 본 명세서에서 설명하는 특징부들에 액세스할 수도 있다. 컴퓨팅 자원 서비스 제공자 시스템(104)에 등록되지 않았고 및/또는 컴퓨팅 자원 서비스 제공자 시스템(104)의 관리자에 의해 승인되지 않은 애플리케이션 또는 서비스는 본 명세서에서 설명하는 특징부들에 액세스하지 못할 수도 있다.
개인 서버 시스템들(170A 내지 170C)은 엔티티에 연관된 디렉토리를 저장할 수도 있다. 예를 들어, 개인 서버 시스템들(170A 내지 170C)은 조직을 위한 온-프레미스 디렉토리를 저장할 수도 있다. 일부 실시예들에서, 개인 서버 시스템들(170A 내지 170C)은 동일한 엔티티를 위한 다수의 디렉토리를 저장할 수 있다. 디렉토리들은, 도 1b를 참조하여 더욱 상세히 후술하는 바와 같이, 각 컴퓨팅 자원 서비스 제공자 시스템(104A-C)에 의해 관리될 수도 있다.
라우트 서비스(130)는, 디렉토리가 위치하는 영역을 식별하는 것을 도울 수 있는 CDN(150A, 150B)을 식별하는 것을 도울 수 있다. 라우트 서비스(130)(예를 들어, 도메인 네임 시스템(DNS) 웹 서비스)는, DNS 엔트리(예를 들어, 대응하는 IP 어드레스)에 대한 애플리케이션 서버(140)에 의해 생성된 조직명의 맵핑을 포함할 수 있다. 예를 들어, 맵핑은, 조직명이 조직(예를 들어, 복수의 엔티티)을 위해 생성될 때 라우트 서비스(130)에 저장될 수도 있다. 라우트 서비스(130)는, 하나 이상의 CDN(150A, 150B)의 어드레스에 대한 DNS 엔트리의 맵핑을 더 포함할 수도 있다. 따라서, 라우트 서비스(130)는, 조직명에 연관된 DNS 엔트리를 식별하도록 질의될 수 있고, DNS 엔트리에 연관된 하나 이상의 CDN(150A, 150B)의 어드레스를 식별하도록 질의될 수 있다. 이어서, 라우트 서버(130)는, 사용자 디바이스(102)(예를 들어, 브라우저)에서 실행되는 애플리케이션을 식별된 CDN들(150A, 150B)로 지정되게 할 수 있다. 식별된 CDN들(150A, 150B) 중 하나는, 저장된 맵핑에 기초하여 사용자 장치(102)를 영역 서비스(예를 들어, 컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C))로 지정할 수 있고, 조직명에 기초하여 디렉토리의 위치를 식별할 수 있다.
예를 들어, 영역(120A) 내의 디렉토리들 또는 다른 컴퓨팅 시스템 엔티티들은, 영역(120A) 내의 컴퓨팅 시스템 엔티티들에게는 이용가능하며 영역(120A) 외부의 컴퓨팅 시스템 엔티티들에게는 이용불가능한 고유 식별자(예를 들어, 유니폼 리소스 식별자, 즉 URL, 또는 다른 임의의 자원 식별자)를 가질 수도 있다. 전술한 바와 같이, 고유 식별자는, 보안을 위해 (예를 들어, 엔티티를 위한 디렉토리의 특정 위치와 유형이 숨겨진 상태로 있도록) 및/또는 그 고유 식별자가 변경될 수 있기 때문에 영역(120A) 외부의 컴퓨팅 시스템 엔티티들에게는 이용불가능할 수도 있다. 고유 식별자는 이용불가능할 수도 있기 때문에, CDN(150A) 또는 CDN(150A)을 통한 컴퓨팅 자원 서비스 제공자 시스템(104A)은, 애플리케이션 서버(140)와 라우트 서비스(130) 등의 분산형 컴퓨팅 시스템의 다양한 컴퓨팅 시스템에 디렉토리의 실제 고유 식별자에 대한 별명으로서 기능하는 다른 고유 식별자를 제공할 수도 있다. 따라서, 애플리케이션 서버(140)가 별명 식별자를 이용하여 디렉토리에 대한 액세스 요청을 생성하면, 라우트 서비스(130)는 그 요청을 적절한 CDN(150A 또는 150B)로 재지정할 수 있다. 이어서, CDN(150A 또는 150B)은, 별명 식별자의 콘텐츠에 기초하여 적절한 디렉토리를 결정할 수 있는 컴퓨팅 자원 서비스 제공자 시스템(104A 내지 104C)을 식별할 수도 있다.
네트워크 환경의 예
도 1b는, 본 개시 내용의 디렉토리 관리 특징부들, 및 사용자, 그룹, 및 장치 관리 및 인증 특징부들이 일부 실시예들에 따라 구현될 수 있는 네트워크 환경의 일례를 도시한다. 도 1b에 도시한 네트워크 환경은 간략화를 위해 하나의 영역에 대한 구성 요소들을 포함한다. 본 명세서에서 사용되는 바와 같이, "디렉토리"라는 용어는 일반적으로 컴퓨터 네트워크의 사용자, 장치, 애플리케이션, 및 기타 공통 자원에 대한 조직화된 데이터 모음을 가리킨다. 컴퓨터 네트워크(또는 그 일부 서브세트) 상의 각각의 자원은 디렉토리 내의 오브젝트로서 표현될 수도 있고, 특정 자원(예를 들어, 이름, 어드레스, 허가 등)에 관한 정보는 그 오브젝트의 속성으로서 저장될 수 있다. 정보는, 충분한 허가를 가진 사용자들만이 그 정보를 액세스, 수정, 또는 사용할 수 있도록 오브젝트 내에 또는 오브젝트에 연관되어 안전하게 저장될 수 있다.
도시한 바와 같이, 네트워크 환경은, 하나 이상의 네트워크(110)를 통해 통신하는 다양한 사용자 장치(102), 컴퓨팅 자원 서비스 제공자 시스템(104), 조직(106), 및 제3자 애플리케이션 서버(108)를 포함한다. 컴퓨팅 자원 서비스 제공자 시스템(104)은, 애플리케이션들; 디렉토리 관리 서비스들; 사용자, 그룹, 및 장치 관리 및 인증 서비스들; 및/또는 다른 네트워크 기반 서비스들을 다양한 조직이나 다른 고객에게 제공할 수 있다. 조직들(106A 내지 106C)(또는 다른 고객들)은, 조직들에 연관된 사용자들에게 애플리케이션 액세스를 제공하고, 조직들의 디렉토리 등을 관리하도록 컴퓨팅 자원 서비스 제공자 시스템(104)을 채택할 수 있다. 개별적인 사용자들은, 사용자 장치들(102)을 사용하여, 각자의 조직들(106A 내지 106C)로부터의 자격증명을 사용하여 컴퓨팅 자원 서비스 제공자 시스템(104)(또는 제3자 애플리케이션 서버들(108))에 의해 호스팅되는 애플리케이션들에 액세스할 수 있다. 또한, 컴퓨팅 자원 서비스 제공자 시스템(104)은, 각 조직의 재량으로 다양한 조직(106A 내지 106C)의 디렉토리에 대한 액세스를 애플리케이션들에 제공할 수 있다.
일부 사용자 장치(102)는 구체적인 조직들(106A 내지 106C)에 연관될 수도 있다. 예를 들어, 조직은, 온-프레미스로 유지되거나 조직에 연관된 고용인, 관리자, 또는 다른 사용자에 의해 주로 오프-프레미스로 사용되는 다양한 사용자 장치(102)를 가질 수도 있다. 일부 실시예들에서, 사용자 장치들(102) 중 일부 또는 전부는, 구체적인 조직(106A 내지 106C) 또는 컴퓨팅 자원 서비스 제공자 시스템(104)의 다른 고객에 연관된 자격증명을 사용하여 디렉토리 관리 또는 애플리케이션 액세스를 포함할 수도 있는 다양한 작업을 수행하도록 임의의 수의 사용자들에 의해 사용되는 공공 컴퓨터 또는 홈 컴퓨터 등의 임의의 조직과는 개별적일 수도 있다.
컴퓨팅 자원 서비스 제공자 시스템(104)은, 애플리케이션(144)(워드 처리 애플리케이션, 사진 편집 애플리케이션, 전자 메일 애플리케이션 등)에 대한 액세스를 호스팅하거나 그 외에는 제공하고, 개별적인 고객 조직들(106A 내지 106C)에 대한 디렉토리들을 관리하고, 및/또는 다른 네트워크 기반 서비스와 자원(예를 들어, 문서 공유 서비스, 가상 기계 서비스 등)을 제공하도록 구성된 컴퓨팅 시스템일 수 있다. 예를 들어, 컴퓨팅 자원 서비스 제공자 시스템(104)은 통신 네트워크(110)를 통해 액세스될 수도 있는 서버 또는 서버들의 그룹일 수 있다. 컴퓨팅 자원 서비스 제공자 시스템(104)은, 관리되는 디렉토리 시스템 또는 서비스(140), 사용자 관리 및 인증 모듈(142), 및 조직들(106)과 사용자 장치들(102)에 의해 액세스될 수 있는 하나 이상의 애플리케이션 또는 애플리케이션 서버(144) 등의, 본 명세서에서 설명하는 다양한 특징부를 제공하도록 다수의 구성요소를 포함할 수 있다. 컴퓨팅 자원 서비스 제공자 시스템(104)은, 또한, 후술하는 바와 같이, 조직(160B)을 위한 오프-프레미스 디렉토리 등의 다양한 오프-프레미스 디렉토리(146)를 저장할 수도 있다. 일부 실시예들에서, 컴퓨팅 자원 서비스 제공자 시스템(104)은, 더욱 상세히 후술하는 전술한 특징부들을 제공하도록 도 1에 도시한 것보다 많거나 적은 구성요소들을 포함할 수도 있다.
본 명세서에서 사용하는 바와 같이, "오프-프레미스 디렉토리"라는 용어는, 연관된 조직으로부터 원격된 디렉토리를 조직의 프레미스 상에 위치하는 디렉토리와 구별하도록 그 연관된 조직으로부터 원격된 디렉토리를 가리킨다. 따라서, 디렉토리는 컴퓨팅 자원 서비스 제공자 시스템(104)의 프레미스 상에 물리적으로 저장될 수도 있지만, 그럼에도 불구하고, 디렉토리는, 자신이 속하는 조직(예를 들어, 디렉토리에 의해 설명되는 네트워크를 소유하거나 동작시키는 조직)에 대하여 오프-프레미스이기 때문에, 오프-프레미스 디렉토리라 칭할 수도 있다. 또한, 디렉토리는 컴퓨팅 자원 서비스 제공자 시스템(104)의 프레미스로부터 물리적으로 떨어져 저장될 수도 있지만, 그럼에도 불구하고, 디렉토리는, 자신이 속하는 조직에 대하여 온 프레미스이기 때문에, 온-프레미스 디렉토리라 칭할 수도 있다.
예시적으로, 관리자는, 사용자 장치(102)에 의해 실행되는 애플리케이션을 이용하여 조직들(106A 내지 106C) 중 하나 등의 관리자의 조직에 의해 소유되거나 동작되는 하나 이상의 디렉토리를 관리할 수도 있다. 애플리케이션은 관리되는 디렉토리 서비스(140) 및/또는 사용자 관리 및 인증 모듈(142)과 상호작용할 수도 있다. 관리되는 디렉토리 서비스(140)는 관리되는 디렉토리 서비스를 구현하는 컴퓨팅 시스템일 수도 있다. 일 실시예에서, 관리되는 디렉토리 서비스(140)는, 하나 이상의 디렉토리를 생성, 감시, 및 관리하도록 구성된다. 예를 들어, 관리되는 디렉토리 서비스(140)는, 오프-프레미스 디렉토리(146) 및/또는 온-프레미스 디렉토리(160)와 통신할 수도 있고 이러한 디렉토리들을 관리할 수도 있다. 전술한 바와 같이, 관리자는, 사용자 장치(102)가 멤버 서버인 경우 관리되는 디렉토리 서비스(140)를 이용하여, 디렉토리를 생성, 감시, 및/또는 관리할 수도 있다. 그러나, 사용자 장치(102)가 멤버 서버가 아니면, 관리자는 사용자 관리 및 인증 모듈(142)에 의해 제공되는 API를 통해 디렉토리를 생성, 감시, 및/또는 관리할 수도 있다.
사용자 관리 및 인증 모듈(142)은 사용자, 그룹, 및 장치 관리 및 인증 시스템을 구현하는 컴퓨팅 시스템일 수도 있다. 일 실시예에서, 사용자 관리 및 인증 모듈(142)은, 관리자들이 전술한 API 등의 API들의 세트를 통해 멤버 서버가 아닌 (예를 들어, 각 디렉토리의 도메인에 연관되지 않은) 사용자 장치들(102)에 의해 하나 이상의 디렉토리를 관리할 수 있게 한다. 사용자 관리 및 인증 모듈(142)은, 또한, 사용자 장치(102)에 의해 실행되는 애플리케이션 또는 실행되는 애플리케이션에 의해 액세스되는 애플리케이션 또는 서비스가 생성된 디렉토리의 사용자들의 리스트에 대한 직접적인 액세스를 갖지 않더라도, 그 실행되는 애플리케이션 또는 액세스되는 애플리케이션 또는 서비스가 디렉토리의 콘텐츠 또는 자원에 액세스할 수 있도록 하는 인가 및 인증 기구를 제공할 수도 있다. 예를 들어, 사용자 관리 및 인증 모듈(142)은, 사용자 장치(102)가 관리되는 디렉토리 서비스(140)에 의해 관리되는 하나 이상의 디렉토리를 관리할 수 있도록, 관리되는 디렉토리 서비스(140)와 통신할 수도 있고 사용자 장치(102)와 관리되는 디렉토리 서비스(140) 간의 인터페이스로서 기능할 수도 있다. 사용자 장치(102)는 사용자 관리 및 인증 모듈(142)에 의해 제공되는 API를 호출할 수 있고, 사용자 관리 및 인증 모듈(142)은, 호출된 API에 의해 지시되는 액션을 수행하도록 관리되는 디렉토리 서비스(140)에 명령할 수 있다. 사용자 장치(102), 관리되는 디렉토리 서비스(140), 및 사용자 관리 및 인증 모듈(142) 간의 상호작용은 도 2a와 도 2b를 참조하여 더욱 상세히 후술한다.
추가 실시예들에서, 사용자 관리 및 인증 모듈(142)은 단일-인자 인증 및/또는 다중-인자 인증을 지원한다. 사용자 관리 및 인증 모듈(142)은, 사용자 인터페이스 및/또는 API를 통해 양측 유형의 인증을 지원할 수도 있다. 사용자 관리 및 인증 모듈(142)은, 또한, 단일 사인-온을 지원할 수 있다(예를 들어, 관리자는, 디렉토리에 액세스할 때마다 다시 로그인하라는 메시지가 뜨지 않고 한 번만 로그인하여 모든 적절한 디렉토리에 대한 액세스를 얻을 수도 있다).
컴퓨팅 자원 서비스 제공자 시스템(104)은, 단일 컴퓨팅 장치일 수도 있고, 또는, 서버 시스템으로서 총괄적으로 동작하도록 논리적으로 또는 물리적으로 함께 그룹화된 컴퓨터 서버들 등의 다수의 개별적인 컴퓨팅 장치를 포함할 수도 있다. 컴퓨팅 자원 서비스 제공자 시스템(104)의 구성요소들 각각은, 소프트웨어가 필요 없도록 특정 애플리케이션 하드웨어(예를 들어, 하나 이상의 ASIC을 갖춘 서버 컴퓨팅 장치)에서 또는 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 또한, 컴퓨팅 자원 서비스 제공자 시스템(104)의 모듈들과 구성요소들은, 하나의 서버 컴퓨팅 장치에서 결합될 수 있고 또는 개별적으로 또는 여러 개의 서버 컴퓨팅 장치들 상의 그룹들로 분리될 수 있다.
또한, 다수의 (예를 들어, 두 개 이상의) 컴퓨팅 자원 서비스 제공자 시스템(104)을 사용할 수도 있다. 예를 들어, 컴퓨팅 자원 서비스 제공자 시스템들(104)은 서로 상호작용할 수도 있고 또는 상호작용하지 않을 수도 있는 별도의 영역들에 위치할 수도 있다. 개별적인 컴퓨팅 자원 서비스 제공자 시스템들(104)은, 조직들(160A 내지 160C) 또는 현재의 또는 잠재적 사용자 장치들(102)의 그룹들에 (지리적으로 또는 네트워킹 관점에서) 가깝도록 위치할 수도 있다.
일부 실시예들에서, 컴퓨팅 자원 서비스 제공자 시스템(104)에 의해 제공되는 특징부와 서비스는 통신 네트워크(110)를 통해 소비가능한 웹 서비스로서 구현될 수도 있다. 추가 실시예들에서, 컴퓨팅 자원 서비스 제공자 시스템(104)은 호스팅된 컴퓨팅 환경에서 구현된 하나 이상의 가상 기계에 의해 제공된다. 호스팅된 컴퓨팅 환경은, 빠르게 프로비저닝(provision)되고 해제된 하나 이상의 컴퓨팅 자원들을 포함할 수도 있으며, 이러한 컴퓨팅 자원들은 연산, 네트워킹, 및/또는 저장 장치들을 포함할 수도 있다. 호스팅된 컴퓨팅 환경은, 또한, 클라우드 컴퓨팅 환경이라 칭할 수도 있다.
조직들(106A 내지 106C)은 컴퓨팅 자원 서비스 제공자 시스템(104)의 다양한 고객에 대응할 수 있다. 본 명세서에서는 "조직"이라는 용어를 사용하고 있지만, 이러한 조직에 관련된 특징부들은, 또한 또는 대안으로, 컴퓨팅 자원 서비스 제공자 시스템(104)을 이용하여 컴퓨팅 자원 서비스 제공자(104) 또는 제3자 애플리케이션 서버들(108)에 의해 호스팅되는 애플리케이션에 의해 디렉토리를 관리하고 디렉토리에 대한 액세스를 제어하고자 하며 디렉토리(온-프레미스 또는 오프-프레미스에 상관없음)를 갖는 임의의 고객을 포함할 수도 있다.
온-프레미스 디렉토리들(160)을 유지하는 조직들은 그 디렉토리들(160)이 저장되는 하나 이상의 서버를 가질 수도 있다. 예를 들어, 조직(106A)은 다양한 서버를 포함하는 데이터 센터를 가질 수 있고, 온-프레미스 디렉토리(160)는 서버들 중 하나 이상에 저장될 수도 있다. 오프-프레미스 디렉토리들을 유지하는 조직들은 컴퓨팅 자원 서비스 제공자 시스템(104)의 서비스들을 채택할 수도 있고, 이러한 컴퓨팅 자원 서비스 제공자 시스템은 오프-프레미스 디렉토리 데이터 저장소(146)에 오프-프레미스 디렉토리를 저장할 수도 있다. 예를 들어, 조직(106B)은, 온-프레미스 디렉토리를 전혀 유지하지 않을 수도 있지만, 대신에 조직의 디렉토리(146)를 유지하도록 컴퓨팅 자원 서비스 제공자 시스템(104)에 의존할 수도 있다. 일부 조직들은, 다수의 디렉토리를 온-프레미스로 및/또는 오프-프레미스로 유지하는 것을 선택할 수도 있다. 예를 들어, 조직(106C)은 다수의 온-프레미스 디렉토리(160)를 (전술한) 조직(106A)과 유사한 방식으로 각각 저장할 수도 있고, 또한, 조직(106C)은 오프-프레미스 디렉토리(146)를 유지하도록 컴퓨팅 자원 서비스 제공자 시스템(104)을 채택하는 것을 선택할 수도 있다. 이 예에서, 컴퓨팅 자원 서비스 제공자 시스템(104)에 의해 유지되는 디렉토리(146)는, (예를 들어, 백업 또는 재해 복구에 대한) 온-프레미스 디렉토리의 서브세트 또는 미러일 수도 있고, 또는 완전히 별도의 디렉토리(예를 들어, 온-프레미스 디렉토리(160)와는 다른 영역에 있는 컴퓨팅 자원들의 디렉토리)일 수도 있다.
통신 네트워크(110)는, 인터넷 등의 다양한 개별적인 당사자에 의해 동작될 수 있는 연결된 네트워크들의 공공 액세스가능 네트워크일 수도 있다. 일부 실시예들에서, 통신 네트워크(110)는, 인터넷, 개인 네트워크, 퍼스널 에리어 네트워크, 로컬 에리어 네트워크, 광역 네트워크, 케이블 네트워크, 위성 네트워크, 셀룰러 전화 네트워크 등, 또는 이들의 조합일 수도 있고, 또는 이러한 예들을 포함할 수도 있다.
사용자 관리 및 인증 모듈에 대한 상호작용의 예
도 2a는, 사용자 장치에 의해 액세스되는 서비스에 토큰을 제공하는 프로세스 동안 사용자 관리 및 인증 모듈(142)에 대한 상호작용을 도시한다. 도 2a에 도시한 바와 같이, 디렉토리 서비스 모듈(140)은 복수의 에이전트(215A, 215B)와 상호작용할 수도 있고, 에이전트들(215A, 215B)은 사용자 관리 및 인증 모듈(142)과 상호작용할 수도 있다.
일 실시예에서, 각 에이전트(215A, 215B)는, 하나 이상의 별도의 디렉토리에 연관되며, 관리를 위해 연관된 디렉토리와 직접 상호작용한다. 에이전트들(215A, 215B)은, 온-프레미스 및/또는 오프-프레미스 디렉토리들과 연관될 수도 있고 통신할 수도 있다. 예를 들어, 에이전트(215A)는 오프-프레미스 디렉토리(146)에 연관될 수도 있고, 에이전트(215B)는 온-프레미스 디렉토리(160)에 연관될 수도 있다. 관리되는 디렉토리 서비스(140)는 에이전트들(215A, 215B)을 생성, 감시, 및/또는 관리하도록 구성될 수도 있다. 두 개의 에이전트(215A, 215B)가 도시되어 있지만, 이에 한정되지 않는다. 컴퓨팅 자원 서비스 제공자 시스템(104)은, 임의의 개수의 에이전트(예를 들어, 관리되는 디렉토리 서비스(140)에 의해 관리되는 모든 디렉토리들을 다루는 데 충분한 다수의 에이전트)를 포함할 수도 있다.
에이전트들(215A, 215B)은 사용자 관리 및 인증 모듈(142)에 대하여 행해진 API 호출의 번역된 버전을 수신할 수도 있다. 사용자 관리 및 인증 모듈(142)에 대하여 행해진 API 호출의 번역된 버전은 관리되는 디렉토리 서비스(140)에 의해 실행될 수 있는 특정 디렉토리 API 호출일 수도 있다(예를 들어, LDAP, 케베로스, DNS, 등). 일례로, API 호출의 번역은, 액세스 토큰을 디렉토리 서비스 토큰(예를 들어, 케베로스 토큰, 사용자명 및 패스워드 쌍, NT LAN 매니저(NTLM) 해시 등)에 대하여 맵핑하는 것을 포함할 수도 있다.
일 실시예에서, 사용자 관리 및 인증 모듈(142)은, 콘솔(220), 제어면(225), 및 로드 밸런서들(230, 235)을 포함한다. 콘솔(220)은 사용자 장치들(102)에 송신되는 사용자 인터페이스들을 생성하도록 구성될 수도 있다. 사용자 인터페이스들은, 사용자 장치(102)가 로그인, 패스워드 리셋, 패스워드 변경, 및/또는 본 명세서에서 설명하는 다른 동작을 수행하도록 사용자 관리 및 인증 모듈(142)에 의해 제공되는 API를 호출할 때 사용자 장치(102)에 송신될 수도 있는 로그인 페이지들일 수도 있다. 콘솔(220)은, 또한, 예를 들어, 새로운 사용자가 생성될 때 사용자 장치(102)에 송신될 수 있는 링크(예를 들어, 유니폼 리소스 로케이터(URL))를 생성할 수도 있다. 링크는, 유한한 기간(예를 들어, 7일, 2주 등) 동안 유효할 수도 있고, 선택되면, 사용자 장치(102)에 의해 실행되는 애플리케이션을, 관리자가 사용자 프로파일 정보 등의 추가 정보를 입력할 수 있는 콘텐츠 페이지로 재지정할 수도 있다. 콘솔(220)은, 또한, 사용자 장치(102)가 패스워드를 리셋하기 위해 사용자 관리 및 인증 모듈(142)에 의해 제공되는 API를 호출할 때 관리자에 연관된 계정에 대한 링크를 포함하는 전자 메시지(예를 들어, 이메일, 텍스트 메시지 등)를 송신할 수도 있다. 전자 메시지는, 패스워드 리셋 프로세스를 완료하도록 사용자 장치(102)에 의해 사용될 수 있는 일회용 사용자 토큰을 포함할 수도 있다.
제어면(225)은 API들을 사용자 장치들(102)에 노출시키도록 구성될 수도 있다. 예를 들어, 제어면(225)은 본 명세서에서 설명하는 API 등의 API를 노출시킬 수도 있다. 제어면(225)은, 또한, 에이전트들(215A, 215B)과 상호작용하도록 구성될 수도 있다. 예를 들어, 제어면(225)은, 사용자 장치들(102)로부터 수신된 API 호출을, 관리되는 디렉토리 서비스(140)에 의해 실행될 수 있는 특정 디렉토리 API 호출로 번역할 수도 있고, 그 특정 디렉토리 API 호출을 적절한 에이전트(215A, 215B)(예를 들어, API 호출에 따라 액션이 수행될 디렉토리에 연관된 에이전트)에 제공할 수도 있다. 제어면(225)은 도 2b에 관하여 더욱 상세히 후술한다.
콘솔(220)과 제어면(225) 각각은 로드 밸런서(230 또는 235) 뒤에 있을 수도 있다. 콘솔(220)과 제어면(225) 각각은 다수의 컴퓨팅 자원을 포함할 수도 있고, 로드 밸런서들(230, 235)은, 자원 사용을 최적화하고, 처리량을 최대화하고, 및/또는 임의의 단일 자원이 과부하로 되는 위험을 최소화하도록 다수의 컴퓨팅 자원들에 걸쳐 워크로드를 분산할 수도 있다. 예를 들어, 로드 밸런서들(230, 235)은, 사용자 장치(102)로부터 API 호출을 수신할 수도 있고, API 호출을 콘솔(220) 또는 제어면(225)의 적절한 컴퓨팅 자원들에 분산할 수 있다.
(1)에서, 관리자는, 사용자 장치(102)를 통해, 자신의 자격증명을 인증하도록 로드 밸런서(235)와 먼저 통신할 수도 있다. 로드 밸런서(235)는, 인증 요청과 자격증명을 콘솔(220)에 포워딩할 수도 있고, 콘솔은 인증 요청과 자격증명을 로드 밸런서(230)에 포워딩할 수도 있다. 로드 밸런서(230)는 인증 요청과 자격증명을 제어면(225)에 포워딩할 수도 있다. 제어면(225)은, 자격증명에 연관된 디렉토리를 결정하여 인증 요청과 자격증명을 적절한 에이전트(215A 또는 215B)에 송신할 수도 있다. 일단 적절한 에이전트(215A 또는 215B)가 인증 요청과 자격증명을 수신하면, 에이전트(215A 또는 215B)는 자신의 연관된 디렉토리(예를 들어, 오프-프레미스 디렉토리(146) 또는 온-프레미스 디렉토리(160))와 접촉함으로써 인증을 수행할 수도 있다.
(2)에서, 관리자의 자격증명이 인증될 수 있다는 결정에 응답하여, 제어면(225)은 인증 코드를 생성한다. 제어면(225)은 인증 코드를 사용자 장치(102)에 포워딩하도록 로드 밸런서(230)에 송신한다.
(3)에서, 사용자 장치(102)는 제3자 애플리케이션 서버들(108)에 의해 제공되는 서비스에 액세스한다. 대체 실시예들에서, 도시하지는 않았지만, 사용자 장치(102)는 컴퓨터 자원 서비스 제공자 시스템(104)에 의해 제공되는 애플리케이션들(144) 중의 애플리케이션에 액세스한다.
(4)에서, 액세스된 서비스는 액세스 토큰 및/또는 리프레시 토큰을 수신하기 위해 인증 코드를 로드 밸런서(230)에 송신한다. 로드 밸런서(230)는 인증 코드를 제어면(225)에 포워딩할 수도 있다.
(5)에서, 제어면(225)은 수신된 인증 코드에 기초하여 액세스 토큰 및/또는 리프레시 토큰을 생성한다. 제어면(225)은, 인증 코드가 만료 전에 수신되면 액세스 토큰을 생성할 수도 있다. 제어면(225)은, 액세스 토큰 및/또는 리프레시 토큰을 액세스된 서비스에 포워딩하도록 로드 밸런서(230)에 송신할 수도 있다.
도 2b는, 토큰을 제공하고 API 호출을 다루는 프로세스 동안 사용자 관리 및 인증 모듈(142)에 대한 상호작용을 도시한다. 도 2b에 도시한 바와 같이, 제어면(225)은, 사용자, 그룹, 및 패스워드 API 모듈(240), 인증 API 모듈(245), 인증 토큰 대 자격증명 맵퍼 모듈(250), 디렉토리 룩업 모듈(255), 디렉토리 데이터베이스(260), 서비스 상태 감시 모듈(265), 및 인증 수명 관리 리퍼(reaper) 모듈(270)을 포함할 수도 있다. 대체 실시예들에서, 도시하지는 않았지만, 디렉토리 룩업 모듈(255)은 에이전트(215A 또는 215B)의 구성요소이다.
인증 API 모듈(245)은 인증 코드, 리프레시 토큰, 및/또는 액세스 토큰을 생성할 수도 있다. 예를 들어, 인증 API 모듈(245)은, 관리자 자격증명, 도메인에 대한 액세스를 요청하는 애플리케이션 서버(140)에 의해 호스팅되는 애플리케이션 또는 서비스를 식별하는 클라이언트 식별자, 재지정 페이지(예를 들어, 일단 인증이 완료되면 사용자 관리 및 인증 모듈(150)이 액세스할 사용자 장치(102)에 지시해야 하는 애플리케이션 또는 서비스에 연관된 페이지), 및/또는 조직명이나 식별자(예를 들어, 글로벌 엔드포인트 또는 디렉토리 식별자를 식별하는 식별자)를 수신할 수도 있다. 인증 API 모듈(245)은 조직명에 연관된 디렉토리에 대응하는 에이전트(215A 또는 215B)에 자격증명을 송신할 수도 있다. 에이전트(215A 또는 215B)는 자격증명을 디렉토리 서비스 모듈(140)에 전달하여 자격증명이 인증될 수 있는지의 여부(예를 들어, 관리자가 디렉토리에 대한 액세스를 갖는지 여부)를 결정할 수도 있다. 자격증명이 인증될 수 있다면, 인증 API 모듈(245)은 통지받고 인증 코드(예를 들어, OAuth 코드)를 생성한다.
(1)에서, 전술한 바와 같이, 인증 코드는 유한한 기간(예를 들어, 10분, 1시간 등) 동안 유효한 일회용 코드일 수도 있다. 인증 API 모듈(245)은 인증 코드를 사용자 장치(102)에 송신할 수도 있다. 인증 API 모듈(245)은, 또한, 재지정 페이지에 액세스하기 위한 명령어를 사용자 장치(102)에 송신할 수도 있다.
(2)에서, 사용자 장치(102)는 제3자 애플리케이션 서버들(108)에 의해 제공되는 서비스에 액세스한다. 대체 실시예들에서, 도시하지는 않았지만, 사용자 장치(102)는 컴퓨터 자원 서비스 제공자 시스템(104)에 의해 제공되는 애플리케이션(144)들 중의 애플리케이션에 액세스한다.
(3)에서, 인증 API 모듈(245)은 액세스된 (예를 들어, 브라우저를 통해 액세스된) 서비스로부터 인증 코드를 수신한다. 예를 들어, 인증 API 모듈(245)은, getToken API가 호출되면 인증 코드를 수신할 수도 있다(예를 들어, 인증 코드는 파라미터로서 포함될 수도 있다).
만료되지 않은 인증 코드가 수신되면, 인증 API 모듈(245)은 액세스 토큰 및/또는 리프레시 토큰을 생성할 수도 있다. 액세스 토큰 및/또는 리프레시 토큰은 자격증명 및/또는 조직명에 기초하여 생성될 수도 있다. 예를 들어, 액세스 토큰 및/또는 리프레시 토큰은, 풀리는 경우, 토큰에 연관된 조직명 및 인증 코드(및 이에 따라 자격증명 및 자격증명에 연관된 관리자)를 나타낼 수 있다. 액세스 토큰은, 사용자, 그룹, 및 패스워드 API 모듈(240)에 의해 제공되는 API들의 세트를 통해 액세스된 서비스가 조직명에 연관된 디렉토리를 관리하게 할 수도 있다. 액세스 토큰은, 관리자에 의해 정의된 기간 또는 유한한 기간(예를 들어, 1시간, 1일 등) 동안 유효할 수도 있다. 리프레시 토큰은, 관리자에 의해 정의된 기간 또는 유한한 기간(예를 들어, 1주, 1달 등) 동안 유효할 수도 있고, 일단 이전의 액세스 토큰이 만료되면 새로운 액세스 토큰을 수신하도록 사용자 장치(102) 및/또는 액세스된 애플리케이션 또는 서비스에 의해 사용될 수 있다. 일부 실시예들에서, 리프레시 토큰은 임의의 기간 동안 유효하지 않을 수도 있다(예를 들어, 액세스 토큰은 일단 만료되면 리프레시되지 않을 수도 있다).
(4)에서, 일부 실시예들에서, 인증 API 모듈(245)은, 액세스 토큰, 리프레시 토큰, 자격증명, 및/또는 디렉토리 식별자를 인증 토큰 대 자격증명 맵퍼 모듈(250)에 송신한다. 인증 토큰 대 자격증명 맵퍼 모듈(250)은, 기저 디렉토리 로직을 사용하여 자격증명 및/또는 조직명(또는 조직의 엔티티들 중 하나에 연관된 디렉토리의 식별자)을 액세스 토큰 및/또는 리프레시 토큰에 맵핑하고, 이 맵핑을 디렉토리 데이터베이스(260)에 저장한다.
(5)에서, 인증 API 모듈(245)은, 또한, 액세스 토큰 및/또는 리프레시 토큰을 액세스된 서비스에 송신할 수도 있다. 사용자, 그룹, 및 패스워드 API 모듈(240)은 전술한 API들 중 하나 이상을 제공할 수도 있고, 액세스된 서비스는 액세스 토큰 및/또는 다른 특정 동작 파라미터를 사용하여 제공된 API들 중 하나 이상을 호출할 수도 있다. 일부 실시예들에서, 도시하지는 않았지만, 인증 API 모듈(245)은, (4)에 대하여 전술한 동작을 수행하기 전에 액세스 토큰 및/또는 리프레시 토큰을 액세스된 서비스에 송신한다.
(6)에서, 일 실시예에서, 사용자, 그룹, 및 패스워드 API 모듈(240)은, 호출 서비스로부터 액세스 토큰을 포함하는 API 호출을 수신하면, 디렉토리 룩업 모듈(255)에 질의함으로써 액세스 토큰에 연관된 디렉토리를 식별한다. 예를 들어, 디렉토리 룩업 모듈(255)은, 액세스 토큰을 디렉토리 데이터베이스(260)에 전달하여 액세스 토큰에 연관된 디렉토리를 식별할 수도 있고, 식별된 디렉토리를 다시 사용자, 그룹, 및 패스워드 API 모듈(240)에 송신할 수도 있다.
(7)에서, 이어서, 사용자, 그룹, 및 패스워드 API 모듈(240)은, 식별된 디렉토리에 연관된 에이전트(215A 또는 215B)를 식별할 수도 있고, API 호출을 특정 디렉토리 API 호출로 번역할 수도 있고, 특정 디렉토리 API 호출과 이 호출의 특정 동작 파라미터를 적절한 에이전트(215A 또는 215B)에 전달할 수도 있다. 사용자, 그룹, 및 패스워드 API 모듈(240)은, 디렉토리 룩업 모듈(255)에 의해 제공되는 정보에 기초하여 API 호출을 특정 디렉토리 API 호출로 어떻게 번역할지를 결정할 수도 있다. 대체 실시예들에서, 도시하지는 않았지만, 사용자, 그룹, 및 패스워드 API 모듈(240)은, (예를 들어, 내부 룩업 테이블 또는 데이터베이스를 통해) 디렉토리 룩업 모듈(255)에 질의하지 않고 액세스 토큰에 연관된 디렉토리를 직접 식별한다.
전술한 바와 같이, 에이전트들(215A, 215B)은, 사용자, 그룹, 및 패스워드 API 모듈(240)에 의해 수신된 API 호출로부터 번역된 특정 디렉토리 API 호출을 수신할 수도 있다. 일례로, 사용자, 그룹, 및 패스워드 API 모듈(240)은, 사용자, 그룹, 및 패스워드 API 모듈(240)에 의해 수신된 액세스 토큰을 디렉토리 서비스 토큰(케베로스 토큰)에 맵핑할 수도 있고, 디렉토리 서비스 토큰은 적절한 디렉토리에 액세스하도록 에이전트들(215A, 215B)에 제공될 수도 있다.
(8)에서, 결과는, 존재하는 경우, 관리되는 디렉토리 서비스(140)로부터 에이전트들(215A, 215B)에 의해 수신될 수도 있고, 사용자, 그룹, 및 패스워드 API 모듈(240)에 포워딩될 수도 있다. 이어서, 사용자, 그룹, 및 패스워드 API 모듈(240)은 그 결과를 호출 서비스에 송신할 수도 있다.
서비스 상태 감시 모듈(265)은 디렉토리 서비스의 상태를 감시하는 컴퓨팅 시스템일 수도 있다. 예를 들어, 서비스 상태 감시 모듈(265)은 디렉토리 서비스 모듈(140)의 상태를 감시할 수도 있다.
인증 수명 관리 리퍼 모듈(270)은 디렉토리 데이터베이스(260)에 대한 유지보수를 수행할 수도 있다. 예를 들어, 인증 수명 관리 리퍼 모듈(270)은, 만료된 액세스 토큰 및/또는 리프레시 토큰(및 이들의 연관된 자격증명과 디렉토리 식별자)을 리핑(reap) 또는 제거할 수도 있다.
서로 다른 영역들에 있는 서로 다른 디렉토리들에 연관된 공통 엔드포인트에 서 사용자를 인증하기 위한 프로세스의 예
도 3은, 컴퓨터 자원 서비스 제공자 시스템에 의해 제공되는 제3자 애플리케이션 서버 또는 애플리케이션 또는 서비스에 의해 사용될 수도 있는 서로 다른 영역들의 복수의 디렉토리에 연관된 공통 엔드포인트에서 사용자를 인증하기 위한 프로세스(300)를 도시한다. 일례로, 도 1a와 도 1b의 제3자 애플리케이션 서버(108) 또는 컴퓨터 자원 서비스 제공자 시스템(104)은 인증 프로세스(300)를 실행하도록 구성될 수 있다. 인증 프로세스(300)는 블록(302)에서 시작된다.
블록(304)에서는, 조직명에 연관된 페이지를 통해 애플리케이션에 액세스하기 위한 요청을 수신한다. 예를 들어, 조직명은 글로벌 엔드포인트를 식별할 수도 있다. 복수의 디렉토리가 조직명에 연관될 수도 있다. 예를 들어, 조직명은 복수의 엔티티에 연관될 수도 있다. 각 엔티티는 별도의 디렉토리를 저장 및 유지할 수 있다. 일 실시예에서, 복수의 디렉토리 중 하나 이상은 별도의 영역들에 위치한다. 각각의 개별적인 영역의 컴퓨팅 장치들은 다른 영역들의 컴퓨팅 장치들과 통신하지 않을 수도 있다.
블록(306)에서는, 사용자 자격증명(user credential)을 수신한다. 사용자 자격증명은 복수의 디렉토리 중 제1 디렉토리에 연관될 수도 있다. 예를 들어, 사용자 자격증명에 연관된 사용자는 제1 디렉토리를 저장 및 유지하는 엔티티의 고용인일 수도 있다.
블록(308)에서는, 제1 디렉토리가 위치하는 영역을 결정한다. 일 실시예에서, 라우트 서비스(130) 등의 라우트 서비스는 조직명에 연관된 페이지에 대한 DNS 엔트리의 맵핑을 포함한다. 라우트 서비스는, 또한, CDN 엔트리들에 대한 DNS 엔트리들의 맵핑을 포함할 수도 있다. CDN은 다양한 영역 서비스에 대한 맵핑을 포함할 수도 있다. 예를 들어, 제1 디렉토리는, CDN 또는 영역 서비스에 의해 CDN을 통해 라우트 서비스 및/또는 컴퓨팅 자원 서비스 제공자 시스템 또는 제3자 애플리케이션 서버에 제공되는 별명 식별자로 식별될 수도 있다. 라우트 서비스는, 컴퓨팅 자원 서비스 제공자 시스템 또는 제3자 애플리케이션 서버로부터 별명 식별자를 수신하면, 사용자 장치를 적절한 CDN으로 재지정할 수도 있다. CDN은, 제1 디렉토리를 관리하는 영역 서비스를 식별할 수도 있어서, 제1 디렉토리의 영역을 식별할 수도 있다(예를 들어, 영역 서비스는 제1 디렉토리와 동일한 영역에 있다).
블록(310)에서는, 인증을 위해 사용자 자격증명을 결정된 영역에 송신한다. 사용자 자격증명이 결정된 영역에 송신된 후, 블록(312)에 도시한 바와 같이 인증 프로세스(300)가 완료될 수도 있다.
글로벌 엔드포인트에 액세스하기 위한 사용자 인터페이스의 예
도 4a와 도 4b는 사용자 장치(102) 등의 사용자 장치에서 보이는 네트워크 페이지(400)의 표현의 일례를 도시한다. 네트워크 페이지(400)는, 컴퓨팅 자원 서비스 제공자 시스템(104) 등의 영역 서비스에 의해 생성될 수도 있고, 사용자 장치(102)에 의해 실행되는 브라우저 애플리케이션의 사용자 인터페이스 내에 표시될 수도 있다. 도 4a에 도시한 바와 같이, 네트워크 페이지(400)는, 애플리케이션에 액세스하도록 사용자가 자격증명(예를 들어, 사용자명과 패스워드)을 입력하게 할 수 있다. 예를 들어, 사용자는 필드(402)에 사용자명을 입력하고 필드(404)에 패스워드를 입력할 수 있다.
URL 바(406)는 사용자에 의해 제공되는 URL을 나타낸다. 일 실시예에서, URL은 로그인 프로세스에 걸쳐 고정 상태로 유지된다. 예를 들어, 사용자는, 제1 컴퓨팅 자원 서비스 제공자 시스템(104) 또는 제3자 애플리케이션 서버들(108)에 의해 호스팅되는 뉴스 서비스에 액세스하도록 URL <Org Name>.XYZAPPS.COM/NEWS를 제공하였을 수도 있다. 그러나, 사용자는 아직 로그인하지 않았기 때문에, 제1 컴퓨팅 자원 서비스 제공자 시스템(104) 또는 제3자 애플리케이션 서버들(108)은 사용자를 네트워크 페이지(400)에 의해 표현되는 로그인 페이지로 재지정한다. 네트워크 페이지(400)에 의해 표현되는 로그인 페이지는, 사용자의 조직에 대응하는 디렉토리에 연관된 컴퓨팅 자원 서비스 제공자 시스템(104) 등의, 제1 컴퓨팅 자원 서비스 제공자 시스템(104) 또는 제3자 애플리케이션 서버들(108)과는 다른 컴퓨팅 자원 서비스 제공자 시스템(104)에 의해 생성될 수도 있다. 컴퓨팅 자원 서비스 제공자 시스템들(104)과 제3자 애플리케이션 서버들(108)은 서로 다른 영역들에 위치할 수도 있다. 따라서, 브라우저 애플리케이션은, 로그인 프로세스를 완료하도록 한 영역의 호스트에 의해 생성된 페이지로부터 다른 영역의 다른 호스트에 의해 생성된 다른 페이지로 재지정되었을 수도 있다. 따라서, 브라우저 애플리케이션은, 라우트 서비스(130)에 저장된 맵핑에 기초하여 그리고 CDN(150A 또는 150B)에 저장된 맵핑에 기초하여 재지정되었을 수도 있다. 그러나, URL 바(406)는 URL <Org Name>.XYZAPPS.COM/NEWS를 여전히 표시할 수도 있다.
도 4b에 도시한 바와 같이, 사용자는 성공적으로 로그인하였으며, 제1 컴퓨팅 자원 서비스 제공자 시스템(104) 또는 제3자 애플리케이션 서버(108)에 의해 생성된 뉴스 서비스가 네트워크 페이지(450)에 표시된다. 그러나, 사용자가 네트워크 페이지(400)로부터 네트워크 페이지(450)로 재지정되고 이에 따라 한 영역에 위치하는 호스트로부터 다른 영역에 위치하는 다른 호스트로 재지정되는 경우에도, URL 바(406)는 다시 동일한 URL을 표시한다.
용어
본 명세서에 기술된 방법들과 작업들 모두는 컴퓨터 시스템에 의해 수행되고 완전히 자동화될 수도 있다. 컴퓨터 시스템은, 일부 경우에, 기술된 기능들을 수행하기 위해 네트워크를 통해 통신하고 상호작용하는 다수의 별개의 컴퓨터 또는 컴퓨팅 장치(예를 들어, 물리적 서버, 워크스테이션, 스토리지 어레이, 클라우드 컴퓨팅 자원 등)를 포함할 수도 있다. 이러한 각각의 컴퓨팅 장치는, 통상적으로 메모리 또는 다른 비일시적 컴퓨터 판독가능 저장 매체 또는 장치(예를 들어, 고체 상태 저장 장치, 디스크 드라이브 등)에 저장된 프로그램 명령어들 또는 모듈들을 실행하는 프로세서(또는 다중 프로세서)를 포함한다. 본 명세서에 개시된 다양한 기능은, 이러한 프로그램 명령어들에서 구체화될 수도 있고, 및/또는 컴퓨터 시스템의 특정 애플리케이션 회로(예를 들어, ASIC 또는 FPGA)에서 구현될 수도 있다. 컴퓨터 시스템이 다수의 컴퓨팅 장치를 포함하는 경우, 이러한 장치들은 동일 장소에 있을 수도 있지만, 반드시 그렇게 배치될 필요는 없다. 개시된 방법 및 작업의 결과는, 고체 상태 메모리 칩 및/또는 자기 디스크 등의 물리적 저장 장치를 다른 상태로 변환함으로써 지속적으로 저장될 수도 있다. 일부 실시예들에서, 컴퓨터 시스템은, 처리 자원들이 다수의 별개의 비지니스 엔티티 또는 다른 사용자에 의해 공유되는 클라우드 기반 컴퓨팅 시스템일 수도 있다.
실시예에 따라, 본 명세서에 설명된 프로세스들 또는 알고리즘들 중 임의의 것의 특정 액션, 이벤트, 또는 기능은 다른 순서로 수행될 수 있으며, 함께 추가, 병합, 또는 제외할 수 있다(예를 들어, 알고리즘의 실시를 위해 모든 설명된 동작 이벤트가 필요한 것은 아니다). 또한, 특정 실시예들에서, 동작 또는 이벤트는, 예를 들어, 멀티스레드 처리, 인터럽트 처리, 또는 다중 프로세서 또는 프로세서 코어를 통해 또는 순차적이라기보다는 다른 병렬 아키텍처를 통해 동시에 수행될 수 있다.
본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 루틴, 및 알고리즘 단계는, 전자 하드웨어(예를 들어, ASIC 또는 FPGA 장치), 범용 컴퓨터 하드웨어 상에서 실행되는 컴퓨터 소프트웨어, 또는 이들의 조합으로서 구현될 수 있다. 이러한 하드웨어와 소프트웨어의 상호 교환성을 명확히 설명하기 위해, 다양한 예시적인 구성요소, 블록, 모듈, 및 단계가 일반적으로 해당 기능의 관점에서 설명되었다. 이러한 기능이 범용 하드웨어에서 실행되는 소프트웨어 대 특수 하드웨어로서 구현되는지 여부는 전체 시스템에 적용되는 특정 애플리케이션과 및 설계 제약사항에 의존한다. 기술된 기능은 각각의 특정한 애플리케이션에 대해 다양한 방식으로 구현될 수 있지만, 이러한 구현 결정은 본 개시 내용의 범위를 벗어나는 것으로서 해석되어서는 안 된다.
또한, 본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록 및 모듈은, 범용 프로세서 장치, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 또는 다른 프로그래머블 로직 장치, 이산적 게이트 또는 트랜지스터 로직, 이산적 하드웨어 구성요소, 또는 본 명세서에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합 등의 기계에 의해 구현되거나 수행될 수 있다. 범용 프로세서 장치는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서 장치는 제어기, 마이크로컨트롤러, 또는 상태 기계, 이들의 조합 등일 수 있다. 프로세서 장치는 컴퓨터 실행가능 명령어들을 처리하도록 구성된 전기 회로를 포함할 수 있다. 다른 일 실시예에서, 프로세서 장치는, 컴퓨터 실행가능 명령어들을 처리하지 않고 논리 동작들을 수행하는 FPGA 또는 기타 프로그래머블 장치를 포함한다. 프로세서 장치는, 또한, 컴퓨팅 장치들의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서, DSP 코어와 결합된 하나 이상의 마이크로프로세서, 또는 다른 임의의 그러한 구성으로서 구현될 수 있다. 본 명세서에서는 주로 디지털 기술과 관련하여 설명되었지만, 프로세서 장치는 또한 아날로그 구성요소를 주로 포함할 수도 있다. 예를 들어, 여기서 설명된 렌더링 기술들의 일부 또는 전부는 아날로그 회로 또는 혼합된 아날로그 및 디지털 회로로 구현될 수도 있다. 컴퓨팅 환경은, 몇 개 예를 들자면, 마이크로프로세서, 메인프레임 컴퓨터, 디지털 신호 프로세서, 휴대용 컴퓨팅 장치, 장치 제어기, 또는 어플라이언스 내의 계산 엔진을 포함하지만 이에 한정되지 않는 컴퓨터 시스템의 임의의 유형을 포함할 수 있다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법, 프로세스, 루틴, 또는 알고리즘의 요소들은, 하드웨어, 프로세서 장치에 의해 실행되는 소프트웨어 모듈, 또는 이들의 조합으로 직접 구체화될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 이동식 디스크, CD-ROM 또는 임의의 다른 형태의 일시적 컴퓨터 판독가능 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서 장치가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기입할 수 있도록 프로세서 장치에 결합될 수 있다. 대안으로, 저장 매체는 프로세서 장치에 통합될 수 있다. 프로세서 장치 및 저장 매체는 ASIC에 상주할 수 있다. ASIC은 사용자 단말에 상주할 수 있다. 대안으로, 프로세서 장치 및 저장 매체는 사용자 단말에 개별적인 구성요소로서 상주할 수 있다.
본 명세서에서 사용되는 조건어, 예를 들어, 특히, "할 수 있다"(can, could), "할 수도 있다"(might, may), "예를 들어" 등은, 일반적으로, 특정하게 달리 명시하지 않는 한 또는 그 외에는 사용되는 문맥에서 이해되는 바와 같이, 일부 실시예들은 일부 특징부들, 요소들, 및/또는 단계들을 포함하지만 다른 실시예들은 포함하지 않는다는 것을 전달하고자 하는 것이다. 따라서, 이러한 조건어는, 일반적으로 하나 이상의 실시예에 대해 특징부, 요소, 및/또는 단계가 어떤 식으로든 요구된다는 것을 암시하려는 것이 아니며, 또는 하나 이상의 실시예가 다른 입력 또는 프롬프트와 함께 또는 없이, 이들 특징부, 요소, 및/또는 단계가 임의의 특정 실시예에 포함되거나 수행되는지 여부를 결정하기 위한 로직을 반드시 포함한다는 것을 암시하려는 것이 아니다. "포함하는"(comprising), "포함하는"(including), "갖는" 등의 용어들은, 동의어이며, 개방형으로 포괄적으로 사용되며, 추가 요소, 특징부, 액션, 동작 등을 배제하지 않는다. 또한, "또는"이라는 용어는 포괄적인 의미로 사용되며, 배타적인 의미로 사용되지는 않는다. 따라서, "또는"이라는 용어는, (배타적 의미가 아닌) 포괄적 의미로 사용되며, 예를 들어, "또는"이라는 용어는, 사용시, 요소들의 리스트를 연결하도록, 그 리스트에 있는 요소들 중 하나, 일부, 또는 전부를 의미한다.
달리 특정하게 명시되지 않는 한, "X, Y, Z 중 적어도 하나"라는 문구와 같은 분리어는, 일반적으로 항목, 용어 등이 X, Y, 또는, Z, 또는 이들의 임의의 조합(예를 들어, X, Y 및/또는 Z)일 수도 있다는 점을 나타내도록 사용되는 문맥으로 이해된다. 따라서, 이러한 분리어는, 일반적으로, 어떤 실시예들이 X 중 적어도 하나, Y 중 적어도 하나, 또는 Z 중 적어도 하나가 각각에 대하여 존재해야 한다는 점을 암시하려는 것이 아니며 그러한 암시로 되어서도 안 된다.
상기한 상세한 설명은 다양한 실시예에 적용되는 바와 같은 신규한 특징부들을 도시하고, 설명하고, 강조하였지만, 도시한 장치 또는 알고리즘의 형태와 상세에 있어서 다양한 생략, 치환, 및 변경을 본 발명의 사상을 벗어나지 않고 행할 수 있음을 이해할 수 있다. 인식할 수 있는 바와 같이, 본 명세서에 기술된 특정 실시예들은, 일부 특징부들이 다른 특징부들과는 별도로 사용되거나 실시될 수 있으므로, 본 명세서에 설명된 모든 특징부들과 장점들을 제공하지 않는 형태로 구체화될 수 있다. 본 명세서에 개시된 특정 실시예들의 범위는 전술한 설명보다는 첨부된 청구범위에 의해 표시된다. 청구 범위 및 균등한 의미 및 범위 내에 있는 모든 변경은 그 범위 내에 포함되어야 한다.
본 개시 내용의 실시예들은, 다음에 따르는 절들로 설명될 수 있다.
1. 시스템으로서,
네트워크의 하나의 컴퓨팅 장치로부터 다른 컴퓨팅 장치로의 라우트를 결정하도록 구성된 라우트 서비스 시스템; 및
하나 이상의 컴퓨팅 장치를 포함하고, 복수의 콘텐츠 전달 네트워크와 통신하는 애플리케이션 서버를 포함하되,
상기 애플리케이션 서버는,
조직명에 연관된 콘텐츠 페이지를 통해 애플리케이션에 액세스하기 위한 요청을 사용자 장치로부터 수신하도록 구성된 네트워크 인터페이스, 및
디렉토리 식별자 모듈을 구현하도록 프로그래밍되고,
복수의 디렉토리는 상기 조직명에 연관되고, 상기 복수의 디렉토리의 각 디렉토리는 복수의 영역 중의 별개의 영역에 위치하고, 상기 네트워크 인터페이스는 또한 상기 사용자 장치로부터 사용자 자격증명을 수신하도록 구성되고, 상기 사용자 자격증명은 상기 복수의 디렉토리 중 제1 디렉토리에 연관되고,
상기 디렉토리 식별자 모듈은, 상기 조직명에 연관된, 상기 라우트 서비스 시스템에 저장된 데이터에 기초하여, 상기 복수의 영역 중 상기 제1 디렉토리가 위치하는 영역을 결정하도록 구성되고,
상기 네트워크 인터페이스는, 인증을 위해 상기 사용자 자격증명을 결정된 상기 영역의 서비스에 송신하도록 더 구성되고,
상기 네트워크 인터페이스는, 상기 결정된 영역의 서비스로부터 상기 인증의 결과를 수신하도록 더 구성되는, 시스템.
2. 제1절에 있어서, 상기 결정된 영역의 서비스는,
상기 결정된 영역의 상기 제1 디렉토리의 위치를 결정하고; 그리고
상기 결정된 영역의 상기 제1 디렉토리의 위치에 상기 사용자 자격증명을 송신하도록 구성된, 시스템.
3. 제1절에 있어서, 상기 라우트 서비스 시스템은 상기 조직명과 도메인 네임 시스템(DNS) 엔트리 간의 맵핑을 포함하는, 시스템.
4. 제3절에 있어서, 상기 라우트 서비스 시스템은, 상기 DNS 엔트리와, 상기 서비스와 통신하는 콘텐츠 전달 네트워크 간의 맵핑을 포함하는, 시스템.
5. 제1절에 있어서, 상기 네트워크 인터페이스는, 상기 조직명에 연관된 콘텐츠 페이지를 통해 상기 애플리케이션에 액세스하기 위한 요청을 제2 사용자 장치로부터 수신하도록 더 구성되고,
상기 네트워크 인터페이스는, 상기 제2 사용자 장치로부터 제2 사용자 자격증명을 수신하도록 더 구성되고, 상기 제2 사용자 자격증명은 상기 복수의 디렉토리의 제2 디렉토리에 연관된, 시스템.
6. 제5절에 있어서, 상기 디렉토리 식별자 모듈은, 상기 조직명에 연관된, 상기 라우트 서비스 시스템에 저장된 데이터에 기초하여, 상기 복수의 영역 중 상기 제2 디렉토리가 위치하는 제2 영역을 결정하도록 더 구성되고, 상기 네트워크 인터페이스는, 인증을 위해 상기 제2 사용자 자격증명을 결정된 상기 제2 영역의 서비스에 송신하도록 더 구성된, 시스템.
7. 제1절에 있어서, 상기 사용자 자격증명은 상기 제1 디렉토리에 의해 관리되는 패스워드와 사용자명을 포함하는, 시스템.
8. 제1절에 있어서, 상기 네트워크 인터페이스는, 인증을 위해 제2 사용자 자격증명을 상기 결정된 영역의 서비스에 송신하도록 더 구성되고,
상기 네트워크 인터페이스는, 상기 제2 사용자 자격증명의 인증 결과를 수신하도록 더 구성된, 시스템.
9. 하나 이상의 디렉토리를 관리하는 관리자를 인증하는 컴퓨터 구현 방법으로서,
하나 이상의 컴퓨팅 장치를 포함하고 특정한 실행가능 명령어들로 구성된 애플리케이션 서버에 의해 구현되는 경우,
조직명에 연관된 콘텐츠 페이지를 통해 애플리케이션에 액세스하기 위한 요청을 사용자 장치로부터 수신하는 단계로서, 복수의 디렉토리가 상기 조직명에 연관되고, 상기 복수의 디렉토리 중 적어도 일부가 다른 디렉토리들과는 다른 지리적 영역에 위치하는, 요청을 사용자 장치로부터 수신하는 단계;
상기 사용자 장치로부터 사용자 자격증명을 수신하는 단계로서, 상기 사용자 자격증명이 상기 복수의 디렉토리 중 제1 디렉토리에 연관된, 사용자 자격증명을 수신하는 단계;
네트워크 라우트 서비스에 의해 제공되는 정보에 기초하여 상기 제1 디렉토리가 위치하는 제1 지리적 영역을 결정하는 단계;
상기 제1 디렉토리에 인증을 위해 상기 사용자 자격증명을 상기 제1 지리적 영역의 서비스에 송신하는 단계; 및
상기 제1 지리적 영역의 서비스로부터 상기 인증의 결과를 수신하는 단계를 포함하는, 컴퓨터 구현 방법.
10. 제9절에 있어서, 상기 제1 지리적 영역의 서비스는, 상기 사용자 자격증명을 상기 제1 지리적 영역의 제1 디렉토리의 위치에 송신함으로써 상기 인증의 결과를 결정하는, 컴퓨터 구현 방법.
11. 제9절에 있어서, 상기 네트워크 라우트 서비스는 상기 조직명과 도메인 네임 시스템(DNS) 엔트리 간의 맵핑을 제공하는, 컴퓨터 구현 방법.
12. 제11절에 있어서, 상기 네트워크 라우트 서비스는, 상기 DNS 엔트리와, 상기 제1 지리적 영역의 서비스와 통신하는 콘텐츠 전달 네트워크 간의 맵핑을 더 제공하는, 컴퓨터 구현 방법.
13. 제12절에 있어서, 상기 제1 지리적 영역을 결정하는 단계는 상기 DNS 엔트리에 연관된 콘텐츠 전달 네트워크에 질의하는 단계를 포함하는, 컴퓨터 구현 방법.
14. 제9절에 있어서, 상기 조직명에 연관된 콘텐츠 페이지를 통해 상기 애플리케이션에 액세스하기 위한 요청을 제2 사용자 장치로부터 수신하는 단계; 및
상기 제2 사용자 장치로부터 제2 사용자 자격증명을 수신하는 단계를 더 포함하되,
상기 제2 사용자 자격증명은 상기 복수의 디렉토리 중 제2 디렉토리에 연관된, 컴퓨터 구현 방법.
15. 제13절에 있어서, 상기 네트워크 라우트 서비스에 의해 제공되는 정보에 기초하여 상기 제2 디렉토리가 위치하는 제2 지리적 영역을 결정하는 단계; 및
상기 제2 디렉토리에 인증을 위해 상기 제2 지리적 영역의 제2 서비스에 상기 제2 사용자 자격증명을 송신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
16. 제9절에 있어서, 상기 사용자 자격증명은 상기 제1 디렉토리에 의해 관리되는 사용자명과 패스워드를 포함하는, 컴퓨터 구현 방법.
17. 제9절에 있어서, 상기 제1 디렉토리에 인증을 위해 상기 제1 지리적 영역의 서비스에 제2 사용자 자격증명을 송신하는 단계; 및
상기 제1 지리적 영역의 서비스로부터 상기 제2 사용자 자격증명의 인증 결과를 수신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
18. 비일시적 저장 장치를 포함하는 비일시적 컴퓨터 저장 시스템으로서,
컴퓨터 시스템으로 하여금, 적어도,
조직명에 연관된 콘텐츠 페이지를 통해 애플리케이션에 액세스하기 위한 요청을 사용자 장치로부터 수신하는 단계로서, 복수의 디렉토리가 상기 조직명에 연관되고, 상기 복수의 디렉토리 중 적어도 일부가 다른 디렉토리들과는 다른 지리적 영역에 위치하는, 요청을 사용자 장치로부터 수신하는 단계;
상기 사용자 장치로부터 사용자 자격증명을 수신하는 단계로서, 상기 사용자 자격증명이 상기 복수의 디렉토리 중 제1 디렉토리에 연관된, 사용자 자격증명을 수신하는 단계;
네트워크 라우트 서비스에 의해 제공되는 정보에 기초하여 상기 제1 디렉토리가 위치하는 제1 지리적 영역을 결정하는 단계; 및
상기 사용자 자격증명이 상기 제1 디렉토리에 의해 인증될 수 있는지의 여부를 결정하도록 상기 사용자 자격증명을 상기 제1 디렉토리에 송신하는 단계
를 행하게 하는 실행가능 프로그램 명령어들을 저장한, 비일시적 컴퓨터 저장 시스템.
19. 제18절에 있어서, 상기 실행가능 프로그램 명령어들은, 추가로, 상기 컴퓨터 시스템으로 하여금, 적어도,
상기 사용자 자격증명을 제1 지리적 영역의 서비스를 통해 상기 제1 디렉토리에 송신하게 하고,
상기 제1 지리적 영역의 서비스로부터 상기 인증의 결과를 수신하게 하는, 비일시적 컴퓨터 저장 시스템.
20. 제18절에 있어서, 상기 네트워크 라우트 서비스는, 상기 조직명과 인터넷 프로토콜(IP) 어드레스 간의 맵핑을 제공하는, 비일시적 컴퓨터 저장 시스템.
21. 제20절에 있어서, 상기 네트워크 라우트 서비스는, 상기 IP 어드레스와 콘텐츠 전달 네트워크의 어드레스 간의 맵핑을 더 제공하는, 비일시적 컴퓨터 저장 시스템.
22. 제21절에 있어서, 상기 실행가능 프로그램 명령어들은, 추가로, 상기 컴퓨터 시스템으로 하여금, 적어도, 상기 콘텐츠 전달 네트워크의 어드레스를 식별하도록 상기 네트워크 라우트 서비스에 질의하게 하는, 비일시적 컴퓨터 저장 시스템.
23. 제18절에 있어서, 상기 실행가능 프로그램 명령어들은, 추가로, 상기 컴퓨터 시스템으로 하여금, 적어도,
제2 사용자 장치로부터, 상기 조직명에 연관된 콘텐츠 페이지를 통해 상기 애플리케이션에 액세스하기 위한 요청을 수신하게 하고,
상기 복수의 디렉토리 중 제2 디렉토리에 연관된 제2 사용자 자격증명을 상기 제2 사용자 장치로부터 수신하게 하고,
상기 네트워크 라우트 서비스에 의해 제공되는 정보에 기초하여 상기 제2 디렉토리가 있는 제2 지리적 영역을 결정하게 하고,
상기 제2 사용자 자격증명이 상기 제2 디렉토리에 의해 인증될 수 있는지의 여부를 결정하도록 상기 제2 사용자 자격증명을 상기 제2 지리적 영역의 제2 서비스에 송신하게 하는, 비일시적 컴퓨터 저장 시스템.
24. 제18절에 있어서, 상기 사용자 자격증명은 상기 제1 디렉토리에 의해 관리되는 사용자명과 패스워드를 포함하는, 비일시적 컴퓨터 저장 시스템.
제18절에 있어서, 상기 실행가능 프로그램 명령어들은, 추가로, 상기 컴퓨터 시스템으로 하여금, 적어도, 제2 사용자 자격증명이 상기 제1 디렉토리에 의해 인증될 수 있는지의 여부를 결정하도록 상기 제2 사용자 자격증명을 상기 제1 디렉토리에 송신하게 하는, 비일시적 컴퓨터 저장 시스템.

Claims (15)

  1. 시스템으로서,
    네트워크의 하나의 컴퓨팅 장치로부터 다른 컴퓨팅 장치로의 라우트를 결정하도록 구성된 라우트 서비스 시스템(route service system); 및
    하나 이상의 컴퓨팅 장치를 포함하고, 복수의 콘텐츠 전달 네트워크와 통신하는 애플리케이션 서버를 포함하되,
    상기 애플리케이션 서버는, 조직명에 연관된 콘텐츠 페이지를 통해 애플리케이션에 액세스하기 위한 요청을 사용자 장치로부터 수신하도록 구성된 네트워크 인터페이스, 및
    디렉토리 식별자 모듈을 구현하도록 프로그래밍되고,
    복수의 디렉토리는 상기 조직명에 연관되고, 상기 복수의 디렉토리의 각 디렉토리는 복수의 영역 중의 별개의 영역에 위치하고, 상기 네트워크 인터페이스는 또한 상기 사용자 장치로부터 사용자 자격증명(user credential)을 수신하도록 구성되고, 상기 사용자 자격증명은 상기 복수의 디렉토리 중 제1 디렉토리에 연관되고,
    상기 디렉토리 식별자 모듈은, 상기 조직명에 연관된, 상기 라우트 서비스 시스템에 저장된 데이터에 기초하여, 상기 복수의 영역 중 상기 제1 디렉토리가 위치하는 영역을 결정하도록 구성되고,
    상기 네트워크 인터페이스는, 인증을 위해 상기 사용자 자격증명을 결정된 상기 영역의 서비스에 송신하도록 더 구성되고,
    상기 네트워크 인터페이스는, 상기 결정된 영역의 서비스로부터 상기 인증의 결과를 수신하도록 더 구성되는, 시스템.
  2. 제1항에 있어서, 상기 결정된 영역의 서비스는,
    상기 결정된 영역의 상기 제1 디렉토리의 위치를 결정하고, 그리고
    상기 결정된 영역의 상기 제1 디렉토리의 위치에 상기 사용자 자격증명을 송신하도록 구성된, 시스템.
  3. 제1항에 있어서, 상기 라우트 서비스 시스템은 상기 조직명과 도메인 네임 시스템(domain name system: DNS) 엔트리 간의 맵핑을 포함하는, 시스템.
  4. 제3항에 있어서, 상기 라우트 서비스 시스템은, 상기 DNS 엔트리와, 상기 서비스와 통신하는 콘텐츠 전달 네트워크 간의 맵핑을 포함하는, 시스템.
  5. 제1항에 있어서, 상기 네트워크 인터페이스는, 상기 조직명에 연관된 콘텐츠 페이지를 통해 상기 애플리케이션에 액세스하기 위한 요청을 제2 사용자 장치로부터 수신하도록 더 구성되고,
    상기 네트워크 인터페이스는, 상기 제2 사용자 장치로부터 제2 사용자 자격증명을 수신하도록 더 구성되고, 상기 제2 사용자 자격증명은 상기 복수의 디렉토리의 제2 디렉토리에 연관된, 시스템.
  6. 제5항에 있어서, 상기 디렉토리 식별자 모듈은, 상기 조직명에 연관된, 상기 라우트 서비스 시스템에 저장된 데이터에 기초하여, 상기 복수의 영역 중 상기 제2 디렉토리가 위치하는 제2 영역을 결정하도록 더 구성되고, 상기 네트워크 인터페이스는, 인증을 위해 상기 제2 사용자 자격증명을 결정된 상기 제2 영역의 서비스에 송신하도록 더 구성된, 시스템.
  7. 제1항에 있어서, 상기 사용자 자격증명은 상기 제1 디렉토리에 의해 관리되는 패스워드와 사용자명을 포함하는, 시스템.
  8. 제1항에 있어서, 상기 네트워크 인터페이스는, 인증을 위해 제2 사용자 자격증명을 상기 결정된 영역의 서비스에 송신하도록 더 구성되고,
    상기 네트워크 인터페이스는, 상기 제2 사용자 자격증명의 인증 결과를 수신하도록 더 구성된, 시스템.
  9. 하나 이상의 디렉토리를 관리하는 관리자를 인증하는 컴퓨터 구현 방법으로서,
    하나 이상의 컴퓨팅 장치를 포함하고 특정한 실행가능 명령어들로 구성된 애플리케이션 서버에 의해 구현되는 경우,
    조직명에 연관된 콘텐츠 페이지를 통해 애플리케이션에 액세스하기 위한 요청을 사용자 장치로부터 수신하는 단계로서, 복수의 디렉토리가 상기 조직명에 연관되고, 상기 복수의 디렉토리 중 적어도 일부가 다른 디렉토리들과는 다른 지리적 영역에 위치하는, 상기 요청을 사용자 장치로부터 수신하는 단계;
    상기 사용자 장치로부터 사용자 자격증명을 수신하는 단계로서, 상기 사용자 자격증명이 상기 복수의 디렉토리 중 제1 디렉토리에 연관된, 상기 사용자 자격증명을 수신하는 단계;
    네트워크 라우트 서비스에 의해 제공되는 정보에 기초하여 상기 제1 디렉토리가 위치하는 제1 지리적 영역을 결정하는 단계;
    상기 제1 디렉토리에 인증을 위해 상기 사용자 자격증명을 상기 제1 지리적 영역의 서비스에 송신하는 단계; 및
    상기 제1 지리적 영역의 서비스로부터 상기 인증의 결과를 수신하는 단계를 포함하는, 컴퓨터 구현 방법.
  10. 제9항에 있어서, 상기 제1 지리적 영역의 서비스는, 상기 사용자 자격증명을 상기 제1 지리적 영역의 제1 디렉토리의 위치에 송신함으로써 상기 인증의 결과를 결정하는, 컴퓨터 구현 방법.
  11. 제9항에 있어서, 상기 네트워크 라우트 서비스는 상기 조직명과 도메인 네임 시스템(DNS) 엔트리 간의 맵핑을 제공하는, 컴퓨터 구현 방법.
  12. 제11항에 있어서, 상기 네트워크 라우트 서비스는, 상기 DNS 엔트리와, 상기 제1 지리적 영역의 서비스와 통신하는 콘텐츠 전달 네트워크 간의 맵핑을 더 제공하는, 컴퓨터 구현 방법.
  13. 제9항에 있어서, 상기 조직명에 연관된 콘텐츠 페이지를 통해 상기 애플리케이션에 액세스하기 위한 요청을 제2 사용자 장치로부터 수신하는 단계; 및
    상기 제2 사용자 장치로부터 제2 사용자 자격증명을 수신하는 단계를 더 포함하되,
    상기 제2 사용자 자격증명은 상기 복수의 디렉토리 중 제2 디렉토리에 연관된, 컴퓨터 구현 방법.
  14. 제13항에 있어서, 상기 네트워크 라우트 서비스에 의해 제공되는 정보에 기초하여 상기 제2 디렉토리가 위치하는 제2 지리적 영역을 결정하는 단계; 및
    상기 제2 디렉토리에 인증을 위해 상기 제2 지리적 영역의 제2 서비스에 상기 제2 사용자 자격증명을 송신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  15. 제9항에 있어서, 상기 제1 디렉토리에 인증을 위해 상기 제1 지리적 영역의 서비스에 제2 사용자 자격증명을 송신하는 단계; 및
    상기 제1 지리적 영역의 서비스로부터 상기 제2 사용자 자격증명의 인증 결과를 수신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
KR1020177011744A 2014-10-03 2015-09-29 공통 엔드포인트에 액세스하도록 서로 다른 디렉토리에 저장된 자격증명의 사용 KR102006198B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/506,342 US9641503B2 (en) 2014-10-03 2014-10-03 Using credentials stored in different directories to access a common endpoint
US14/506,342 2014-10-03
PCT/US2015/052827 WO2016053964A1 (en) 2014-10-03 2015-09-29 Using credentials stored in different directories to access a common endpoint

Publications (2)

Publication Number Publication Date
KR20170063893A KR20170063893A (ko) 2017-06-08
KR102006198B1 true KR102006198B1 (ko) 2019-08-01

Family

ID=54337367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011744A KR102006198B1 (ko) 2014-10-03 2015-09-29 공통 엔드포인트에 액세스하도록 서로 다른 디렉토리에 저장된 자격증명의 사용

Country Status (9)

Country Link
US (3) US9641503B2 (ko)
EP (2) EP3202117B1 (ko)
JP (2) JP6417472B2 (ko)
KR (1) KR102006198B1 (ko)
CN (1) CN107005582B (ko)
AU (2) AU2015324004B2 (ko)
CA (1) CA2962649C (ko)
SG (1) SG11201702545RA (ko)
WO (1) WO2016053964A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8606922B1 (en) * 2010-09-27 2013-12-10 Amazon Technologies, Inc. Dynamic resource zone mapping
US9641522B1 (en) 2014-11-11 2017-05-02 Amazon Technologies, Inc. Token management in a managed directory service
US10547599B1 (en) * 2015-02-19 2020-01-28 Amazon Technologies, Inc. Multi-factor authentication for managed directories
US20170104737A1 (en) * 2015-10-12 2017-04-13 Microsoft Technology Licensing, Llc User account management flow in service environment
JP6947035B2 (ja) * 2015-12-03 2021-10-13 ソニーグループ株式会社 Id取得端末装置および方法、情報処理装置および方法、並びにプログラム
KR102424055B1 (ko) * 2015-12-08 2022-07-25 한국전자통신연구원 두 개의 api 토큰을 이용한 api 인증 장치 및 방법
US10567381B1 (en) 2015-12-17 2020-02-18 Amazon Technologies, Inc. Refresh token for credential renewal
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
US10880295B2 (en) * 2017-03-06 2020-12-29 Ssh Communications Security Oyj Access control in a computer system
US10764283B1 (en) * 2017-05-31 2020-09-01 Go Daddy Operating Company, LLC Monitoring to trigger on demand multifactor authentication
US11271815B1 (en) 2017-06-13 2022-03-08 Amazon Technologies, Inc. Access management for a multi-endpoint data store
JP6949688B2 (ja) * 2017-11-30 2021-10-13 キヤノン株式会社 システムおよびその制御方法
AU2018264158A1 (en) * 2017-12-07 2019-06-27 Visa International Service Association Helper software developer kit for native device hybrid applications
US11687929B2 (en) * 2018-03-23 2023-06-27 American Express Travel Related Services Co., Inc. Authenticated secure online and offline transactions
US11328826B2 (en) * 2018-06-12 2022-05-10 Clarius Mobile Health Corp. System architecture for improved storage of electronic health information, and related methods
US11146543B2 (en) * 2018-07-12 2021-10-12 Vmware, Inc. Contact consolidation across multiple services
CN110895493B (zh) * 2019-11-29 2022-03-15 宜人恒业科技发展(北京)有限公司 一种访问应用程序接口的方法、装置及存储介质
CN111241504B (zh) * 2020-01-16 2024-01-05 远景智能国际私人投资有限公司 身份验证方法、装置、电子设备及存储介质
US20220337572A1 (en) * 2021-04-16 2022-10-20 Paypal, Inc. Communication between server systems in different network regions
US20220360574A1 (en) * 2021-05-05 2022-11-10 Jpmorgan Chase Bank, N.A. Method and system for providing smart contract catalogue
US20230237178A1 (en) * 2022-01-24 2023-07-27 Sap Se Providing database performance report in restricted environment
US11924030B2 (en) * 2022-03-03 2024-03-05 WarnerMedia Direct, LLC Client device configuration based on client context
US11907202B2 (en) 2022-03-03 2024-02-20 WarnerMedia Direct, LLC Session state data distribution via client devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505238B1 (en) 1999-08-19 2003-01-07 International Business Machines Corporation Method and system for implementing universal login via web browser
US20090007241A1 (en) 2000-08-18 2009-01-01 Anoop Kailasnath Tewari Secure content delivery system

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539077B1 (en) * 1998-06-05 2003-03-25 Netnumber.Com, Inc. Method and apparatus for correlating a unique identifier, such as a PSTN telephone number, to an internet address to enable communications over the internet
US6138159A (en) * 1998-06-11 2000-10-24 Phaal; Peter Load direction mechanism
JP2001188758A (ja) 1999-12-24 2001-07-10 Computer Associates Think Inc 外部システムにログインするための自動サーバ決定を可能にする方法と装置
US7308709B1 (en) * 2000-04-21 2007-12-11 Microsoft Corporation System and method for managing and authenticating services via service principal names
US7711818B2 (en) * 2000-12-22 2010-05-04 Oracle International Corporation Support for multiple data stores
US7260836B2 (en) * 2002-02-26 2007-08-21 Aol Llc System and method for distributed authentication service
US20040098615A1 (en) * 2002-11-16 2004-05-20 Mowers David R. Mapping from a single sign-in service to a directory service
JP2005122656A (ja) 2003-10-20 2005-05-12 Nippon Telegr & Teleph Corp <Ntt> データ送信分散制御方法、ネットワーク転送装置、ユーザ端末、サービス管理サーバおよび記録媒体
US7506363B2 (en) * 2004-08-26 2009-03-17 Ineternational Business Machines Corporation Methods, systems, and computer program products for user authorization levels in aggregated systems
US8379837B2 (en) 2005-05-06 2013-02-19 Qualcomm Incorporated Method and system for providing and managing public telephone directory service
WO2007016436A2 (en) * 2005-07-29 2007-02-08 Identity Engines, Inc. Segmented network identity management
US8095400B2 (en) * 2006-03-06 2012-01-10 Cbs Interactive, Inc. Online waiting room system, method and computer program product
US7996674B2 (en) 2006-10-19 2011-08-09 International Business Machines Corporation LDAP user authentication
CN101247367B (zh) * 2008-04-08 2011-03-23 中国电信股份有限公司 基于内容分发网络和对等网络的内容提供方法和系统
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
JP2010193015A (ja) 2009-02-16 2010-09-02 Panasonic Corp 通信装置およびその通信方法
JP2011076506A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd アプリケーションサービス提供システム及びアプリケーションサービス提供方法
US8782748B2 (en) * 2010-06-22 2014-07-15 Microsoft Corporation Online service access controls using scale out directory features
US9165134B2 (en) * 2011-03-08 2015-10-20 Telefonica, S.A. Method for providing authorized access to a service application in order to use a protected resource of an end user
US9119017B2 (en) * 2011-03-18 2015-08-25 Zscaler, Inc. Cloud based mobile device security and policy enforcement
JP2012212211A (ja) 2011-03-30 2012-11-01 Hitachi Ltd 認証連携システム、および、認証連携方法
US9130935B2 (en) * 2011-05-05 2015-09-08 Good Technology Corporation System and method for providing access credentials
JP5930847B2 (ja) 2011-06-29 2016-06-08 キヤノン株式会社 サーバーシステムおよび制御方法およびプログラム
US9043410B2 (en) 2011-08-15 2015-05-26 Skype Retrieval of stored transmissions
US8789157B2 (en) * 2011-09-06 2014-07-22 Ebay Inc. Hybrid cloud identity mapping infrastructure
US10176335B2 (en) * 2012-03-20 2019-01-08 Microsoft Technology Licensing, Llc Identity services for organizations transparently hosted in the cloud
US9639678B2 (en) * 2012-06-29 2017-05-02 Microsoft Technology Licensing, Llc Identity risk score generation and implementation
US9063971B2 (en) * 2012-12-03 2015-06-23 Red Hat Israel, Ltd. Schema and query abstraction for different LDAP service providers
US9407615B2 (en) 2013-11-11 2016-08-02 Amazon Technologies, Inc. Single set of credentials for accessing multiple computing resource services

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505238B1 (en) 1999-08-19 2003-01-07 International Business Machines Corporation Method and system for implementing universal login via web browser
US20090007241A1 (en) 2000-08-18 2009-01-01 Anoop Kailasnath Tewari Secure content delivery system

Also Published As

Publication number Publication date
EP3537689B1 (en) 2024-02-21
AU2018204029A1 (en) 2018-06-21
US10757086B2 (en) 2020-08-25
US11695744B2 (en) 2023-07-04
WO2016053964A1 (en) 2016-04-07
JP6417472B2 (ja) 2018-11-07
US20200366661A1 (en) 2020-11-19
EP3537689A1 (en) 2019-09-11
US20170302643A1 (en) 2017-10-19
CA2962649C (en) 2021-07-13
JP2017530472A (ja) 2017-10-12
AU2015324004A1 (en) 2017-05-25
WO2016053964A8 (en) 2017-04-27
US9641503B2 (en) 2017-05-02
JP2019032869A (ja) 2019-02-28
SG11201702545RA (en) 2017-04-27
CN107005582A (zh) 2017-08-01
EP3202117A1 (en) 2017-08-09
CA2962649A1 (en) 2016-04-07
AU2015324004B2 (en) 2018-03-22
KR20170063893A (ko) 2017-06-08
AU2018204029B2 (en) 2019-12-19
EP3202117B1 (en) 2019-04-24
JP6754809B2 (ja) 2020-09-16
US20160099924A1 (en) 2016-04-07
CN107005582B (zh) 2021-03-19

Similar Documents

Publication Publication Date Title
KR102006198B1 (ko) 공통 엔드포인트에 액세스하도록 서로 다른 디렉토리에 저장된 자격증명의 사용
US10505929B2 (en) Management and authentication in hosted directory service
US10554402B2 (en) System for retrieval of email certificates from remote certificate repository
CN112913208B (zh) 具有内部部署的认证集成和桥接器高可用性的多租户身份云服务
US8782757B2 (en) Session sharing in secure web service conversations
US10257184B1 (en) Assigning policies for accessing multiple computing resource services
US9497184B2 (en) User impersonation/delegation in a token-based authentication system
US9276869B2 (en) Dynamically selecting an identity provider for a single sign-on request
JP6921831B2 (ja) ユーザアカウントと企業ワークスペースとの関連付け
US20210144015A1 (en) Accessing hosts in a computer network
US20120300940A1 (en) Dynamic key management
US20150081876A1 (en) Cross-domain inactivity tracking for integrated web applications
US11658957B2 (en) Methods and apparatuses for temporary session authentication and governor limits management
US20230195493A1 (en) Virtual device enrollment and management
Mehraj et al. Contemporary Directory Services: A Study of Cloud Oriented Directory-as-a-Service

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right