JP2017530472A - 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること - Google Patents

共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること Download PDF

Info

Publication number
JP2017530472A
JP2017530472A JP2017516832A JP2017516832A JP2017530472A JP 2017530472 A JP2017530472 A JP 2017530472A JP 2017516832 A JP2017516832 A JP 2017516832A JP 2017516832 A JP2017516832 A JP 2017516832A JP 2017530472 A JP2017530472 A JP 2017530472A
Authority
JP
Japan
Prior art keywords
directory
service
user
authentication information
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017516832A
Other languages
English (en)
Other versions
JP6417472B2 (ja
Inventor
ガウラング パンカジュ メータ
ガウラング パンカジュ メータ
ニーラム サティシュ アグラワル
ニーラム サティシュ アグラワル
ローレンス フン−ギ アウング
ローレンス フン−ギ アウング
チラグ プラビン パンドヤ
チラグ プラビン パンドヤ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2017530472A publication Critical patent/JP2017530472A/ja
Application granted granted Critical
Publication of JP6417472B2 publication Critical patent/JP6417472B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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
    • 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

グローバルエンドポイントは、組織名、及び異なる地理的地域に位置する複数のディレクトリと関連付けられてよい。グローバルエンドポイントは、アプリケーションまたはサービスにアクセスするためにユーザーによって使用されるページをホストするコンピューティングシステムであってよい。ユーザーは、すでに存在する認証情報を使用し、アプリケーションまたはサービスにアクセスできてよい。例えば、ユーザーは、ユーザーが所属しているエンティティによって記憶され、維持される認証情報を使用し、アプリケーションまたはサービスにアクセスしてよい。異なる地理的地域に記憶される認証情報を有するユーザーは、同じグローバルエンドポイントを介してアプリケーションまたはサービスにアクセスできてよい。【選択図】図1B

Description

本発明は、共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用することに関する。
管理者はしばしば、ユーザー及び/またはコンピューティングリソース管理用のディレクトリを作成し、維持するために、及び/またはさまざまなコンピューティングリソース(例えば、ファイルシステム、ファイル、ユーザー、セキュリティ方針、ネットワークリソース、アプリケーション、システムストレージ等)にアクセスを提供するためのディレクトリサービスを活用する。ディレクトリサービスは管理者によって操作されるデータサーバ内(例えば、オンプレミス)に実装されてよい。また、管理者はユーザーによって操作される複数のクライアントデバイスを管理してもよく、複数のクライアントデバイスのそれぞれはネットワークまたはドメインをデータサーバと共有する。クライアントデバイスを安全に保ち、ドメイン全体で互換性を保証するために、データサーバはクライアントデバイスに対してセキュリティ方針を割り当て、施行し、クライアントデバイスで実行中のソフトウェアをインストールまたは更新してよい。
ただし、データサーバをインストールすること、保守すること、及び操作することは面倒である場合がある。データサーバ自体がいくつかのコンピューティングシステムを含み、このようにして高価なハードウェアの購入及び複雑なソフトウェアの構成を必要とすることがある。いくつかの場合、データサーバに電力を供給し、冷却するための専用施設が必要とされることもある。データサーバとクライアントデバイスとの間で接続性を確立し、維持することは、高価なネットワーク設備の設置を必要とすることがある。さらに、データサーバが故障する、またはデータがそれ以外の場合失われた場合にバックアップ手順及び回復手順を実施するために、追加のハードウェア及び/またはソフトウェアが必要とされることがある。
グローバルエンドポイントは、組織名、及び異なる地理的地域に位置する複数のディレクトリと関連付けられてよい。グローバルエンドポイントは、アプリケーションまたはサービスにアクセスするためにユーザーによって使用されるページをホストするコンピューティングシステムであってよい。ユーザーは、すでに存在する認証情報を使用し、アプリケーションまたはサービスにアクセスできてよい。例えば、ユーザーは、ユーザーが所属しているエンティティによって記憶され、維持される認証情報を使用し、アプリケーションまたはサービスにアクセスしてよい。異なる地理的地域に記憶される認証情報を有するユーザーは、同じグローバルエンドポイントを介してアプリケーションまたはサービスにアクセスできてよい。
図面を通して、参照された要素の間の対応を示すために参照番号が再利用されてよい。図面は本明細書に説明される例の実施形態を示すために提供され、本開示の範囲を制限することを目的としていない。
一実施形態に係るディレクトリサービスを提供する多様な領域を有する管理ディレクトリサービス環境を示す図である。 本開示のディレクトリ管理機能、ならびにユーザー、グループ、及びデバイスの管理及び認証機能をいくつかの実施形態に従って実装できる例のネットワーク環境を示す図である。 ユーザーデバイスによってアクセスされるサービスにトークンを提供するプロセス中のユーザー管理及び認証モジュール142との間の対話を示す図である。 トークンを提供し、APIコールを取り扱うプロセス中のユーザー管理及び認証モジュール142との間の対話を示す図である。 サードパーティアプリケーションサーバまたはコンピュータリソースサービスプロバイダシステムによって提供されるアプリケーションもしくはサービスによって使用されてよい、異なる領域の複数のディレクトリと関連付けられた共通エンドポイントでユーザーを認証するためのプロセスを示す図である。 図1A〜図1Bのユーザーデバイス等、ユーザーデバイスで見られるネットワークページの表現の例を示す図である。 図1A〜図1Bのユーザーデバイス等、ユーザーデバイスで見られるネットワークページの表現の例を示す図である。
前書き‐組織名を用いるグローバルエンドポイント
上述されたように、ディレクトリサービスを実装するオンプレミスデータサーバは面倒である場合がある。したがって、いくつかの従来のシステムでは、管理ディレクトリサービス(例えば、MICROSOFT(登録商標)ACTIVE DIRECTORY(登録商標)等のコンピュータオペレーティングシステムのディレクトリに情報を記憶し、編成し、情報へのアクセスを提供するシステム)は、遠隔に位置し、複数の管理者及び/または組織によって共有される中央管理データサーバによって実装できる。管理ディレクトリサービスは複数のディレクトリを管理してよい。中央管理データサーバは、ネットワーク(例えば、インターネット)を介して管理ディレクトリサービスにアクセスを提供してよく、管理者はディレクトリを管理するために既存のネットワークによって有効にされたクライアントデバイスを使用してよい。例えば、管理者は、中央管理データサーバを提供するエンティティとアカウントを確立してよい。アカウントにアクセスするとき、管理者は1つまたは複数のディレクトリを作成し、ディレクトリの中でドメイン(例えば、すべてのユーザーアカウント及びコンピュータ、プリンタ、スキャナ、サーバ、プロセス、スレッド等のコンピューティングリソースが単一のディレクトリサービスに登録されるコンピュータネットワーク)を作成し、ドメインにメンバーサーバ(例えば、ライトウェイトディレクトリアクセスプロトコル(LDAP)、ケルベロス、ドメインネームシステム(DNS)サービス、またはディレクトリのレコードを管理するための他のアクティブディレクトリツールを実装するサーバ)を追加することができる。管理者は、ドメインに追加されたメンバーサーバを使用し、ドメインユーザーを作成し、管理することができる。したがって、管理者はディレクトリサービスを実装するために通常使用されるインフラストラクチャをインストールするまたは保守する必要なくディレクトリサービスを実装できる。
既存の管理ディレクトリサービスはいくつかの制限を有する。例えば、2つ以上のエンティティが管理ディレクトリサービスを使用し、ディレクトリを作成した可能性がある。エンティティは別々であり、別々のディレクトリを作成したため、ユーザーはそのそれぞれのエンティティのディレクトリにアクセスすることによって認証されてよい。いくつかの場合、エンティティはリソースまたはコンテンツを共有する希望を有することがある。エンティティがリソースまたはコンテンツを共有する1つの考えられる方法は、どちらかのエンティティと関連付けられたユーザーによってアクセス可能な共通エンドポイントとして働く共有組織を作成することだろう。ただし、エンティティは異なるディレクトリを維持するため、あるエンティティのユーザーは、新しいユーザーアカウントが作成されない限り別のエンティティによって作成されるディレクトリにアクセスするために自分の既存の認証情報を使用することができない可能性があり、逆も同様である。さらに、共通エンドポイントが認証情報を維持するディレクトリにアクセスを有さない可能性がある。エンティティは、認証情報が別々のディレクトリと関連付けられても、どちらかのエンティティからのユーザーが認証の目的で自分の既存の認証情報を入力できる共通エンドポイント及びログインシステムを所望することがある。
これらの問題の少なくともいくつかに取り組む共通のグローバルエンドポイントが本明細書で説明される。グローバルエンドポイントは、既存の認証情報を介してアプリケーションまたはサービスにアクセスするために使用されるページ(例えば、ウェブページ等のコンテンツページまたはネットワークページ)をホストするコンピューティングシステムであってよい。グローバルエンドポイントは組織名別に識別されてよく、グローバルエンドポイントの場所(例えば、インターネットプロトコル(IP)アドレス)は、組織名(例えば<organization name>.<application host>.com)を識別するユニフォームリソースロケータ(URL)と関連付けられてよい。グローバルエンドポイントは、そのユーザーに、ユーザーの既存の認証情報を使ったアプリケーションまたはサービスへのアクセスを提供することを希望するエンティティによって作成されたディレクトリ等の複数のディレクトリと関連付けられてよい。
管理ディレクトリサービスは異なる地理的地域に分散されてよい。例えば、1つまたは複数のコンテンツ配信ネットワーク(CDN)がバックエンドサーバと構成されてよく、バックエンドサーバは管理ディレクトリサービスを実装するシステムと通信してよい。管理ディレクトリサービスを実装するシステムは、マルチリージョンの分散コンピュータシステムの単一の領域内で動作してよく、単一領域の他のデバイスまたはシステムだけと通信してよい。したがって、CDNは領域エンドポイントとして見なされてよく、管理ディレクトリサービスを実装するシステムは単一エンドポイントと見なされてよい。CDNを使用し、管理ディレクトリサービスを多様な領域に分散することは、(例えば、データのキャッシングを介して)より低遅延の通信、及び(例えば、単一のエンドポイントから計算をオフロードすることによって)改善されたリソースバランシング等のいくつかの利点を提供してよい。しかしながら、ユーザーの認証情報を認証するために、グローバルエンドポイントはまず、受け取られた認証情報と関連付けられたディレクトリが位置する領域を特定しなければならないことがある。
ディレクトリが位置する領域を識別するのを助けるために、DNSエントリ(例えば、対応するIPアドレス)とのグローバルエンドポイントの組織名のマッピングを含むルートサービス(例えば、ドメインネームシステム(DNS)ウェブサービス)を維持できる。例えば、マッピングは、グローバルエンドポイントが組織または組織のグループに作成されるときにルートサービスに記憶されてよい。ルートサービスは、1つまたは複数のCDNのアドレスとのDNSエントリのマッピングをさらに含んでよい。したがって、ルートサービスは、グローバルエンドポイントの組織名と関連付けられたDNSエントリを識別するために問い合わせを行われることがあり、DNSエントリと関連付けられた1つまたは複数のCDNのアドレスを識別するために問い合わせを行われることがある。ルートサービスは、次いで識別されたCDNにグローバルエンドポイントを向けることができる。識別されたCDNの内の1つまたは複数は、記憶されているマッピングに基づいて領域サービス(例えば、管理ディレクトリサービス)にグローバルエンドポイントを向けることができ、組織名に基づいた地域サービスはディレクトリの場所を識別できる。
例えば、領域の中のディレクトリまたは他のコンピューティングシステムエンティティは、領域の中のコンピューティングシステムエンティティが利用可能である、及び/または領域の外部のコンピューティングシステムエンティティが利用できない一意の識別子(例えば、ユニフォームリソースアイデンティファイア、URL、または任意の他のリソース識別子)を有してよい。一意の識別子は、(例えば、エンティティのためのディレクトリの特定の場所及びタイプが非表示のままであるように)セキュリティのために、及び/または一意の識別子が変化することがあるため、領域外のコンピューティングシステムエンティティは利用できないことがある。一意の識別子は利用できないことがあるため、CDNまたはCDNを介した領域サービスは、グローバルエンドポイント及びルートサービス等の分散コンピューティングシステムの多様なコンピューティングシステムに対して、ディレクトリの実際の一意の識別子に対するエイリアスとしての機能を果たす異なる一意の識別子を提供してよい。したがって、グローバルエンドポイントがエイリアス識別子を使用してディレクトリにアクセスする要求を示す場合、ルートサービスは適切なCDNに要求をリダイレクトできる。CDNは、次いでエイリアス識別子のコンテンツに基づいて適切なディレクトリを決定できる領域サービスを識別してよい。適切なエンドポイントにコールまたは要求をリダイレクトするために係る技法を使用することは、その内容が全体として参照することにより本明細書に組み込まれる、「TECHNIQUES FOR NETWORK REDIRECTION」と題し、2013年12月12日に出願された米国特許出願第14/098,446号により詳細に説明される。
いったん適切な領域が識別され、領域サービスがグローバルエンドポイントを適切なディレクトリに向けると、ユーザーの既存の認証情報は適切なディレクトリによって認証できる。認証が合格すると、ユーザーは無事にログインし、アプリケーションまたはサービスにアクセスしてよい。このようにして、ユーザーは自分の既存の認証情報とは別個に認証情報の新しいセットを作成するまたは使用する必要なく、アプリケーションまたはサービスにアクセスできる。
ユーザーがアプリケーションまたはサービスにアクセスするために自分の認証情報を使用し、ログインするとき、ブラウザアプリケーションのURLバーは、ルートサービスが(グローバルエンドポイントの要求で)グローバルエンドポイントからCDNにユーザーをリダイレクトし、CDNが領域サービスを識別するとしても変化しないままであってよい。例えば、ユーザーは組織名別に識別されるページにアクセスしてよく、URLバーは組織名を表示してよい。組織名を入力すると同時に、グローバルエンドポイントは、ユーザーが自分の既存の認証情報を入力することができ、URLバーが未変更のままとなり得るように、ブラウザアプリケーションを領域サービスによって生成されるログインページにリダイレクトさせてよい。代わりに、ユーザーは、組織名及びサービスを識別するURLを入力してよい(例えば、ニュースサービスが識別されたサービスである、<organization name>.<application host>.com/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、及び/または(例えば、ディレクトリの中のすべてのまたは任意の数のユーザー及びユーザーのグループを一覧表示するための)listGroupForUser 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の呼出しを介して要求されたアクションまたは操作を実行するために、管理ディレクトリサービスにマッピングされたトークン(及び/またはアプリケーションもしくはサービスによって提供される他の操作特有のパラメータ)を渡してよい。いくつかの実施形態では、リフレッシュトークンの有効性は、(例えば、寿命が管理者によって事前に設定できるまたは定義できる)マッピングされたトークンの有効性と結び付けられてよい。もしあれば、結果は、管理ディレクトリサービスによってユーザー管理及び認証システムに返されてよく、ユーザー管理及び認証システムはアプリケーションまたはサービスに結果を転送してよい。
アプリケーションまたはサービスは、管理者によって操作される1つまたは複数のディレクトリにアクセストークンを生成するためにこのプロセスを繰り返すことができる。したがって、管理者は、アプリケーションまたはサービスを使用し、複数のディレクトリにアクセスする及び/または複数のディレクトリを管理することができる。
追加の実施形態では、ユーザー管理及び認証システムは、単一因子認証及び/または多因子認証をサポートする(例えば、認証情報の複数の異なるセットは、アクセスが許可される前に認証のためにユーザーによって提供されてよい)。ユーザー管理及び認証システムは、ユーザーインタフェース及び/またはAPIを介してどちらかのタイプの認証をサポートしてよい。ユーザー管理及び認証システムは、単一サインオンをサポートしてもよい(例えば、管理者は一度ログインし、ディレクトリがアクセスされるたびに再びログインするようにプロンプトを表示されることなく、すべての適切なディレクトリへのアクセスを獲得できてよい。
システム構成要素
図1Aは、一実施形態に従ってディレクトリサービスを提供する多様な領域を有する管理ディレクトリサービス環境を示す。図1Aに示される管理ディレクトリサービス環境は、多様なユーザーデバイス102、ルートサービス130、サードパーティアプリケーションサーバ108、多様なCDN150A〜B、多様なコンピューティングリソースサービスプロバイダシステム104A〜C、及び多様なスケーラブルなプライベートサーバシステム170を含む。多様なユーザーデバイス102、ルートサービス130、サードパーティアプリケーションサーバ108、及び多様なCDN150A〜Bは、1つまたは複数の通信ネットワーク110を介して互いと通信してよい。ネットワーク110は、インターネット等、おそらく多様な別々のパーティによって操作されるリンクされたネットワークの公的にアクセス可能なネットワークであってよい。他の実施形態では、ネットワーク110は、それぞれがインターネットへのアクセス及び/またはインターネットからのアクセスを有する、プライベートネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク、広域ネットワーク、ケーブルネットワーク、衛星ネットワーク、セルラー電話網等、またはその組合せを含んでよい。
コンピューティングリソースサービスプロバイダシステム104A〜C及び多様なプライベートサーバシステム170A〜Cは、それぞれ別々の通信ネットワーク160A〜Cを介して互いと通信してよい。ネットワーク160A〜Cは、2つのエンドポイント、つまりコンピューティングリソースサービスプロバイダシステム104A〜C、及びネットワーク160A〜Cと関連付けられたプライベートサーバシステム170A〜Cを有するプライベートネットワークであってよい。多様なプライベートサーバシステム170A〜Cは、ネットワーク160A〜Cを共有しないことがある。むしろ、各ネットワーク160A〜Cは、特定のプライベートサーバシステム170A〜Cに専用であってよい。
当業者によって理解されるように、管理ディレクトリサービス環境は、任意の数の別個のユーザーデバイス102、コンピューティングリソースサービスプロバイダシステム104A〜C、CDN150A〜B、及び/またはプライベートサーバシステム170A〜Cを含んでよい。別々のコンピューティングリソースサービスプロバイダシステム104A〜Cは、それらが現在のまたは潜在的なユーザーデバイス102またはプライベートサーバシステム170A〜Cのグループに(地理的な意味またはネットワーキングの意味のどちらかで)近くなるように位置してよい。
実施形態では、管理ディレクトリサービスは、異なる地理的地域120A〜Bに分散される。例えば、1つまたは複数のCDN150A〜Bはバックエンドサーバと構成されてよく、バックエンドサーバは、コンピューティングリソースサービスプロバイダシステム140A〜C等の管理ディレクトリサービスを実装するシステムと通信してよい。コンピューティングリソースサービスプロバイダシステム104A〜Cは、マルチリージョンの分散コンピュータシステムの単一の領域で動作してよく、単一の領域の他のデバイスまたはシステムだけと通信してよい。したがって、CDN150Aまたは150Bは領域エンドポイントと見なされてよく、コンピューティングリソースサービスプロバイダシステム140A〜Cは単一エンドポイントと見なされてよい。
ユーザーデバイス102は、メンバーサーバ、パーソナルコンピューティング装置、端末コンピューティング装置、ラップトップコンピューティング装置、タブレットコンピューティング装置、電子ブックリーダー、モバイル装置(例えば、携帯電話、メディアプレーヤー、ハンドヘルドゲーム機等)、ネットワークアクセス及びプログラム実行機能を有するウェアラブルデバイス(例えば、「スマートウォッチ」または「スマート眼鏡」)、ワイヤレス機器、セットトップボックス、ゲームコンソール、娯楽システム、ネットワークアクセス機能及びプログラム実行機能を有するテレビ(例えば、「スマートテレビ」)、及び多様な他の電子機器及び器具を含んだ多岐に渡るコンピューティング装置を含むことがある。個々のユーザーデバイス102は、1つまたは複数のディレクトリを管理するために、ネットワーク110を介してコンピューティングリソースサービスプロバイダシステム104と通信するためにアプリケーションを実行してよい。例えば、アプリケーションは、ユーザーデバイス102にインストールされるスタンドアロンアプリケーションであってよい。別の例として、アプリケーションは、コンピューティングリソースサービスプロバイダシステム104A〜C、サードパーティアプリケーションサーバ108、及び/または別のコンピューティングシステム(不図示)によってホストされるアプリケーションまたはサービス(例えば、ウェブサービス)にアクセスするブラウザ(例えば、ウェブブラウザ)であってよい。
サードパーティアプリケーションサーバ108は、アプリケーションまたはサービス(例えば、ディレクトリ管理サービス、文書共有サービス、ワープロアプリケーション等)をホストし、アプリケーションまたはサービス(例えば、ディレクトリ管理サービス、文書共有サービス、ワープロアプリケーション等)へのアクセスを提供するコンピューティングシステムであってよい。例えば、サードパーティアプリケーションサーバ108は、ホストされるアプリケーションまたはサービスにアクセスを提供する異なる組織名と関連付けられた多様なページをホストしてよい。ページは、以下のフォーマット、つまり<organization name>.<application host>.comのURLを有してよい。したがって、サードパーティアプリケーションサーバ108は、1つまたは複数のエンティティと関連付けられたページにアクセスしようと試みている管理者またはユーザーのためのグローバルエンドポイントとして働いてよい。サードパーティアプリケーションサーバ108によってホストされる単一ページは、ユーザーの既存の認証情報を使用し、サードパーティアプリケーションサーバ108によってホストされるアプリケーションまたはサービスへのアクセスをそのユーザーに提供することを希望するエンティティによって作成されるディレクトリ等の複数のディレクトリと関連付けられてよい。サードパーティアプリケーションサーバ108は、領域120Aまたは領域120B等の任意の領域に位置してよい。
ユーザーデバイス102は、ネットワーク110を介してホストされているアプリケーションまたはサービスにアクセスしてよい。アプリケーションまたはサービスは、コンピューティングリソースサービスプロバイダシステム104を操作するエンティティに所属してよい、またはサードパーティエンティティによって操作されてよい。実施形態では、コンピューティングリソースサービスプロバイダシステム104に登録しているサードパーティサーバ108またはコンピューティングリソースサービスプロバイダシステム104によって提供されるアプリケーションまたはサービスは、本明細書に説明される機能にアクセスしてよい。コンピューティングリソースサービスプロバイダシステム104に登録していない、及び/またはコンピューティングリソースサービスプロバイダシステム104の管理者によって承認されていないアプリケーションまたはサービスは、本明細書に説明される機能にアクセスすることを禁じられることがある。
プライベートサーバシステム170A〜Cは、エンティティと関連付けられたディレクトリを記憶してよい。例えば、プライベートサーバシステム170A〜Cは、組織のためにオンプレミスディレクトリを記憶してよい。いくつかの実施形態では、プライベートサーバシステム170A〜Cは、同じエンティティのために複数のディレクトリを記憶できる。ディレクトリは、図1Bに関して以下により詳しく説明されるように、それぞれのコンピューティングリソースサービスプロバイダシステム104A〜Cによって管理されてよい。
ルートサービス130は、ディレクトリが位置する領域を識別するのに役立つことがあるCDN150A〜Bを識別するのに役立ってよい。ルートサービス130(例えば、ドメインネームシステム(DNS)ウェブサービス)は、DNSエントリ(例えば、対応するIPアドレス)とのアプリケーションサーバ140によって作成される組織名のマッピングを含むことがある。例えば、マッピングは、組織名が組織(例えば、複数のエンティティ)のために作成されるときにルートサービス130に記憶されてよい。ルートサービス130は、1つまたは複数のCDN150A〜BのアドレスとのDNSエントリのマッピングをさらに含んでよい。したがって、ルートサービス130は、組織名と関連付けられたDNSエントリを識別するために問い合わせを行われることがあり、DNSエントリと関連付けられた1つまたは複数のCDN150A〜Bのアドレスを識別するために問い合わせを行われることがある。ルートサーバ130は、次いでユーザーデバイス102(例えば、ブラウザ)上で実行されたアプリケーションを識別されたCDN150A〜Bに向けることができる。識別されたCDN150A〜Bの内の1つは、記憶されたマッピングに基づいて領域サービス(例えば、コンピューティングリソースサービスプロバイダシステム104A〜C)にユーザーデバイス102を向けることができ、領域サービスは組織名に基づいてディレクトリの場所を識別できる。
例えば、領域120Aの中のディレクトリまたは他のコンピューティングシステムエンティティは、領域120Aの中のコンピューティングシステムエンティティが利用できる、及び/または領域120Aの外のコンピューティングシステムエンティティが利用できない一意の識別子(例えば、ユニフォームリソースアイデンティファイア、URL、または任意の他のリソース識別子)を有してよい。上述されたように、一意の識別子は、(例えば、エンティティのためのディレクトリの特定の場所及びタイプが非表示のままであるように)セキュリティのために、及び/または一意の識別子が変化することがあるため、領域120A外のコンピューティングシステムエンティティは利用できないことがある。一意の識別子は利用できないことがあるため、CDN150AまたはCDN150Aを介するコンピューティングリソースサービスプロバイダシステム104Aは、アプリケーションサーバ140及びルートサービス130等の分散コンピューティングシステムの多様なコンピューティングシステムに対して、ディレクトリの実際の一意の識別子に対するエイリアスとしての機能を果たす異なる一意の識別子を提供してよい。したがって、アプリケーションサーバ140がエイリアス識別子を使用し、ディレクトリにアクセスする要求を生成する場合、ルートサービス130は適切なCDN150Aまたは150Bに要求をリダイレクトできる。CDN150Aまたは150Bは、次いでエイリアス識別子のコンテンツに基づいて適切なディレクトリを決定できるコンピューティングリソースサービスプロバイダシステム104A〜Cを識別してよい。
例のネットワーク実施形態
図1Bは、本開示のディレクトリ管理機能、ならびにユーザー、グループ、及びデバイスの管理及び認証機能がいくつかの実施形態に従って実装できる例のネットワーク環境を示す。図1Bに示されるネットワーク環境は、簡略にするために1つの領域の構成要素を含む。本明細書で使用されるように、用語「ディレクトリ」は概してコンピュータネットワークのユーザー、デバイス、アプリケーション、及び他の共通のリソースについてのデータの編成された集合体を指す。コンピュータネットワーク(またはそのなんらかのサブセット)上の各リソースはディレクトリ内でオブジェクトとして表現されてよく、特定のリソースについての情報(例えば、名前、アドレス、許可等)はオブジェクトの属性として記憶できる。情報は、十分な許可を有するユーザーだけが情報にアクセスする、情報を修正する、またはそれ以外の場合情報を使用することができるように、オブジェクトの中にまたはオブジェクトと関連して安全に記憶できる。
図示されるように、ネットワーク環境は多様なユーザーデバイス102、コンピューティングリソースサービスプロバイダシステム104、組織106、及び1つまたは複数のネットワーク110を介して通信するサードパーティアプリケーションサーバ108を含む。コンピューティングリソースサービスプロバイダシステム104は、アプリケーション、ディレクトリ管理サービス、ユーザー、グループ、及びデバイスの管理及び認証サービス、ならびに/または他のネットワークベースのサービスを多様な組織または他のカスタマに提供できる。組織106A〜C(または他のカスタマ)は、組織と関連付けられたユーザーにアプリケーションアクセスを提供し、組織のディレクトリを管理する等のためにコンピューティングリソースサービスプロバイダシステム104を利用できる。個々のユーザーは、そのそれぞれの組織106A〜106Cからの認証情報を使用し、コンピューティングリソースサービスプロバイダシステム104(またはサードパーティアプリケーションサーバ108)によってホストされるアプリケーションにアクセスするためにユーザーデバイス102を使用できる。さらに、コンピューティングリソースサービスプロバイダシステム104は、それぞれの組織の裁量でアプリケーションに多様な組織106A〜Cのディレクトリへのアクセスを提供できる。
いくつかのユーザーデバイス102は、特定の組織106A〜Cと関連付けられてよい。例えば、組織は、オンプレミスのままである、また従業員、管理者、または組織と関連付けられた他のユーザーによって主にオフプレミスで使用される多様なユーザーデバイス102を有してよい。いくつかの実施形態では、ユーザーデバイス102のいくつかまたはすべては、ディレクトリを管理することまたは特定の組織106A〜Cもしくはコンピューティングリソースサービスプロバイダシステム104の他のカスタマと関連付けられた認証情報を使用してアプリケーションにアクセスすることを含んでよい多様なタスクを実行するために任意の数のユーザーによって使用されるパブリックコンピュータまたはホームコンピュータ等の任意の組織から離れていてよい。
コンピューティングリソースサービスプロバイダシステム104は、アプリケーション144(ワープロアプリケーション、写真編集アプリケーション、電子メールアプリケーション等)をホストするまたはそれ以外の場合アプリケーション144にアクセスを提供する、別々のカスタマ組織106A〜Cのディレクトリを管理する、及び/または他のネットワークベースのサービス及びリソース(例えば、文書共有サービス、バーチャルマシンサービス等)を提供するように構成されたコンピューティングシステムであることがある。例えば、コンピューティングリソースプロバイダシステム104は、通信ネットワーク110を介してアクセスされてよいサーバまたはサーバのグループであることがある。コンピューティングリソースサービスプロバイダシステム104は、管理ディレクトリシステムまたはサービス140、ユーザー管理及び認証モジュール142、ならびに組織106及びユーザーデバイス102によってアクセスできる1つもしくは複数のアプリケーションまたはアプリケーションサーバ144等の、本明細書に説明される多様な機能を提供するためにいくつかの構成要素を含むことがある。また、コンピューティングリソースサービスプロバイダシステム104は、以下に説明されるように、組織160Bのためのオフプレミスディレクトリ等の多様なオフプレミスディレクトリ146を記憶してもよい。いくつかの実施形態では、コンピューティングリソースサービスプロバイダシステム104は、上述され、より詳細に以下に説明される機能を提供するため、追加の構成要素または図1に示されるよりも少ない構成要素を含んでよい。
本明細書に説明されるように、用語「オフプレミスディレクトリ」は、係るディレクトリを組織の構内に位置するディレクトリから区別するために、ディレクトリが関連付けられる組織から遠く離れたディレクトリを指す。したがって、ディレクトリはコンピューティングリソースサービスプロバイダシステム104の構内で物理的に保管されてよいが、それにも関わらず、ディレクトリは、それが属する組織(例えば、ディレクトリによって記述されるネットワークを所有するまたは運用する組織)に関してオフプレミスであるため、オフプレミスディレクトリと呼ばれることがある。さらに、ディレクトリはコンピューティングリソースサービスプロバイダシステム104の構内から離れて物理的に保管されてよいが、ディレクトリは、それにも関わらず、ディレクトリが、それが属する組織に関してオンプレミスであるため、オンプレミスディレクトリと呼ばれることがある。
例示的には、管理者は、組織106A〜Cの内の1つ等の管理者の組織によって所有されるまたは運用される1つまたは複数のディレクトリを管理するためにユーザーデバイス102によって実行されるアプリケーションを使用してよい。アプリケーションは、管理ディレクトリサーバ140並びに/またはユーザー管理及び認証モジュール142と対話してよい。管理ディレクトリサービス140は、管理ディレクトリサービスを実装するコンピューティングシステムであってよい。実施形態で、管理ディレクトリサービス140は、1つまたは複数のディレクトリを作成し、監視し、管理するように構成される。例えば、管理ディレクトリサービス140は、オフプレミスディレクトリ146及び/またはオンプレミスディレクトリ160と通信し、オフプレミスディレクトリ146及び/またはオンプレミスディレクトリ160を管理してよい。上述されたように、管理者は、ユーザーデバイス102がメンバーサーバである場合に、ディレクトリを作成する、監視する、及び/または管理するために管理ディレクトリサービス140を使用してよい。しかしながら、ユーザーデバイス102がメンバーサーバではない場合、管理者は、ユーザー管理及び認証モジュール142によって提供されるAPIを介してディレクトリを作成し、監視し、及び/または管理してよい。
ユーザー管理及び認証モジュール142は、ユーザー、グループ、及びデバイスの管理及び認証システムを実装するコンピューティングシステムであってよい。実施形態では、ユーザー管理及び認証モジュール142は、管理者が、上述されたAPI等のAPIのセットを介して、メンバーサーバではない(例えば、それぞれのディレクトリのドメインと関連付けられていない)ユーザーデバイス102で1つまたは複数のディレクトリを管理できるようにする。また、ユーザー管理及び認証モジュール142は、ユーザーデバイス102によって実行されるアプリケーションまたは実行されたアプリケーションによってアクセスされるアプリケーションもしくはサービスが、たとえ実行されたアプリケーションまたはアクセスされたアプリケーションもしくはサービスがディレクトリの作成されたユーザーのリストに直接的なアクセスを有さない場合にも、ディレクトリのコンテンツまたはリソースにアクセスできるようにするための許可機構及び認証機構を提供してもよい。例えば、ユーザー管理及び認証モジュール142は管理ディレクトリサービス140と通信してよく、ユーザーデバイス102が管理ディレクトリサービス140によって管理される1つまたは複数のディレクトリを管理できるように、ユーザーデバイス102と管理ディレクトリサービス140との間のインタフェースとしての機能を果たしてよい。ユーザーデバイス102は、ユーザー管理及び認証モジュール142によって提供されるAPIを呼び出すことができ、ユーザー管理及び認証モジュール142は呼び出されたAPIによって示されるアクションを実行するように管理ディレクトリサービス140に命令できる。ユーザーデバイス102と管理ディレクトリサービス140とユーザー管理及び認証モジュール142との間の対話は、図2A〜図2Bに関して以下により詳細に説明される。
追加の実施形態では、ユーザー管理及び認証モジュール142は単一因子認証及び/または多因子認証をサポートする。ユーザー管理及び認証モジュール142は、ユーザーインタフェース及び/またはAPIを介してどちらかのタイプの認証をサポートしてよい。また、ユーザー管理及び認証モジュール142は、単一サインオンをサポートしてもよい(例えば、管理者は一度ログインし、ディレクトリがアクセスされるたびに再びログインするようにプロンプトを表示されることなくすべての適切なディレクトリへのアクセスを獲得できてよい)。
コンピューティングリソースサービスプロバイダシステム104は単一のコンピューティング装置であってよい、またはコンピューティングリソースサービスプロバイダシステム104は、サーバシステムとして集合的に動作するために論理的にまたは物理的にともにグループ化される、コンピュータサーバ等の複数の別個のコンピューティング装置を含んでよい。コンピューティングリソースサービスプロバイダシステム104の構成要素は、ソフトウェアが必要ではないように、またはハードウェア及びソフトウェアの組合せとして、それぞれアプリケーションに特有のハードウェア(例えば、1つまたは複数のASICを有するサーバコンピューティング装置)で実装できる。さらに、コンピューティングリソースサービスプロバイダシステム104のモジュール及び構成要素は、1つのサーバコンピューティング装置で結合できる、または個別にもしくはいくつかのサーバコンピューティング装置上でグループに分離できる。
さらに、複数の(例えば、2つ以上の)コンピューティングリソースサービスプロバイダシステム104が使用されてよい。例えば、コンピューティングリソースサービスプロバイダシステム104は別々の領域に位置してよく、互いと対話することもあれば、対話しないこともある。別々のコンピューティングリソースサービスプロバイダシステム104は、それらが現在のまたは潜在的なユーザーデバイス102または組織160A〜Cのグループに(地理的な意味またはネットワーキングの意味のどちらかで)近くなるように位置してよい。
いくつかの実施形態では、コンピューティングリソースサービスプロバイダシステム104によって提供される機能及びサービスは、通信ネットワーク110を介して消費可能なウェブサービスとして実装されてよい。追加の実施形態では、コンピューティングリソースサービスプロバイダシステム104は、ホストされているコンピューティング環境で実装されるもう1つのバーチャルマシンによって提供される。ホストされるコンピューティング環境は、コンピューティングリソースがコンピューティング装置、ネットワーキングデバイス、及び/またはストレージデバイスを含んでよい、1つまたは複数の急速にセットアップされ、リリースされるコンピューティングリソースを含んでよい。また、ホストされるコンピューティング環境は、クラウドコンピューティング環境と呼ばれることもある。
組織106A〜Cは、コンピューティングリソースサービスプロバイダシステム104の多様なカスタマに対応できる。用語「組織」が本明細書で使用されるが、係る組織を含んだ機能は、さらにまたは代わりに(オンプレミスであるのか、それともオフプレミスであるのかに関わりなく)ディレクトリを有し、ディレクトリを管理し、コンピューティングリソースサービスプロバイダ104またはサードパーティアプリケーションサーバ108によってホストされるアプリケーションによるディレクトリへのアクセスを制御するためにコンピューティングリソースサービスプロバイダシステム104を使用することを希望する任意のカスタマを含んでよい。
オンプレミスディレクトリ160を維持する組織は、ディレクトリ160が記憶される1つまたは複数のサーバを有してよい。例えば、組織106Aは、多様なサーバを含むデータセンタを有してよく、オンプレミスディレクトリ160はサーバの内の1つまたは複数に記憶されてよい。オフプレミスディレクトリを維持する組織は、オフプレミスディレクトリデータストア146にオフプレミスディレクトリを記憶してよいコンピューティングリソースサービスプロバイダシステム104のサービスを利用してよい。例えば、組織106Bは、オンプレミスディレクトリをまったく維持しないことがあるが、組織のディレクトリ146を維持するために代わりにコンピューティングリソースサービスプロバイダシステム104に頼ることがある。いくつかの組織は、オンプレミス及び/またはオフプレミスに複数のディレクトリを維持することを選んでよい。例えば、組織106Cは、それぞれ(上述された)組織106Aと同様に複数のオンプレミスディレクトリ160を記憶することがあり、組織106Cはオフプレミスディレクトリ146を維持するためにコンピューティングリソースサービスプロバイダシステム104を利用することを選んでもよい。この例のコンピューティングリソースサービスプロバイダシステム104によって維持されるディレクトリ146は(例えば、バックアップのためまたは災害復旧のために)オンプレミスディレクトリのミラーもしくはサブセットであってよい、またはコンピューティングリソースサービスプロバイダシステム104によって維持されるディレクトリ146は完全に別のディレクトリ(例えば、オンプレミスディレクトリ160とは異なるコンピューティングリソースのディレクトリ)であってよい。
通信ネットワーク110は、インターネット等、おそらく多様な別個のパーティによって運用されるリンクされたネットワークの内の公的にアクセス可能なネットワークであってよい。いくつかの実施形態では、通信ネットワーク110は、インターネット、プライベートネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク、広域ネットワーク、ケーブルネットワーク、衛星ネットワーク、セルラー電話ネットワーク等、もしくはその組合せであってよい、またはインターネット、プライベートネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク、広域ネットワーク、ケーブルネットワーク、衛星ネットワーク、セルラー電話ネットワーク等、もしくはその組合せを含んでよい。
ユーザー管理及び認証モジュールとの間の対話の例
図2Aは、ユーザーデバイスによってアクセスされるサービスにトークンを提供するプロセス中のユーザー管理及び認証モジュール142との間の対話を示す。図2Aに示されるように、ディレクトリサービスモジュール140は複数のエージェント215A〜Bと対話してよく、エージェント215A〜Bはユーザー管理及び認証モジュール142と対話してよい。
実施形態では、各エージェント215A〜Bは、1つまたは複数の別々のディレクトリと関連付けられ、管理のためにその関連付けられたディレクトリと直接的にインタフェースをとる。エージェント215A〜Bは、オンプレミスディレクトリ及び/またはオフプレミスディレクトリと関連付けられて、オンプレミスディレクトリ及び/またはオフプレミスディレクトリと通信してよい。例えば、エージェント215Aはオフプレミスディレクトリ146と関連付けられてよく、エージェント215Bはオンプレミスディレクトリ160と関連付けられてよい。管理ディレクトリサービス140は、エージェント215A〜Bを作成する、監視する、及び/または管理するように構成されてよい。2つのエージェント215A〜Bが示されているが、これは制限的となることを意図されていない。コンピューティングリソースサービスプロバイダシステム104は、任意の数のエージェント(例えば、管理ディレクトリサービス140によって管理されるすべてのディレクトリを処理するために十分ないくつかのエージェント)を含んでよい。
エージェント215A〜Bは、ユーザー管理及び認証モジュール142に対してなされるAPIコールの変換バージョンを受け取ってよい。ユーザー管理及び認証モジュール142に対してなされるAPIの変換されたバージョンは、管理ディレクトリサービス140によって実行できるディレクトリ特有のAPIコール(例えば、LDAP、ケルベロス、DNS他)であってよい。一例として、APIコールの変換は、ディレクトリサービストークンへアクセストークンをマッピングすることを含んでよい(例えば、ケルベロストークン、ユーザー名とパスワードの対、NTLANマネージャ(NTLM)ハッシュ等を含んでよい)。
実施形態では、ユーザー管理及び認証モジュール142は、コンソール220、制御プレーン225、ならびにロードバランサ230及び235を含む。コンソール220は、ユーザーデバイス102に送信されるユーザーインタフェースを生成するように構成されてよい。ユーザーインタフェースは、ユーザーデバイス102が、ログインする、パスワードをリセットする、パスワードを変更する、及び/または本明細書に説明される他の操作を実行するために、ユーザー管理及び認証モジュール142によって提供されるAPIを呼び出すときにユーザーデバイス102に送信されてよいログインページであってよい。コンソール220は、例えば新しいユーザーが作成されるとき等に、ユーザーデバイス102に送信できるリンク(例えば、ユニフォームリソースロケータ(URL))を生成してもよい。また、リンクは有限の期間(例えば、7日間、2週間等)有効であってよく、選択時、管理者がユーザープロファイル情報等の追加の情報を入力できるようにするコンテンツページに、ユーザーデバイス102によって実行されるアプリケーションをリダイレクトしてよい。また、コンソール220は、ユーザーデバイス102がパスワードをリセットするためにユーザー管理及び認証モジュール142によって提供されるAPIを呼び出すときに管理者と関連付けられたアカウントへのリンクを含む電子メッセージ(例えば、eメール、テキストメッセージ等)を送信してもよい。電子メッセージは、パスワードリセットプロセスを完了するためにユーザーデバイス102によって使用できるワンタイムユーザートークンを含んでよい。
制御プレーン225は、ユーザーデバイス102にAPIを露呈するように構成されてよい。例えば、制御プレーン225は本明細書に説明されるAPIのようなAPIを露呈してよい。また、制御プレーン225はエージェント215A〜Bと対話するように構成されてもよい。例えば、制御プレーン225はユーザーデバイス102から受け取られたAPIコールを、管理ディレクトリサービス140によって実行できるディレクトリ特有のAPIコールに変換し、適切なエージェント215A〜B(例えば、APIコールに従ってアクションが実行されるディレクトリと関連付けられたエージェント)にディレクトリ特有のAPIコールを提供してよい。制御プレーン225は、図2Bに関して以下により詳細に説明される。
コンソール220及び制御プレーン225は、それぞれロードバランサ230または235の後方にあってよい。コンソール220及び制御プレーン225はそれぞれ複数のコンピューティングリソースを含んでよく、ロードバランサ230及び235はリソース使用を最適化するため、スループットを最大化するため、及び/またはあらゆる単一のリソースが過重負担になるリスクを最小限に抑えるために複数のコンピューティングリソースにわたって作業負荷を分散してよい。例えば、ロードバランサ230及び235は、ユーザーデバイス102からAPIコールを受け取って、コンソール220または制御プレーン225の適切なコンピューティングリソースにAPIコールを分散してよい。
(1)で、管理者は最初に、ユーザーデバイス102を介して自分の認証情報を認証するためにロードバランサ235と通信してよい。ロードバランサ235はコンソール220に認証要求及び認証情報を転送してよく、コンソール220はロードバランサ230に認証要求及び認証情報を転送してよい。ロードバランサ230は、制御プレーン225に認証要求及び認証情報を転送してよい。制御プレーン225は認証情報と関連付けられたディレクトリを決定し、適切なエージェント215Aまたは215Bに認証要求及び認証情報を送信してよい。いったん適切なエージェント215Aまたは215Bが認証要求及び認証情報を受け取ると、エージェント215Aまたは215Bは、その関連付けられたディレクトリ(例えば、オフプレミスディレクトリ146またはオンプレミスディレクトリ160)に接触することによって認証を実行してよい。
(2)で、管理者の認証情報を認証できる旨の判断に応えて、制御プレーン225は認証コードを生成する。制御プレーン225は、ユーザーデバイス102に転送するためにロードバランサ230に認証コードを送信する。
(3)で、ユーザーデバイス102はサードパーティアプリケーションサーバ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、及び認証寿命管理リーパーモジュール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は、サードパーティアプリケーションサーバ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に対する認証トークンは、アクセストークン及び/またはリフレッシュトークンに、認証情報及び/または組織名(または組織のエンティティの内の1つと関連付けられたディレクトリの識別子)をマッピングし、ディレクトリデータベース260にこのマッピングを記憶するために基本的なディレクトリ論理を使用してよい。
(5)で、認証APIモジュール245はアクセストークン及び/またはリフレッシュトークンをアクセスされたサービスに送信してもよい。ユーザー、グループ、及びパスワードAPIモジュール240は、上述されたAPIの内の1つまたは複数を提供してよく、アクセスされたサービスは提供されたAPIの内の1つまたは複数を呼び出すためにアクセストークン及び/または他の操作特有のパラメータを使用してよい。不図示のいくつかの実施形態では、認証APIモジュール245は、(4)に関して説明された操作を実行する前に、アクセスされたサービスにアクセストークン及び/またはリフレッシュトークンを送信する。
(6)で、実施形態では、呼び出し側サービスからのアクセストークンを含むAPIコールを受け取ると同時に、ユーザー、グループ、及びパスワードAPIモジュール240はディレクトリルックアップモジュール255に問い合わせを行うことによってアクセストークンと関連付けられたディレクトリを識別する。例えば、ディレクトリルックアップモジュール255はディレクトリデータベース260にアクセストークンを渡し、アクセストークンと関連付けられたディレクトリを識別し、識別されたディレクトリをユーザー、グループ、及びパスワードAPIモジュール240に送り返してよい。
(7)で、ユーザー、グループ、及びパスワードAPIモジュール240は、次いで識別されたディレクトリと関連付けられたエージェント215Aまたは215Bを識別し、ディレクトリ特有のAPIコールにAPIコールを変換し、ディレクトリ特有のAPIコール及びその操作特有のパラメータを適切なエージェント215Aまたは215Bに渡してよい。ユーザー、グループ、及びパスワードAPIモジュール240は、ディレクトリルックアップモジュール255によって提供される情報に基づいてディレクトリ特有のAPIコールにAPIコールを変換する方法を決定してよい。不図示の代替実施形態では、ユーザー、グループ、及びパスワードAPIモジュール240は、(例えば、内部ルックアップテーブルまたはデータベースを介して)ディレクトリルックアップモジュール255に問い合わせを行うことなくアクセストークンと関連付けられたディレクトリを直接的に識別する。
上述されたように、エージェント215A〜Bは、ユーザー、グループ、及びパスワードAPIモジュール240によって受け取られるAPIコールから変換されたディレクトリ特有のAPIコールを受け取ってよい。例として、ユーザー、グループ、及びパスワードAPIモジュール240は、ディレクトリサービストークン(例えば、ケルベロストークン)にユーザー、グループ、及びパスワードAPIモジュール240によって受け取られるアクセストークンをマッピングしてよく、ディレクトリサービストークンは適切なディレクトリにアクセスするためにエージェント215A〜Bに提供されてよい。
(8)で、もしあれば、結果は、管理ディレクトリサービス140からエージェント215A〜Bによって受け取られ、ユーザー、グループ、及びパスワードAPIモジュール240に転送されてよい。ユーザー、グループ、及びパスワードAPIモジュール240は、次いで呼び出し側サービスに結果を送信してよい。
サービスヘルス監視モジュール265は、ディレクトリサービスのヘルスを監視するコンピューティングシステムであってよい。例えば、サービスヘルス監視モジュール265は、ディレクトリサービスモジュール140のヘルスを監視してよい。
認証寿命管理リーパーモジュール270は、ディレクトリデータベース260に対して保守を実行してよい。例えば、認証寿命管理リーパーモジュール270は、期限切れとなったアクセストークン及び/またはリフレッシュトークン(及びその関連付けられた認証情報及びディレクトリ識別)を取り除いてよいまたは削除してよい。
異なる領域の異なるディレクトリと関連付けられた共通エンドポイントでユーザーを認証するための例のプロセス
図3は、サードパーティアプリケーションサーバまたはコンピュータリソースサービスプロバイダシステムによって提供されるアプリケーションもしくはサービスによって使用されてよい異なる領域で複数のディレクトリと関連付けられた共通エンドポイントでユーザーを認証するためのプロセス300を示す。例として、図1A〜図1Bのサードパーティアプリケーションサーバ108またはコンピュータリソースサービスプロバイダシステム104は、認証プロセス300を実行するように構成できる。認証プロセス300は、ブロック302で開始する。
ブロック304で、組織名と関連付けられたページを介してアプリケーションにアクセスする要求が受け取られる。例えば、組織名はグローバルエンドポイントを識別してよい。複数のディレクトリは組織名と関連付けられてよい。例えば、組織名は複数のエンティティと関連付けられてよい。各エンティティは別々のディレクトリを記憶し、維持してよい。実施形態では、複数の中のディレクトリの内の1つまたは複数は別々の領域に位置する。各個別領域でのコンピューティング装置は、他の領域でコンピューティング装置と通信しないことがある。
ブロック306で、ユーザー認証情報が受け取られる。ユーザー認証情報は、複数のディレクトリの第1のディレクトリと関連付けられてよい。例えば、ユーザー認証情報と関連付けられたユーザーは第1のディレクトリを記憶し、維持するエンティティの従業員であってよい。
ブロック308で、第1のディレクトリが位置する領域が決定される。実施形態では、ルートサービス130等のルートサービスは、組織名と関連付けられたページへのDNSエントリのマッピングを含む。また、ルートサービスはCDNエントリに対するDNSエントリのマッピングを含んでもよい。CDNは多様な領域サービスへのマッピングを含んでよい。例えば、第1のディレクトリは、CDNまたは領域サービスによってCDNを介してルートサービス及び/またはコンピューティングリソースサービスプロバイダシステムもしくはサードパーティアプリケーションサーバによって提供されるエイリアス識別子と識別されてよい。コンピューティングリソースサービスプロバイダシステムまたはサードパーティアプリケーションサーバからエイリアス識別子を受け取ると同時に、ルートサービスは適切なCDNにユーザーデバイスをリダイレクトできてよい。CDNは、第1のディレクトリを管理する領域サービスを識別し、それによって第1のディレクトリの領域を識別してよい(例えば、領域サービスは第1のディレクトリと同じ領域にある)。
ブロック310で、ユーザー認証情報は認証のために決定された領域に送信される。ユーザー認証情報が決定された領域に送信された後、認証プロセス300はブロック312に示されるように完了してよい。
グローバルエンドポイントにアクセスするための例のユーザーインタフェース
図4A〜図4Bは、ユーザーデバイス102等のユーザーデバイスで見られるネットワークページ400の表現の例を示す。ネットワークページ400は、コンピューティングリソースサービスプロバイダシステム104等の領域サービスによって生成され、ユーザーデバイス102によって実行されるブラウザアプリケーションのユーザーインタフェースの中に表示されてよい。図4Aに示されるように、ネットワークページ400は、ユーザーがアプリケーションにアクセスするために認証情報(例えば、ユーザー名及びパスワード)を入力できるようにする。例えば、ユーザーはフィールド402にユーザー名を、フィールド404にパスワードを入力できる。
URLバー406は、ユーザーによって提供されるURLを示す。実施形態では、URLはログインプロセスを通して変化しないままである。例えば、ユーザーが、第1のコンピューティングリソースサービスプロバイダシステム104またはサードパーティアプリケーションサーバ108によってホストされるニュースサービスにアクセスするために、URL<Org Name>.XYZAPPS.COM/NEWSを提供した可能性がある。しかしながら、ユーザーはまだログインしていないため、第1のコンピューティングリソースサービスプロバイダシステム104またはサードパーティアプリケーションサーバ108はネットワークページ400によって表現されるログインページにユーザーをリダイレクトする。ネットワークページ400によって表現されるログインページは、ユーザーの組織に対応するディレクトリと関連付けられるコンピューティングリソースサービスプロバイダシステム104等、第1のコンピューティングリソースサービスプロバイダシステム104またはサードパーティアプリケーションサーバ108とは異なるコンピューティングリソースサービスプロバイダシステム104によって生成されてよい。コンピューティングリソースサービスプロバイダシステム104及びサードパーティアプリケーションサーバ108は、異なる領域に位置してよい。したがって、ブラウザアプリケーションは、ログインプロセスを完了するためにある領域のホストによって生成されるページから別の領域の別のホストによって生成される別のページにリダイレクトされた可能性がある。ブラウザアプリケーションは、ルートサービス130に記憶されるマッピングに基づいて、及びCDN150Aまたは150Bに記憶されるマッピングに基づいてこのようにリダイレクトされた可能性がある。ただし、URLバー406は、依然としてURL<Org Name>.XYZAPPS.COM/NEWSを表示してよい。
図4Bに示されるように、ユーザーは無事にログインし、第1のコンピューティングリソースサービスプロバイダシステム104またはサードパーティアプリケーションサービス108によって生成されるニュースサービスがネットワークページ450に表示される。しかしながら、ユーザーがネットワークページ400からネットワークページ450にリダイレクトされ、したがってある領域に位置するホストから別の領域に位置する別のホストにリダイレクトされても、URLバー406は再び同じURLを表示する。
専門用語
本明細書に説明される方法及びタスクのすべてはコンピュータシステムによって実行され、完全に自動化され得る。コンピュータシステムは、いくつかの場合、説明されている機能を実行するためにネットワーク上で通信し、相互運用する複数の別個のコンピュータまたはコンピューティング装置(例えば、物理サーバ、ワークステーション、ストレージアレイ、クラウドコンピューティングリソース)を含んでよい。それぞれの係るコンピューティング装置は、通常、メモリまたは他の非一過性のコンピュータ可読記憶媒体または装置(例えば、ソリッドステートストレージデバイス、ディスクドライブ等)に記憶されるプログラム命令またはモジュールを実行する1つのプロセッサ(または複数のプロセッサ)を含む。本明細書に開示される多様な機能は係るプログラム命令で実施されてよい、及び/またはコンピュータシステムのアプリケーション特有の回路網(例えば、ASICまたはFPGA)で実装されてよい。コンピュータシステムが複数のコンピューティング装置を含む場合、これらの装置は同一場所に配置されてよいが、同一場所に配置される必要はない。開示されている方法及びタスクの結果は、ソリッドステートメモリチップ及び/または磁気ディスク等の物理ストレージデバイスを異なる状態に変換することによって持続的に記憶されてよい。いくつかの実施形態では、コンピュータシステムは、処理リソースが複数の別個の企業エンティティまたは他のユーザーによって共有されるクラウドベースのコンピューティングシステムであってよい。
実施形態によると、本明細書に説明されるプロセスまたはアルゴリズムのいずれかの特定の行為、イベント、または機能は、異なるシーケンスで実行でき、全体で追加する、マージする、または除外することができる(例えば、すべての説明されている操作またはイベントがアルゴリズムの実践に必要なわけではない)。さらに、特定の実施形態では、操作またはイベントは、順次によりむしろ、例えばマルチスレッド処理、割込み処理、または複数のプロセッサもしくはプロセッサコアを通して、または他の並列アーキテクチャ上で同時に実行できる。
本明細書に開示される実施形態と関連して説明される多様な例示的な論理ブロック、モジュール、ルーチン、及びアルゴリズムステップは、電子ハードウェア(例えば、ASICまたはFPGAデバイス)、汎用コンピュータハードウェアで実行するコンピュータソフトウェア、または両方の組合せとして実装できる。ハードウェア及びソフトウェアのこの互換性を明確に示すために、多様な例示的な構成要素、ブロック、モジュール、及びステップは、概してその機能性に関して上述されている。係る機能性が汎用ハードウェア上で実行するソフトウェアに対して特殊なハードウェアとして実装されるかどうかは、特定のアプリケーション及び全体的なシステムに課される設計制約に依存する。説明されている機能性は特定のアプリケーションごとに変化する方法で実装できるが、係る実装の決定は本開示の範囲からの逸脱を引き起こすとして解釈されるべきではない。
さらに、本明細書に開示される実施形態と関連して説明される多様な例示的な論理ブロック及びモジュールは、汎用プロセッサデバイス、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラム可能論理デバイス、離散ゲート論理もしくはトランジスタ論理、離散ハードウェア構成要素、または本明細書に説明される機能を実行するように設計されたその組合せ等のマシンによって実装または実行できる。汎用プロセッサデバイスはマイクロプロセッサであることがあるが、代替策では、プロセッサデバイスはコントローラ、マイクロコントローラ、または状態機械、これらの組合せ等であることがある。プロセッサデバイスは、コンピュータ実行可能な命令を処理するように構成された電気回路網を含むことがある。別の実施形態では、プロセッサデバイスは、コンピュータ実行可能命令を処理せずに論理演算を実行するFPGAまたは他のプログラム可能デバイスを含む。また、プロセッサデバイスは、例えばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連動する1つもしくは複数のマイクロプロセッサ、または任意の他の係る構成等、コンピューティング装置の組合せとしても実装できる。主にデジタル技術に関して本明細書に説明されるが、プロセッサデバイスは主にアナログ構成要素も含んでよい。例えば、本明細書に説明されるレンダリング技法のいくつかまたはすべてはアナログ回路網または混合アナログ及びデジタル回路網で実装されてよい。コンピューティング環境は、2〜3例を挙げると、マイクロプロセッサ、メインフレームコンピュータ、デジタルシグナルプロセッサ、携帯コンピューティング装置、デバイスコントローラ、または器具の中の計算エンジンに基づいたコンピュータシステムを含むが、これに限定されるものではない任意のタイプのコンピュータシステムを含むことがある。
本明細書に開示される実施形態と関連して説明される方法、プロセス、ルーチン、またはアルゴリズムの要素は、ハードウェアで、プロセッサデバイスによって実行されるソフトウェアモジュールで、または2つの組合せで直接的に実施できる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、または任意の他の形式の非一過性コンピュータ可読記憶媒体に常駐することがある。例示的な記憶媒体は、プロセッサデバイスが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサデバイスに結合できる。代替策では、記憶媒体はプロセッサデバイスに一体化されることがある。プロセッサデバイス及び記憶媒体はASICに常駐することがある。ASICはユーザー端末に常駐することがある。代替策では、プロセッサデバイス及び記憶媒体は、ユーザー端末に離散構成要素として常駐することがある。
とりわけ、「can(できる)」、「could(ことがあるだろう)」、「might(可能性がある)」、「may(してよい)」、「e.g.(例えば)」等の本明細書で使用される条件言語は、特に明記しない限り、または使用される文脈の中でそれ以外に理解されない限り、概して、特定の実施形態が特定の機能、要素、及び/またはステップを含むが、一方他の実施形態は含まないことを伝えることを目的としている。したがって、係る条件言語は、機能、要素、及び/もしくはステップは1つまたは複数の実施形態に決して必要とされない、または1つもしくは複数の実施形態が、他の入力またはプロンプティングを使用して、または使用せずに、これらの機能、要素、及び/もしくはステップが任意の特定の実施形態に含まれるのか、または任意の特定の実施形態で実行されるのかを決定するための論理を必ず含むことを暗示することを概して目的としてない。用語「comprising(含む)」、「including(含む)」、「having(有する)」等は同義であり、オープンエンド形式で包括的に使用され、追加の要素、機能、行為、操作等を除外しない。また、用語「or(または)」は、例えば要素のリストを接続するために使用されるときに、用語「or(または)」はリスト中の要素の1つ、いくつか、またはすべてを意味するようにその包括的な意味で(及びその排他的な意味ではなく)使用される。
句「X、Y、Zの内の少なくとも1つ」等の離接的な言語は、特に明記しない限り、概して、項目、用語等がX、Y、もしくはZ、またはその任意の組合せ(例えば、X、Y、及び/またはZ)のどちらかであってよいことを提示するために使用されるとして文脈でそれ以外の場合理解される。したがって、係る離接的な言語は概して、特定の実施形態がXの内の少なくとも1つ、Yの内の少なくとも1つ、またはZの内の少なくとも1つがそれぞれ存在することを必要とすることを暗示することを概して目的とせず、暗示するべきではない。
上記の発明を実施するための形態は、多様な実施形態に適用されるとして新規の機能を示し、説明し、指摘しているが、示されているデバイスまたはアルゴリズムの形式及び詳細における多様な省略、置換、及び変更が本開示の精神から逸脱することなく行うことができることが理解できる。認識できるように、いくつかの機能は他と別個に使用または実践できるので、本明細書に説明される特定の実施形態は、本明細書に説明される機能及び利点のすべてを提供しない形式で実施できる。本明細書に開示される特定の実施形態の範囲は、上述の説明によってよりもむしろ添付の特許請求の範囲によって示される。特許請求の範囲の同等性の意味及び範囲の中に入るすべての変更がその範囲内に包含されるべきである。
本開示の実施形態は、以下の条項を考慮して説明できる。
1.システムであって、
ネットワークのあるコンピューティング装置から別のコンピューティング装置へのルートを決定するように構成されたルートサービスシステムと、
1つまたは複数のコンピューティング装置を備えるアプリケーションサーバであって、複数のコンテンツ配信ネットワークと通信し、
ユーザーデバイスから、組織名と関連付けられたコンテンツページを介してアプリケーションにアクセスする要求を受け取るように構成されたネットワークインタフェースであって、複数のディレクトリが前記組織名と関連付けられ、前記複数のディレクトリの各ディレクトリは複数の領域の中の別個の領域に位置し、
前記ネットワークインタフェースが前記ユーザーデバイスからユーザー認証情報を受け取るようにさらに構成され、前記ユーザー認証情報が前記複数のディレクトリの内の第1のディレクトリと関連付けられる、ネットワークインタフェースと、
前記組織名と関連付けられる前記ルートサービスシステムに記憶されるデータに基づいて、前記第1のディレクトリが位置する前記複数の領域内の領域を決定するように構成されたディレクトリ識別子モジュールであって、
前記ネットワークインタフェースが認証のために前記決定された領域のサービスに前記ユーザー認証情報を送信するようにさらに構成され、
前記ネットワークインタフェースが前記決定された領域の前記サービスから前記認証の結果を受け取るようにさらに構成される、ディレクトリ識別子モジュールと、
を実装するようにプログラミングされたアプリケーションサーバと、
を備える、前記システム。
2.前記決定された領域の前記サービスが、
前記決定された領域の前記第1のディレクトリの場所を決定し、
前記決定された領域の前記第1のディレクトリの前記場所に前記ユーザー認証情報を送信する
ように構成される、条項1に記載のシステム。
3.前記ルートサービスシステムが、前記組織名とドメインネームシステム(DNS)エントリとの間のマッピングを備える、条項1に記載のシステム。
4.前記ルートサービスシステムが、前記DNSエントリと、前記サービスと通信するコンテンツ配信ネットワークとの間のマッピングを備える、条項3に記載のシステム。
5.前記ネットワークインタフェースが、第2のユーザーデバイスから、前記組織名と関連付けられた前記コンテンツページを介して前記アプリケーションにアクセスする要求を受け取るようにさらに構成され、前記ネットワークインタフェースが前記第2のユーザーデバイスから第2のユーザー認証情報を受け取るようにさらに構成され、前記第2のユーザー認証情報が前記複数のディレクトリの第2のディレクトリと関連付けられる、条項1に記載のシステム。
6.前記ディレクトリ識別子モジュールが、前記組織名と関連付けられる前記ルートサービスシステムに記憶される前記データに基づいて、前記第2のディレクトリが位置する前記複数の領域の第2の領域を決定するようにさらに構成され、前記ネットワークインタフェースが認証のために前記決定された第2の領域の第2のサービスに前記第2のユーザー認証情報を送信するようにさらに構成される、条項5に記載のシステム。
7.前記ユーザー認証情報が、前記第1のディレクトリに管理されるユーザー名及びパスワードを備える、条項1に記載のシステム。
8.前記ネットワークインタフェースが、認証のために前記決定された領域の前記サービスに第2のユーザー認証情報を送信するようにさらに構成され、前記ネットワークインタフェースが前記第2のユーザー認証情報の前記認証の結果を受け取るようにさらに構成される、条項1に記載のシステム。
9.1つまたは複数のディレクトリの前記管理のために管理者を認証するコンピュータ実装方法であって、
1つまたは複数のコンピューティング装置を備え、特定の実行可能な命令で構成されるアプリケーションサーバによって実装されるように、
ユーザーデバイスから、組織名と関連付けられたコンテンツページを介してアプリケーションにアクセスする要求を受け取ることであって、複数のディレクトリが前記組織名と関連付けられ、前記複数の内の前記ディレクトリの少なくともいくつかが他とは異なる地理的地域に位置する、アプリケーションにアクセスする要求を受け取ることと、
前記ユーザーデバイスからユーザー認証情報を受け取ることであって、前記ユーザー認証情報が前記複数のディレクトリの第1のディレクトリと関連付けられる、ユーザー認証情報を受け取ることと、
ネットワークルートサービスによって提供される情報に基づいて、前記第1のディレクトリが位置する第1の地理的地域を決定することと、
前記第1のディレクトリとの認証のために前記第1の地理的地域のサービスに前記ユーザー認証情報を送信することと、
前記第1の地理的地域の前記サービスから前記認証の結果を受け取ることと、
を含む、前記コンピュータ実装方法。
10.前記第1の地理的地域の前記サービスが、前記第1の地理的地域の前記第1のディレクトリの場所に前記ユーザー認証情報を送信することによって前記認証の前記結果を決定する、条項9に記載のコンピュータ実装方法。
11.前記ネットワークルートサービスが、前記組織名とドメインネームシステム(DNS)エントリとの間のマッピングを提供する、条項9に記載のコンピュータ実装方法。
12.前記ネットワークルートサービスが、前記DNSエントリと、前記第1の地理的地域の前記サービスと通信するコンテンツ配信ネットワークとの間のマッピングをさらに提供する、条項11に記載のコンピュータ実装方法。
13.第1の地理的地域を決定することが、前記DNSエントリと関連付けられた前記コンテンツ配信ネットワークに問い合わせを行うことを含む、条項12に記載のコンピュータ実装方法。
14.第2のユーザーデバイスから、前記組織名と関連付けられた前記コンテンツページを介して前記アプリケーションにアクセスする要求を受け取ることと、
前記第2のユーザーデバイスから第2のユーザー認証情報を受け取ることであって、前記第2のユーザー認証情報が、前記複数のディレクトリの第2のディレクトリと関連付けられる、第2のユーザー認証情報を受け取ることと、
をさらに含む、条項9に記載のコンピュータ実装方法。
15.前記ネットワークルートサービスによって提供される情報に基づいて、前記第2のディレクトリが位置する第2の地理的地域を決定することと、
前記第2のディレクトリとの認証のために、前記第2の地理的地域の第2のサービスに前記第2のユーザー認証情報を送信することと、
をさらに含む、条項13に記載のコンピュータ実装方法。
16.前記ユーザー認証情報が、前記第1のディレクトリによって管理されるユーザー名及びパスワードを備える、条項9に記載のコンピュータ実装方法。
17.前記第1のディレクトリとの認証のために前記第1の地理的地域の前記サービスに第2のユーザー認証情報を送信することと、
前記第1の地理的地域の前記サービスから前記第2のユーザー認証情報の前記認証の結果を受け取ることと、
をさらに含む、条項9に記載のコンピュータ実装方法。
18.非一過性のストレージデバイスを備える非一過性のコンピュータストレージシステムであって、前記コンピュータストレージシステムが、前記コンピュータストレージシステム上に、コンピュータシステムに少なくとも
ユーザーデバイスから、組織名と関連付けられたコンテンツページを介してアプリケーションにアクセスする要求を受け取り、複数のディレクトリが前記組織名と関連付けられ、前記複数の中の前記ディレクトリの内の少なくともいくつかが他とは異なる地理的地域に位置し、
前記ユーザーデバイスからユーザー認証情報を受け取り、前記ユーザー認証情報が前記複数のディレクトリの第1のディレクトリと関連付けられ、
ネットワークルートサービスによって提供される情報に基づいて、前記第1のディレクトリが位置する第1の地理的地域を決定し、
前記ユーザー認証情報が前記第1のディレクトリによって認証できるかどうかを判断するために前記第1のディレクトリに前記ユーザー認証情報を送信する
ように命令する実行可能プログラム命令を有する、前記一過性のコンピュータストレージシステム。
19.前記実行可能プログラム命令がさらに前記コンピュータシステムに少なくとも、
前記第1の地理的地域のサービスを介して前記第1のディレクトリに前記ユーザー認証情報を送信し、
前記第1の地理的地域の前記サービスから前記認証の結果を受け取る
ようにさらに命令する、条項18に記載の非一過性コンピュータストレージシステム。
20.前記ネットワークルートサービスが、前記組織名とインターネットプロトコル(IP)アドレスとの間のマッピングを提供する、条項18に記載の前記非一過性コンピュータストレージシステム。
21.前記ネットワークルートサービスは、前記IPアドレスとコンテンツ配信ネットワークのアドレスとの間のマッピングをさらに提供する、条項20に記載の非一過性コンピュータストレージシステム。
22.前記実行可能プログラム命令が、前記コンテンツ配信ネットワークの前記アドレスを識別するために前記ネットワークルートサービスに少なくとも問い合わせを行うように前記コンピュータシステムにさらに命令する、条項21に記載の非一過性コンピュータストレージシステム。
23.前記実行可能プログラム命令が、前記コンピュータシステムに少なくとも
第2のユーザーデバイスから、前記組織名と関連付けられた前記コンテンツページを介して前記アプリケーションにアクセスする要求を受け取り、
前記第2のユーザーデバイスから第2のユーザー認証情報を受け取り、前記第2のユーザー認証情報が前記複数のディレクトリの第2のディレクトリと関連付けられ、
前記ネットワークルートサービスによって提供される情報に基づいて、前記第2のディレクトリが位置する第2の地理的地域を決定し、
前記第2のユーザー認証情報が前記第2のディレクトリによって認証できるかどうかを判断するために、前記第2の地理的地域の第2のサービスに前記第2のユーザー認証情報を送信する
ようにさらに命令する、条項18に記載の非一過性コンピュータストレージシステム。
24.前記ユーザー認証情報が、前記第1のディレクトリによって管理されるユーザー名及びパスワードを備える、条項18に記載の非一過性コンピュータストレージシステム。
前記実行可能プログラム命令が、前記コンピュータシステムに、前記第2のユーザー認証情報が前記第1のディレクトリによって認証できるかどうかを判断するために前記第1のディレクトリに第2のユーザー認証情報を少なくとも送信するようにさらに命令する、条項18に記載の非一過性コンピュータストレージシステム。

Claims (15)

  1. システムであって、
    ネットワークのあるコンピューティング装置から別のコンピューティング装置へのルートを決定するように構成されたルートサービスシステムと、
    1つまたは複数のコンピューティング装置を備えるアプリケーションサーバであって、複数のコンテンツ配信ネットワークと通信し、
    ユーザーデバイスから、組織名と関連付けられたコンテンツページを介してアプリケーションにアクセスする要求を受け取るように構成されたネットワークインタフェースであって、複数のディレクトリが前記組織名と関連付けられ、前記複数のディレクトリの各ディレクトリは複数の領域の中の別個の領域に位置し、
    前記ネットワークインタフェースが前記ユーザーデバイスからユーザー認証情報を受け取るようにさらに構成され、前記ユーザー認証情報が前記複数のディレクトリの内の第1のディレクトリと関連付けられる、ネットワークインタフェースと、
    前記組織名と関連付けられる前記ルートサービスシステムに記憶されるデータに基づいて、前記第1のディレクトリが位置する前記複数の領域内の領域を決定するように構成されたディレクトリ識別子モジュールであって、
    前記ネットワークインタフェースが認証のために前記決定された領域のサービスに前記ユーザー認証情報を送信するようにさらに構成され、
    前記ネットワークインタフェースが前記決定された領域の前記サービスから前記認証の結果を受け取るようにさらに構成される、ディレクトリ識別子モジュールと、
    を実装するようにプログラミングされたアプリケーションサーバと、
    を備える、前記システム。
  2. 前記決定された領域の前記サービスが、
    前記決定された領域の前記第1のディレクトリの場所を決定し、
    前記決定された領域の前記第1のディレクトリの前記場所に前記ユーザー認証情報を送信する
    ように構成される、請求項1に記載のシステム。
  3. 前記ルートサービスシステムが、前記組織名とドメインネームシステム(DNS)エントリとの間のマッピングを備える、請求項1に記載のシステム。
  4. 前記ルートサービスシステムが、前記DNSエントリと、前記サービスと通信するコンテンツ配信ネットワークとの間のマッピングを備える、請求項3に記載のシステム。
  5. 前記ネットワークインタフェースが、第2のユーザーデバイスから、前記組織名と関連付けられた前記コンテンツページを介して前記アプリケーションにアクセスする要求を受け取るようにさらに構成され、前記ネットワークインタフェースが前記第2のユーザーデバイスから第2のユーザー認証情報を受け取るようにさらに構成され、前記第2のユーザー認証情報が前記複数のディレクトリの第2のディレクトリと関連付けられる、請求項1に記載のシステム。
  6. 前記ディレクトリ識別子モジュールが、前記組織名と関連付けられる前記ルートサービスシステムに記憶される前記データに基づいて、前記第2のディレクトリが位置する前記複数の領域の第2の領域を決定するようにさらに構成され、前記ネットワークインタフェースが認証のために前記決定された第2の領域の第2のサービスに前記第2のユーザー認証情報を送信するようにさらに構成される、請求項5に記載のシステム。
  7. 前記ユーザー認証情報が、前記第1のディレクトリに管理されるユーザー名及びパスワードを備える、請求項1に記載のシステム。
  8. 前記ネットワークインタフェースが、認証のために前記決定された領域の前記サービスに第2のユーザー認証情報を送信するようにさらに構成され、前記ネットワークインタフェースが前記第2のユーザー認証情報の前記認証の結果を受け取るようにさらに構成される、請求項1に記載のシステム。
  9. 1つまたは複数のディレクトリの前記管理のために管理者を認証するコンピュータ実装方法であって、
    1つまたは複数のコンピューティング装置を備え、特定の実行可能な命令で構成されるアプリケーションサーバによって実装されるように、
    ユーザーデバイスから、組織名と関連付けられたコンテンツページを介してアプリケーションにアクセスする要求を受け取ることであって、複数のディレクトリが前記組織名と関連付けられ、前記複数の内の前記ディレクトリの少なくともいくつかが他とは異なる地理的地域に位置する、アプリケーションにアクセスする要求を受け取ることと、
    前記ユーザーデバイスからユーザー認証情報を受け取ることであって、前記ユーザー認証情報が前記複数のディレクトリの第1のディレクトリと関連付けられる、ユーザー認証情報を受け取ることと、
    ネットワークルートサービスによって提供される情報に基づいて、前記第1のディレクトリが位置する第1の地理的地域を決定することと、
    前記第1のディレクトリとの認証のために前記第1の地理的地域のサービスに前記ユーザー認証情報を送信することと、
    前記第1の地理的地域の前記サービスから前記認証の結果を受け取ることと、
    を含む、前記コンピュータ実装方法。
  10. 前記第1の地理的地域の前記サービスが、前記第1の地理的地域の前記第1のディレクトリの場所に前記ユーザー認証情報を送信することによって前記認証の前記結果を決定する、請求項9に記載のコンピュータ実装方法。
  11. 前記ネットワークルートサービスが、前記組織名とドメインネームシステム(DNS)エントリとの間のマッピングを提供する、請求項9に記載のコンピュータ実装方法。
  12. 前記ネットワークルートサービスが、前記DNSエントリと、前記第1の地理的地域の前記サービスと通信するコンテンツ配信ネットワークとの間のマッピングをさらに提供する、請求項11に記載のコンピュータ実装方法。
  13. 第2のユーザーデバイスから、前記組織名と関連付けられた前記コンテンツページを介して前記アプリケーションにアクセスする要求を受け取ることと、
    前記第2のユーザーデバイスから第2のユーザー認証情報を受け取ることであって、前記第2のユーザー認証情報が、前記複数のディレクトリの第2のディレクトリと関連付けられる、第2のユーザー認証情報を受け取ることと、
    をさらに含む、請求項9に記載のコンピュータ実装方法。
  14. 前記ネットワークルートサービスによって提供される情報に基づいて、前記第2のディレクトリが位置する第2の地理的地域を決定することと、
    前記第2のディレクトリとの認証のために、前記第2の地理的地域の第2のサービスに前記第2のユーザー認証情報を送信することと、
    をさらに含む、請求項13に記載のコンピュータ実装方法。
  15. 前記第1のディレクトリとの認証のために前記第1の地理的地域の前記サービスに第2のユーザー認証情報を送信することと、
    前記第1の地理的地域の前記サービスから前記第2のユーザー認証情報の前記認証の結果を受け取ることと、
    をさらに含む、請求項9に記載のコンピュータ実装方法。
JP2017516832A 2014-10-03 2015-09-29 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること Active JP6417472B2 (ja)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018189845A Division JP6754809B2 (ja) 2014-10-03 2018-10-05 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること

Publications (2)

Publication Number Publication Date
JP2017530472A true JP2017530472A (ja) 2017-10-12
JP6417472B2 JP6417472B2 (ja) 2018-11-07

Family

ID=54337367

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017516832A Active JP6417472B2 (ja) 2014-10-03 2015-09-29 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること
JP2018189845A Active JP6754809B2 (ja) 2014-10-03 2018-10-05 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2018189845A Active JP6754809B2 (ja) 2014-10-03 2018-10-05 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること

Country Status (9)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019101668A (ja) * 2017-11-30 2019-06-24 キヤノン株式会社 システムおよびその制御方法

Families Citing this family (23)

* 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
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076506A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd アプリケーションサービス提供システム及びアプリケーションサービス提供方法
JP2013033449A (ja) * 2011-06-29 2013-02-14 Canon Inc サーバーシステムおよび制御方法およびプログラム
US20130061306A1 (en) * 2011-09-06 2013-03-07 Richard Sinn Hybrid cloud identity mapping infrastructure
US20130254847A1 (en) * 2012-03-20 2013-09-26 Microsoft Corporation Identity services for organizations transparently hosted in the cloud

Family Cites Families (27)

* 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
US6505238B1 (en) * 1999-08-19 2003-01-07 International Business Machines Corporation Method and system for implementing universal login via web browser
US7363361B2 (en) * 2000-08-18 2008-04-22 Akamai Technologies, Inc. Secure content delivery system
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 通信装置およびその通信方法
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
US9043410B2 (en) 2011-08-15 2015-05-26 Skype Retrieval of stored transmissions
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076506A (ja) * 2009-09-30 2011-04-14 Brother Industries Ltd アプリケーションサービス提供システム及びアプリケーションサービス提供方法
JP2013033449A (ja) * 2011-06-29 2013-02-14 Canon Inc サーバーシステムおよび制御方法およびプログラム
US20130061306A1 (en) * 2011-09-06 2013-03-07 Richard Sinn Hybrid cloud identity mapping infrastructure
US20130254847A1 (en) * 2012-03-20 2013-09-26 Microsoft Corporation Identity services for organizations transparently hosted in the cloud

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019101668A (ja) * 2017-11-30 2019-06-24 キヤノン株式会社 システムおよびその制御方法

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
AU2015324004A1 (en) 2017-05-25
KR102006198B1 (ko) 2019-08-01
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
JP6754809B2 (ja) 共通エンドポイントにアクセスするために異なるディレクトリに記憶される認証情報を使用すること
US10505929B2 (en) Management and authentication in hosted directory service
JP6491774B2 (ja) マルチテナントアイデンティティおよびデータセキュリティ管理クラウドサービス
JP7281483B2 (ja) マルチテナントアイデンティティクラウドサービスのための宣言型第三者アイデンティティプロバイダの統合
CN112913208B (zh) 具有内部部署的认证集成和桥接器高可用性的多租户身份云服务
US10257184B1 (en) Assigning policies for accessing multiple computing resource services
EP3228069B1 (en) Stack fusion architecture including distributed software clusters to enable software communication services
Edney et al. Preparing Active Directory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181005

R150 Certificate of patent or registration of utility model

Ref document number: 6417472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250