関連出願の説明
本出願はすべての目的のために、2013年11月11日出願の「MANAGED DIRECTORY SERVICE」と題するU.S. Patent Provisional Application No. 61/902,790、2013年12月5日出願の「MANAGED DIRECTORY SERVICE」と題するU.S. Patent Application No. 14/098,445、2013年12月5日出願の「MANAGED DIRECTORY SERVICE CONNECTION」と題するU.S. Patent Application No. 14/098,450、及び、2013年12月5日出願の「MANAGED DIRECTORY SERVICE WITH EXTENSION」と題するU.S. Patent Application No. 14/098,454の全開示を参照によって組み込む。
現代のコンピュータシステムは、システム、リソース、及びストレージについてローカル及びリモートの組合せを頻繁に使用し、システムエンティティ全体に処理及びストレージを分散し、システムエンティティ間でリソースのリクエストを送信する。ローカル及びリモートのシステムエレメントが異なる認可及び認証システムを有することがあるため、そのようなシステムの管理者は、分散システムによって提供されるリソースへのユーザアクセスを許可する複数のアカウント及び証明書を管理しなければならないことがある。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。リソースが顧客構内(すなわちローカル)に位置するかどうか、リソースがコンピューティングリソースサービスプロバイダ(すなわちリモート)に位置するかどうか、または、リソースがローカル及びリモート両方の組合せに位置するかどうかに応じて、リソースの管理に対する異なるアプローチが必要とされてもよい。サービスによってローカル及び/またはリモートディレクトリのアクセスを提供する既存のアプローチは通常、同一のユーザのために複数のユーザアカウントを必要とし、コストの増加、アカウント保守の問題、及びアカウントセキュリティの問題を引き起こす。複数のログインによるシステムのディレクトリ間の同期は、複雑さの追加の層を追加する。複数のログインを伴うシステム全体にわたるレプリケーションは、データがリモートシステム上で他者によってアクセス可能になることがあることを意味し、データ脆弱性及びより多くのセキュリティ問題につながる可能性がある。
コンピュータシステムエンティティをリモートコンピュータシステムリソースへ接続するための技術が、本明細書に説明される。リモートコンピュータシステムリソースへのアクセスをリクエストするコンピュータシステムエンティティは、そのリクエストを、当該リクエストを受信して、コンピュータシステムエンティティをリモートコンピュータシステムリソースに接続するマネージドディレクトリサービスに実行させる。接続している間、マネージドディレクトリサービスは、リモートコンピュータシステムリソース上で操作を実行するコマンドを受信し、コンピュータシステムエンティティが、リモートコンピュータシステムリソース上で操作の実行を認可される場合、マネージドディレクトリサービスは、リモートコンピュータシステムリソース上の操作を実行する。
(第1の組)少なくとも1つの実施形態に従って、コンピュータシステムディレクトリリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、コンピュータシステムリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、ローカル及びリモートのコンピュータシステムリソースがローカル及びリモートのコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、コンピュータシステムエンティティによるコンピュータサービスへのアクセスのための認証及び認可のためのリクエストを満たすことができる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、さまざまな実施形態を行うことができる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、認可及び認証データの中央位置を格納できる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、マネージドディレクトリサービスへのアクセスを認証するための、及び1つまたは複数のコマンドを実行するために認証されるエンティティを認可するための例示的プロセスを示す。
(第1の組)少なくとも1つの実施形態に従って、マネージドディレクトリサービスを使用して1つまたは複数の高可用性リモートシステムリソースを提供できる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、マネージドディレクトリサービスを使用してリモートシステムリソースのスナップショットまたは複製を作成できる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、システムリソースのスナップショットまたは複製を作成するための例示的プロセスを示す。
(第1の組)少なくとも1つの実施形態に従って、システムリソースを再現できる例示的環境を示す。
(第1の組)少なくとも1つの実施形態に従って、リモート位置からローカル位置にシステムリソースを再現するための例示的プロセスを示す。
(第1の組)さまざまな実施形態を実装できる環境を示す。
(第2の組)少なくとも1つの実施形態に従って、コンピュータシステムディレクトリリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、コンピュータシステムリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、コンピュータシステムエンティティによるコンピュータサービスへのアクセスのための認証及び認可のためのリクエストを満たすことができる例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、さまざまな実施形態を行うことができる例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、認可及び認証データの中央位置を格納できる例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、マネージドディレクトリサービスへのアクセスを認証するための、及び1つまたは複数のコマンドを実行するために認証されるエンティティを認可するための例示的プロセスを示す。
(第2の組)少なくとも1つの実施形態に従って、コンピュータシステムエンティティがローカルシステムリソースを作成し、接続する例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、ローカルシステムリソースに接続するための例示的プロセスを示す。
(第2の組)少なくとも1つの実施形態に従って、複数のコンピュータシステムエンティティがコンピュータシステムリソースに接続する例示的環境を示す。
(第2の組)少なくとも1つの実施形態に従って、ローカルシステムリソースが再現される例示的環境を示す。
(第2の組)さまざまな実施形態を実装できる環境を示す。
(第3の組)少なくとも1つの実施形態に従って、コンピュータシステムディレクトリリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、コンピュータシステムリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、コンピュータシステムエンティティによるコンピュータサービスへのアクセスのための認証及び認可のためのリクエストを満たすことができる例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、さまざまな実施形態を行うことができる例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、認可及び認証データの中央位置を格納できる例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、マネージドディレクトリサービスへのアクセスを認証するための、及び1つまたは複数のコマンドを実行するために認証されるエンティティを認可するための例示的プロセスを示す。
(第3の組)少なくとも1つの実施形態に従って、ローカルシステムリソースがリモートシステムリソースに拡張されてもよい例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、マネージドディレクトリサービスを使用してローカルシステムリソースをリモートシステムリソースに拡張するための例示的プロセスを示す。
(第3の組)少なくとも1つの実施形態に従って、ローカルリソースが読み取り専用許可を有するリモートリソースに拡張されてもよい例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、読み取り専用システムリソースへの読み取り及び書き込みのための例示的プロセスを示す。
(第3の組)少なくとも1つの実施形態に従って、ローカルリソースが読み取り/書き込み許可を有するリモートリソースに拡張されてもよい例示的環境を示す。
(第3の組)少なくとも1つの実施形態に従って、システムリソースへの読み取り及び書き込みのための例示的プロセスを示す。
(第3の組)さまざまな実施形態を実装できる環境を示す。
<実施形態の第1の組>
本出願の以下の部分は、マネージドディレクトリサービスのための技術の実施形態の第1の組を説明する。
実施形態の第1の組は、図面の第1の組を参照して説明される。
以下の説明において、さまざまな実施形態が説明される。解説の目的上、特定の構成及び詳細が、実施形態の詳細な理解を提供するために示される。しかし、特定の詳細なしで実施形態を実施してもよいことも、当業者にとって明らかである。さらにまた、実施形態が説明することを不明確にしないために、既知の特徴は省略または簡略化されてもよい。
本明細書で説明及び提案される技術は、分散及び/または仮想化されたコンピュータシステム上のローカル及び/またはリモートリソースならびにその上で動作する実行可能コードを管理する方法、システム、及びプロセスを含む。特に、ユーザ、サービス、プロセス、アプリケーション、クライアントデバイス、ゲストオペレーティングシステム及び/またはその他のそのようなコンピュータシステムエンティティを含むがこれに限定されないコンピュータシステムエンティティによる及びそれらのための、ディレクトリ、ファイルシステム、ファイル、ユーザ、セキュリティポリシー、ネットワークリソース、アプリケーション、システムストレージなどシステムリソースへのアクセスを容易にするかつ管理するシステム機能を利用するための技術が開示される。分散及び/または仮想化されたコンピュータシステムは、より良好なシステム性能、システムリソースへのより良好なアクセス、システムリソースの高可用性、より良好なデータセキュリティ、より良好なユーザセキュリティ、及び/またはその他のそのようなシステムの利益を促進するために、ローカル及び/またはリモートのシステムリソースの効率的な管理によって利益を得ることができる。
例示的な実施例において、分散及び/または仮想化されたコンピュータシステムは、ディレクトリサービスを含むがこれに限定されない1つまたは複数のコンピュータシステムサービスを有してもよく、特定のデータセンタに位置するディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどの、1つまたは複数のシステムリソースを有してもよい。ディレクトリサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどのシステムリソースは、システムリソース、コンピュータシステムリソース、サービス及びリソース、サービス及び/またはリソース、あるいはリソースとしてさまざまに、本開示の本明細書において集合的に言及されてもよい。これらのサービス及び/またはシステムリソースへのアクセスは、1つまたは複数のユーザアカウントと関連する一連の認証証明書を介してでもよい。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。いくつかの実施形態において、ローカル顧客データセンタは、データセンタ内のシステムリソースへのネットワークアクセスのためのローカル証明書を必要としてもよい。たとえば、コンピュータリソースサービスプロバイダで動作していてもよいサービスは、ローカルシステムリソースへのアクセスを必要としてもよいが、データセンタ内のシステムリソースへアクセスするためのローカル証明書を持つことはできない。一連のリソースへの臨時の証明書及びリンクを介したローカルシステムリソースへのアクセスを提供できるサービスが、アクセスを容易にしてもよい。そのようなサービスは、作成、破棄、接続、拡張する操作、及び/またはその他のそのような管理操作を提供することによって、ローカルシステムリソースの管理を支援してもよい。そのような管理操作は、いくつかの実施形態において、認証及び認可を管理してもよいポリシーサブシステムによって容易にされてもよい。いくつかの実施形態において、ローカル及び/またはリモートサービスのローカルシステムリソースを管理するシステムはまた、ローカル及び/またはリモートサービスのリモート及び/またはローカルとリモートが混在するシステムリソースを管理するように構成されてもよい。
本明細書で説明及び提案される技術は、ディレクトリサービスなどのコンピュータシステムサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、及び/またはストレージリソースなどのリソースの実装及び管理に関連する技術を含む。いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステム上のシステムユーザ、リソース、ポリシー、ネットワークアクセス、及び/またはセキュリティを管理する機能を含んでもよいディレクトリ・アズ・ア・サービス(DaaS)の機能を提供するように構成されてもよい。いくつかの実施形態において、マネージドディレクトリサービスは、分散及び/または仮想化されたコンピュータシステムのインスタンスによるそのような機能へのアクセスを管理するようにも構成されてもよく、その他の関連する分散及び/または仮想化されたコンピュータシステムサービスによるそのような機能へのアクセスを管理するようにも構成されてもよい。
たとえば、ユーザは、コンピューティングリソースサービスプロバイダ内に仮想マシン(VM)インスタンスを作成し、それにアクセスしてもよく、それはコンピューティングリソースサービスプロバイダによって管理できない顧客構内に格納されるシステムリソースへのアクセスを必要としてもよい。コンピューティングリソースサービスプロバイダ上で動作するマネージドディレクトリサービスは、取得した証明書を介して顧客構内ディレクトリにアクセスするように構成されてもよく、VMインスタンスに顧客構内リソースへのアクセスを提供するようにも構成されてもよい。いくつかの実施形態において、サービスを提供されるその他のそのようなコンピュータサービスリソースも、顧客構内リソースへのアクセスが提供されてもよく、その結果、たとえば、ブロックデータストレージサービスが、顧客構内のディレクトリに格納されるデータにアクセスしてもよく、または、弾性ロードバランサが、それが作成する各インスタンスのために、顧客構内のアプリケーションをインスタンス化してもよく、または、データウェアハウスが顧客構内ファイルシステムにアクセスし、リモート位置に自動的にバックアップしてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステムのためにユーザアクセス、ポリシー、記憶装置、アプリケーション、セキュリティ、及び/またはその他のそのようなリソースなどのディレクトリサービスを管理するように構成され、それらのディレクトリサービスへのインタフェースとしても構成されてもよい。マネージドディレクトリサービスは、企業ディレクトリなどのディレクトリのためのディレクトリサービスを管理するように構成されてもよい。ディレクトリは、ディレクトリのさまざまなオブジェクトについての情報のデータベースを含有してもよい。オブジェクトは、リソース及びセキュリティプリンシパルに対応してもよく、したがって、ユーザアクセスオブジェクト、ポリシーオブジェクト、ストアオブジェクト、アプリケーションリンクオブジェクト、セキュリティオブジェクト、及び/またはその他のそのようなオブジェクトを含有してもよい。ディレクトリデータベースはそれらのデータベースオブジェクト間の関係も含んでもよく、その結果、ディレクトリはたとえば、どのユーザがどの記憶装置へのアクセスを有するかを管理するために使用できる。
マネージドディレクトリサービスは、ディレクトリの作成を含むがこれに限定されない、そのようなサービスを提供してもよい。マネージドディレクトリサービスは、コンピューティングサービスリソースプロバイダ内、顧客構内、あるいはそれら及び/またはその他のそのような位置の組合せ内に、企業ディレクトリ、DaaS、及び/またはその他のそのようなディレクトリを含むがこれらに限定されないディレクトリを作成してもよい。コンピューティングサービスリソースプロバイダ内で作成されるディレクトリは、コンピューティングサービスリソースプロバイダで動作する仮想マシン内のスタンドアロンディレクトリとして作成されてもよく、または、それらはコンピューティングサービスリソースプロバイダのプライベート及び/または異なる限定サブセット内に位置するプライベートディレクトリとして作成されてもよい(たとえば、仮想ネットワーク及びそのトポロジに(たとえば、アプリケーションプログラミングインタフェース(API)コールによって)仕様を提供している顧客の代わりに、コンピューティングリソースサービスプロバイダによってホストされ、管理される仮想ネットワーク)。ディレクトリを作成するとき、マネージドディレクトリサービスはディレクトリと関連するさまざまな追加のリソースを作成し、リソースを管理及び/またはディレクトリに提供してもよく、さらに、いくつかの実施形態において、サービス障害、待ち時間問題、及び/またはその他のそのようなサービス関連の問題に対する追加の保護及び冗長性を提供してもよい。たとえば、ディレクトリは、ディレクトリのサーバとしての機能を果たすように構成されてもよい1つまたは複数のマシンインスタンスで作成されてもよく、または、ディレクトリにアドレス解決を提供する1つまたは複数のルーティングサービスで作成されてもよく、または、さまざまなその他のそのようなサービス及び/またはリソースで作成されてもよい。いくつかの実施形態において、コンピューティングサービスリソースプロバイダ内に作成されるディレクトリは、多領域分散及び/または仮想化システムの複数の領域内に、追加のリソース及び/またはエンティティを作成してもよく、ならびに/あるいは、マルチドメイン分散及び/または仮想化システムの種々のサブドメイン内に、追加のリソースを作成してもよい。
いくつかの実施形態において、企業ディレクトリにおけるもののような既存の顧客ディレクトリ管理システムとインタフェースし、それらのディレクトリ管理システムから分散及び/または仮想化されたコンピュータシステムサービスまでセキュリティ及び/またはその他のそのようなポリシーを拡張するように、マネージドディレクトリサービスは構成されてもよい。このような実施形態において、ディレクトリリソースは、クライアントアプリケーション、プログラム、サービス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって呼び出されてもよい1つまたは複数のライブラリに含まれる1つまたは複数のAPIコールを提供してもよく、ディレクトリリソース上での、構成、変更、管理、及び/またはその他のそのような操作を少なくとも可能にする。いくつかの実施形態において、顧客ディレクトリ管理システムはたとえば、特定の部門のユーザの、アプリケーションの特定の組合せ、ストレージ位置の特定のサブセット、特定のネットワークリソース、及び/または特定のレベルのセキュアなアクセスへのアクセスを可能にしてもよい。マネージドディレクトリサービスは、VMインスタンス、ならびにその特定の部門のユーザによって分散及び/または仮想化されたコンピュータシステム上でインスタンス化されるその他のそのようなサービスにこれらのポリシーを拡張してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、透過的に及び/または自動的に、そのようなポリシーを拡張してもよく、その結果、たとえば、特定の部門からのユーザのためにまたはその代わりにインスタンス化される仮想マシンインスタンスは、その場のすべての必要なシステム及びすべてのセキュリティ及び/またはすでに適用されているその他のポリシーでインスタンス化されてもよい。
マネージドディレクトリサービスはまた、顧客構内からコンピューティングリソースサービスプロバイダまで特定のリソースの可用性を拡張するように構成されてもよい。顧客構内に位置するファイルシステム及び/またはディレクトリなどのリソースは、たとえば、適切な証明書が示されるときにリソースにリンクを提供することによって、コンピューティングリソースサービスプロバイダ上で動作するサービスに対して利用可能にされてもよい。いくつかの実施形態において、たとえば、そのようなリンクは、ネットワークの複雑さまたはコンピューティングリソースサービスプロバイダホストマシンと顧客構内との間の著しい距離のために許容できない待ち時間を導入してもよい。マネージドディレクトリサービスは、コンピューティングリソースサービスプロバイダに対してシステムリソースを少なくとも部分的に拡張し、拡張されたシステムリソースへの読み取り及び/または書き込みに対して待ち時間の短いアクセスを提供し、同時に、顧客構内のオリジナルリソースとコンピューティングリソースサービスプロバイダ上の拡張されたリソースとの間の同期を管理することによって、この許容できない待ち時間に対処するように構成されてもよい。マネージドディレクトリサービスは、拡張されたシステムリソースへの読み取り専用アクセスを提供してもよく、または、いくつかの実施形態において、拡張されたシステムリソースへの読み書きアクセスを提供してもよい。読み取り/書き込みアクセスが提供されてもよいいくつかの実施形態において、顧客構内システムリソースはマスタに指定されてもよく、または、拡張されたシステムリソースプロバイダがマスタに指定されてもよく、または、2つのリソースは、たとえば書き込みの衝突が生じた場合に、どちらが権限を有するかを取り決めてもよい。いくつかの実施形態において、リソースは、複数のコンピューティングリソースサービスプロバイダ、コンピューティングリソースサービスプロバイダ内の複数の領域、複数の顧客構内、あるいはこれら及び/またはその他のそのような位置の組合せを含むがこれらに限定されない複数の位置に拡張されてもよい。
マネージドディレクトリサービスは、特定のリソースを顧客構内からコンピューティングリソースサービスプロバイダに移動するようにも構成されてもよく、特定のリソースをコンピュータサービスリソースプロバイダから顧客構内に戻すようにも構成されてもよい。マネージドディレクトリサービスは、たとえば、バックアップの作成、冗長性の作成、及び/またはその他のそのような目的のために、コンピュータシステムリソースの完全な及び/または部分的なスナップショットを作成するように構成されてもよい。たとえば、本明細書で説明される拡張操作は、いくつかの実施形態において、マネージドディレクトリサービスの機能を利用して、少なくとも部分的なスナップショットを作成し、顧客構内からコンピューティングリソースサービスプロバイダにそのスナップショットをコピーすることによって、スナップショットを作成してもよい。マネージドディレクトリサービスはまた、いくつかの実施形態において、コンピュータシステムリソースの完全スナップショットを作成してもよく、次いで、そのスナップショットを顧客構内からコンピューティングリソースサービスプロバイダへ、またはコンピュータリソースサービスプロバイダから顧客構内へコピーしてもよい。次いで、元のコンピュータシステムリソースにアクセスしていたコンピュータサービスの1つまたは複数は、異なる位置のコピーにアクセスするように変更されてもよい。いくつかの実施形態において、そのような移動は、特定のリソースの負荷の減少、リソースの特定の集中化した位置への移動、または、その他のそのような目的に役立ってもよい。
図1は、ディレクトリサービス(単に「コンピュータシステムディレクトリ」または「ディレクトリ」と呼ばれる)、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むがこれらに限定されないそのようなディレクトリサービスと関連するリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードなどの、コンピュータシステムディレクトリリソースにアクセスするための環境100を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス102は、コンピュータシステムクライアントデバイス104を通してコンピュータシステムに接続してもよく、1つまたは複数のコンピュータシステムサービス110への接続108を介してアクセスをリクエストしてもよい。いくつかの実施形態において、サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、信頼されたユーザによって、あるいは、ユーザによって、あるいは、自律的プロセスによって、あるいは、アラーム及び/またはその他のそのような状態の結果として、あるいは、これら及び/またはその他のそのような方法の組合せによって、発行されてもよい。
サービス(単数または複数)は、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースデータベースストレージシステム、ブロックストレージサービス、冗長データストレージサービス、データアーカイブサービス、データウェアハウジングサービス、ユーザアクセス管理サービス、コンテンツ管理サービス、及び/またはその他のそのようなコンピュータシステムサービスなどのコンピュータサービスへのアクセスを提供してもよいコンピューティングリソースサービスプロバイダ106上で動作していてもよい。コンピューティングリソースサービスプロバイダ106は、また、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースへのアクセスを提供してもよい。いくつかの分散及び/または仮想化されたコンピュータシステム環境において、コンピュータサービスと関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組合せ、あるいはその他のそのようなデバイスの実施形態でもよい。
コンピューティングリソースサービスプロバイダの1つまたは複数のサービス110は、いくつかの実施形態において、ディレクトリサービスならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースを含むがこれらに限定されない1つまたは複数のディレクトリリソース116へのアクセスを必要としてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、1つまたは複数のAPIコールを使用して、ディレクトリを作成するリクエストを受信することを含んでもよい。いくつかの実施形態において、ディレクトリは、コンピューティングリソースサービスプロバイダ内、または、顧客構内データセンタ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内、または、顧客構内データセンタ内の仮想ネットワーク内、または、いくつかのその他のそのような位置の中で作成されてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、クライアント及び/または顧客に代わってディレクトリを管理する操作などの、ディレクトリでのその他の操作を含んでもよい。
システムリソースまたはリソースがコンピューティングリソースサービスプロバイダ内に位置してもよいいくつかの実施形態において、コンピュータサービスリソースプロバイダは、1つまたは複数のシステムリソースへのアクセスを提供してもよい。システムリソースまたはリソースが、たとえば、少なくとも部分的に顧客構内にあるなど、コンピューティングリソースサービスプロバイダの外側に少なくとも部分的に位置してもよいいくつかの実施形態において、コンピュータサービスリソースプロバイダは、たとえば、ユニフォームリソース識別子(URI)またはいくつかのその他のそのようなリンクによるなど、1つまたは複数のリンクまたはロケータ114を介して、1つまたは複数のリソースへのアクセスをリクエストしてもよい。リンクは、1つまたは複数のリンクまたはロケータを介して1つまたは複数のコンピュータシステムサービスに、コンピュータシステムリソースへのアクセスを少なくとも提供するように構成されてもよいマネージドディレクトリサービス112などの、コンピューティングリソースサービスプロバイダ上で動作するサービスによって管理されてもよい。リンクは、コンピューティングリソースサービスプロバイダ内で動作するプロセスによって、あるいは、顧客構内内で動作するプロセスによって、あるいは、コンピューティングリソースサービスプロバイダに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、顧客構内に接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、マネージドディレクトリサービスのリンク及び/またはロケータを提供及び/または管理するプロセス(単数または複数)、ならびに、マネージドディレクトリサービスに関連するかつ/またはそのコントロール下にあるその他のプロセスは、コンピュータシステムエンティティ上で実行されてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダ内で、または、顧客構内で、または、これら及び/またはコンピューティングリソースサービスプロバイダのその他のそのようなローカル及び/またはリモート位置の組合せにおいて、コンピュータシステムリソースを使用してもよい。
図2は、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードを含むがこれらに限定されないコンピュータシステムディレクトリリソースにアクセスするための環境200を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス202は、コンピュータシステムクライアントデバイス204を通してその他のコンピュータシステムに接続してもよく、1つまたは複数のサービス226への接続206を介してアクセスをリクエストしてもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス204は、1つまたは複数のネットワーク216及び/または、直接または間接的にそのネットワークに接続されたその他のサーバなどのネットワーク216に関連するエンティティを介してサービスへのアクセスをリクエストしてもよい。上記のように、アクセスは、さまざまな構成及び位置のディレクトリを作成する機能、ならびに、その他のディレクトリ管理操作にアクセスする機能を含んでもよい。いくつかの実施形態において、ディレクトリは、仮想マシン及び/またはその他のクライアントがディレクトリのドメインに参加してもよいように作成及び構成されてもよく、それによって、ディレクトリにアクセスする。たとえば、ディレクトリはコンピューティングリソースサービスプロバイダ内で作成されてもよくて、仮想マシン及び/またはその他のクライアントが必要に応じてディレクトリに参加することを可能とするように構成されてもよい。ディレクトリへのアクセスを必要としてもよいクライアントは、1つまたは複数の認証された接続及び/または1つまたは複数の認可されたAPIコールを使用してディレクトリのドメインに参加することによって、そうしてもよい。コンピューティングリソースサービスプロバイダ内に作成されるディレクトリは、いくつかの実施形態において、隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に作成されてもよい。隔離仮想ネットワークは、コンピューティングリソースサービスプロバイダの、顧客が構成する隔離サブセクションであり、コンピュータリソースサービスプロバイダ内でその他のサービスに直接アクセス可能ではない、セキュアかつ隔離された仮想ネットワーク環境の顧客に、1つまたは複数のコンピューティングリソースサービスプロバイダサービスを提供する。隔離仮想ネットワークの中で作成されるリソースへのアクセスは、隔離仮想ネットワーク内のその他のサービス及びエンティティのみ利用可能でもよく、リソースが隔離仮想ネットワークのサブネット内に作成される実施形態において、リソースは、そのサブネット内のその他のサービス及びエンティティのみ利用可能でもよい。
ディレクトリへのアクセスをリクエストしてもよいコンピュータシステムクライアントデバイス204は、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、顧客構内は、1つまたは複数のディレクトリ208を含んでもよく、それは少なくとも部分的に顧客構内に位置してもよく、それはファイル、ならびに/あるいは、ディレクトリ、アプリケーション、データ、データベース、その他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなリソースを含むがこれらに限定されない、その上のその他のコンピュータシステムリソースを保存してもよい。いくつかの実施形態において、コンピュータシステムリソースは、ファイルシステムリソースでもよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、ソリッドステートドライブ、リムーバブルドライブ、あるいはこれら及び/またはその他のそのようなストレージデバイスの組合せなどの、さまざまなストレージデバイスに保存されてもよい。いくつかの実施形態において、コンピュータシステムリソースは、たとえば本明細書で説明されるネットワーク接続などの1つまたは複数の接続を介して、コンピュータシステムクライアントデバイス204によってアクセスされてもよいデータセンタ(複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイスを一箇所に置くことができる)の少なくとも一部に位置してもよい。コンピュータシステムリソース及び/またはデータセンタはローカルに位置してもよく、ローカル及びリモートを組み合わせて位置してもよい。たとえば、いくつかの実施形態において、ファイルシステム及び/またはディレクトリは、ローカルデータセンタに位置するディスク上に位置してもよく、ファイルシステム及び/またはディレクトリのコンテンツも、リモートデータセンタに位置するディスクに再現されてもよい。いくつかの他の実施形態において、ファイルシステム及び/またはディレクトリは、ローカルでもよい(すなわちデータセンタ内にホストされる))1つのデータセンタにそのコンテンツの少なくとも一部を配置し、また、ローカルまたはリモートでもよい1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分を配置してもよい。ストレージデバイスは、本明細書に説明されるような物理デバイス、及び/またはそのような物理デバイスの仮想表現を含んでもよい。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、いくつかの量の物理メモリを含んでもよく、その一部は、仮想ディスクドライブ上に作成されるファイルシステムを有する仮想ディスクドライブとしてのストレージ専用である。その他のそのようなストレージデバイスが、本開示の範囲内であると見なしてもよい。
いくつかの実施形態において、サービス226は、本明細書に説明されるような1つまたは複数のコンピュータシステムディレクトリリソースへのアクセスを必要としてもよい。サービス226は、いくつかの実施形態において、ユーザ、その他のコンピュータシステム、プロセス及び/または自動化プロセス、ならびに/あるいはその他のそのようなコンピュータシステムエンティティを含むがこれらに限定されないさまざまなその他のコンピュータシステムエンティティを含んでもよい。システムディレクトリリソースへのアクセス214は、いくつかの実施形態において、マネージドディレクトリサービス218などのサービスによって提供されてもよく、それは1つまたは複数のシステムリソースへのアクセスを提供してもよい。たとえば、ディレクトリ208は、コンピューティングリソースサービスプロバイダ内で、または、顧客構内のデータセンタ内で、または、いくつかのその他のそのような位置の中で、マネージドディレクトリサービス218によって作成されてもよい。ディレクトリがマネージドディレクトリサービスによって作成されると、マネージドディレクトリサービスは、ディレクトリに参加することを望むことがある、または、ディレクトリで認可されたコマンドを実行することを望むことがある、または、その他のディレクトリ管理操作を実行することを望むことがあるサービスにURI214を提供することによって、ディレクトリへのアクセスを提供することができる。マネージドディレクトリサービス218は、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが、認証220、認可222、及びディレクトリサービス224を介したディレクトリ管理の目的のためのアクセスを含むがこれに限定されないディレクトリの管理を行うことを可能にするさまざまなサービスを提供してもよい。
たとえば、マネージドディレクトリサービスは、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティの証明書を認証できる220認証サービスを提供し、そのエンティティが、たとえば、ディレクトリを作成する、ディレクトリ及び/またはその他のそのようなディレクトリ管理機能のドメインに参加するためにマネージドディレクトリサービスにアクセスすることが認可されるかどうかを少なくとも決定してもよい。いくつかの実施形態において、証明書は、マネージドディレクトリサービス自身によって認証されてもよく、または、それらは、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、マネージドディレクトリサービスが通信できるプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、これら及び/あるいはその他のそのようなサービスまたはエンティティの組合せによって認証されてもよい。
マネージドディレクトリサービス218はまた、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティを認可できる222認可サービスを提供し、そのエンティティがマネージドディレクトリサービスによって管理されるディレクトリに関連して、1つまたは複数の可能なアクションのうちのどのアクションを実行できるかを少なくとも決定してもよい。たとえば、エンティティがディレクトリでの実行を認可されてもよくまたは認可されることができないアクションは、ディレクトリの作成、ディレクトリを含む1組のディレクトリの説明、ディレクトリの削除、ディレクトリの別のディレクトリへの拡張、ディレクトリのスナップショットについての情報の作成及び/または提供、ディレクトリのスナップショットの削除、ディレクトリのスナップショットからのディレクトリのリストア、ディレクトリと関連するタグの管理(追加/削除)、ディレクトリのURIのエイリアスの作成、エイリアスが利用可能かどうかの確認、ならびに/あるいは、ディレクトリのURIのエイリアスの削除を含むが、これらに限定されるものではない。ディレクトリが作成されると、ディレクトリの管理者は、作成されたディレクトリを介して、ディレクトリでの操作を実行することができる。たとえば、管理者は、ファイルシステムの作成、ファイルシステムの破棄、ファイルシステムへの取付け、ファイルシステムからの取り外し、ファイルシステムへのアクセスリンクの提供、ファイルシステムへのアクセスリンクの返還要求、ファイルシステムからの読み取りの許可、ファイルシステムへの書き込みの許可、及び/または、その他のそのようなファイルシステムリソースアクションなどのアクションを実行できる。
システムリソース上のアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、その他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはその他のそのようなその上のシステムリソースオブジェクトでのアクションを含むが、これらに限定されるものではなくてもよく、本明細書に言及されるアクションのようなアクションを含んでもよい。システムリソースの開始、停止、返還要求、破棄、及び/またはそれ以外の管理を行うアクション、ならびに、その他のそのようなアクションが、利用可能なアクションに含まれてもよい。アクションを実行する認可は、たとえば、特定のエンティティに関連する1組の証明書及び/またはポリシーを保守するシステムなどの証明書発行またはポリシーシステムのようなエンティティによって管理されてもよく、少なくとも一部において証明書及び/またはポリシーの組に基づいて、エンティティが実行を認可されるアクションを決定してもよい。エンティティが実行を認可されてもよいアクションは、静的でもよく、または、時刻、証明書のタイプ、システムポリシー、性質、アクセスされるオブジェクトのタイプまたは位置、あるいは、これら及び/またはその他のそのような認可要因の組合せを含むがこれらに限定されない複数の要因によって変化してもよい。たとえば、コンピュータシステムエンティティは、ファイルシステムの特定のファイルの読み取りのみ、ファイルシステムの特定のその他のファイルの読み取り及び書き込み、ならびに、ファイルシステムの特定のその他のファイルの追加及び削除を認可されてもよい。異なるコンピュータシステムエンティティが、ファイルシステム上の任意のアクションの実行を認可されてもよいが、それは、それらのアクションが特定の位置から、そして特定の時間に開始される場合のみである。1つまたは複数のプロセスは、システムログなどのファイルシステム上のファイルへの書き込みのみ認可されてもよく、同時に、その他のプロセスが、そのファイルからの読み取りのみ認可されてもよい。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス214を提供できる224ディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソースなどのコンピュータシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能は、ディレクトリサービスによって提供されてもよい。ディレクトリサービスは、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。
いくつかの実施形態において、コンピュータシステムリソースへのアクセスは、アクセスがリクエスト側エンティティに不可視であるような方法で提供されてもよい。たとえば、アクセス214は、ディレクトリ208の位置210へのURIまたはその他のそのようなリンクとして、リクエスト側エンティティに提供されてもよい。コンピュータシステムリソース上の位置は、コンピュータシステム上で動作する1つまたは複数のプロセスによってURIに212変換されてもよい。コンピュータシステムリソースへのアクセスをリクエストしたサービスまたはエンティティ226は、コンピュータシステムリソースの位置に依存する構成を必要とすることなく、コンピュータシステムリソースにアクセスするための228受信したURIを使用してもよく、いくつかの実施形態において、サービスまたはエンティティ226がコンピュータシステムリソースに直接接続されているように動作するコンピュータシステムリソースにリンクするURIを使用してもよい。たとえば、サービスまたはエンティティに対して、サービスまたはエンティティに近い位置に位置するように見えてもよいファイルに1組のデータを書き込むように見える操作が、データを実際にネットワークパケットにパッケージ化してもよく、次いで、アクセスリンク214を介してネットワーク216を越えてパケットを転送し、ディレクトリ208に位置するファイルに実際に書き込まれる。意図されるように、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行されてもよいその他のタイプの操作も、本開示の範囲内であると見なしてもよい。
図3は、ディレクトリをサポートするコンピュータシステムディレクトリリソースにアクセスするための環境300を示す。ディレクトリリソースは、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、その上で動作する関連コードを含むがこれらに限定されるものではなくてもよい。ユーザまたはプロセス302は、コンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、接続306を介してネットワーク接続316越しに、1つまたは複数のサービス326へのアクセスをリクエストしてもよい。(たとえば、コンピューティングリソースサービスプロバイダの)コンピューティング環境は、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、顧客構内の外部の少なくとも一部に位置してもよい1つまたは複数のコンピュータシステムディレクトリ308を含んでもよい。いくつかの実施形態において、サービス326は、図1及び2に関連して少なくとも本明細書に説明されるものなどの、ディレクトリ308によって管理されるアクセスコンピュータシステムリソースを必要としてもよい。ディレクトリ308によって管理されるコンピュータシステムリソースへの(たとえば、URI314を介した)アクセスは、いくつかの実施形態において、マネージドディレクトリサービス318などのサービスによって提供されてもよく、それはディレクトリ308によって管理される1つまたは複数のシステムリソースへのアクセスを提供してもよい。アクセスは、ディレクトリの作成、ディレクトリの削除、ディレクトリの拡張、ディレクトリへの接続、ディレクトリ及び/またはその他のそのようなディレクトリ管理操作への参加の機能を含んでもよい。たとえば、ユーザまたはプロセス302は、仮想マシンサービス326によって管理される仮想マシンを、ユーザまたはプロセスが以前に作成したディレクトリ308に参加するよう所望してもよい。マネージドディレクトリサービスは、URI314を介するアクセスを提供してもよく、いくつかの実施形態において、ディレクトリに参加するための認証及び/または認可をユーザまたはプロセス302に提供してもよい。
マネージドディレクトリサービスは、さまざまなサービスを提供して、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスがシステムリソースにアクセスすることを可能にしてもよい。たとえば、マネージドディレクトリサービスは、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される220認証サービスに類似の認証サービス320を提供してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される222認可サービスに類似の322認可サービスを提供してもよい。マネージドディレクトリサービスはまた、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される224ディレクトリサービスに類似の324ディレクトリサービスも提供してもよい。マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムディレクトリリソースへの認証されたエンティティアクセス314を提供してもよいディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能は、ディレクトリサービス324によって提供されてもよい。ディレクトリサービス324は、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。いくつかの実施形態において、URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。
図4は、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、分散及び/または仮想化されたコンピュータシステム環境におけるローカル及び/またはリモートコンピュータシステムリソースに対する、ローカル及び/またはリモートサービスによる認証、認可、及びアクセスのためのユーザリクエストを提供する環境400を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス402は、コンピュータシステムクライアントデバイス404を通してコンピュータシステムに接続してもよく、マネージドディレクトリサービス、クラウドサービス、ウェブサービス、仮想マシンサービス、データベースサービス、及び/またはその他のそのようなコンピューティングリソースサービスプロバイダサービスを含むがこれらに限定されない1つまたは複数のローカル及び/またはリモートサービスへのコンピュータシステムエンティティ、ユーザ、またはプロセスによるアクセスを容易にするために、証明書の認証を406リクエストしてもよい。証明書の認証をリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。証明書の認証をリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス404は、1つまたは複数のネットワーク408及び/あるいは直接または間接的にネットワーク408に接続されるその他のサーバなどのそれらに関連するエンティティを使用して、コンピュータシステムに接続されてもよい。コンピュータシステムクライアントデバイスは、ネットワークを介してコンピュータシステムで接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、コンピュータシステムクライアントデバイス404は、マネージドディレクトリサービス410の制御に対応して及び/または制御の下で動作する1つまたは複数の認証プロセス412にアクセスしてもよく、認証プロセスは、外部プロセスからのリクエストに少なくとも応じて、コンピュータシステムエンティティ、ユーザ、またはプロセスをリクエストする証明書を認証するように構成されてもよい。たとえば、リクエスト側コンピュータシステムエンティティ、ユーザ、またはプロセスがマネージドディレクトリサービスへのアクセスが可能とされるかどうかを、認証プロセスは414を確認してもよい。認証プロセスは、ユーザ名及びパスワードの組合せを検証することによって、あるいは、ハードウェア、ソフトウェア、ファームウェア、またはその他のそのようなデバイス上に格納される暗号鍵を検証することによって、あるいは、コンピュータシステムクライアントデバイスがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、ネットワークがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、これら及び/またはその他のそのような検証方法の組合せによって、マネージドディレクトリサービスへのアクセスを有効にしてもよい。認証プロセスは、その他のそのような認証タスクを実行してもよく、いくつかの実施形態において、コンピュータシステム及び/またはその他のコンピュータシステムに格納されるデータに対応して及び/またはそのデータとともに動作するその他のプロセスと組み合わせて認証タスクを実行してもよい。
いくつかの実施形態において、本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセス402は、本明細書に説明されるように1つまたは複数のネットワーク408及び/またはネットワーク408に関連するエンティティを使用して、本明細書に説明されるコンピュータシステムクライアントデバイス404を通してコンピュータシステムに接続してもよく、中に作成されてもよいディレクトリ432上でまたはそれに接続して、1つまたは複数の操作やプロセスを実行する認可を416でリクエストしてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダから、または、コンピューティングリソースサービスプロバイダ内の、もしくは、隔離仮想ネットワークのサブネット内の、もしくは、顧客構内のデータセンタ内の、もしくは、顧客構内の仮想ネットワーク内の、もしくは、いくつかのその他のそのような位置内の隔離仮想ネットワークからアクセス可能でもよい。いくつかの実施形態において、リクエストされる操作認可は、ディレクトリの作成または削除などの、ディレクトリに関連する1つまたは複数のコンピュータシステムリソース操作を直接実行するようリクエストされる認可でもよい。いくつかの実施形態において、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を間接的に実行するようリクエストされる操作でもよい。たとえば、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を実行する認可のための、コンピュータシステムエンティティ、ユーザ、またはプロセス402の制御下のリモートコンピュータシステムサービス、プロセス、またはエンティティの認可のリクエストでもよい。認可は、マネージドディレクトリサービス410の制御に対応して及び/またはその制御の下で動作する1つまたは複数の認可プロセス418からリクエストされてもよく、認可プロセスは、外部プロセスからのリクエストに少なくとも応じるように、そして、ディレクトリ432上またはそれ以外ではそのディレクトリに関連するコンピュータシステムエンティティ、ユーザ、またはプロセスによる1つまたは複数の操作及び/またはプロセスの性能を認可するように、構成されてもよい。コンピュータシステムリソースは、顧客構内のデータセンタなどのようにローカルに位置してもよく、あるいは、リモートに位置してもよく、あるいは、分散及び/または仮想コンピュータシステム上などの複数のリモート位置に位置してもよく、あるいは、ローカル及び/またはリモート位置の組合せに位置してもよい。たとえば、ファイルシステムは、ローカルデータセンタに位置するローカルディスク上に位置してもよく、そのファイルシステムのコンテンツはまた、1つまたは複数のリモートデータセンタに位置する1つまたは複数のリモートディスクに再現されてもよい。いくつかの実施形態において、ファイルシステムは、少なくともローカルまたはリモートでもよい1つのデータセンタにそのコンテンツの少なくとも一部を配置し、また1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分とを配置してもよい。
認可されてもよい操作及び/またはプロセスの実施例は、420のリソースオブジェクトの作成及び/または破棄、422のリソースオブジェクトの読み取り及び/または書き込み、ならびに/あるいは、その他のそのようなシステムリソース操作を含むが、これらに限定されるものではない。認可は、エンティティ、ユーザ、またはプロセスによって、日時によって、エンティティのクラスによって、ユーザのクラスによって、プロセスのクラスによって、1つまたは複数のシステムポリシーによって、リクエストの性質によって、あるいは、これら及び/またはその他のそのような考慮事項の組合せによって、変化してもよい。たとえば、コンピュータシステムエンティティは、ファイル及び/またはディレクトリの作成は認可されてもよいが、それらの削除は認可されることはできなく、あるいは、プロセスは、そのプロセスによって作成されたファイル及び/またはディレクトリの削除のみ認可されてもよいが、他は認可されることはできなく、あるいは、エンティティは、特定のディレクトリで特定のファイルの読み取りは認可されてもよいが、他は認可されることはできない。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
いくつかの実施形態において、本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセス402は、本明細書に説明される1つまたは複数のネットワーク408及び/またはネットワーク408に関連するエンティティを使用して、本明細書に説明されるコンピュータシステムクライアントデバイス404を通してコンピュータシステムに接続してもよく、ディレクトリ432の管理のためにディレクトリ432へのアクセスをリクエストしてもよい1つまたは複数のローカル及び/またはリモートサービス428を作成及び/またはインスタンス化424してもよい。ディレクトリは、本明細書に説明されるような1つまたは複数の位置のうちの1つに事前に作成されていてもよく、アクセスは、URI424を介して作成されたディレクトリに提供されてもよい。いくつかの実施形態において、コンピュータサービス、プロセス、またはエンティティ428は、マネージドディレクトリサービス410の制御に対応して及び/またはその制御の下で動作する1つまたは複数のディレクトリサービスプロセス426にアクセスしてもよく、ディレクトリサービスプロセスは、外部プロセスからのリクエストに少なくとも応じ、そして、1つまたは複数のファイルシステムへのアクセスを提供するように構成されてもよい。1つまたは複数のファイルシステムへのアクセスは、ファイルならびに/あるいはディレクトリ、アプリケーション、データ、データベース、その他のファイルシステムへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなファイルシステムオブジェクトなどのその他のファイルシステムオブジェクトに対する、読み取り、書き込み、実行、削除、作成、インスタンス化、及び/またはその他のそのような操作などの操作へのアクセスを含んでもよい。いくつかの実施形態において、操作へのアクセスは、本明細書に説明されるような1つまたは複数の認可プロセス418を有する通信430によって容易にされてもよく、その中に含まれるリソース認可ポリシーに従って認可を提供する。
前述のように、図4のコンピュータシステムエンティティ、ユーザ、またはプロセス402、及びコンピュータシステムクライアントデバイス404は、分散型コンピューティングシステム及び/またはデータセンタ環境で相互接続される複数のエンティティ、ユーザ、プロセス、及び/またはデバイスの中の1つでもよい。図5は、さまざまな実施形態が行われてもよい分散コンピューティング環境及び/またはデータセンタ環境500を示す。1つまたは複数のコンピュータシステムエンティティ、ユーザ、またはプロセス502は、1つまたは複数のネットワーク508を介して1つまたは複数のコンピュータシステムサービス506に、1つまたは複数のコンピュータシステムクライアントデバイス504を介して接続してもよい。1つまたは複数のデータセンタ516に位置してもよい1つまたは複数のローカル及び/またはリモートコンピュータシステムディレクトリリソース514へのサービスによるアクセスは、512のマネージドディレクトリサービスを介して、1つまたは複数のURI510などの1つまたは複数の接続によって提供されてもよい。コンピューティングリソースサービスプロバイダ内に位置してもよいデータセンタ516は、いくつかの実施形態において、仮想データセンタでもよく、さらに隔離仮想ネットワークの一部でもよく、または、隔離仮想ネットワークのサブネットの部分でもよい。
ディレクトリがコンピューティングリソースサービスプロバイダによって提供されるデータセンタに位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、ディレクトリへのアクセスを提供するコンピューティングリソースサービスプロバイダにアクセスしてもよい位置から、データセンタ及びディレクトリにアクセスしてもよい。ディレクトリが隔離仮想ネットワーク内または隔離仮想ネットワークのサブネット内に位置し、コンピュータシステムエンティティが隔離仮想ネットワーク内またはサブネット内に位置するいくつかの実施形態において、ディレクトリは隔離仮想ネットワークまたはサブネット内のそれらのエンティティに対して利用可能とされてもよい。たとえば、コンピューティングリソースサービスプロバイダで位置するディレクトリは、コンピューティングリソースサービスプロバイダにアクセスすることができる複数のデバイスかつ複数の位置からの適切な認可を有するコンピュータシステムエンティティによってアクセスされてもよい。ディレクトリは、ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって共有されてもよく、それぞれは、それらのコンピュータシステムエンティティが位置するところに関係なく、ディレクトリにアクセスして、たとえばディレクトリのドメインに参加してもよいが、それは、それらのエンティティがコンピューティングリソースサービスプロバイダにアクセスして、適切な証明書を有する場合に限る。このような実施形態において、ディレクトリへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。
ディレクトリが、たとえば、顧客によって提供されるデータセンタに位置し、そして顧客構内に位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、同様の方法で、多くの異なる位置からディレクトリにアクセスしてもよいが、それは、それらのエンティティが顧客構内のデータセンタにアクセスする場合に限る。このような実施形態において、顧客構内のデータセンタへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。いくつかの実施形態において、ディレクトリは顧客構内の隔離ネットワークで位置してもよく、エンティティはそのようなディレクトリにアクセスしてもよいが、それは、それらは隔離ネットワークにアクセスして、適切な証明書を有する場合に限る。意図されるように、これらは例示的な実施例であり、複数のコンピュータシステムエンティティがデータセンタ及び/またはシステムリソースに接続することを可能にする516データセンタ及び514システムリソースの位置のその他のタイプ及び/または配置は、本開示の範囲内であると見なしてもよく、それらは、分散されたデータセンタ及び/またはシステムリソース、仮想データセンタ及び/またはシステムリソース、冗長性をもつデータセンタ及び/またはシステムリソース、部分的にローカルなデータセンタ及び/またはシステムリソース、隔離仮想ネットワーク、隔離仮想ネットワークのサブネット、顧客構内の隔離ネットワーク、ならびに/あるいは、部分的にリモートなデータセンタ及び/またはシステムリソースを含むが、これらに限定されない。さらに意図されるように、システムリソースは、さまざまなシステムリソースを含んでもよく、それらは、ローカル及び/またはリモートストレージ位置、システムメモリ、中央処理装置(CPU)、ネットワークインタフェース、ネットワーク帯域幅、ディスプレイデバイス、入力デバイス、ならびに/あるいはその他のそのようなコンピュータシステムリソースを含むが、これらに限定されず、これらのその他のそのようなリソースも本開示の範囲内であると見なしてもよい。
図6は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、認証及び認可証明書のために使用される中央位置ユーザプロファイル、記憶装置、及びシステムポリシーを保守するための例示的環境600を示す。管理者602は、いくつかの実施形態において、顧客構内に位置してもよい1つまたは複数のローカルストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、コンピューティングリソースサービスプロバイダに位置してもよい1つまたは複数のリモートストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、ローカル及びリモートストレージ位置の組合せに位置してもよいストレージ位置に位置してもよい、1組のシステムアクセスデータ604を有してもよい。いくつかの実施形態において、システムアクセスデータは、ユーザ名、ユーザパスワード、ユーザ個人データ、及び/またはその他のそのようなユーザプロファイル情報を含有してもよい1つまたは複数のユーザプロファイル606を含有してもよい。ユーザプロファイルは、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認証サービスなどの認証サービスを提供するために、1つまたは複数のシステムによって使用されてもよい。いくつかの実施形態において、システムアクセスデータは、1つまたは複数のコンピュータシステムリソースへの参照を含有してもよい1つまたは複数の記憶装置608を含有してもよい。いくつかの実施形態において、システムアクセスデータは、たとえば、システムサービス、ファイルシステム、ディレクトリ、マシン、仮想マシン、アプリケーション、ドキュメント、及び/またはその他のそのようなシステムリソースなどのシステムリソースへのアクセスを可能にする、禁止する、及び/または制限する1つまたは複数のポリシーステートメントを含有してもよい1つまたは複数のポリシー610を含有してもよい。ポリシーステートメントは、1つまたは複数のユーザプロファイルのコンテンツ、ユーザプロファイルタイプ、リクエスト側サービス、リクエスト側サービスタイプ、リクエスト側サービス位置、時刻、ユーザの事業価値、クライアント、顧客、リクエスト及び/またはその他のそのような事業価値、またはこれら及び/またはその他のそのような要因の組合せなどの要因に基づいて、システムリソースへのアクセスを可能にしてもよく、禁止してもよく、及び/または制限してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスを提供するコンピューティングリソースサービスプロバイダのアカウントと関連する様々なユーザに、さまざまなレベルのアクセスを提供してもよい。たとえば、一部のユーザは、ディレクトリを作成及び削除することができてもよく、一方で、その他のユーザは、ディレクトリを削除する認可がなくてもよい。したがって、図7は、マネージドディレクトリサービスによって管理されるディレクトリの管理機能へのアクセスを制御するための例示的プロセス700を示す。以下でより詳細に論じられるように、プロセスは、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスへのアクセスを認証するために、かつ、マネージドディレクトリサービスと関連する1つまたは複数のコマンドの実行を認証されるエンティティを認可するために、使用されてもよい。図4で説明されるマネージドディレクトリサービス410などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図7に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、リクエスタがマネージドディレクトリサービス、ならびにマネージドディレクトリサービスによって提供されるコマンド、リソース、及び/またはサービスのうちの1つまたは複数にアクセスすることを可能にするリクエスト702を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初に、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるプロセスなどのプロセスを使用するユーザを704で認証してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図6に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイルデータなどのシステムアクセスデータを使用してもよい。リクエスタが704で認証される場合、マネージドディレクトリサービスは708で接続を可能にし、710でリクエスタからのコマンドを受信し始める。リクエスタが704で認証されない場合、マネージドディレクトリサービスは706で接続を拒絶してもよい。
マネージドディレクトリサービスが710でリクエスタからコマンドを受信し始めると、マネージドディレクトリサービスは、リクエスタが各コマンドの実行を認可されるかどうかを714で決定してもよい。マネージドディレクトリサービスが受信してもよいコマンドの実施例は、ディレクトリを作成または破棄するコマンド、ディレクトリサービスを管理するコマンド、ディレクトリタグを管理するコマンド、ディレクトリエイリアスを管理するコマンド、ディレクトリへの読み出し及び/またはディレクトリからの書き込みのコマンド、ならびに/あるいは、その他のそのようなコマンドを含むがこれらに限定されるものではない。マネージドディレクトリサービスは、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認可プロセスなどの認可プロセスを使用して、リクエスタに各コマンドを実行することを認可してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図6に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイル及び/またはポリシーデータなどのシステムアクセスデータを使用してもよい。
リクエスタが受信したコマンドの実行を714で認可されない場合、マネージドディレクトリサービスは716で特定のコマンドを拒絶してもよく、次いで、712でリクエスタからのコマンドの処理を続けなければならないかどうか決定してもよい。いくつかの実施形態において、いくつかの拒絶されたコマンドが、コマンドを実行しないことになってもよく、いくつかの拒絶されたコマンドが、コマンドが拒絶されたリクエスタ及び/またはその他のコンピュータシステムエンティティに警告することになってもよく、いくつかの拒絶されたコマンドが、リクエスタへの接続を終了させることになってもよく、さらに、いくつかの拒絶されたコマンドが、これら及び/またはその他のそのようなアクションの組合せになってもよい。マネージドディレクトリサービスが、リクエスタからのコマンドを受信し続けることを712で決定する場合、マネージドディレクトリサービスは、710で次のコマンドを待ってもよい。マネージドディレクトリサービスが、続けることを712で決定しない場合、マネージドディレクトリサービスは、722でリクエスタを切断してもよい。いくつかの実施形態において、722リクエスタの分離は、リクエスタの分離、リクエスタへの切断の通知、1つまたは複数のその他のコンピュータシステムエンティティへの切断の通知、あるいは、これら及び/またはその他のそのような切断アクションの組合せを含んでもよい。
リクエスタが受信したコマンドの実行を714で認可される場合、マネージドディレクトリサービスは718で、コマンドの実行、コマンドが許可されることのリクエスタへの警告、コマンドが許可されることの1つまたは複数のその他のシステムエンティティへの警告、1つまたは複数のその他のシステムエンティティへのコマンドの実行のリクエスト、あるいは、これら及び/またはその他のそのような応答の組合せを含んでもよいコマンドを許可してもよい。受信したコマンド及び/または718への応答は、コマンドは、マネージドディレクトリサービスがリクエスタを722で切断してもよい、720の切断するリクエストを少なくとも一部において含んでもよいことを可能にする。マネージドディレクトリが720の切断コマンドを受信しない場合、マネージドディレクトリサービスは、710で次のコマンドを待ってもよい。
図8は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリリソースなどのマネージドディレクトリサービスを使用する1つまたは複数の高可用性ディレクトリを提供するための例示的環境800を示す。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。コンピューティングリソースサービスプロバイダ832は、コンピューティングリソースサービスプロバイダ832内に位置する1つまたは複数のディレクトリ814を含む1つまたは複数のデータセンタ812にアクセスしてもよい1つまたは複数のマネージドディレクトリサービス808を提供してもよい。少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、データセンタ812は、コンピューティングリソースサービスプロバイダ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に位置してもよい。いくつかの実施形態において、コンピューティングリソースサービスプロバイダがさまざまな位置から高可用性であり、マネージドディレクトリサービスも高可用性であるとき、マネージドディレクトリサービスに接続されるディレクトリも、高可用性にされてもよい。
いくつかの実施形態において、ディレクトリ814は、ユーザ、プロセス、デバイス、サービス、及び/またはその他のそのようなコンピュータシステムエンティティなどの1つまたは複数のコンピュータシステムエンティティによって共有されてもよいオフプレミスディレクトリ及び/またはファイルシステムでもよい。このような実施形態において、ユーザ802は、コンピュータシステムデバイス804を介してサービス806に接続してもよく、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるようにマネージドディレクトリサービス808によって提供されるURI810などのリンクを介して、ディレクトリにアクセスしてもよい。別のユーザ816も、コンピュータシステムデバイス818を介して、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービス808によって提供されるURI820などのリンクを介してディレクトリにアクセスしてもよい。ユーザ802及び/またはサービス806のためのディレクトリへのアクセスのための許可及び/またはポリシーは、ユーザ816のためのディレクトリへのアクセスのための許可及び/またはポリシーとは異なってもよい。たとえば、ユーザ802はディレクトリへの読み取り書き込みアクセスを有してもよく、一方、ユーザ816はリモートコンピュータシステムリソースへの読み取りアクセスのみ有してもよい。同様に、URI826などのリンクを介してディレクトリにアクセスしてもよいサービス822、及びURI830などのリンクを介してディレクトリにアクセスしてもよいプロセス828は、読み取り専用、読み取り/書き込み、書き込み専用、追加、及び/またはその他のタイプのディレクトリと関連する許可及び/またはポリシーを有してもよい。ディレクトリにアクセスするためのURIリンクは、すべてのユーザ、サービス、プロセス、及びその他のコンピュータシステムエンティティに対して同一でもよく、または、通信の方法によって変わってもよい。たとえば、特定のサービスは、データがディレクトリへ読み出される及び/またはディレクトリからの書き込まれる前に、URIリンクのいくつかの内部及び/または外部翻訳を必要としてもよい。
図9は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリリソースなどのマネージドディレクトリサービスを使用するディレクトリのスナップショットまたは複製を作成するための例示的環境900を示す。サービス902は、マネージドディレクトリサービス904によって提供されるURI906などのリンクを介して、リモートデータセンタ908のオフプレミスディレクトリ910などのディレクトリに接続されてもよい。第2のサービス920は、マネージドディレクトリサービス904によって提供されるURI922などのリンクを介して、リモートデータセンタ908のディレクトリ910に接続されてもよい。マネージドディレクトリサービス904と関連するプロセス(単数または複数)は、コマンドをリモートデータセンタ908に送信して、ディレクトリ910の複製912を生成してもよい。いくつかの実施形態において、複製を完成させる前に、リモートデータセンタ、マネージドディレクトリサービス、または別のそのようなコンピュータシステムエンティティなどのコンピュータシステムエンティティは最初に、ディレクトリ910での任意の書き込み、修正、更新、またはその他のそのような操作を無効にしてもよい。更新が終わると、リモートデータセンタ908は、リモートデータセンタ916に複製ディレクトリ918を914で作成してもよい。いくつかの実施形態において、複製は、冗長性、セキュリティ、またはその他のそのような目的などの目的のためにリクエストされてもよく、あるいは、複製はまた、システム性能の改善、及び/またはコンピュータシステムの1つまたは複数のエンティティに対するリソース要求の減少のためにリクエストされてもよく、あるいは、複製は、その他のそのような目的のためにリクエストされてもよい。いくつかの実施形態において、複製が作成されたあと、オリジナルは残してもまたは破棄してもよく、あるいは、オリジナル及び複製は、冗長性を提供するために同期し続けてもよく、あるいは、オリジナルはアーカイブされてもよく、あるいは、複製が作成されたあとにオリジナル及び/または複製に対して実行されるその他のアクションがあってもよい。いくつかの実施形態において、複製は、たとえばシステム負荷を減少させるために作成されてもよい。このような実施形態において、サービス920は、複製されたディレクトリ918に転送926されてもよく、URI928などのリンクによって、新しいマネージドディレクトリサービス924を介して複製されたディレクトリに接続してもよく、こうして、オリジナルディレクトリ910の負荷を減少させてもよい。
図10は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるようなマネージドディレクトリサービスと関連するディレクトリのスナップショットまたは複製を作成するための例示的プロセス1000を示す。図4で説明されるマネージドディレクトリサービス410などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図10に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスと関連するディレクトリのスナップショットまたは複製を作成するためのリクエスト1002を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスはコマンド1004を発行し、ディレクトリに対するすべての更新、書き込み、変更、及び/またはその他のそのような修正を中断してもよく、次いで、すべての更新が中断されるまで、1006で待機してもよい。すべての更新が中断されると、マネージドディレクトリサービスは最初に、1008でディレクトリのローカルコピーを作成してもよく、次いで1010で、スナップショットまたは複製をローカルに残すかどうか、すなわち、リモート位置に送信するかどうかを決定してもよい。マネージドディレクトリサービスが1010でスナップショットをローカルのままにすると決定する場合には、マネージドディレクトリサービスは、1018でディレクトリへのアクセスを再開してもよい。マネージドディレクトリサービスが1010でスナップショットをリモート位置に送信すると決定する場合には、マネージドディレクトリサービスは、1012でスナップショットをリモート位置に伝送してもよく、1014でリモート位置に転送される必要があってもよい任意のクライアントを転送してもよく、1016でシステムリソースのリモートスナップショットへのアクセスを可能にするためにリモート位置に通知してもよく、そして、最後に1018でディレクトリへのアクセスを再開する。オリジナルディレクトリが作成されてもよく、ローカル(たとえばコンピューティングリソースサービスプロバイダ内)に、または、リモート(たとえば顧客構内のデータセンタ内)に、または、ローカル及びリモート位置の組合せに、位置してもよい。たとえば、ローカルコピーにリモートディレクトリのスナップショットをとるマネージドディレクトリサービスは、ステップ1002、1004、1006、1008、1010、次いで1018を実行してもよい。別のリモートコピーにリモートリソースのスナップショットをとるマネージドディレクトリサービスは、ステップ1002〜1010を実行し、次いでステップ1012、1014、1016を実行し、最後に1018を実行してもよい。
図11は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される1つまたは複数のマネージドディレクトリサービスを使用して、リモート位置から顧客構内に位置する位置に戻ってディレクトリを再現するための例示的環境1100を示す。いくつかの実施形態において、顧客構内に位置してもよいサービス1102は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ネットワーク1104越しにマネージドディレクトリサービス1106によって提供されるURI1108などのリンクを介して、リモートデータセンタ1112のオフプレミスディレクトリ1114などのディレクトリに接続されてもよい。第2のサービス1118は、いくつかの実施形態において、リモートに位置してもよく、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービス1116によって提供されるURI1120などのリンクを介して、リモートデータセンタ1112のディレクトリ1114に接続されてもよい。
マネージドディレクトリサービス1106と関連するプロセス(単数または複数)は、コマンドをリモートデータセンタ1112に送信して、ディレクトリ1114を1110で再現してもよい。いくつかの実施形態において、レプリケーションを完成させる前に、リモートデータセンタ、マネージドディレクトリサービス、または別のそのようなコンピュータシステムエンティティなどのコンピュータシステムエンティティは最初に、ディレクトリ1114での任意の書き込み、修正、更新、またはその他のそのような操作を無効にしてもよい。更新が終わると、リモートデータセンタ1112は、1130で顧客構内に複製ディレクトリ1122を作成してもよい。複製ディレクトリが作成されると、サービスは、いくつかの実施形態において、複製ディレクトリに接続されてもよい。たとえば、サービス1102は、ディレクトリ1122に1126で接続するコマンドを受信してもよく、どちらもサービスに対してローカルであるため、サービスは直接接続してもよい。サービス1118も、ディレクトリ1122に1128で接続するコマンドを受信してもよく、ネットワーク1104を介して、マネージドディレクトリサービス1124によって提供されるURI1132を介してそうしてもよい。URI1120及びURI1132は、ディレクトリとマネージドディレクトリサービス1106の位置が異なるため、異なってもよい。マネージドディレクトリサービス1106、マネージドディレクトリサービス1116、及びマネージドディレクトリサービス1124は、同一のサービスでもよく、または、複数の別々のサービスでもよい。
図12は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように1つまたは複数のマネージドディレクトリサービスを使用して、リモート位置からローカル位置へディレクトリを再現するための例示的プロセス1200を示す。図4で説明されるマネージドディレクトリサービス410などの1つまたは複数のサービス、またはそれらのマネージドディレクトリサービスと関連するプロセスは、図12に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、第1のマネージドディレクトリサービスと関連するディレクトリから第2のマネージドディレクトリサービスと関連するローカルディレクトリへディレクトリを再現するためのリクエスト1202を受信してもよい。第1及び第2のマネージドディレクトリサービスは、いくつかの実施形態において、同一のマネージドディレクトリサービスでもよく、または、いくつかの実施形態において、異なるマネージドディレクトリサービスでもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスはコマンド1204を発行し、ディレクトリに対するすべての更新、書き込み、変更、及び/またはその他のそのような修正を中断してもよく、次いで、すべての更新が中断されるまで、1206で待機してもよい。すべての更新が中断されると、マネージドディレクトリサービスは最初、1208でディレクトリを顧客構内のローカル位置へ複製してもよく、次いで、1212で複製が完成するまで、1210で待機する。1212で複製が完成すると、マネージドディレクトリサービスは1214で、直接接続及び/またはローカル複製へのアクセスを必要としてもよいローカルクライアントのためのURIなどのリンクを提供することによって、及び、ローカル複製へのアクセスを望んでもよいリモートクライアントのためのURIなどのリンクを提供することによって、ローカル複製へのアクセスをリストアしてもよい。マネージドディレクトリはまた、1216でオリジナルディレクトリへのアクセスの保持を望んでもよいその他のクライアントによるアクセスを再開する。
図13は、さまざまな実施形態による態様を実装するための例示的環境1300の態様を示す。理解されるように、ウェブベースの環境が解説のために使用されるが、さまざまな実施形態を実装するために異なる環境が、適宜、使用されてもよい。環境には、電子クライアントデバイス1302が含まれ、それは、適切なネットワーク1304越しにリクエスト、メッセージ、または情報を送信及び/または受信し、いくつかの実施形態において、情報をデバイスのユーザへ戻すことに使用可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、組み込み型コンピュータシステム、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意のその他のそのようなネットワーク、及び/またはそれらの組合せを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境のタイプに、少なくとも一部において依存する可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書では詳細に論じない。ネットワーク越しの通信は、有線または無線接続及びそれらの組合せによって可能にすることができる。本実施例において、ネットワークはインターネットを含み、それは、環境がリクエストを受信し、それに答えてコンテンツを供給するためのウェブサーバ1306を含むためであるが、当業者にとって明らかであるように、その他のネットワークに対して、類似の目的を供給する代替のデバイスを使用することができる。
例示的な環境は、少なくとも1つのアプリケーションサーバ1308及びデータストア1310を含む。いくつかのアプリケーションサーバ、レイヤ、またはその他のエレメント、プロセスまたはコンポーネントが存在することができるが、それらは連結されてもよく、またはそれ以外に構成されてもよく、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することができることは理解されるべきである。サーバは、本明細書で使用される場合、ハードウェアデバイスまたは仮想コンピュータシステムなど、さまざまな方法で実装されてもよい。いくつかの文脈において、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを参照してもよい。本明細書で使用される場合、特に明記しない限り、または文脈から明らかでない限り、「データストア」という用語は、データの記憶、アクセス、及び検索が可能な、任意のデバイスまたはデバイスの組合せに関するものであり、任意の標準的な、分散された、仮想の、またはクラスタ化された環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データストレージデバイス、及びデータストレージメディアを含んでもよい。アプリケーションサーバは、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことができ、アプリケーションのデータアクセス及びビジネスロジックの一部またはすべてを処理する。アプリケーションサーバは、データストアと連携するアクセス制御サービスを提供してもよく、テキスト、グラフィクス、オーディオ、ビデオ、及び/またはユーザに提供するために使用可能なその他のコンテンツを含むがこれらに限定されないコンテンツを生成することができ、ハイパーテキストマークアップランゲージ(「HTML」)、拡張可能マークアップランゲージ(「XML」)、JavaScript(登録商標)、カスケーディングスタイルシート(「CSS」)、または別の適切なクライアントサイド構造化言語の形態で、ウェブサーバによってユーザに供給することができる。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理されてもよく、可聴的に、視覚的に、ならびに/あるいは触覚、味覚、及び/または嗅覚を含むその他の感覚によってユーザに認識できる形態を含むがこれらに限定されない1つまたは複数の形態でコンテンツを提供する。すべてのリクエスト及び応答の処理、ならびにクライアントデバイス1302とアプリケーションサーバ1308との間のコンテンツの配信は、本実施例においては、PHPハイパーテキストプリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、または別の適切なサーバサイド構造化言語を使用して、ウェブサーバで処理することができる。本明細書の他の場所で論じられるように、本明細書に論じられる構造化されたコードを任意の適切なデバイスまたはホストマシンで実行することができるとき、ウェブ及びアプリケーションサーバは必要ではなく、単に例示的なコンポーネントであることは理解されるべきである。さらに、単一のデバイスで実行されるように本明細書で説明される操作は、文脈から明らかでない限り、複数のデバイスで全体的に実行されてもよく、それは分散された及び/または仮想システムを形成してもよい。
データストア1310は、本開示の特定の態様に関するデータを格納するための、いくつかの別々データテーブル、データベース、データドキュメント、動的データストレージスキーム、及び/またはその他のデータストレージ機構及びメディアを含むことができる。たとえば、示されるデータストアは、生産データ1312及びユーザ情報1316を格納するための機構を含んでもよく、それは生産側のコンテンツを供給するために使用することができる。データストアはまた、ログデータ1314を格納するための機構を含むようにも示され、それは報告、分析、またはその他のそのような目的のために使用することができる。データストアに格納される必要があってもよい、ページ画像情報及びアクセス権情報などの多くのその他の態様があり、それは上記の適切な機構、またはデータストア1310の追加の機構のいずれかに格納することができることは理解されるべきである。データストア1310は、データストア1310に関連するロジックによって、アプリケーションサーバ1308からの命令を受信して、それに応じてデータを取得、更新、またはそれ以外では処理するために使用可能である。アプリケーションサーバ1308は、受信した命令に応答して、静的データ、動的データ、または動的及び静的データの組合せを提供してもよい。本明細書に説明されるように、ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及びその他のそのようなアプリケーションで使用されるデータなどの動的データは、サーバサイド構造化言語によって生成されてもよく、または、アプリケーションサーバで動作するまたはその制御下のコンテンツ管理システム(「CMS」)によって提供されてもよい。1つの実施例において、ユーザは、ユーザによって作動させられるデバイスを通して、特定のタイプのアイテムの検索要求を提出することがある。この場合、データストアは、ユーザの識別情報を検証するために、ユーザ情報にアクセスすることがあり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。次いで情報は、ユーザがユーザデバイス1302上のブラウザを介して閲覧することができるウェブページに記載される結果などで、ユーザに返すことができる。関心のある特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで閲覧することができる。しかし、本開示の実施形態は、ウェブページの文脈に必ずしも制限されるわけではなく、リクエストが必ずしもコンテンツの要求ではない場合に、一般の要求を処理することにより一般的に適用できてもよいことに注意しなければならない。
各サーバは、実行可能プログラム命令をそのサーバの一般的な管理及び操作のために提供するオペレーティングシステムを通常含み、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を通常含む。オペレーティングシステムの好適な実装及びサーバの一般的な機能は知られている、または市販のものであり、特に本明細書の開示を考慮して、当業者によって確実に実装される。
環境は、1つの実施形態において、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する、分散された及び/または仮想コンピューティング環境である。しかし、そのようなシステムは、図13に示されるよりも少ないまたは多いコンポーネントを有するシステムにおいて、同様に正しく機能することは、当業者によって理解されるであろう。それゆえ、図13のシステム1300の描写は、本来は例示的なものと見なすべきであり、本開示の範囲を限定するものではない。
実施形態の第1の組の実施形態は、以下の節を考慮して説明することができる。
1.
コンピューティングリソースサービスプロバイダのマネージドディレクトリサービスの、実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
前記コンピューティングリソースサービスプロバイダの顧客から、アプリケーションプログラミングインタフェースコールの形態で、前記コンピューティングリソースサービスプロバイダのコンピューティング環境にホストされる前記顧客の隔離仮想ネットワーク内にコンピュータシステムディレクトリを作成するリクエストを受信することと、
リクエストに応答して、作成されたコンピュータシステムディレクトリが、コンピュータシステムディレクトリのドメインに前記仮想ネットワーク内の仮想マシンを少なくとも結合するように構成される、顧客の隔離仮想ネットワークでコンピュータシステムディレクトリを作成することと、前記作成されたコンピュータシステムディレクトリが、前記コンピュータシステムディレクトリのドメインに前記仮想ネットワーク内の仮想マシンを少なくとも加えるように構成される、作成することと、
前記マネージドディレクトリサービスによって、前記顧客に代わって前記作成されたコンピュータシステムディレクトリを管理することと
を含む
コンピュータ実装化方法。
2.
前記作成されたコンピュータシステムディレクトリを管理することが、
前記作成されたコンピュータシステムディレクトリが利用不能の場合に使用可能な、前記作成されたディレクトリのレプリカを作成することと、
前記作成されたコンピュータシステムディレクトリへの修正に従って、前記レプリカ及び前記作成されたディレクトリを同期させることと
を含む、
1項に記載のコンピュータ実装化方法。
3.
前記顧客が、前記顧客のコンピューティング環境に1つまたは複数の顧客コンピュータシステムをホストし、
前記顧客の前記コンピューティング環境が、仮想プライベートネットワーク接続を介して前記隔離仮想ネットワークで通信するように構成され、
前記作成されたコンピュータシステムディレクトリが、前記顧客の前記コンピューティング環境の1つまたは複数の顧客コンピュータシステムを、前記作成されたコンピュータシステムディレクトリに結合するようにさらに構成される、
1項または2項に記載のコンピュータ実装化方法。
4.
前記作成されたコンピュータシステムディレクトリを管理することが、異なる時間に、前記作成されたコンピュータシステムディレクトリのスナップショットを取得することを含む、
1〜3項に記載のコンピュータ実装化方法。
5.
前記作成されたコンピュータシステムディレクトリのスナップショットをとるリクエストを受信すること
をさらに含み、
前記スナップショットの少なくとも1つが、前記コンピュータシステムディレクトリのスナップショットをとる前記リクエストを受信することの結果として取得される、
4項に記載のコンピュータ実装化方法。
6.
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるとき、コンピューティングリソースサービスプロバイダの顧客から、前記顧客によって指定される1つまたは複数のパラメータに従って、前記コンピューティングリソースサービスプロバイダのコンピューティング環境にコンピュータシステムディレクトリを作成するリクエストを受信し、作成されたコンピュータシステムディレクトリが、作成されたコンピュータシステムディレクトリに、コンピューティングリソースサービスプロバイダからのコンピューティングリソースを結合するように構成されるように前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記コンピュータシステムディレクトリを少なくとも作成することによって前記受信したリクエストを実行し、前記顧客に代わって前記作成されたコンピュータシステムディレクトリを管理することをシステムにさせる実行可能命令を含むメモリと
を備えるシステム。
7.
前記1つまたは複数のパラメータが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境の前記コンピューティングリソースサービスプロバイダによってホストされる前記顧客の仮想ネットワークを指定する、
6項に記載のシステム。
8.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、時間とともに前記作成されたコンピュータシステムディレクトリにもたらされる修正に従って、前記システムに前記作成されたコンピュータシステムディレクトリのレプリカを保守させる命令を含む、
6項または7項に記載のシステム。
9.
前記コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境外側のコンピューティング環境のコンピュータシステムインスタンスを前記作成されたコンピュータシステムディレクトリに結合する機能を備えて作成される、
6〜8項に記載のシステム。
10.
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境外側の前記コンピューティング環境が、前記顧客の構内にホストされる、
9項に記載のシステム。
11.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記システムに前記作成されたコンピュータシステムディレクトリを作動させるための実行可能コードにパッチをあてさせる命令を含む、
6〜10項に記載のシステム。
12.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、異なる時間に、前記システムに前記作成されたコンピュータシステムディレクトリのスナップショットを取得させる命令を含む、
節11に記載のシステム。
13.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記システムに、前記取得された複数のスナップショットのうちの取得された1つのスナップショットの前記作成されたコンピュータシステムディレクトリの一バージョンをインスタンス化させる命令を含む、
12項に記載のコンピュータシステム。
14.
コンピュータシステムの1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに少なくとも
コンピューティングリソースサービスプロバイダの顧客から、前記顧客によって指定される1つまたは複数のパラメータに従って、前記コンピューティングリソースサービスプロバイダのコンピューティング環境にコンピュータシステムディレクトリを作成するリクエストを受信させ、
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記コンピュータシステムディレクトリを少なくとも作成することによって前記受信したリクエストを満たし、その結果、前記作成されたコンピュータシステムディレクトリが、前記作成されたコンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダからのコンピューティングリソースを結合するように構成させ、
前記顧客に代わって前記作成されたコンピュータシステムディレクトリを管理させる
集合的に格納された実行可能命令を有する、
非一時的コンピュータ可読記憶媒体。
15.
前記1つまたは複数のパラメータが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境の前記コンピューティングリソースサービスプロバイダによってホストされる前記顧客の仮想ネットワークを指定する、
14項に記載の非一時的コンピュータ可読記憶媒体。
16.
前記1つまたは複数のパラメータが、前記ディレクトリが作成される前記指定された仮想ネットワークのサブネットワークを指定する、
14項または15項に記載の非一時的コンピュータ可読記憶媒体。
17.
前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリ上で管理操作を実行するアプリケーションプログラミングインタフェースコールを受信させ、満たさせる命令を含む、
14〜16項に記載の非一時的コンピュータ可読記憶媒体。
18.
前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムにフェールオーバイベントで使用するための前記作成されたコンピュータシステムディレクトリのレプリカを同期させる命令を含む、
14〜17項に記載の非一時的コンピュータ可読記憶媒体。
19.
前記コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダと異なるエンティティによってホストされるコンピューティング環境の前記作成されたコンピュータシステムディレクトリのコンピュータシステムインスタンスに結合する機能を備えて作成される、
14〜18項に記載の非一時的コンピュータ可読記憶媒体。
20.
前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを操作するために使用される実行可能コードへの更新を実行させる命令を含む、
14〜19項に記載の非一時的コンピュータ可読記憶媒体。
<実施形態の第2の組>
本出願の以下の部分は、マネージドディレクトリサービスのための技術の実施形態の第2の組を説明する。
実施形態の第2の組は、図面の第2の組を参照して説明される。
以下の説明において、さまざまな実施形態が説明される。解説の目的上、特定の構成及び詳細が、実施形態の詳細な理解を提供するために示される。しかし、特定の詳細なしで実施形態を実施してもよいことも、当業者にとって明らかである。さらにまた、実施形態が説明することを不明確にしないために、既知の特徴は省略または簡略化されてもよい。
本明細書で説明及び提案される技術は、分散及び/または仮想化されたコンピュータシステム上のローカル及び/またはリモートリソースならびにその上で動作する実行可能コードを管理する方法、システム、及びプロセスを含む。特に、ユーザ、サービス、プロセス、アプリケーション、クライアントデバイス、ゲストオペレーティングシステム及び/またはその他のそのようなコンピュータシステムエンティティを含むがこれに限定されないコンピュータシステムエンティティによる及びそれらのための、ディレクトリ、ファイルシステム、ファイル、ユーザ、セキュリティポリシー、ネットワークリソース、アプリケーション、システムストレージなどシステムリソースへのアクセスを容易にするかつ管理するシステム機能を利用するための技術が開示される。分散及び/または仮想化されたコンピュータシステムは、より良好なシステム性能、システムリソースへのより良好なアクセス、システムリソースの高可用性、より良好なデータセキュリティ、より良好なユーザセキュリティ、及び/またはその他のそのようなシステムの利益を促進するために、ローカル及び/またはリモートのシステムリソースの効率的な管理によって利益を得ることができる。
例示的な実施例において、分散及び/または仮想化されたコンピュータシステムは、ディレクトリサービスを含むがこれに限定されない1つまたは複数のコンピュータシステムサービスを有してもよく、特定のデータセンタに位置するディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどの、1つまたは複数のシステムリソースを有してもよい。ディレクトリサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどのシステムリソースは、システムリソース、コンピュータシステムリソース、サービス及びリソース、サービス及び/またはリソース、あるいはリソースとしてさまざまに、本開示の本明細書において集合的に呼ばれてもよい。これらのサービス及び/またはシステムリソースへのアクセスは、1つまたは複数のユーザアカウントと関連する1組の認証証明書を介してでもよい。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。いくつかの実施形態において、ローカル顧客データセンタは、データセンタ内のシステムリソースへのネットワークアクセスのためのローカル証明書を必要としてもよい。たとえば、コンピュータリソースサービスプロバイダで動作していてもよいサービスは、ローカルシステムリソースへのアクセスを必要としてもよいが、データセンタ内のシステムリソースへアクセスするためのローカル証明書を有することはできない。1組のリソースへの臨時の証明書及びリンクを介したローカルシステムリソースへのアクセスを提供できるサービスが、アクセスを容易にしてもよい。そのようなサービスは、作成、破棄、接続、拡張する操作、及び/またはその他のそのような管理操作を提供することによって、ローカルシステムリソースの管理を支援してもよい。そのような管理操作は、いくつかの実施形態において、認証及び認可を管理してもよいポリシーサブシステムによって容易にされてもよい。いくつかの実施形態において、ローカル及び/またはリモートサービスのローカルシステムリソースを管理するシステムはまた、ローカル及び/またはリモートサービスのリモート及び/またはローカル及びリモートが混在するシステムリソースを管理するように構成されてもよい。
本明細書で説明及び提案される技術は、ディレクトリサービスなどのコンピュータシステムサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、及び/またはストレージリソースなどのリソースの実装及び管理に関連する技術を含む。いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステム上のシステムユーザ、リソース、ポリシー、ネットワークアクセス、及び/またはセキュリティを管理する機能を含んでもよいディレクトリ・アズ・ア・サービス(DaaS)の機能を提供するように構成されてもよい。いくつかの実施形態において、マネージドディレクトリサービスは、分散及び/または仮想化されたコンピュータシステムのインスタンスによるそのような機能へのアクセスを管理するようにも構成されてもよく、その他の関連する分散及び/または仮想化されたコンピュータシステムサービスによるそのような機能へのアクセスを管理するようにも構成されてもよい。
たとえば、ユーザは、コンピューティングリソースサービスプロバイダ内に仮想マシン(VM)インスタンスを作成し、それにアクセスしてもよく、それはコンピューティングリソースサービスプロバイダによって管理できない顧客構内に格納されるシステムリソースへのアクセスを必要としてもよい。コンピューティングリソースサービスプロバイダ上で動作するマネージドディレクトリサービスは、取得した証明書を介して顧客構内ディレクトリにアクセスするように構成されてもよく、VMインスタンスに顧客構内リソースへのアクセスを提供するようにも構成されてもよい。いくつかの実施形態において、その他のそのようなコンピューティングリソースサービスプロバイダサービスも、顧客構内リソースへのアクセスが提供されてもよく、その結果、たとえば、ブロックデータストレージサービスが、顧客構内のディレクトリに格納されるデータにアクセスしてもよく、または、弾性のロードバランサが、それが作成する各インスタンスのために、顧客構内のアプリケーションをインスタンス化してもよく、または、データウェアハウスが顧客構内ファイルシステムにアクセスし、リモート位置に自動的にバックアップしてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステムに代わってユーザアクセス、ポリシー、記憶装置、アプリケーション、セキュリティ、及び/またはその他のそのようなリソースなどのディレクトリサービスを管理するように構成され、それらのディレクトリサービスへのインタフェースとしても構成されてもよい。マネージドディレクトリサービスは、企業ディレクトリなどのディレクトリのためのディレクトリサービスを管理するように構成されてもよい。ディレクトリは、ディレクトリのさまざまなオブジェクトについての情報のデータベースを含有してもよい。オブジェクトは、リソース及びセキュリティプリンシパルに対応してもよく、したがって、ユーザアクセスオブジェクト、ポリシーオブジェクト、ストアオブジェクト、アプリケーションリンクオブジェクト、セキュリティオブジェクト、及び/またはその他のそのようなオブジェクトを含有してもよい。ディレクトリデータベースはそれらのデータベースオブジェクト間の関係も含んでもよく、その結果、ディレクトリはたとえば、どのユーザがどの記憶装置へのアクセスを有するかを管理するために使用できる。
マネージドディレクトリサービスは、ディレクトリの作成を含むがこれに限定されない、そのようなサービスを提供してもよい。マネージドディレクトリサービスは、コンピューティングサービスリソースプロバイダ内、顧客構内、あるいはそれら及び/またはその他のそのような位置の組合せ内に、企業ディレクトリ、DaaS、及び/またはその他のそのようなディレクトリを含むがこれらに限定されないディレクトリを作成してもよい。コンピューティングサービスリソースプロバイダ内で作成されるディレクトリは、コンピューティングサービスリソースプロバイダで動作する仮想マシン内のスタンドアロンディレクトリとして作成されてもよく、または、それらはコンピューティングサービスリソースプロバイダのプライベート及び/または異なる限定サブセット内に位置するプライベートディレクトリとして作成されてもよい(たとえば、仮想ネットワーク及びそのトポロジに(たとえば、アプリケーションプログラミングインタフェース(API)コールによって)仕様を提供している顧客の代わりに、コンピューティングリソースサービスプロバイダによってホストされ、管理される仮想ネットワーク)。ディレクトリを作成するとき、マネージドディレクトリサービスはディレクトリと関連するさまざまな追加のリソースを作成し、リソースを管理及び/またはディレクトリに提供してもよく、また、いくつかの実施形態において、サービス障害、待ち時間問題、及び/またはその他のそのようなサービス関連の問題に対する追加の保護及び冗長性を提供してもよい。たとえば、ディレクトリは、ディレクトリのサーバとしての機能を果たすように構成されてもよい1つまたは複数のマシンインスタンスで作成されてもよく、または、ディレクトリにアドレス解決を提供する1つまたは複数のルーティングサービスで作成されてもよく、または、さまざまなその他のそのようなサービス及び/またはリソースで作成されてもよい。いくつかの実施形態において、コンピューティングサービスリソースプロバイダ内に作成されるディレクトリは、多領域分散及び/または仮想化システムの複数の領域内に、追加のリソース及び/またはエンティティを作成してもよく、及び/または、マルチドメイン分散及び/または仮想化システムの異なるサブドメイン内に、追加のリソースを作成してもよい。
いくつかの実施形態において、企業ディレクトリにおけるもののような既存の顧客ディレクトリ管理システムとインタフェースし、それらのディレクトリ管理システムから分散及び/または仮想化されたコンピュータシステムサービスまでセキュリティ及び/またはその他のそのようなポリシーを拡張するように、マネージドディレクトリサービスは構成されてもよい。このような実施形態において、ディレクトリリソースは、クライアントアプリケーション、プログラム、サービス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって呼び出されてもよい1つまたは複数のライブラリに含まれる1つまたは複数のAPIコールを提供し、ディレクトリリソース上での、構成、変更、管理、及び/またはその他のそのような操作を少なくとも可能にすることができる。いくつかの実施形態において、顧客ディレクトリ管理システムはたとえば、特定の部門のユーザの、アプリケーションの特定の組合せ、ストレージ位置の特定のサブセット、特定のネットワークリソース、及び/または特定のレベルのセキュアなアクセスへのアクセスを可能にしてもよい。マネージドディレクトリサービスは、VMインスタンス、ならびにその特定の部門のユーザによって分散及び/または仮想化されたコンピュータシステム上でインスタンス化されるその他のそのようなサービスにこれらのポリシーを拡張してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、透過的に及び/または自動的に、そのようなポリシーを拡張してもよく、その結果、たとえば、特定の部門からのユーザのためにまたはその代わりにインスタンス化される仮想マシンインスタンスは、その場のすべての必要なシステム及びすべてのセキュリティ及び/またはすでに適用されているその他のポリシーでインスタンス化されてもよい。
マネージドディレクトリサービスはまた、顧客構内からコンピューティングリソースサービスプロバイダまで特定のリソースの可用性を拡張するように構成されてもよい。顧客構内に位置するファイルシステム及び/またはディレクトリなどのリソースは、たとえば、適切な証明書が示されるときにリソースにリンクを提供することによって、コンピューティングリソースサービスプロバイダ上で動作するサービスに対して利用可能にされてもよい。いくつかの実施形態において、たとえば、そのようなリンクは、ネットワークの複雑さまたはコンピューティングリソースサービスプロバイダホストマシンと顧客構内との間の著しい距離のために許容できない待ち時間を導入してもよい。マネージドディレクトリサービスは、コンピューティングリソースサービスプロバイダに対してシステムリソースを少なくとも部分的に拡張し、拡張されたシステムリソースへの読み取り及び/または書き込みに対して待ち時間の短いアクセスを提供し、同時に、顧客構内のオリジナルリソースとコンピューティングリソースサービスプロバイダ上の拡張されたリソースとの間の同期を管理することによって、この許容できない待ち時間に対処するように構成されてもよい。マネージドディレクトリサービスは、拡張されたシステムリソースへの読み取り専用アクセスを提供してもよく、または、いくつかの実施形態において、拡張されたシステムリソースへの読み書きアクセスを提供してもよい。読み取り/書き込みアクセスが提供されてもよいいくつかの実施形態において、顧客構内システムリソースはマスタに指定されてもよく、または、拡張されたシステムリソースプロバイダが マスタに指定されてもよく、または、2つのリソースは、たとえば書き込みの衝突が生じた場合に、どちらが権限を有するかを取り決めてもよい。いくつかの実施形態において、リソースは、複数のコンピューティングリソースサービスプロバイダ、コンピューティングリソースサービスプロバイダ内の複数の領域、複数の顧客構内、あるいはこれら及び/またはその他のそのような位置の組合せを含むがこれらに限定されない複数の位置に拡張されてもよい。
マネージドディレクトリサービスは、特定のリソースを顧客構内からコンピューティングリソースサービスプロバイダに移動するようにも構成されてもよく、特定のリソースをコンピュータサービスリソースプロバイダから顧客構内に戻すようにも構成されてもよい。マネージドディレクトリサービスは、たとえば、バックアップの作成、冗長性の作成、及び/またはその他のそのような目的のために、コンピュータシステムリソースの完全な及び/または部分的なスナップショットを作成するように構成されてもよい。たとえば、本明細書で説明される拡張操作は、いくつかの実施形態において、マネージドディレクトリサービスの機能を利用して、少なくとも部分的なスナップショットを作成し、顧客構内からコンピューティングリソースサービスプロバイダにそのスナップショットをコピーすることによって、スナップショットを作成してもよい。マネージドディレクトリサービスはまた、いくつかの実施形態において、コンピュータシステムリソースの完全スナップショットを作成してもよく、次いで、そのスナップショットを顧客構内からコンピューティングリソースサービスプロバイダへ、またはコンピュータリソースサービスプロバイダから顧客構内へコピーしてもよい。次いで、元のコンピュータシステムリソースにアクセスしていたコンピュータサービスの1つまたは複数は、異なる位置のコピーにアクセスするように変更されてもよい。いくつかの実施形態において、そのような移動は、特定のリソースの負荷の減少、リソースの特定の集中化した位置への移動、または、その他のそのような目的に役立ってもよい。
図1は、ディレクトリサービス(単に「コンピュータシステムディレクトリ」または「ディレクトリ」と呼ばれる)、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むがこれらに限定されないそのようなディレクトリサービスと関連するリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連するコードなどの、コンピュータシステムディレクトリリソースにアクセスするための環境100を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス102は、コンピュータシステムクライアントデバイス104を通ってコンピュータシステムに接続してもよく、1つまたは複数のコンピュータシステムサービス110への接続108を介してアクセスをリクエストしてもよい。いくつかの実施形態において、サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、または、コンピュータシステムから発生してもよく、または、コンピュータシステムクライアントデバイスのユーザから発生してもよく、または、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、信頼されたユーザによって、あるいは、ユーザによって、あるいは、自律的プロセスによって、あるいは、アラーム及び/またはその他のそのような状態の結果として、あるいは、これら及び/またはその他のそのような方法の組合せによって、発行されてもよい。
サービス(単数または複数)は、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースデータベースストレージシステム、ブロックストレージサービス、冗長データストレージサービス、データアーカイブサービス、データウェアハウジングサービス、ユーザアクセス管理サービス、コンテンツ管理サービス、及び/またはその他のそのようなコンピュータシステムサービスなどのコンピュータサービスへのアクセスを提供してもよいコンピューティングリソースサービスプロバイダ106上で動作していてもよい。コンピューティングリソースサービスプロバイダ106また、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースへのアクセスを提供してもよい。いくつかの分散及び/または仮想化されたコンピュータシステム環境において、コンピュータサービスと関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組合せ、あるいはその他のそのようなデバイスの実施形態でもよい。
コンピューティングリソースサービスプロバイダの1つまたは複数のサービス110は、いくつかの実施形態において、ディレクトリサービスならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースを含むがこれらに限定されない1つまたは複数のディレクトリリソースへのアクセスを必要としてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、1つまたは複数のAPIコールを使用して、ディレクトリを作成するリクエストを受信することを含んでもよい。いくつかの実施形態において、ディレクトリは、コンピューティングリソースサービスプロバイダ内、または、顧客構内データセンタ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内、または、顧客構内データセンタ内の仮想ネットワーク内、または、いくつかのその他のそのような位置の中で作成されてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、クライアントに代わって及び/または顧客に代わってディレクトリを管理する操作などの、ディレクトリでのその他の操作を含んでもよい。
システムリソース(単数または複数)が、顧客構内に位置するオンプレミスディレクトリなどのローカルシステムリソース116でもよいいくつかの実施形態において、コンピュータサービスリソースプロバイダは、たとえば、ユニフォームリソース識別子(URI)またはディレクトリノード120を介したいくつかのその他のそのようなリンクによるなどの、1つまたは複数の114のリンクまたはロケータを介して1つまたは複数のリソースにアクセスしてもよい。ディレクトリノード120は、オンプレミスディレクトリ116などのシステムリソースから、接続リンク122を提供してもよい。オンプレミスディレクトリは、いくつかの実施形態において、オンプレミス接続118を介してコンピュータシステムデバイスに接続してもよい。いくつかの実施形態において、ディレクトリノードは、ローカルシステムディレクトリリソースからディレクトリノードへ状態及び/またはや構成の少なくとも一部をコピーすることによって、ローカルシステムディレクトリリソースから作成されてもよい。
いくつかの実施形態において、URI114などのリンクは、1つまたは複数のリンクまたはロケータを介して1つまたは複数のコンピュータシステムサービスに、コンピュータシステムリソースへのアクセスを少なくとも提供するように構成されてもよいマネージドディレクトリサービス112などの、コンピューティングリソースサービスプロバイダ上で動作するサービスによって管理されてもよい。リンクは、コンピューティングリソースサービスプロバイダ内で動作するプロセスによって、あるいは、顧客構内内で動作するプロセスによって、あるいは、コンピューティングリソースサービスプロバイダに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、顧客構内に接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、マネージドディレクトリサービスのリンク及び/またはロケータを提供及び/または管理するプロセス(単数または複数)、ならびに、マネージドディレクトリサービスに関連するかつ/またはそのコントロール下にあるその他のプロセスは、コンピュータシステムエンティティ上で実行されてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダ内で、または、顧客構内で、または、これら及び/またはコンピューティングリソースサービスプロバイダのその他のそのようなローカル及び/またはリモート位置の組合せにおいて、コンピュータシステムリソースを使用してもよい。
図2は、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードを含むがこれらに限定されないコンピュータシステムディレクトリリソースにアクセスするための環境200を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス202は、コンピュータシステムクライアントデバイス204を通してその他のコンピュータシステムに接続してもよく、1つまたは複数のサービス226への接続206を介してアクセスをリクエストしてもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス204は、1つまたは複数のネットワーク216及び/または、直接または間接的にそのネットワークに接続されたその他のサーバなどのネットワーク216に関連するエンティティを介してサービスへのアクセスをリクエストしてもよい。上記のように、アクセスは、さまざまな構成及び位置のディレクトリを作成する機能、ならびに、その他のディレクトリ管理操作にアクセスする機能を含んでもよい。いくつかの実施形態において、ディレクトリは、仮想マシン及び/またはその他のクライアントがディレクトリのドメインに参加してもよいように作成及び構成されてもよく、それによって、ディレクトリにアクセスする。たとえば、ディレクトリはコンピューティングリソースサービスプロバイダ内で作成されてもよくて、仮想マシン及び/またはその他のクライアントが必要に応じてディレクトリと結合することを可能とするように構成されてもよい。ディレクトリへのアクセスを必要としてもよいクライアントは、1つまたは複数の認証された接続及び/または1つまたは複数の認可されたAPIコールを使用してディレクトリのドメインに参加することによって、そうしてもよい。コンピューティングリソースサービスプロバイダ内に作成されるディレクトリは、いくつかの実施形態において、隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に作成されてもよい。隔離仮想ネットワークは、コンピューティングリソースサービスプロバイダの、顧客が構成する隔離サブセクションであり、コンピュータリソースサービスプロバイダ内でその他のサービスに直接アクセス可能ではない、セキュアかつ隔離された仮想ネットワーク環境の顧客に、1つまたは複数のコンピューティングリソースサービスプロバイダサービスを提供する。隔離仮想ネットワークの中で作成されるリソースへのアクセスは、隔離仮想ネットワーク内のその他のサービス及びエンティティのみ利用可能でもよく、リソースが隔離仮想ネットワークのサブネット内に作成される一実施形態において、リソースは、そのサブネット内のその他のサービス及びエンティティのみ利用可能でもよい。
ディレクトリへのアクセスをリクエストしてもよいコンピュータシステムクライアントデバイス204は、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、顧客構内は、1つまたは複数のディレクトリ208を含んでもよく、それは少なくとも部分的に顧客構内に位置してもよく、それはファイル、ならびに/あるいは、ディレクトリ、アプリケーション、データ、データベース、その他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなリソースを含むがこれらに限定されない、その上のその他のコンピュータシステムリソースを保存してもよい。いくつかの実施形態において、コンピュータシステムリソースは、ファイルシステムリソースでもよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、ソリッドステートドライブ、リムーバブルドライブ、あるいはこれら及び/またはその他のそのようなストレージデバイスの組合せなどの、さまざまなストレージデバイスに保存されてもよい。いくつかの実施形態において、コンピュータシステムリソースは、たとえば本明細書で説明されるネットワーク接続などの1つまたは複数の接続を介して、コンピュータシステムクライアントデバイス204によってアクセスされてもよいデータセンタ(複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイスを一箇所に置くことができる)に少なくとも一部が位置してもよい。コンピュータシステムリソース及び/またはデータセンタはローカルに位置してもよく、ローカルとリモートの組み合わせで位置してもよい。たとえば、いくつかの実施形態において、ファイルシステム及び/またはディレクトリは、ローカルデータセンタに位置するディスク上に位置してもよく、ファイルシステム及び/またはディレクトリのコンテンツも、リモートデータセンタに位置するディスクに再現されてもよい。いくつかの他の実施形態において、ファイルシステム及び/またはディレクトリは、ローカルでもよい(すなわちデータセンタ内にホストされる))1つのデータセンタにそのコンテンツの少なくとも一部を配置しまたローカルまたはリモートでもよい1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分を配置してもよい。ストレージデバイスは、本明細書に説明されるような物理デバイス、及び/またはそのような物理デバイスの仮想表現を含んでもよい。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、いくつかの量の物理メモリを含んでもよく、その一部は、仮想ディスクドライブ上に作成されるファイルシステムを有する仮想ディスクドライブとしてのストレージ専用である。その他のそのようなストレージデバイスが、本開示の範囲内であると見なしてもよい。
いくつかの実施形態において、サービス226は、本明細書に説明されるような1つまたは複数のコンピュータシステムディレクトリリソースへのアクセスを必要としてもよい。サービス226は、いくつかの実施形態において、ユーザ、その他のコンピュータシステム、プロセス及び/または自動化プロセス、ならびに/あるいはその他のそのようなコンピュータシステムエンティティを含むがこれらに限定されないさまざまなその他のコンピュータシステムエンティティを含んでもよい。サービスによるディレクトリへのアクセスは、いくつかの実施形態において、マネージドディレクトリサービス218などのサービスによって提供されてもよく、それは1つまたは複数のシステムリソースへのアクセスを提供してもよい。たとえば、ディレクトリ208は、コンピューティングリソースサービスプロバイダ内で、または、顧客構内のデータセンタ内で、または、いくつかのその他のそのような位置の中で、マネージドディレクトリサービス218によって作成されてもよい。ディレクトリがマネージドディレクトリサービスによって作成されると、マネージドディレクトリサービスは、ディレクトリと結合することを望むことがある、または、ディレクトリで認可されたコマンドを実行することを望むことがある、または、その他のディレクトリ管理操作を実行することを望むことがあるサービスにURI214を提供することによって、ディレクトリへのアクセスを提供することができる。マネージドディレクトリサービス218は、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが、認証220、認可222、及びディレクトリサービス224を介して意図されるディレクトリ管理のためのアクセスを含むがこれに限定されないディレクトリの管理を行うことを可能にするさまざまなサービスを提供してもよい。
たとえば、マネージドディレクトリサービスは、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティの証明書を認証できる220認証サービスを提供し、そのエンティティが、たとえば、ディレクトリを作成する、ディレクトリのドメインに参加する、ディレクトリ及び/またはその他のそのようなディレクトリ管理機能を拡張するためにマネージドディレクトリサービスにアクセスすることが認可されるかどうかを少なくとも決定してもよい。いくつかの実施形態において、証明書は、マネージドディレクトリサービス自身によって認証されてもよく、または、それらは、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、マネージドディレクトリサービスが通信できるプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、これら及び/あるいはその他のそのようなサービスまたはエンティティの組合せによって認証されてもよい。
マネージドディレクトリサービス218はまた、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティを認可できる222認可サービスを提供し、そのエンティティがマネージドディレクトリサービスによって管理されるディレクトリに関連して、1つまたは複数の可能なアクションのうちのどのアクションを実行できるかを少なくとも決定してもよい。たとえば、エンティティがディレクトリでの実行を認可されてもよくまたは認可することができないアクションは、ディレクトリの作成、ディレクトリを含む1組のディレクトリの説明、ディレクトリの削除、ディレクトリの別のディレクトリへの拡張、ディレクトリのスナップショットについての情報の作成及び/または提供、ディレクトリのスナップショットの削除、ディレクトリのスナップショットからのディレクトリのリストア、ディレクトリと関連するタグの管理(追加/削除)、ディレクトリのURIのエイリアスの作成、エイリアスが利用可能かどうかの確認、ならびに/あるいは、ディレクトリのURIのエイリアスの削除を含むが、これらに限定されるものではない。ディレクトリが作成されると、ディレクトリの管理者は、作成されたディレクトリで、ディレクトリでの操作を実行することができる。たとえば、管理者は、ファイルシステムの作成、ファイルシステムの破棄、ファイルシステムへの取付け、ファイルシステムからの取り外し、ファイルシステムへのアクセスリンクの提供、ファイルシステムへのアクセスリンクの返還要求、ファイルシステムからの読み取りの許可、ファイルシステムへの書き込みの許可、及び/または、その他のそのようなファイルシステムリソースアクションなどのアクションを実行できる。
システムリソース上のアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、その他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはその他のそのようなその上のシステムリソースオブジェクトでのアクションを含むが、これらに限定されるものではなくてもよく、本明細書に言及されるアクションのようなアクションを含んでもよい。システムリソースの開始、停止、返還要求、破棄、及び/またはそれ以外の管理を行うアクション、ならびに、その他のそのようなアクションが、利用可能なアクションに含まれてもよい。アクションを実行する認可は、たとえば、特定のエンティティに関連する1組の証明書及び/またはポリシーを保守するシステムなどの証明書発行またはポリシーシステムなどのエンティティによって管理されてもよく、少なくとも一部において証明書及び/またはポリシーの組に基づいて、エンティティが実行を認可されるアクションを決定してもよい。エンティティが実行を認可されてもよいアクションは、静的でもよく、または、時刻、証明書のタイプ、システムポリシー、性質、アクセスされるオブジェクトのタイプまたは位置、あるいは、これら及び/またはその他のそのような認可要因の組合せを含むがこれらに限定されない複数の要因によって変化してもよい。たとえば、コンピュータシステムエンティティは、ファイルシステムの特定のファイルの読み取りのみ、ファイルシステムの特定のその他のファイルの読み取り及び書き込み、ならびに、ファイルシステムの特定のその他のファイルの追加及び削除を認可されてもよい。異なるコンピュータシステムエンティティが、ファイルシステム上の任意のアクションの実行を認可されてもよいが、それは、それらのアクションが特定の位置から、そして特定の時間に開始される場合のみである。1つまたは複数のプロセスは、システムログなどのファイルシステム上のファイルへの書き込みのみ認可されてもよく、同時に、その他のプロセスが、そのファイルからの読み取りのみ認可されてもよい。意図されるように、これらは例示的な実施例である。マネージドディレクトリサービス認可システムによって認可されてもよいようなその他のタイプの操作および、そのようなその他の操作も、本開示の範囲内であると見なされる。
マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス214を提供できる224ディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソースなどのコンピュータシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能が、ディレクトリサービスによって提供されてもよい。ディレクトリサービスは、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。
いくつかの実施形態において、コンピュータシステムリソースへのアクセスは、アクセスがリクエスト側エンティティに透過的であるような方法で提供されてもよい。たとえば、アクセス234は、オンプレミスディレクトリ208の位置210へのURIまたはその他のそのようなリンクとして、リクエスト側エンティティに提供されてもよい。コンピュータシステムリソースの上の位置は、コンピュータシステム上で動作する1つまたは複数のプロセスによってURIに変換されてもよい。コンピュータシステムリソースへのアクセスをリクエストしたサービスまたはエンティティ226は、コンピュータシステムリソースの位置に依存する構成を必要とすることなく、コンピュータシステムリソースにアクセスするための228受信したURIを使用してもよく、いくつかの実施形態において、サービスまたはエンティティ226がコンピュータシステムリソースに直接接続されているように動作するコンピュータシステムリソースにリンクするURIを使用してもよい。サービスがURI234などのリンクを介したシステムディレクトリノードへのアクセスを提供され、次にURI214などのリンクを介してオンプレミスディレクトリ208にアクセスしてもよいいくつかの実施形態において、サービスまたはエンティティ226は、URI214及び234の一方または両方にアクセスしてもよく、システムリソース208及び/またはシステムディレクトリノード230にアクセスするために、その一方または両方を交換可能に使用してもよい。ディレクトリノード230に位置するサービスまたはエンティティに見えてもよいファイルへの1組のデータの書き込みを含むように示される操作は、データを1つまたは複数のネットワークパケット(または、その他の通信単位)にパッケージ化することによって、実際に実行されてもよく、次いで、アクセスリンク214を介してネットワーク216を越えてパケット(単数または複数)(すなわち通信単位)を転送し、ディレクトリ208に位置するファイルに実際に書き込まれる。意図されるように、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行されてもよいその他のタイプの操作も、本開示の範囲内であると見なしてもよい。
図3は、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、分散及び/または仮想化されたコンピュータシステム環境におけるローカル及び/またはリモートファイルシステムに対する、ローカル及び/またはリモートサービスによる認証、認可、及びアクセスのためのユーザリクエストを提供する環境300を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス302は、コンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、マネージドディレクトリサービス、クラウドサービス、ウェブサービス、仮想マシンサービス、データベースサービス、及び/またはその他のそのようなコンピューティングリソースサービスプロバイダサービスを含むがこれらに限定されない1つまたは複数のローカル及び/またはリモートサービスへのコンピュータシステムエンティティ、ユーザ、またはプロセスによるアクセスを容易にするために、証明書の認証を306リクエストしてもよい。アクセスは、ディレクトリの作成、ディレクトリの削除、ディレクトリの拡張、ディレクトリへの接続、ディレクトリ及び/またはその他のそのようなディレクトリ管理操作との結合の機能を含んでもよい。たとえば、ユーザまたはプロセス302は、サービス328などの仮想マシンサービスによって管理される仮想マシンを、ユーザまたはプロセスが以前に作成したディレクトリ332に結合するよう所望してもよい。マネージドディレクトリサービスは、URI324を介するアクセスを提供してもよく、いくつかの実施形態において、仮想マシンをディレクトリに結合するための認証及び/または認可をユーザまたはプロセス302に提供してもよい。いくつかの実施形態において、証明書の認証をリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。証明書の認証をリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス304は、1つまたは複数のネットワーク308及び/あるいは直接または間接的にネットワークに接続されるその他のサーバなどのネットワーク308に関連するエンティティを使用して、コンピュータシステムに接続されてもよい。コンピュータシステムクライアントデバイスは、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、コンピュータシステムクライアントデバイス304は、マネージドディレクトリサービス310の制御に対応して及び/または制御の下で動作する1つまたは複数の認証プロセス312にアクセスしてもよく、認証プロセスは、外部プロセスからリクエストに少なくとも応答して、コンピュータシステムエンティティ、ユーザ、またはプロセスをリクエストする証明書を認証するように構成されてもよい。たとえば、リクエスト側コンピュータシステムエンティティ、ユーザ、またはプロセスがマネージドディレクトリサービスへのアクセスが可能とされるかどうか認証プロセス314が確認する。認証プロセスは、ユーザ名及びパスワードの組合せを検証することによって、あるいは、ハードウェア、ソフトウェア、ファームウェア、またはその他のそのようなデバイス上に格納される暗号鍵を検証することによって、あるいは、コンピュータシステムクライアントデバイスがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、ネットワークがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、これら及び/またはその他のそのような検証方法の組合せによって、マネージドディレクトリサービスへのアクセスを有効にしてもよい。いくつかの実施形態において、認証プロセスは、その他のそのような認証タスクを実行してもよく、コンピュータシステム及び/またはその他のコンピュータシステムに格納されるデータに対応して及び/またはそのデータとともに動作するその他のプロセスと組み合わせて認証タスクを実行してもよい。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス302は、本明細書に説明されるように1つまたは複数のネットワーク308及び/またはネットワーク308に関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、中に作成されてもよいディレクトリ332上でまたはそれに接続して、1つまたは複数の操作やプロセスを実行する認可を316でリクエストしてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダから、または、コンピューティングリソースサービスプロバイダ内の、もしくは、隔離仮想ネットワークのサブネット内の、もしくは、顧客構内のデータセンタ内の、もしくは、顧客構内の仮想ネットワーク内の、もしくは、いくつかのその他のそのような位置内の隔離仮想ネットワークからアクセス可能でもよい。いくつかの実施形態において、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を直接的に実行するリクエストされる認可でもよい。いくつかの実施形態において、リクエストされる操作認可は、ディレクトリの作成または削除などの、ディレクトリに関連する1つまたは複数のコンピュータシステムリソース操作を間接的に実行するリクエストされる操作でもよい。たとえば、リクエストは、1つまたは複数のコンピュータシステムリソース操作を実行する認可のための、コンピュータシステムエンティティ、ユーザ、またはプロセス302の制御下のリモートコンピュータシステムサービス、プロセス、またはエンティティの認可のリクエストでもよい。認可は、マネージドディレクトリサービス310の制御に対応して及び/またはその制御の下で動作する1つまたは複数の認可プロセス318からリクエストされてもよく、認可プロセスは、外部プロセスからのリクエストに少なくとも応答するように、そして、ディレクトリ332上またはそれ以外ではそのディレクトリに関連するコンピュータシステムエンティティ、ユーザ、またはプロセスによる1つまたは複数の操作及び/またはプロセスの性能を認可するように、構成されてもよい。コンピュータシステムリソースは、顧客構内のデータセンタなどにローカルに位置してもよく、あるいは、リモートに位置してもよく、あるいは、分散及び/または仮想コンピュータシステム上などの複数のリモート位置に位置してもよく、あるいは、ローカル及び/またはリモート位置の組合せに位置してもよい。たとえば、ファイルシステムは、ローカルデータセンタに位置するローカルディスク上に位置してもよく、そのファイルシステムのコンテンツはまた、1つまたは複数のリモートデータセンタに位置する1つまたは複数のリモートディスクに再現されてもよい。いくつかの実施形態において、ファイルシステムは、少なくともローカルまたはリモートでもよい1つのデータセンタにそのコンテンツの少なくとも一部を配置し、また1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分とを配置してもよい。
認可されてもよい操作及び/またはプロセスの実施例は、320のリソースオブジェクトの作成及び/または破棄、322のリソースオブジェクトの読み取り及び/または書き込み、ならびに/あるいは、その他のそのようなシステムリソース操作を含むが、これらに限定されるものではない。認可は、エンティティ、ユーザ、またはプロセスによって、日時によって、エンティティのクラスによって、ユーザのクラスによって、プロセスのクラスによって、1つまたは複数のシステムポリシーによって、リクエストの性質によって、あるいは、これら及び/またはその他のそのような考慮事項の組合せによって、変化してもよい。コンピュータシステムエンティティは、ディレクトリ上のまたはディレクトリと関連する1つまたは複数のディレクトリ操作の実行を認可されてもよい。ディレクトリ操作は、ファイルの作成、ファイルの削除、ファイルからの読み取り、ファイルへの書き込み、サブディレクトリの作成、サブディレクトリの削除、許可の変更、アクセス権の付与と取り消し、所有権の変更、及び/または、その他のそのようなディレクトリ操作を含むがこれらに限定されるものではない。たとえば、コンピュータシステムエンティティは、ファイル及び/またはディレクトリの作成は認可されてもよいが、それらの削除は認可されなくて、あるいは、プロセスは、そのプロセスによって作成されたファイル及び/またはディレクトリの削除のみ認可されてもよいが、他は認可されなくて、あるいは、エンティティは、特定のディレクトリで特定のファイルの読み取りは認可されてもよいが、他は認可されない。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス302は、本明細書に説明されるように1つまたは複数のネットワーク308及び/またはネットワーク308に関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、ディレクトリ332の管理のためにディレクトリ332へのアクセスをリクエストしてもよい1つまたは複数のローカル及び/またはリモートサービス328を作成及び/またはインスタンス化324してもよい。ディレクトリは、本明細書に説明されるように1つまたは複数の位置のうちの1つに事前に作成されていてもよく、アクセスは、URI324を介して作成されたディレクトリに提供されてもよい。いくつかの実施形態において、コンピュータサービス、プロセス、またはエンティティ328は、マネージドディレクトリサービス310の制御に対応して及び/またはその制御の下で動作する1つまたは複数のディレクトリサービスプロセス326にアクセスしてもよく、ディレクトリサービスプロセスは、外部プロセスからのリクエストに少なくとも応答して、そして、1つまたは複数のファイルシステムへのアクセスを提供するように構成されてもよい。1つまたは複数のファイルシステムへのアクセスは、ファイルならびに/あるいはディレクトリ、アプリケーション、データ、データベース、その他のファイルシステムへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/または他のそのようなファイルシステムオブジェクトなどのその他のファイルシステムオブジェクトに対する、読み取り、書き込み、実行、削除、作成、インスタンス化、及び/またはその他のそのような操作などの操作へのアクセスを含んでもよい。いくつかの実施形態において、操作へのアクセスは、本明細書に説明されるように1つまたは複数の認可プロセス318を有する通信330によって容易にされてもよく、その中に含まれるリソース認可ポリシーに従って認可を提供する。
前述のように、図3のコンピュータシステムエンティティ、ユーザ、またはプロセス302、及びコンピュータシステムクライアントデバイス304は、分散型コンピューティングシステム及び/またはデータセンタ環境で相互接続される複数のエンティティ、ユーザ、プロセス、及び/またはデバイスの中の1つでもよい。図4は、さまざまな実施形態が行われてもよい分散コンピューティング環境及び/またはデータセンタ環境400を示す。1つまたは複数のコンピュータシステムエンティティ、ユーザ、またはプロセス402は、1つまたは複数のネットワーク408を介して1つまたは複数のコンピュータシステムサービス406に、1つまたは複数のコンピュータシステムクライアントデバイス404を介して接続してもよい。コンピューティングリソースサービスプロバイダ408に位置してもよい1つまたは複数のローカル及び/またはリモートコンピュータシステムディレクトリリソース414へのサービスによるアクセスは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、412のマネージドディレクトリサービスを介して、1つまたは複数のURI410などの1つまたは複数の接続によって提供されてもよい。オンプレミスディレクトリは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、接続418を介してディレクトリノード420に接続し、URI422を介してアクセスされてもよい。
ディレクトリがコンピューティングリソースサービスプロバイダによって提供されるデータセンタに位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、ディレクトリへのアクセスを提供するコンピューティングリソースサービスプロバイダにアクセスしてもよい位置から、データセンタ及びディレクトリにアクセスしてもよい。ディレクトリが隔離仮想ネットワーク内または隔離仮想ネットワークのサブネット内に位置し、コンピュータシステムエンティティが隔離仮想ネットワーク内またはサブネット内に位置するいくつかの実施形態において、ディレクトリは隔離仮想ネットワークまたはサブネット内のそれらのエンティティに対して利用可能とされてもよい。たとえば、コンピューティングリソースサービスプロバイダに位置するディレクトリは、コンピューティングリソースサービスプロバイダにアクセスすることができる複数のデバイスかつ複数の位置からの適切な認可を有するコンピュータシステムエンティティによってアクセスされてもよい。ディレクトリは、ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって共有されてもよく、それぞれは、それらのコンピュータシステムエンティティが位置するところに関係なく、ディレクトリにアクセスして、たとえばディレクトリのドメインに参加してもよいが、それは、それらのエンティティがコンピューティングリソースサービスプロバイダにアクセスして、適切な証明書を有する場合に限る。このような実施形態において、ディレクトリへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。
ディレクトリが、たとえば、顧客によって提供されるデータセンタに位置し、そして顧客構内に位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、同様の方法で、多くの異なる位置からディレクトリにアクセスしてもよいが、それは、それらのエンティティが顧客構内のデータセンタにアクセスする場合に限る。このような実施形態において、顧客構内のデータセンタへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。意図されるように、これらは例示的な実施例であり、複数のコンピュータシステムエンティティがデータセンタ及び/またはシステムリソースに接続することを可能にする416データセンタ及び414システムリソースの位置のその他のタイプ及び/または配置は、本開示の範囲内であると見なしてもよく、それらは、分散されたデータセンタ及び/またはシステムリソース、仮想データセンタ及び/またはシステムリソース、冗長性をもつデータセンタ及び/またはシステムリソース、部分的にローカルなデータセンタ及び/またはシステムリソース、隔離仮想ネットワーク、隔離仮想ネットワークのサブネット、ならびに/あるいは、部分的にリモートなデータセンタ及び/またはシステムリソースを含むが、これらに限定されない。さらに意図されるように、システムリソースは、さまざまなシステムリソースを含んでもよく、それらは、ローカル及び/またはリモートストレージ位置、システムメモリ、中央処理装置(CPU)、ネットワークインタフェース、ネットワーク帯域幅、ディスプレイデバイス、入力デバイス、ならびに/あるいはその他のそのようなコンピュータシステムリソースを含むが、これらに限定されず、これらのその他のそのようなリソースも本開示の範囲内であると見なしてもよい。
図5は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、認証及び認可証明書のために使用されるユーザプロファイル、記憶装置、及びシステムポリシーの中心位置を保守するための例示的環境500を示す。管理者502は、いくつかの実施形態において、顧客構内に位置してもよい1つまたは複数のローカルストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、コンピューティングリソースサービスプロバイダに位置してもよい1つまたは複数のリモートストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、ローカル及びリモートストレージ位置の組合せに位置してもよいストレージ位置に位置してもよい、1組のシステムアクセスデータ504を有してもよい。いくつかの実施形態において、システムアクセスデータは、ユーザ名、ユーザパスワード、ユーザ個人データ、及び/またはその他のそのようなユーザプロファイル情報を含有してもよい1つまたは複数のユーザプロファイル506を含有してもよい。ユーザプロファイルは、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認証サービスなどの認証サービスを提供するために、1つまたは複数のシステムによって使用されてもよい。いくつかの実施形態において、システムアクセスデータは、1つまたは複数のコンピュータシステムリソースへの参照を含有してもよい1つまたは複数の記憶装置508を含有してもよい。いくつかの実施形態において、システムアクセスデータは、たとえば、システムサービス、ファイルシステム、ディレクトリ、マシン、仮想マシン、アプリケーション、ドキュメント、及び/またはその他のそのようなシステムリソースなどのシステムリソースへのアクセスを可能にする、禁止する、及び/または制限する1つまたは複数のポリシーステートメントを含有してもよい1つまたは複数のポリシー510を含有してもよい。ポリシーステートメントは、1つまたは複数のユーザプロファイルのコンテンツ、ユーザプロファイルタイプ、リクエスト側サービス、リクエスト側サービスタイプ、リクエスト側サービス位置、時刻、ユーザの事業価値、クライアント、顧客、リクエスト及び/またはその他のそのような事業価値、またはこれら及び/またはその他のそのような要因の組合せなどの要因に基づいて、システムリソースへのアクセスを可能にしてもよく、禁止してもよく、及び/または制限してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスを提供するコンピューティングリソースサービスプロバイダのアカウントと関連する別のユーザに、さまざまなレベルのアクセスを提供してもよい。たとえば、一部のユーザは、ディレクトリを作成及び削除することができてもよく、一方で、その他のユーザは、ディレクトリを削除する認可がなくてもよい。したがって、図6は、マネージドディレクトリサービスによって管理されるディレクトリの管理機能へのアクセスを制御するための例示的プロセス600を示す。以下でより詳細に論じられるように、プロセスは、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスへのアクセスを認証するために、かつ、マネージドディレクトリサービスと関連する1つまたは複数のコマンドの実行を認証されるエンティティを認可するために、使用されてもよい。図3で説明されるようにマネージドディレクトリサービス310などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図6に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、リクエスタがマネージドディレクトリサービス、ならびにマネージドディレクトリサービスによって提供されるコマンド、リソース、及び/またはサービスのうちの1つまたは複数にアクセスすることを可能にするリクエスト602を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初に、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるプロセスなどのプロセスを使用するユーザを604で認証してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図5に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイルデータなどのシステムアクセスデータを使用してもよい。リクエスタが604で認証される場合、マネージドディレクトリサービスは608で接続を可能にし、610でリクエスタからのコマンドを受信し始める。リクエスタが604で認証されない場合、マネージドディレクトリサービスは606で接続を拒絶してもよい。
マネージドディレクトリサービスが610でリクエスタからコマンドを受信し始めると、マネージドディレクトリサービスは、リクエスタが各コマンドの実行を認可されるかどうかを614で決定してもよい。マネージドディレクトリサービスが受信してもよいコマンドの実施例は、ディレクトリを作成または破棄するコマンド、ディレクトリサービスを管理するコマンド、ディレクトリタグを管理するコマンド、ディレクトリエイリアスを管理するコマンド、ディレクトリへの読み出し及び/またはディレクトリからの書き込みのコマンド、ならびに/あるいは、その他のそのようなコマンドを含むがこれらに限定されるものではない。マネージドディレクトリサービスは、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認可プロセスなどの認可プロセスを使用して、各コマンドを実行するリクエスタを認可してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図5に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイル及び/またはポリシーデータなどのシステムアクセスデータを使用してもよい。
リクエスタが受信したコマンドの実行を614で認可されない場合、マネージドディレクトリサービスは616で特定のコマンドを拒絶してもよく、次いで、612でリクエスタからのコマンドの処理を続けなければならないかどうか決定してもよい。いくつかの実施形態において、いくつかの拒絶されたコマンドが、コマンドを実行しないことになってもよく、いくつかの拒絶されたコマンドが、コマンドが拒絶されたリクエスタ及び/またはその他のコンピュータシステムエンティティに警告することになってもよく、いくつかの拒絶されたコマンドが、リクエスタへの接続を終了させることになってもよく、さらに、いくつかの拒絶されたコマンドが、これら及び/またはその他のそのようなアクションの組合せになってもよい。マネージドディレクトリサービスが、リクエスタからのコマンドを受信し続けることを612で決定する場合、マネージドディレクトリサービスは、610で次のコマンドを待ってもよい。マネージドディレクトリサービスが、続けることを612で決定しない場合、マネージドディレクトリサービスは、622でリクエスタを切断してもよい。いくつかの実施形態において、622リクエスタの分離は、リクエスタの分離、リクエスタへの切断の通知、1つまたは複数のその他のコンピュータシステムエンティティへの切断の通知、あるいは、これら及び/またはその他のそのような切断アクションの組合せを含んでもよい。
リクエスタが受信したコマンドの実行を614で認可される場合、マネージドディレクトリサービスは618で、コマンドの実行、コマンドが許可されることのリクエスタへの警告、コマンドが許可されることの1つまたは複数のその他のシステムエンティティへの警告、1つまたは複数のその他のシステムエンティティへのコマンドの実行のリクエスト、あるいは、これら及び/またはその他のそのような応答の組合せを含んでもよいコマンドを許可してもよい。受信したコマンド及び/または618への応答は、マネージドディレクトリサービスにリクエスタを622で切断させてもよい、620の切断するリクエストを、コマンドが少なくとも一部分含んでもよいことを可能にする。マネージドディレクトリが620の切断コマンドを受信しない場合、マネージドディレクトリサービスは、610で次のコマンドを待ってもよい。
図7は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、システムリソースを作成し、それに接続するための例示的環境700を示す。コンピュータシステムエンティティ、サービス、ユーザ、またはプロセス702は、ディレクトリ及びファイルシステムリソースを含むがこれらに限定されない1つまたは複数のローカルコンピュータシステムリソース706を含む1つまたは複数のコンピュータシステムに対するコンピュータシステムクライアントデバイス704を通して、コンピュータシステムに接続してもよい。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。いくつかの実施形態において、コンピュータシステムエンティティは、コンピュータシステムクライアントデバイスを介して1つまたは複数のコマンドを発行し、ディレクトリノードなどのシステムリソースプロキシを使用して、オンプレミスディレクトリなどのシステムリソースをリモートシステムエンティティに708で接続してもよい。いくつかの実施形態において、ディレクトリノードは、それが示すディレクトリのラッパ、サロゲート、プロキシ、及び/またはいくつかのその他のそのような表現であり、ディレクトリリソースにアクセスを提供するが、一方で、ディレクトリデータを実際には公開しない。たとえば、ディレクトリノードは、ユーザがディレクトリのデータにアクセスすることを可能にするが、データは依然としてディレクトリにあるままであり、ディレクトリノードにはない。ローカルシステムリソースを接続するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスなどのプロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これらならびに/あるいはその他のシステム方法及び/またはエンティティの組合せによって、発行されてもよい。ローカルシステムリソースに接続するコマンド(単数または複数)は、いくつかの実施形態において、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリサービスなどのマネージドディレクトリサービス710に発行されてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは最初に、ディレクトリノードを介してコンピュータシステムリソースに接続するコマンドを712で認証及び認可してもよい。ローカルシステムリソースを作成することが認証及び認可される場合、コンピュータシステムは、718ディレクトリノードを716で作成し、接続してもよい。ディレクトリノードが作成されると、コンピュータシステムは、ローカルシステムリソースにアクセスするために使用してもよいURI730などの728リンクを決定してもよく、次いで、マネージドディレクトリサービスへのリンクを712で提供してもよい。マネージドディレクトリサービス714が、ローカルシステムリソースに726で接続するようコンピュータシステムサービスによるリクエストを受信するとき、ディレクトリノード718への接続728を介してそのようにしてもよい。マネージドディレクトリサービス714は、いくつかの実施形態において、マネージドディレクトリ710と同一でもよい。
図8は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを使用して、URIなどのリンクを介してコンピュータシステムエンティティをローカルシステムリソースに接続するための例示的プロセス800を示す。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。図3で説明されるようなマネージドディレクトリサービス310などのサービス、またはそのようなマネージドディレクトリサービスと関連するプロセスは、プロセス800に示されるアクションの少なくとも一部を実行してもよい。コンピュータシステムクライアントデバイス304に接続されるローカルシステムなどのローカルシステムは、図8に示されるアクションの少なくとも一部を実行してもよい。
マネージドディレクトリサービスは、ローカルディレクトリを作成し、接続するリクエスト802を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初、ローカルシステムがリクエストを804で認証及び認可するようにしてもよい。リクエストまたはリクエスタがそのような操作の実行が認可されないことが806で決定される場合、次いで808で、許可は与えず、プロセスは816で終了してもよい。806でローカルシステムがリクエスト及び/またはリクエスタを認証及び認可できる場合、次いで、ローカルシステムは810で接続のためのローカルディレクトリを作成してもよい。ローカルシステムが812でローカルディレクトリの作成及び/または初期化に失敗する場合、次いで、ローカルシステムは814でエラーを発行してもよく、及び816で終了してもよい。ローカルシステムが812でローカルディレクトリの作成に成功する場合、ローカルシステムはURIなどのリンクを介してローカルディレクトリが位置する場所をマネージドディレクトリサービスに818で通知してもよく、その結果、マネージドディレクトリサービスは816に戻る前に、ローカルディレクトリに接続することができる。
図9は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを介して、複数のローカル及び/またはリモートコンピュータシステムエンティティ、サービス、ユーザ、デバイス、及び/またはプロセスによるローカルディレクトリへの接続を可能にするための例示的環境900を示す。顧客構内に位置するローカルディレクトリ928は、URIなどのリンク及び1つまたは複数のマネージドディレクトリサービスを使用して、顧客構内の内部及び外部両方のコンピュータシステムエンティティに利用可能にしてもよい。たとえば、サービス902は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリノード930を使用してマネージドディレクトリサービス912によって提供されるURIなどのリンク904を介して、ネットワーク914越しにローカルディレクトリに接続してもよい。リモートユーザ906は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリノード932を使用してマネージドディレクトリサービス912によって提供されるURIなどのリンク910を介して、ネットワーク914越しにローカルディレクトリに接続してもよいシステム908に接続してもよい。
顧客構内916のローカルユーザは、URIなどのリンク922を介してローカルシステムに接続してもよいサービス920に接続してもよいシステム918に接続してもよい。リンク922はローカルであるため、いくつかの実施形態において、サービス920に直接提供されてもよく、または、いくつかの実施形態において、ローカルで動作するマネージドディレクトリサービスを介してローカルサービス920に提供されてもよく、または、いくつかの実施形態において、顧客構内で動作するいくつかのその他のプロセスによってローカルサービス920に提供されてもよい。顧客構内のローカルシステム924は、ローカルディレクトリに926で直接接続されてもよい。リモート及び/またはローカルシステム、ユーザ、デバイス、プロセス、またはその他のそのようなエンティティのうちのいずれかによるリソースへの修正は、リソースの共有された性質のために、それらのすべてに利用可能にしてもよく、少なくとも図3及び5に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、コンピュータシステムエンティティのそれぞれが提供されてもよいアクセスタイプは、ポリシーシステムに従って変化してもよい。
図10は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、クロスプラットフォームのディレクトリサービスを使用してローカルディレクトリを再現するための例示的環境1000を示す。ローカルコンピュータシステム1012は、ローカルディレクトリ1010への接続を可能にしてもよい。いくつかの実施形態において、ローカルディレクトリへのアクセス及び/または接続は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、コンピューティングリソースサービスプロバイダ1002で動作するマネージドディレクトリサービス1006によって提供されるURIなどのリンク1008を介してもよい。コンピューティングリソースサービスプロバイダで動作するサービス1004も、リンク1008を介してローカルディレクトリにアクセスしてもよい。いくつかの実施形態において、ローカルシステムは、ローカルディレクトリを第2のローカルディレクトリ1018に1014で再現してもよい。ローカルシステムは、システム効率を改善する、またはローカルディレクトリに対するリソース要求を減少させるために、あるいは、これら及び/またはその他のそのような理由を組み合わせた理由のために、ローカルディレクトリを再現してもよい。サービスは、リンク1008を介してローカルディレクトリ1010にアクセスしてもよく、または、リンク1016を介して再現されたローカルディレクトリ1018にアクセスしてもよく、または、両方のリンクを介してローカル及び再現両方のディレクトリにアクセスしてもよい。サービスがローカルディレクトリまたは再現されたローカルディレクトリにアクセスするかどうかについての決定は、ローカルシステムに対するリソース要求、サービスに対するリソース要求、ローカルシステムに対するリソース要求、所望されるアクセスのタイプ、サービスの事業価値、顧客の事業価値、サービスで動作するプロセスの事業価値、あるいは、これら及び/またはその他のそのような要因の組合せを含むがこれらに限定されないさまざまな要因に依存してもよい。いくつかの実施形態において、オンプレミスディレクトリ1010及びオンプレミスディレクトリ1018は、同一の顧客構内位置に位置してもよく、または、それらは、たとえば西海岸の1つの施設及び東海岸の1つの施設などの異なる位置に位置してもよい。
図11は、さまざまな実施形態に従って態様を実装するための例示的環境1100の態様を示す。理解されるように、ウェブベースの環境が解説のために使用されるが、さまざまな実施形態を実装するために異なる環境が、適宜、使用されてもよい。環境は、電子クライアントデバイス1102を含み、それは使用可能な任意の適切なデバイスを含み、適切なネットワーク1104にわたってリクエスト、メッセージ、または情報を送信及び/または受信することができ、いくつかの実施形態では、情報をデバイスのユーザへ戻すことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、組み込み型コンピュータシステム、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意のその他のそのようなネットワーク、及び/またはそれらの組合せを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境のタイプに、少なくとも一部において依存する可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書では詳細に論じない。ネットワーク越しの通信は、有線または無線接続及びそれらの組合せによって可能にすることができる。本実施例では、リクエストを受信し、それに答えてコンテンツを供給するために環境がウェブサーバ1106を含むとき、ネットワークはインターネットを含むが、当業者にとって明らかであるように、その他のネットワークでは、類似の目的を供給する代替のデバイスを使用してもよい。
例示的な環境は、少なくとも1つのアプリケーションサーバ1108及びデータストア1110を含む。いくつかのアプリケーションサーバ、レイヤ、またはその他のエレメント、プロセスまたはコンポーネントが存在することができるが、それらは連結されてもよく、またはそれ以外に構成されてもよく、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することができることは理解されるべきである。サーバは、本明細書で使用される場合、ハードウェアデバイスまたは仮想コンピュータシステムなど、さまざまな方法で実装されてもよい。いくつかの文脈において、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを参照してくもよい。本明細書で使用される場合、特に明記しない限り、または文脈から明らかでない限り、「データストア」という用語は、データの記憶、アクセス、及び検索が可能な、任意のデバイスまたはデバイスの組合せに関するものであり、任意の標準的な、分散された、仮想の、またはクラスタ化された環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データストレージデバイス、及びデータストレージメディアを含んでもよい。アプリケーションサーバは、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことができ、アプリケーションのデータアクセス及びビジネスロジックの一部またはすべてを処理する。アプリケーションサーバは、データストアと連携するアクセス制御サービスを提供してもよく、テキスト、グラフィクス、オーディオ、ビデオ、及び/またはユーザに提供するために使用可能なその他のコンテンツを含むがこれらに限定されないコンテンツを生成することができ、ハイパーテキストマークアップランゲージ(「HTML」)、拡張可能マークアップランゲージ(「XML」)、JavaScript、カスケーディングスタイルシート(「CSS」)、または別の適切なクライアントサイド構造化言語の形態で、ウェブサーバによってユーザに供給することができる。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理されてもよく、可聴的に、視覚的に、ならびに/あるいは触覚、味覚、及び/または嗅覚を含むその他の感覚によってユーザに認識できる形態を含むがこれらに限定されない1つまたは複数の形態でコンテンツを提供する。すべてのリクエスト及び応答の処理、ならびにクライアントデバイス1102とアプリケーションサーバ1108との間のコンテンツの配信は、本実施例においては、PHPハイパーテキストプリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、または別の適切なサーバサイド構造化言語を使用して、ウェブサーバで処理することができる。本明細書の他の場所で論じられるように、本明細書に論じられる構造化されたコードを任意の適切なデバイスまたはホストマシンで実行することができるとき、ウェブ及びアプリケーションサーバは必要ではなく、単に例示的なコンポーネントであることは理解されるべきである。さらに、単一のデバイスで実行されるように本明細書で説明される操作は、文脈から明らかでない限り、複数のデバイスで全体的に実行されてもよく、それは分散された及び/または仮想システムを形成してもよい。
データストア1110は、本開示の特定の態様に関するデータを格納するための、いくつかの別々データテーブル、データベース、データドキュメント、動的データストレージスキーム、及び/またはその他のデータストレージ機構及びメディアを含むことができる。たとえば、示されるデータストアは、生産データ1112及びユーザ情報1116を格納するための機構を含んでもよく、それは生産側のコンテンツを供給するために使用することができる。データストアはまた、ログデータ1114を格納するための機構を含むようにも示され、それは報告、分析、またはその他のそのような目的のために使用することができる。データストアに格納される必要がある、ページ画像情報及びアクセス権情報などの多くのその他の態様があり、それは上記の適切な機構、またはデータストア1110の追加の機構のいずれかに格納することができることは理解されるべきである。データストア1110は、データストア1110に関連するロジックによって、アプリケーションサーバ1108からの命令を受信して、それに応じてデータを取得、更新、またはそれ以外では処理するために使用可能である。アプリケーションサーバ1108は、受信した命令に応答して、静的データ、動的データ、または動的及び静的データの組合せを提供してもよい。本明細書に説明されるように、ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及びその他のそのようなアプリケーションで使用されるデータなどの動的データは、サーバサイド構造化言語によって生成されてもよく、または、アプリケーションサーバで動作するまたはその制御下のコンテンツ管理システム(「CMS」)によって提供されてもよい。1つの実施例において、ユーザは、ユーザによって作動させられるデバイスを通して、特定のタイプのアイテムの検索要求を提出することがある。この場合、データストアは、ユーザの識別情報を検証するために、ユーザ情報にアクセスすることがあり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。次いで情報は、ユーザがユーザデバイス1102上のブラウザを介して閲覧することができるウェブページに記載される結果などで、ユーザに返すことができる。関心のある特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで閲覧することができる。しかし、本開示の実施形態は、ウェブページの文脈に必ずしも制限されるわけではなく、リクエストが必ずしもコンテンツの要求ではない場合、一般的なリクエストの処理により一般に適用可能でもよいことに注意しなければならない。
各サーバは、実行可能プログラム命令をそのサーバの一般的な管理及び操作のために提供するオペレーティングシステムを通常含み、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を通常含む。オペレーティングシステムの好適な実装及びサーバの一般的な機能は知られている、または市販のものであり、特に本明細書の開示を考慮して、当業者によって確実に実装される。
環境は、1つの実施形態において、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する、分散された及び/または仮想コンピューティング環境である。しかし、そのようなシステムは、図11に示されるよりも少ないまたは多いコンポーネントを有するシステムにおいて、同様に正しく機能することは、当業者によって理解されるであろう。それゆえ、図11のシステム1100の描写は、本来は例示的なものと見なすべきであり、本開示の範囲を限定するものではない。
本開示の実施形態は、以下の項を考慮して説明することができる。
1.
コンピューティングリソースサービスプロバイダのマネージドディレクトリサービスの、実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
顧客コンピュータシステムディレクトリをコンピューティングリソースサービスプロバイダのコンピューティング環境で利用可能な顧客コンピューティング環境でホストさせるよう前記コンピューティングリソースサービスプロバイダの顧客から、リクエストを受信することと、
前記リクエストに応答して、前記コンピューティングリソースサービスプロバイダ環境で、コンピューティングリソースサービスプロバイダのコンピューティング環境への顧客コンピュータシステムディレクトリのレプリケーションなしで、ディレクトリ操作を実行するためにリクエストを処理するように構成される、コンピュータシステムディレクトリノードを作成することと、
前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で作成されたディレクトリノードを管理することと
を含む、
1組の操作を実行するコンピュータ実装化方法。
2.
ディレクトリ操作を実行する前記リクエストを処理することが、前記顧客コンピュータシステムディレクトリに前記リクエストを送り届けることを含む、
1項に記載のコンピュータ実装化方法。
3.
前記コンピュータシステムディレクトリノードのユニフォームリソース識別子を取得することと、
ドメインネームサービスで前記ユニフォームリソース識別子を登録し、その結果、前記ドメインネームサービスが、前記コンピュータシステムディレクトリノードのネットワークアドレスに対する前記ユニフォームリソース識別子を解決することと
をさらに含む、
1〜3項のいずれかに記載のコンピュータ実装化方法。
4.
前記リクエストが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境でホストされる前記顧客の隔離仮想ネットワークを指定し、
前記コンピュータシステムディレクトリノードが、前記指定した隔離仮想ネットワーク内に作成される、
1〜3項のいずれかに記載のコンピュータ実装化方法。
5.
前記リクエストが、前記指定した隔離仮想ネットワークのサブネットワークをさらに指定し、
前記コンピュータシステムディレクトリノードが、前記指定したサブネットワーク内に作成される、
4項に記載のコンピュータ実装化方法。
6.
前記作成されたディレクトリノードを保守することが、前記作成されたディレクトリノードを実装するコンピュータシステム上で保守操作を実行することを含む、
1〜5項のいずれかに記載のコンピュータ実装化方法。
7.
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるとき、コンピューティングリソースサービスプロバイダの顧客のために、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境への前記顧客コンピュータシステムディレクトリのレプリケーションなしで、顧客コンピュータシステムディレクトリ上にディレクトリ操作の実行を可能にするように構成されるコンピュータシステムディレクトリノードをコンピューティングリソースサービスプロバイダ環境に作成し、
前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記作成されたディレクトリノードを管理することをシステムにさせる実行可能命令とを含むメモリと
を備える、
システム。
8.
前記顧客コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダの前記環境の外側の前記顧客のコンピューティング環境でホストされる、
7項に記載のコンピュータシステム。
9.
前記システムに前記コンピュータシステムディレクトリノードを作成させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記システムに、前記ディレクトリノードを実装するためにコンピュータシステムインスタンスを構成させる命令を含み、
前記コンピュータシステムインスタンスが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境の前記顧客のその他のコンピュータシステムインスタンスが通信できるネットワークアドレスを有するように構成される、
7〜8項に記載のシステム。
10.
前記コンピュータシステムディレクトリノードが、性能のために前記顧客コンピュータシステムディレクトリにディレクトリ操作を実行するためのリクエストを送信するように作成される、
7〜9項のいずれかに記載のシステム。
11.
前記コンピュータシステムディレクトリノードが、コンピュータシステムが前記作成されたコンピュータシステムディレクトリノードを介して前記顧客コンピュータシステムディレクトリに結合することを可能にするように作成される、
7〜10項のいずれかに記載のシステム。
12.
前記コンピュータシステムディレクトリノードが、前記顧客に代わって前記コンピューティングリソースサービスプロバイダによってホストされて仮想ネットワークに作成される、
7〜11項のいずれかに記載のシステム。
13.
前記コンピュータシステムディレクトリノードが、前記顧客によって指定される前記仮想ネットワークのサブネットワークに作成される、
12項に記載のシステム。
14.
コンピュータシステムの1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに少なくとも、
コンピューティングリソースサービスプロバイダの顧客のために、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境への前記顧客コンピュータシステムディレクトリのレプリケーションなしで、顧客コンピュータシステムディレクトリ上でのディレクトリ操作の実行を可能にするように構成されるコンピュータシステムディレクトリノードをコンピューティングリソースサービスプロバイダ環境に作成させ、
前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記作成されたディレクトリノードを管理させる、集合的に格納された実行可能命令を有する、
非一時的コンピュータ可読記憶媒体。
15.
前記作成されたコンピュータシステムディレクトリノードが、前記コンピューティング環境でホストされるコンピューティングリソースが前記作成されたコンピュータシステムディレクトリノードを介して前記顧客コンピュータシステムディレクトリに結合することを可能にするように構成される、
14項に記載の非一時的コンピュータ可読記憶媒体。
16.
前記顧客コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境外側の前記顧客のコンピューティング環境でホストされる、
14〜15項に記載の非一時的コンピュータ可読記憶媒体。
17.
前記命令が、前記コンピュータシステムに、フェールオーバ用に前記コンピュータシステムディレクトリノードのレプリカを作成させる、
14〜16項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
18.
前記コンピュータシステムディレクトリノードが、サブネットワークの、顧客によって指定される、前記顧客に代わって前記コンピューティングリソースサービスプロバイダによってホストされる前記顧客の仮想ネットワークのネットワークアドレスで作成される、
14〜17項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
19.
前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリノード上で管理操作を実行するリクエストが提出可能であるウェブサービスインタフェースを提供させる命令をさらに含み、
前記コンピュータシステムディレクトリノードが、前記提供されたウェブサービスインタフェースによって提出されるリクエストに応答して作成される、
14〜18項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
20.
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境への前記顧客コンピュータシステムディレクトリのレプリケーションなしで前記顧客コンピュータシステムディレクトリ上でのディレクトリ操作の前記実行を可能にすることが、前記顧客コンピュータシステムディレクトリに前記ディレクトリ操作を実行させることを含む、
14〜19項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
<実施形態の第3の組>
本出願の以下の部分は、マネージドディレクトリサービスのための技術の実施形態の第3の組を説明する。
実施形態の第3の組は、図面の第3の組を参照して説明される。
以下の説明において、さまざまな実施形態が説明される。解説の目的上、特定の構成及び詳細が、実施形態の詳細な理解を提供するために示される。しかし、特定の詳細なしで実施形態を実施してもよいことも、当業者にとって明らかである。さらにまた、実施形態が説明することを不明確にしないために、既知の特徴は省略または簡略化されてもよい。
本明細書で説明及び提案される技術は、分散及び/または仮想化されたコンピュータシステム上のローカル及び/またはリモートリソースならびにその上で動作する実行可能コードを管理する方法、システム、及びプロセスを含む。特に、ユーザ、サービス、プロセス、アプリケーション、クライアントデバイス、ゲストオペレーティングシステム及び/またはその他のそのようなコンピュータシステムエンティティを含むがこれに限定されないコンピュータシステムエンティティによる及びそれらのための、ディレクトリ、ファイルシステム、ファイル、ユーザ、セキュリティポリシー、ネットワークリソース、アプリケーション、システムストレージなどシステムリソースへのアクセスを容易にするかつ管理するシステム機能を利用するための技術が開示される。分散及び/または仮想化されたコンピュータシステムは、より良好なシステム性能、システムリソースへのより良好なアクセス、システムリソースの高可用性、より良好なデータセキュリティ、より良好なユーザセキュリティ、及び/またはその他のそのようなシステムの利益を促進するために、ローカル及び/またはリモートのシステムリソースの効率的な管理によって利益を得ることができる。
例示的な実施例において、分散及び/または仮想化されたコンピュータシステムは、ディレクトリサービスを含むがこれに限定されない1つまたは複数のコンピュータシステムサービスを有してもよく、特定のデータセンタに位置するディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどの、1つまたは複数のシステムリソースを有してもよい。ディレクトリサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどのシステムリソースは、システムリソース、コンピュータシステムリソース、サービス及びリソース、サービス及び/またはリソース、あるいはリソースとしてさまざまに、本開示の本明細書において集合的に言及されてもよい。これらのサービス及び/またはシステムリソースへのアクセスは、1つまたは複数のユーザアカウントと関連する1組の認証証明書を介してでもよい。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。いくつかの実施形態において、ローカル顧客データセンタは、データセンタ内のシステムリソースへのネットワークアクセスのためのローカル証明書を必要としてもよい。たとえば、コンピュータリソースサービスプロバイダで動作していてもよいサービスは、ローカルシステムリソースへのアクセスを必要とするかもしれないが、データセンタ内のシステムリソースへアクセスするためのローカル証明書を持っていないかもしれない。1組のリソースへの臨時の証明書及びリンクを介したローカルシステムリソースへのアクセスを提供できるサービスが、アクセスを容易にしてもよい。そのようなサービスは、作成、破棄、接続、拡張する操作、及び/またはその他のそのような管理操作を提供することによって、ローカルシステムリソースの管理を支援してもよい。そのような管理操作は、いくつかの実施形態において、認証及び認可を管理してもよいポリシーサブシステムによって容易にされてもよい。いくつかの実施形態において、ローカル及び/またはリモートサービスのローカルシステムリソースを管理するシステムはまた、ローカル及び/またはリモートサービスのリモート及び/またはローカル及びリモートが混在するシステムリソースを管理するように構成されてもよい。
本明細書で説明及び提案される技術は、ディレクトリサービスなどのコンピュータシステムサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、及び/またはストレージリソースなどのリソースの実装及び管理に関連する技術を含む。いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステム上のシステムユーザ、リソース、ポリシー、ネットワークアクセス、及び/またはセキュリティを管理する機能を含んでもよいディレクトリ・アズ・ア・サービス(DaaS)の機能を提供するように構成されてもよい。いくつかの実施形態において、マネージドディレクトリサービスは、分散及び/または仮想化されたコンピュータシステムのインスタンスによるそのような機能へのアクセスを管理するようにも構成されてもよく、その他の関連する分散及び/または仮想化されたコンピュータシステムサービスによるそのような機能へのアクセスを管理するようにも構成されてもよい。
たとえば、ユーザは、コンピューティングリソースサービスプロバイダ内に仮想マシン(VM)インスタンスを作成し、それにアクセスしてもよく、それはコンピューティングリソースサービスプロバイダによって管理できない顧客構内に格納されるシステムリソースへのアクセスを必要としてもよい。コンピューティングリソースサービスプロバイダ上で動作するマネージドディレクトリサービスは、取得した証明書を介して顧客構内ディレクトリにアクセスするように構成されてもよく、VMインスタンスに顧客構内リソースへのアクセスを提供するようにも構成されてもよい。いくつかの実施形態において、サービスを提供されるその他のそのようなコンピュータサービスリソースも、顧客構内リソースへのアクセスが提供されてもよく、その結果、たとえば、ブロックデータストレージサービスが、顧客構内のディレクトリに格納されるデータにアクセスしてもよく、または、ロードバランサが、それが作成する各インスタンスのために、顧客構内のアプリケーションをインスタンス化してもよく、または、データウェアハウスが顧客構内ファイルシステムにアクセスし、リモート位置に自動的にバックアップしてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステムの代わりにユーザアクセス、ポリシー、記憶装置、アプリケーション、セキュリティ、及び/またはその他のそのようなリソースなどのディレクトリサービスを管理するように構成され、及びそれらのディレクトリサービスへのインタフェースとしても構成されてもよい。マネージドディレクトリサービスは、企業ディレクトリなどのディレクトリのためのディレクトリサービスを管理するように構成されてもよい。ディレクトリは、ディレクトリのさまざまなオブジェクトについての情報のデータベースを含有してもよい。オブジェクトは、リソース及びセキュリティプリンシパルに対応してもよく、したがって、ユーザアクセスオブジェクト、ポリシーオブジェクト、ストアオブジェクト、アプリケーションリンクオブジェクト、セキュリティオブジェクト、及び/またはその他のそのようなオブジェクトを含有してもよい。ディレクトリデータベースはそれらのデータベースオブジェクト間の関係も含んでもよく、その結果、ディレクトリは、たとえば、どのユーザがどの記憶装置へのアクセスを有するかを管理するために使用できる。
マネージドディレクトリサービスは、ディレクトリの作成を含むがこれに限定されない、そのようなサービスを提供してもよい。マネージドディレクトリサービスは、コンピューティングサービスリソースプロバイダ内、顧客構内、あるいはそれら及び/またはその他のそのような位置の組合せ内に、企業ディレクトリ、DaaS、及び/またはその他のそのようなディレクトリを含むがこれらに限定されないディレクトリを作成してもよい。コンピューティングサービスリソースプロバイダ内で作成されるディレクトリは、コンピューティングサービスリソースプロバイダで動作する仮想マシン内のスタンドアロンディレクトリとして作成されてもよく、または、それらはコンピューティングサービスリソースプロバイダのプライベート及び/または異なる限定サブセット内に位置するプライベートディレクトリとして作成されてもよい(たとえば、仮想ネットワーク及びそのトポロジに(たとえば、アプリケーションプログラミングインタフェース(API)コールによって)仕様を提供している顧客に代わりに、コンピューティングリソースサービスプロバイダによってホストされ、管理される仮想ネットワーク)。ディレクトリを作成するとき、マネージドディレクトリサービスはディレクトリと関連するさまざまな追加のリソースを作成し、リソースを管理及び/またはディレクトリに提供してもよく、さらに、いくつかの実施形態において、サービス障害、待ち時間問題、及び/またはその他のそのようなサービス関連の問題に対する追加の保護及び冗長性を提供してもよい。たとえば、ディレクトリは、ディレクトリのサーバとしての機能を果たすように構成されてもよい1つまたは複数のマシンインスタンスで作成されてもよく、及び/または、ディレクトリにアドレス解決を提供する1つまたは複数のルーティングサービスで作成されてもよく、または、さまざまなその他のそのようなサービス及び/またはリソースで作成されてもよい。いくつかの実施形態において、コンピューティングサービスリソースプロバイダ内に作成されるディレクトリは、多領域分散及び/または仮想化システムの複数の領域内に、追加のリソース及び/またはエンティティを作成してもよく、及び/または、マルチドメイン分散及び/または仮想化システムの異なるサブドメイン内に、追加のリソースを作成してもよい。
いくつかの実施形態において、企業ディレクトリにおけるもののような既存の顧客ディレクトリ管理システムとインタフェースし、それらのディレクトリ管理システムから分散及び/または仮想化されたコンピュータシステムサービスまでセキュリティ及び/またはその他のそのようなポリシーを拡張するように、マネージドディレクトリサービスは構成されてもよい。このような実施形態において、ディレクトリリソースは、クライアントアプリケーション、プログラム、サービス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって呼び出されてもよい1つまたは複数のライブラリに含まれる1つまたは複数のAPIコールを提供してもよく、ディレクトリリソース上での、構成、変更、管理、及び/またはその他のそのような操作を少なくとも可能にする。いくつかの実施形態において、顧客ディレクトリ管理システムはたとえば、特定の部門のユーザの、アプリケーションの特定の組合せ、ストレージ位置の特定のサブセット、特定のネットワークリソース、及び/または特定のレベルのセキュアなアクセスへのアクセスを可能にしてもよい。マネージドディレクトリサービスは、VMインスタンス、ならびにその特定の部門のユーザによって分散及び/または仮想化されたコンピュータシステム上でインスタンス化されるその他のそのようなサービスにこれらのポリシーを拡張してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、透過的に及び/または自動的に、そのようなポリシーを拡張してもよく、その結果、たとえば、特定の部門からのユーザのためにまたはその代わりにインスタンス化される仮想マシンインスタンスは、その場のすべての必要なシステム及びすべてのセキュリティ及び/またはすでに適用されているその他のポリシーでインスタンス化されてもよい。
マネージドディレクトリサービスはまた、顧客構内からコンピューティングリソースサービスプロバイダまで特定のリソースの可用性を拡張するように構成されてもよい。顧客構内に位置するファイルシステム及び/またはディレクトリなどのリソースは、たとえば、適切な証明書が示されるときにリソースにリンクを提供することによって、コンピューティングリソースサービスプロバイダ上で動作するサービスに対して利用可能にされてもよい。いくつかの実施形態において、たとえば、そのようなリンクは、ネットワークの複雑さまたはコンピューティングリソースサービスプロバイダホストマシンと顧客構内との間の著しい距離のために許容できない待ち時間を導入してもよい。マネージドディレクトリサービスは、コンピューティングリソースサービスプロバイダに対してシステムリソースを少なくとも部分的に拡張し、拡張されたシステムリソースへの読み取り及び/または書き込みに対して待ち時間の短いアクセスを提供し、同時に、顧客構内のオリジナルリソースとコンピューティングリソースサービスプロバイダ上の拡張されたリソースとの間の同期を管理することによって、この許容できない待ち時間に対処するように構成されてもよい。マネージドディレクトリサービスは、拡張されたシステムリソースへの読み取り専用アクセスを提供してもよく、または、いくつかの実施形態において、拡張されたシステムリソースへの読み書きアクセスを提供してもよい。読み取り/書き込みアクセスが提供されてもよいいくつかの実施形態において、顧客構内システムリソースはマスタに指定されてもよく、または、拡張されたシステムリソースプロバイダはマスタに指定されてもよく、または、2つのリソースは、たとえば書き込みの衝突が生じた場合に、どちらが権限を有するかを取り決めてもよい。いくつかの実施形態において、リソースは、複数のコンピューティングリソースサービスプロバイダ、コンピューティングリソースサービスプロバイダ内の複数の領域、複数の顧客構内、あるいはこれら及び/またはその他のそのような位置の組合せを含むがこれらに限定されない複数の位置に拡張されてもよい。
マネージドディレクトリサービスは、特定のリソースを顧客構内からコンピューティングリソースサービスプロバイダに移動するようにも構成されてもよく、特定のリソースをコンピュータサービスリソースプロバイダから顧客構内に戻すようにも構成されてもよい。マネージドディレクトリサービスは、たとえば、バックアップの作成、冗長性の作成、及び/またはその他のそのような目的のために、コンピュータシステムリソースの完全な及び/または部分的なスナップショットを作成するように構成されてもよい。たとえば、本明細書で説明される拡張操作は、いくつかの実施形態において、マネージドディレクトリサービスの機能を利用して、少なくとも部分的なスナップショットを作成し、顧客構内からコンピューティングリソースサービスプロバイダにそのスナップショットをコピーすることによって、スナップショットを作成してもよい。マネージドディレクトリサービスはまた、いくつかの実施形態において、コンピュータシステムリソースの完全スナップショットを作成してもよく、次いで、そのスナップショットを顧客構内からコンピューティングリソースサービスプロバイダへ、またはコンピュータリソースサービスプロバイダから顧客構内へコピーしてもよい。次いで、元のコンピュータシステムリソースにアクセスしていたコンピュータサービスの1つまたは複数は、異なる位置のコピーにアクセスするように変更されてもよい。いくつかの実施形態において、そのような移動は、特定のリソースの負荷の減少、リソースの特定の集中化した位置への移動、または、その他のそのような目的に役立ってもよい。
図1は、ディレクトリサービス(単に「コンピュータシステムディレクトリ」または「ディレクトリ」と呼ばれる)、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むがこれらに限定されないそのようなディレクトリサービスと関連するリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードなどの、コンピュータシステムディレクトリリソースにアクセスするための環境100を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス102は、コンピュータシステムクライアントデバイス104を通してコンピュータシステムに接続してもよく、1つまたは複数のコンピュータシステムサービス110への接続108を介してアクセスをリクエストしてもよい。いくつかの実施形態において、サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、信頼されたユーザによって、あるいは、ユーザによって、あるいは、自律的プロセスによって、あるいは、アラーム及び/またはその他のそのような状態の結果として、あるいは、これら及び/またはその他のそのような方法の組合せによって、発行されてもよい。
サービス(単数または複数)は、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースデータベースストレージシステム、ブロックストレージサービス、冗長データストレージサービス、データアーカイブサービス、データウェアハウジングサービス、ユーザアクセス管理サービス、コンテンツ管理サービス、及び/またはその他のそのようなコンピュータシステムサービスなどのコンピュータサービスへのアクセスを提供してもよいコンピューティングリソースサービスプロバイダ106上で動作していてもよい。コンピューティングリソースサービスプロバイダ106また、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースへのアクセスを提供してもよい。いくつかの分散及び/または仮想化されたコンピュータシステム環境において、コンピュータサービスと関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組合せ、あるいはその他のそのようなデバイスの実施形態でもよい。
コンピューティングリソースサービスプロバイダの1つまたは複数のサービス110は、いくつかの実施形態において、ディレクトリサービスならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースを含むがこれらに限定されない1つまたは複数のディレクトリリソースへのアクセスを必要としてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、1つまたは複数のAPIコールを使用して、ディレクトリを作成するリクエストを受信することを含んでもよい。いくつかの実施形態において、ディレクトリは、コンピューティングリソースサービスプロバイダ内、または、顧客構内データセンタ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内、または、顧客構内データセンタ内の仮想ネットワーク内、または、いくつかのその他のそのような位置の中で作成されてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、クライアント及び/または顧客に代わってディレクトリを管理する操作などの、ディレクトリでのその他の操作を含んでもよい。
システムリソース(単数または複数)が、顧客構内に位置するオンプレミスディレクトリなどのローカルシステムリソース120でもよいいくつかの実施形態において、コンピュータシステムクライアントデバイス104は、ローカルシステムリソース120へのアクセス118を有してもよく、同時に、1つまたは複数のサービス110は、ローカルシステムリソースへの直接アクセスを有することができない。このような実施形態において、コンピュータサービスリソースプロバイダは、たとえば、ユニフォームリソース識別子(URI)またはいくつかのその他のそのようなリンクによるなど、1つまたは複数の114リンクまたはロケータを介して110サービスに関連してもよい、ディレクトリなどの116システムリソースにローカルシステムリソースを122で拡張することによって、ローカルシステムリソースへのアクセスを備えてもよい。 システムリソースは、ローカルシステムリソースからリモートシステムリソースへ少なくとも一部のコンテンツ、状態、及び/または構造をコピーすることによって拡張されてもよい。たとえば、ローカルシステムリソースがファイルシステムであるいくつかの実施形態において、リモートファイルシステムが、ローカルファイルシステムの拡張として機能するように、リモートシステムリソースは、ローカルファイルシステムの構造、コンテンツの一部またはすべて、ならびに状態の一部またはすべてをリモートファイルシステムへコピーしてもよい。いくつかの実施形態において、1つまたは複数のサービスが有するアクセスのタイプに基づき、リモートファイルシステムリソース、読み書き阻止、書き込み同期、マスタスレーブ指示、及び/またはその他のシステムアクセスポリシーが、URI114などのリンクのために実装されてもよい。
いくつかの実施形態において、URI114などのリンクは、1つまたは複数のリンクまたはロケータを介して1つまたは複数のコンピュータシステムサービスに、コンピュータシステムリソースへのアクセスを少なくとも提供するように構成されてもよいマネージドディレクトリサービス112などの、コンピューティングリソースサービスプロバイダ上で動作するサービスによって管理されてもよい。リンクは、コンピューティングリソースサービスプロバイダ内で動作するプロセスによって、あるいは、顧客構内内で動作するプロセスによって、あるいは、コンピューティングリソースサービスプロバイダに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、顧客構内に接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、マネージドディレクトリサービスのリンク及び/またはロケータを提供及び/または管理するプロセス(単数または複数)、ならびに、マネージドディレクトリサービス関連するかつ/またはそのコントロール下にあるその他のプロセスは、コンピュータシステムエンティティ上で実行されてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダ内で、または、顧客構内で、または、これら及び/またはコンピューティングリソースサービスプロバイダのその他のそのようなローカル及び/またはリモート位置の組合せにおいて、コンピュータシステムリソースを使用してもよい。
図2は、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードを含むがこれらに限定されないコンピュータシステムディレクトリリソースにアクセスするための環境200を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス202は、コンピュータシステムクライアントデバイス204を通してその他のコンピュータシステムに接続してもよく、1つまたは複数のサービス226への接続206を介してアクセスをリクエストしてもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス204は、1つまたは複数のネットワーク216及び/または、直接または間接的にそのネットワークに接続されたその他のサーバなどのネットワーク216に関連するエンティティを介してサービスへのアクセスをリクエストしてもよい。上記のように、アクセスは、さまざまな構成及び位置のディレクトリを作成する機能、ならびに、その他のディレクトリ管理操作にアクセスする機能を含んでもよい。いくつかの実施形態において、ディレクトリは、仮想マシン及び/またはその他のクライアントがディレクトリのドメインに参加してもよいように作成及び構成されてもよく、それによって、ディレクトリにアクセスする。たとえば、ディレクトリはコンピューティングリソースサービスプロバイダ内で作成されてもよくて、仮想マシン及び/またはその他のクライアントが必要に応じてディレクトリと結合することを可能とするように構成されてもよい。ディレクトリへのアクセスを必要としてもよいクライアントは、1つまたは複数の認証された接続及び/または1つまたは複数の認可されたAPIコールを使用してディレクトリのドメインに参加することによって、そうしてもよい。コンピューティングリソースサービスプロバイダ内に作成されるディレクトリは、いくつかの実施形態において、隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に作成されてもよい。隔離仮想ネットワークは、コンピューティングリソースサービスプロバイダの、顧客が構成する隔離サブセクションであり、コンピュータリソースサービスプロバイダ内でその他のサービスに直接アクセス可能ではない、セキュアかつ隔離された仮想ネットワーク環境の顧客に、1つまたは複数のコンピューティングリソースサービスプロバイダサービスを提供する。隔離仮想ネットワークの中で作成されるリソースへのアクセスは、隔離仮想ネットワーク内のその他のサービス及びエンティティのみ利用可能でもよく、リソースが隔離仮想ネットワークのサブネット内に作成される実施形態において、リソースは、そのサブネット内のその他のサービス及びエンティティのみ利用可能でもよい。
ディレクトリへのアクセスをリクエストしてもよいコンピュータシステムクライアントデバイス204は、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、顧客構内は、1つまたは複数のディレクトリ208を含んでもよく、それは少なくとも部分的に顧客構内に位置してもよく、それはファイル、ならびに/あるいは、ディレクトリ、アプリケーション、データ、データベース、その他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなリソースを含むがこれらに限定されない、その上のその他のコンピュータシステムリソースを保存してもよい。いくつかの実施形態において、コンピュータシステムリソースは、ファイルシステムリソースでもよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、ソリッドステートドライブ、リムーバブルドライブ、あるいはこれら及び/またはその他のそのようなストレージデバイスの組合せなどの、さまざまなストレージデバイスに保存されてもよい。いくつかの実施形態において、コンピュータシステムリソースは、たとえば本明細書で説明されるネットワーク接続などの1つまたは複数の接続を介して、コンピュータシステムクライアントデバイス204によってアクセスされてもよいデータセンタ(一箇所に配置してもよい複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイス)に少なくとも部分的に位置してもよい。コンピュータシステムリソース及び/またはデータセンタはローカルに位置してもよく、ローカル及びリモートを組み合わせて位置してもよい。たとえば、いくつかの実施形態において、ファイルシステム及び/またはディレクトリは、ローカルデータセンタに位置するディスク上に位置してもよく、ファイルシステム及び/またはディレクトリのコンテンツも、リモートデータセンタに位置するディスクに再現されてもよい。いくつかの他の実施形態において、ファイルシステム及び/またはディレクトリは、ローカルでもよい(すなわちデータセンタ内にホストされる))1つのデータセンタにそのコンテンツの少なくとも一部を配置し、またローカルまたはリモートでもよい1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分を配置してもよい。ストレージデバイスは、本明細書に説明されるような物理デバイス、及び/またはそのような物理デバイスの仮想表現を含んでもよい。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、いくつかの量の物理メモリを含んでもよく、その一部は、仮想ディスクドライブ上に作成されるファイルシステムを有する仮想ディスクドライブとしてのストレージ専用である。その他のそのようなストレージデバイスは、本開示の範囲内であると見なしてもよい。
いくつかの実施形態において、サービス226は、本明細書に説明されるような1つまたは複数のコンピュータシステムディレクトリリソースへのアクセスを必要としてもよい。サービス226は、いくつかの実施形態において、ユーザ、その他のコンピュータシステム、プロセス及び/または自動化プロセス、ならびに/あるいはその他のそのようなコンピュータシステムエンティティを含むがこれらに限定されないさまざまなその他のコンピュータシステムエンティティを含んでもよい。システムディレクトリリソースへのアクセス214は、いくつかの実施形態において、マネージドディレクトリサービス218などのサービスによって提供されてもよく、それは1つまたは複数のシステムリソースへのアクセスを提供してもよい。たとえば、ディレクトリ208は、コンピューティングリソースサービスプロバイダ内で、または、顧客構内のデータセンタ内で、または、いくつかのその他のそのような位置の中で、マネージドディレクトリサービス218によって作成されてもよい。ディレクトリがマネージドディレクトリサービスによって作成されると、マネージドディレクトリサービスは、ディレクトリと結合することを望むことがある、または、ディレクトリで認可されたコマンドを実行することを望むことがある、または、その他のディレクトリ管理操作を実行することを望むことがあるサービスにURI214を提供することによって、ディレクトリへのアクセスを提供することができる。マネージドディレクトリサービス218は、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが、認証220、認可222、及びディレクトリサービス224を介したディレクトリ管理の目的のためのアクセスを含むがこれに限定されないディレクトリの管理を行うことを可能にするさまざまなサービスを提供してもよい。
たとえば、マネージドディレクトリサービスは、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティの証明書を認証できる220認証サービスを提供し、そのエンティティが、たとえば、ディレクトリを作成する、コンピュータシステムがディレクトリのドメインに参加することを可能にするようにディレクトリを構成する、ディレクトリ及び/またはその他のそのようなディレクトリ管理機能を拡張するためにマネージドディレクトリサービスにアクセスすることが認可されるかどうかを少なくとも決定してもよい。いくつかの実施形態において、証明書は、マネージドディレクトリサービス自身によって認証されてもよく、あるいは、それらは、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証されてもよく、あるいは、それらは、マネージドディレクトリサービスが通信できるプロセス、プログラム、またはサービスによって認証されてもよく、あるいは、それらは、これら及び/あるいはその他のそのようなサービスまたはエンティティの組合せによって認証されてもよい。
マネージドディレクトリサービス218はまた、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティを認可できる222認可サービスを提供し、そのエンティティがマネージドディレクトリサービスによって管理されるディレクトリに関連して、1つまたは複数の可能なアクションのうちのどのアクションを実行できるかを少なくとも決定してもよい。たとえば、エンティティがディレクトリでの実行を認可されてもよくまたは認可されることができないアクションは、ディレクトリの作成、ディレクトリを含む一連のディレクトリの説明、ディレクトリの削除、ディレクトリの別のディレクトリへの拡張、ディレクトリのスナップショットについての情報の作成及び/または提供、ディレクトリのスナップショットの削除、ディレクトリのスナップショットからのディレクトリのリストア、ディレクトリと関連するタグの管理(追加/削除)、ディレクトリのURIのエイリアスの作成、エイリアスが利用可能かどうかの確認、ならびに/あるいは、ディレクトリのURIのエイリアスの削除を含むが、これらに限定されるものではない。ディレクトリが作成されると、ディレクトリの管理者は、作成されたディレクトリで、ディレクトリでの操作を実行することができる。たとえば、管理者は、ファイルシステムの作成、ファイルシステムの破棄、ファイルシステムへの取付け、ファイルシステムからの取り外し、ファイルシステムへのアクセスリンクの提供、ファイルシステムへのアクセスリンクの返還要求、ファイルシステムからの読み取りの許可、ファイルシステムへの書き込みの許可、及び/または、その他のそのようなファイルシステムリソースアクションなどのアクションを実行できる。
システムリソース上のアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、その他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはその他のそのようなその上のシステムリソースオブジェクトでのアクションを含むが、これらに限定されるものではなくてもよく、本明細書に言及されるアクションのようなアクションを含んでもよい。システムリソースの開始、停止、返還要求、破棄、及び/またはそれ以外の管理を行うアクション、ならびに、その他のそのようなアクションが、利用可能なアクションに含まれてもよい。アクションを実行する認可は、たとえば、特定のエンティティに関連する1組の証明書及び/またはポリシーを保守するシステムなどの証明書発行またはポリシーシステムのようなエンティティによって管理されてもよく、少なくとも一部において証明書及び/またはポリシーの組に基づいて、エンティティが実行を認可されるアクションを決定してもよい。エンティティが実行を認可されてもよいアクションは、静的でもよく、または、時刻、証明書のタイプ、システムポリシー、性質、アクセスされるオブジェクトのタイプまたは位置、あるいは、これら及び/またはその他のそのような認可要因の組合せを含むがこれらに限定されない複数の要因によって変化してもよい。たとえば、コンピュータシステムエンティティは、ファイルシステムの特定のファイルの読み取りのみ、ファイルシステムの特定のその他のファイルの読み取り及び書き込み、ならびに、ファイルシステムの特定のその他のファイルの追加及び削除を認可されてもよい。異なるコンピュータシステムエンティティが、ファイルシステム上の任意のアクションの実行を認可されてもよいが、それは、それらのアクションが特定の位置から、そして特定の時間に開始される場合のみである。1つまたは複数のプロセスは、システムログなどのファイルシステム上のファイルへの書き込みのみ認可されてもよく、同時に、その他のプロセスが、そのファイルからの読み取りのみ認可されてもよい。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス234を提供できる224ディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソースなどのコンピュータシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能は、ディレクトリサービスによって提供されてもよい。ディレクトリサービスは、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、ディレクトリ208は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリ230に232で拡張されてもよい。マネージドディレクトリサービスは、認可証明書及び/またはポリシーに従って、ディレクトリ230への認証されたエンティティアクセス234を提供してもよい。
いくつかの実施形態において、コンピュータシステムディレクトリリソースへのアクセスは、アクセスがリクエスト側エンティティに不可視であるような方法で提供されてもよい。たとえば、アクセス234は、ディレクトリ208の位置210へのURIまたはその他のそのようなリンクとして、リクエスト側エンティティに提供されてもよい。コンピュータシステムリソースの上の位置は、コンピュータシステム上で動作する1つまたは複数のプロセスによってURIに変換されてもよい。コンピュータシステムリソースへのアクセスをリクエストしたサービスまたはエンティティ226は、コンピュータシステムリソースの位置に依存する構成を必要とすることなく、コンピュータシステムリソースにアクセスするための228受信したURIを使用してもよく、いくつかの実施形態において、サービスまたはエンティティ226がコンピュータシステムリソースに直接接続されているように動作するコンピュータシステムリソースにリンクするURIを使用してもよい。サービスがURI234などのリンクを介した拡張されたディレクトリへのアクセスを提供され、次にURI214などのリンクを介してオンプレミスディレクトリ208にアクセスしてもよいいくつかの実施形態において、サービスまたはエンティティ226は、URI214及び234の一方または両方にアクセスしてもよく、オンプレミスディレクトリ208及び/または拡張されたディレクトリ230にアクセスするために、その一方または両方を交換可能に使用してもよい。たとえば、サービスまたはエンティティに対して、サービスまたはエンティティに近い位置に位置するように見えてもよいファイルに1組のデータを書き込むように見える操作が、データを実際にネットワークパケットにパッケージ化してもよく、次いで、アクセスリンク214を介してネットワーク216を越えてパケットを転送し、ディレクトリ208のファイルに実際に書き込まれる。意図されるように、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行されてもよいその他のタイプの操作も、本開示の範囲内であると見なしてもよい。
図3は、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、分散及び/または仮想化されたコンピュータシステム環境におけるローカル及び/またはリモートコンピュータシステムリソースに対する、ローカル及び/またはリモートサービスによる認証、認可、及びアクセスのためのユーザリクエストを提供する環境300を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス302は、コンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、マネージドディレクトリサービス、クラウドサービス、ウェブサービス、仮想マシンサービス、データベースサービス、及び/またはその他のそのようなコンピューティングリソースサービスプロバイダサービスを含むがこれらに限定されない1つまたは複数のローカル及び/またはリモートサービスへのコンピュータシステムエンティティ、ユーザ、またはプロセスによるアクセスを容易にするために、証明書の認証を306リクエストしてもよい。アクセスは、ディレクトリの作成、ディレクトリの削除、ディレクトリの拡張、ディレクトリへの接続、ディレクトリ及び/またはその他のそのようなディレクトリ管理操作との結合の機能を含んでもよい。たとえば、ユーザまたはプロセス302は、サービス328などの仮想マシンサービスによって管理される仮想マシンを、ユーザまたはプロセスが以前に作成したディレクトリ332と結合するよう所望してもよい。マネージドディレクトリサービスは、URI324を介するアクセスを提供してもよく、いくつかの実施形態において、仮想マシンをディレクトリに結合するための認証及び/または認可をユーザまたはプロセス302に提供してもよい。いくつかの実施形態において、証明書の認証をリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。証明書の認証をリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスなどのプロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これらならびに/あるいはその他のシステム方法及び/またはエンティティの組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス304は、1つまたは複数のネットワーク308及び/あるいは直接または間接的にネットワークに接続されるその他のサーバなどのネットワーク308に関連するエンティティを使用して、コンピュータシステムに接続されてもよい。コンピュータシステムクライアントデバイスは、ネットワークを介してコンピュータシステムで接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、コンピュータシステムクライアントデバイス304は、マネージドディレクトリサービス310の制御に対応して及び/または制御の下で動作する1つまたは複数の認証プロセス312にアクセスしてもよく、認証プロセスは、外部プロセスからリクエストに少なくとも応答して、コンピュータシステムエンティティ、ユーザ、またはプロセスをリクエストする証明書を認証するように構成されてもよい。たとえば、リクエスト側コンピュータシステムエンティティ、ユーザ、またはプロセスがマネージドディレクトリサービスへのアクセスが可能とされるか認証プロセスは314で確認してもよい。認証プロセスは、ユーザ名及びパスワードの組合せを検証することによって、あるいは、ハードウェア、ソフトウェア、ファームウェア、またはその他のそのようなデバイス上に格納される暗号鍵を検証することによって、あるいは、コンピュータシステムクライアントデバイスがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、ネットワークがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、これら及び/またはその他のそのような検証方法の組合せによって、マネージドディレクトリサービスへのアクセスを有効にしてもよい。認証プロセスは、その他のそのような認証タスクを実行してもよく、いくつかの実施形態において、コンピュータシステム及び/またはその他のコンピュータシステムに格納されるデータに対応して及び/またはそのデータとともに動作するその他のプロセスと組み合わせて認証タスクを実行してもよい。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス302は、本明細書に説明されるように1つまたは複数のネットワーク308及び/またはそれらに関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、中に作成されてもよいディレクトリ332上でまたはそれに接続して、1つまたは複数の操作やプロセスを実行する認可を316でリクエストしてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダから、または、コンピューティングリソースサービスプロバイダ内の、もしくは、隔離仮想ネットワークのサブネット内の、もしくは、顧客構内のデータセンタ内の、もしくは、顧客構内の仮想ネットワーク内の、もしくは、いくつかのその他のそのような位置内の隔離仮想ネットワークからアクセス可能でもよい。いくつかの実施形態において、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を直接的に実行するリクエストされる認可でもよい。いくつかの実施形態において、リクエストされる操作認可は、ディレクトリの作成または削除などの、ディレクトリに関連する1つまたは複数のコンピュータシステムリソース操作を間接的に実行するリクエストされる操作でもよい。たとえば、リクエストされた操作は、1つまたは複数のコンピュータシステムリソース操作を実行する認可のための、コンピュータシステムエンティティ、ユーザ、またはプロセス302の制御下のリモートコンピュータシステムサービス、プロセス、またはエンティティの認可のリクエストでもよい。認可は、マネージドディレクトリサービス310の制御に対応して及び/またはその制御の下で動作する1つまたは複数の認可プロセス318からリクエストされてもよく、認可プロセスは、外部プロセスからのリクエストに少なくとも応じるように、そして、ディレクトリ332上またはそれ以外ではそのディレクトリに関連するコンピュータシステムエンティティ、ユーザ、またはプロセスによる1つまたは複数の操作及び/またはプロセスの性能を認可するように、構成されてもよい。コンピュータシステムリソースは、顧客構内のデータセンタなどのようにローカルに位置してもよく、あるいは、リモートに位置してもよく、あるいは、分散及び/または仮想コンピュータシステム上などの複数のリモート位置に位置してもよく、あるいは、ローカル及び/またはリモート位置の組合せに位置してもよい。たとえば、ファイルシステムは、ローカルデータセンタに位置するローカルディスク上に位置してもよく、そのファイルシステムのコンテンツはまた、1つまたは複数のリモートデータセンタに位置する1つまたは複数のリモートディスクに再現されてもよい。いくつかの実施形態において、ファイルシステムは、少なくともそのコンテンツの少なくとも一部をローカルまたはリモートでもよい1つのデータセンタに配置し、またそのコンテンツのその他の部分を1つまたは複数のその他のデータセンタに配置してもよい。
認可されてもよい操作及び/またはプロセスの実施例は、320のリソースオブジェクトの作成及び/または破棄、322のリソースオブジェクトの読み取り及び/または書き込み、ならびに/あるいは、その他のそのようなシステムリソース操作を含むが、これらに限定されるものではない。認可は、エンティティ、ユーザ、またはプロセスによって、日時によって、エンティティのクラスによって、ユーザのクラスによって、プロセスのクラスによって、1つまたは複数のシステムポリシーによって、リクエストの性質によって、あるいは、これら及び/またはその他のそのような考慮事項の組合せによって、変化してもよい。たとえば、コンピュータシステムエンティティは、ファイル及び/またはディレクトリの作成は認可されてもよいが、それらの削除は認可されることはできなくて、あるいは、プロセスは、そのプロセスによって作成されたファイル及び/またはディレクトリの削除のみ認可されてもよいが、他は認可されることはできなくて、あるいは、エンティティは、特定のディレクトリで特定のファイルの読み取りは認可されてもよいが、他は認可されることはできない。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス302は、本明細書に説明されるように1つまたは複数のネットワーク308及び/またはそれらに関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、ディレクトリ332の管理のためにディレクトリ332へのアクセスをリクエストしてもよい1つまたは複数のローカル及び/またはリモートサービス328を作成及び/またはインスタンス化324してもよい。ディレクトリは、本明細書に説明されるような1つまたは複数の位置のうちの1つに事前に作成されていてもよく、アクセスは、URI324を介して作成されたディレクトリに提供されてもよい。いくつかの実施形態において、コンピュータサービス、プロセス、またはエンティティ328は、マネージドディレクトリサービス310の制御に対応して及び/またはその制御の下で動作する1つまたは複数のディレクトリサービスプロセス326にアクセスしてもよく、ディレクトリサービスプロセスは、外部プロセスからのリクエストに少なくとも応答して、そして、1つまたは複数のファイルシステムへのアクセスを提供するように構成されてもよい。1つまたは複数のファイルシステムへのアクセスは、ファイルならびに/あるいはディレクトリ、アプリケーション、データ、データベース、その他のファイルシステムへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなファイルシステムオブジェクトなどのその他のファイルシステムオブジェクトに対する、読み取り、書き込み、実行、削除、作成、インスタンス化、及び/またはその他のそのような操作などの操作へのアクセスを含んでもよい。いくつかの実施形態において、操作へのアクセスは、本明細書に説明されるような1つまたは複数の認可プロセス318を有する通信330によって容易にされてもよく、その中に含まれるリソース認可ポリシーに従って認可を提供する。
前述のように、図3のコンピュータシステムエンティティ、ユーザ、またはプロセス302、及びコンピュータシステムクライアントデバイス304は、分散型コンピューティングシステム及び/またはデータセンタ環境で相互接続される複数のエンティティ、ユーザ、プロセス、及び/またはデバイスの中の1つでもよい。図4は、さまざまな実施形態が行われてもよい分散コンピューティング環境及び/またはデータセンタ環境400を示す。1つまたは複数のコンピュータシステムエンティティ、ユーザ、またはプロセス402は、1つまたは複数のネットワーク408を介して1つまたは複数のコンピュータシステムサービス406に、1つまたは複数のコンピュータシステムクライアントデバイス404を介して接続してもよい。コンピューティングリソースサービスプロバイダ408に位置してもよい1つまたは複数のローカル及び/またはリモートコンピュータシステムディレクトリリソース420へのサービスによるアクセスは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、412のマネージドディレクトリサービスを介して、1つまたは複数のURI410などの1つまたは複数の接続によって提供されてもよい。ローカル及び/またはリモートシステムリソースは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、URI422を介したローカルデータセンタ416からのローカルシステムリソース414の418の拡張でもよい。ディレクトリ420は、いくつかの実施形態において、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワークの内側に位置してもよく、または、本明細書に説明されるように隔離仮想ネットワークのサブネット内に位置してもよい。オンプレミスディレクトリ414は、いくつかの実施形態において、本明細書に説明されるように顧客構内内の仮想ネットワーク内に位置してもよい。
ディレクトリがコンピューティングリソースサービスプロバイダによって提供されるデータセンタに位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、ディレクトリへのアクセスを提供するコンピューティングリソースサービスプロバイダにアクセスしてもよい位置から、データセンタ及びディレクトリにアクセスしてもよい。ディレクトリが隔離仮想ネットワーク内または隔離仮想ネットワークのサブネット内に位置し、コンピュータシステムエンティティが隔離仮想ネットワーク内またはサブネット内に位置するいくつかの実施形態において、ディレクトリは隔離仮想ネットワークまたはサブネット内のそれらのエンティティに対して利用可能とされてもよい。たとえば、コンピューティングリソースサービスプロバイダで位置するディレクトリは、コンピューティングリソースサービスプロバイダにアクセスすることができる複数のデバイスかつ複数の位置からの適切な認可を有するコンピュータシステムエンティティによってアクセスされてもよい。ディレクトリは、ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって共有されてもよく、それぞれは、それらのコンピュータシステムエンティティが位置するところに関係なく、ディレクトリにアクセスして、たとえばディレクトリのドメインに参加してよいが、それは、それらのエンティティがコンピューティングリソースサービスプロバイダにアクセスして、適切な証明書を有する場合に限る。このような実施形態において、ディレクトリへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。
ディレクトリが、たとえば、顧客によって提供されるデータセンタに位置し、そして顧客構内に位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、同様の方法で、多くの異なる位置からディレクトリにアクセスしてもよいが、それは、それらのエンティティが顧客構内のデータセンタにアクセスする場合に限る。このような実施形態において、顧客構内のデータセンタへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。意図されるように、これらは例示的な実施例であり、複数のコンピュータシステムエンティティがデータセンタ及び/またはシステムリソースに接続することを可能にする416データセンタ及び414システムリソースの位置のその他のタイプ及び/または配置は、本開示の範囲内であると見なしてもよく、それらは、分散されたデータセンタ及び/またはシステムリソース、仮想データセンタ及び/またはシステムリソース、冗長性をもつデータセンタ及び/またはシステムリソース、部分的にローカルなデータセンタ及び/またはシステムリソース、隔離仮想ネットワーク、隔離仮想ネットワークのサブネット、ならびに/あるいは、部分的にリモートなデータセンタ及び/またはシステムリソースを含むが、これらに限定されない。さらに意図されるように、システムリソースは、さまざまなシステムリソースを含んでもよく、それらは、ローカル及び/またはリモートストレージ位置、システムメモリ、中央処理装置(CPU)、ネットワークインタフェース、ネットワーク帯域幅、ディスプレイデバイス、入力デバイス、ならびに/あるいはその他のそのようなコンピュータシステムリソースを含むが、これらに限定されず、これらのその他のそのようなリソースも本開示の範囲内であると見なしてもよい。
図5は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、認証及び認可証明書のために使用される中央位置ユーザプロファイル、記憶装置、及びシステムポリシーを保守するための例示的環境500を示す。管理者502は、いくつかの実施形態において、顧客構内に位置してもよい1つまたは複数のローカルストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、コンピューティングリソースサービスプロバイダに位置してもよい1つまたは複数のリモートストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、ローカル及びリモートストレージ位置の組合せに位置してもよいストレージ位置に位置してもよい、1組のシステムアクセスデータ504を有してもよい。いくつかの実施形態において、システムアクセスデータは、ユーザ名、ユーザパスワード、ユーザ個人データ、及び/またはその他のそのようなユーザプロファイル情報を含有してもよい1つまたは複数のユーザプロファイル506を含有してもよい。ユーザプロファイルは、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認証サービスなどの認証サービスを提供するために、1つまたは複数のシステムによって使用されてもよい。いくつかの実施形態において、システムアクセスデータは、1つまたは複数のコンピュータシステムリソースへの参照を含有してもよい1つまたは複数の記憶装置508を含有してもよい。いくつかの実施形態において、システムアクセスデータは、たとえば、システムサービス、ファイルシステム、ディレクトリ、マシン、仮想マシン、アプリケーション、ドキュメント、及び/またはその他のそのようなシステムリソースなどのシステムリソースへのアクセスを可能にする、禁止する、及び/または制限する1つまたは複数のポリシーステートメントを含有してもよい1つまたは複数のポリシー510を含有してもよい。ポリシーステートメントは、1つまたは複数のユーザプロファイルのコンテンツ、ユーザプロファイルタイプ、リクエスト側サービス、リクエスト側サービスタイプ、リクエスト側サービス位置、時刻、ユーザの事業価値、クライアント、顧客、リクエスト及び/またはその他のそのような事業価値、またはこれら及び/またはその他のそのような要因の組合せなどの要因に基づいて、システムリソースへのアクセスを可能にしてもよく、禁止してもよく、及び/または制限してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスを提供するコンピューティングリソースサービスプロバイダのアカウントと関連するそれぞれのユーザに、さまざまなレベルのアクセスを提供してもよい。たとえば、いくつかのユーザは、ディレクトリを作成及び削除することができてもよく、一方で、その他のユーザは、ディレクトリを削除する認可がなくてもよい。したがって、図6は、マネージドディレクトリサービスによって管理されるディレクトリの管理機能へのアクセスを制御するための例示的プロセス600を示す。以下でより詳細に論じられるように、プロセスは、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスへのアクセスを認証するために、かつ、マネージドディレクトリサービスと関連する1つまたは複数のコマンドの実行を認証されるエンティティを認可するために、使用されてもよい。図3で説明されるようにマネージドディレクトリサービス310などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図6に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、リクエスタがマネージドディレクトリサービス、ならびにマネージドディレクトリサービスによって提供されるコマンド、リソース、及び/またはサービスのうちの1つまたは複数にアクセスすることを可能にするリクエスト602を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初に、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるプロセスなどのプロセスを使用するユーザを604で認証してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図5に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイルデータなどのシステムアクセスデータを使用してもよい。リクエスタが604で認証される場合、マネージドディレクトリサービスは608で接続を可能にし、610でリクエスタからのコマンドを受信し始める。リクエスタが604で認証されない場合、マネージドディレクトリサービスは606で接続を拒絶してもよい。
マネージドディレクトリサービスが610でリクエスタからコマンドを受信し始めると、マネージドディレクトリサービスは、リクエスタが各コマンドの実行を認可されるかどうかを614で決定してもよい。マネージドディレクトリサービスが受信してもよいコマンドの実施例は、ディレクトリを作成または破棄するコマンド、ディレクトリサービスを管理するコマンド、ディレクトリタグを管理するコマンド、ディレクトリエイリアスを管理するコマンド、ディレクトリへの読み出し及び/またはディレクトリからの書き込みのコマンド、ならびに/あるいは、その他のそのようなコマンドを含むがこれらに限定されるものではない。マネージドディレクトリサービスは、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認可プロセスなどの認可プロセスを使用して、各コマンドを実行するリクエスタを認可してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図5に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイル及び/またはポリシーデータなどのシステムアクセスデータを使用してもよい。
リクエスタが受信したコマンドの実行を614で認可されない場合、マネージドディレクトリサービスは616で特定のコマンドを拒絶してもよく、次いで、612でリクエスタからのコマンドの処理を続けなければならないかどうか決定してもよい。いくつかの実施形態において、いくつかの拒絶されたコマンドが、コマンドを実行しないことになってもよく、いくつかの拒絶されたコマンドが、コマンドが拒絶されたリクエスタ及び/またはその他のコンピュータシステムエンティティに警告することになってもよく、いくつかの拒絶されたコマンドが、リクエスタへの接続を終了させることになってもよく、いくつかの拒絶されたコマンドが、これら及び/またはその他のそのようなアクションの組合せになってもよい。マネージドディレクトリサービスが、リクエスタからのコマンドを受信し続けることを612で決定する場合、マネージドディレクトリサービスは、610で次のコマンドを待ってもよい。マネージドディレクトリサービスが、続けることを612で決定しない場合、マネージドディレクトリサービスは、622でリクエスタを切断してもよい。いくつかの実施形態において、622リクエスタの分離は、リクエスタの分離、リクエスタへの切断の通知、1つまたは複数のその他のコンピュータシステムエンティティへの切断の通知、あるいは、これら及び/またはその他のそのような切断アクションの組合せを含んでもよい。
リクエスタが受信したコマンドの実行を614で認可される場合、マネージドディレクトリサービスは618で、コマンドの実行、コマンドが許可されることのリクエスタへの警告、コマンドが許可されることの1つまたは複数のその他のシステムエンティティへの警告、1つまたは複数のその他のシステムエンティティへのコマンドの実行のリクエスト、あるいは、これら及び/またはその他のそのような応答の組合せを含んでもよいコマンドを許可してもよい。受信したコマンド及び/または618への応答は、マネージドディレクトリサービスにリクエスタを622で切断させてもよい、620の切断するリクエストをコマンドが、少なくとも一部において含んでもよいことを可能にする。マネージドディレクトリが620の切断コマンドを受信しない場合、マネージドディレクトリサービスは、610で次のコマンドを待ってもよい。
図7は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、コンピューティングリソースサービスプロバイダ内に位置するディレクトリなどのリモートシステムディレクトリにオンプレミスディレクトリなどのローカルディレクトリを拡張するための例示的環境700を示す。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。いくつかの実施形態において、コンピュータシステムエンティティは、コンピュータシステムクライアントデバイスを介して、708でリモートディレクトリにローカルシステムディレクトリを拡張する1つまたは複数のコマンドを発行してもよい。ローカルシステムディレクトリを拡張するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスなどのプロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これらならびに/あるいはその他のシステム方法及び/またはエンティティの組合せによって、発行されてもよい。ローカルシステムディレクトリを拡張するコマンド(単数または複数)は、いくつかの実施形態において、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリサービスなどのマネージドディレクトリサービス710に発行されてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは最初に、ローカルシステムディレクトリを拡張するコマンドを712で認証及び認可してもよく、認証及び認可される場合、マネージドディレクトリサービス714は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリ718を716で作成してもよい。マネージドディレクトリサービス710は、いくつかの実施形態において、マネージドディレクトリサービス714と同一でもよい。リモートディレクトリリソースが作成されたあと、ローカルシステムディレクトリを拡張するコマンドは、ローカルシステムディレクトリを718リモートシステムディレクトリに726で拡張するローカルシステムディレクトリ706に発行されてもよい。また、コンピュータシステムクライアントデバイスは、マネージドディレクトリサービスが、URI730などのリンクを介して、リモートシステムディレクトリに728で接続してもよいように、マネージドディレクトリサービスへのURIなどのリンクを提供してもよい。
図8は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリサービスなどのマネージドディレクトリサービスを使用するコンピューティングリソースサービスプロバイダ内に位置するディレクトリなどのリモートシステムディレクトリにオンプレミスディレクトリなどのローカルシステムディレクトリを拡張するための例示的プロセス800を示す。図3で説明されるようにマネージドディレクトリサービス310などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図8に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、ローカルシステムディレクトリを拡張するリクエスト802を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初、リクエストを804で認証及び認可してもよく、806でリクエストまたはリクエスタがそのような操作の実行が認可されない場合は808で許可が与えられず、マネージドディレクトリサービスは、816で戻ってもよい。806でマネージドディレクトリサービスがリクエストやリクエスタを認証及び認可できる場合、マネージドディレクトリサービスは、ディレクトリへのアクセスが読み取り専用または読み取り/書き込みであるかどうかを820で決定してもよい。リモートシステムが820でディレクトリへの読み取りのみまたは読み取り/書き込みアクセスを有するかどうかに基づき、マネージドディレクトリサービスは、822で読み取り専用ディレクトリを作成してもよく、または、824で読み取り/書き込みディレクトリを作成してもよい。リモートシステムリソースは、ローカルディレクトリからリモートディレクトリへ、コンテンツ、状態、及び/または構造の少なくとも一部をコピーすることによって作成されてもよい。マネージドディレクトリサービスが、812でディレクトリの作成及び/または初期化に失敗した場合、マネージドディレクトリサービスは、エラーを814で発行してもよい。クロスプレミスディレクトリサービスが812でリモートディレクトリの作成及び/または初期化に成功した場合、クロスプレミスディレクトリサービスは816に戻る前に拡張してもよい。
図9は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを使用して、読み取り専用許可を有するリモートディレクトリにローカルディレクトリを拡張するための例示的環境900を示す。コンピューティングリソースサービスプロバイダ906のサービス908は、オンプレミスディレクトリ912などのローカルディレクトリの拡張914であるリモートディレクトリ916への読み取り専用アクセス918を有してもよく、拡張は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるとおりである。サービスは、マネージドディレクトリサービス910によって提供されるURIなどの918のリンクを介して、リモートディレクトリから読み取ってもよい。サービスがリモートディレクトリ916への書き込みアクセスを有しないため、サービスはリモートディレクトリに書き込むことができない。いくつかの実施形態において、サービスは、マネージドディレクトリサービス910によって提供されるURIなどの920のリンクを介して、ローカルディレクトリ912に書き込んでもよい。このような実施形態において、ローカルディレクトリへの書き込みは、URI922などの再現リンクを介して、リモートディレクトリに再現されてもよい。いくつかの実施形態において、許可された書き込みアクセスがないと判定されると、書き込みは、その代わりに、URI922などの再現リンクを介して書き込みをローカルリソースにリダイレクトしてもよいディレクトリ916に向けられてもよい。
図10は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスと関連する読み取り専用ディレクトリへの読み取り及び書き込みのための例示的プロセス1000を示す。図3で説明されるマネージドディレクトリサービス310などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、プロセス1000に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、読み取り専用ディレクトリへの読み取りまたは書き込みを行うリクエスト1002を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
1004の操作タイプが読み取りである場合、マネージドリソースサービスは、いくつかの実施形態において、読み取りを実行する前に、オンプレミスディレクトリなどのローカルディレクトリからコンピューティングリソースサービスプロバイダ内に位置するディレクトリなどのリモートディレクトリへのデータの更新及び/または同期を1006でリクエストしてもよい。いくつかの実施形態において、更新及び/または同期は、1つまたは複数のプロセスによって発行されるコマンドの結果として生じてもよく、あるいは、自動的に生じてもよく、あるいは、システムタイマの結果として生じてもよく、あるいは、まったく生じなくてもよい。更新後、マネージドディレクトリサービスは、1010でリモートディレクトリから読み取ってもよく、次いで、1018で次の読み取りまたは書き込みのリクエストを待機してもよい。
1004操作タイプが書き込み操作であり、サービスがリモートディレクトリへの書き込み許可を有しない場合、サービスは、その代わりに、1008でローカルディレクトリへの書き込みを送信する。ローカルディレクトリは任意の書き込み衝突があるかどうかを1012で判定してもよく、書き込み衝突があると判定された場合、最初に1014で書き込み衝突を調停してもよい。ディレクトリがコンピュータファイルシステムを含むとき、複数のプロセスがデータを同一のファイルまたはその他のそのようなファイルシステム位置へ書き込もうとするときに書き込み衝突が発生することがある。書き込みが許可される前に、書き込み衝突は潜在的なエラーのために調停されてもよい。いくつかの実施形態において、書き込み衝突は、データに関する権限として1つのプロセスを選択することによって調停されてもよく、正式なプロセスを選択して書き込み衝突を調停する。書き込み衝突がローカルディレクトリで調停されると、それらはローカルディレクトリからリモートディレクトリへ1016で逆に再現されてもよく、次いで、マネージドディレクトリサービスは、1018で次の読み取りまたは書き込みリクエストを待機してもよい。意図されるように、これらの操作は、拡張されたディレクトリを使用して実行されてもよい操作のタイプの例示的な実施例であり、その他の操作は、本開示の範囲内であると見なされてもよい。いくつかの実施形態において、プロセス1000は、複数のローカル及び/またはリモートディレクトリを使用して実行されてもよく、1つまたは複数の書き込み可能なディレクトリによって、特定のシステムによる書き込み衝突を解決する。
いくつかの実施形態において、正式なまたはマスタディレクトリは、少なくとも図10に関連して本明細書に説明されるように、ローカルまたはオンプレミスディレクトリでもよい。いくつかの実施形態において、正式なまたはマスタディレクトリは、リモートまたはコンピューティングリソースサービスプロバイダディレクトリでもよい。正式なまたはマスタディレクトリがコンピューティングリソースサービスプロバイダディレクトリであるような実施形態において、ステップ1012の書き込み衝突は、マネージドディレクトリサービスによって評価されてもよい。任意の書き込み衝突がある場合、マネージドディレクトリサービスは、ステップ1014で衝突を調停してもよい。いくつかの実施形態において、オンプレミスディレクトリ、及びコンピューティングリソースサービスプロバイダディレクトリ、及び/またはこれらのエンティティと関連する1つまたは複数のサービスは、協働して書き込み衝突の有無の判定及び/またはそれらの衝突の調停を行ってもよい。
図11は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを使用する、読み取り/書き込み許可を有するリモート(コンピューティングリソースサービスプロバイダ)ディレクトリへのローカル(オンプレミス)ディレクトリの拡張のための例示的環境1100を示す。コンピューティングリソースサービスプロバイダ1106のサービス1108は、ローカルディレクトリ1112の拡張1114であるリモートディレクトリ1116への1118の読み取り/書き込みアクセスを有してもよく、拡張は、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるとおりである。サービスは、1118のマネージドディレクトリサービス1110によって提供されるURIなどのリンクを介してリモートディレクトリから読み取ってもよい。サービスは、マネージドディレクトリによって提供される同一のリンクを介して、リモートディレクトリに書き込んでもよい。いくつかの実施形態において、サービスはまた、図9に関連して本明細書に説明されるように、リンク920などのURIのようなリンクを介してローカルディレクトリ1112への読み書きを行ってもよい。このような実施形態において、ローカルディレクトリへの書き込みは、リモートディレクトリに1120で再現されてもよい。
図12は、少なくとも図3に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスと関連するディレクトリへの読み取り及び書き込みのための例示的プロセス1200を示す。図3で説明されるようにマネージドディレクトリサービス310などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、プロセス1200に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、ディレクトリへの読み取りまたは書き込みを行うリクエスト1202を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
1204の操作タイプが読み取りである場合、マネージドリソースサービスは、いくつかの実施形態において、読み取りを実行する前に、ローカルディレクトリ(オンプレミスディレクトリなど)からリモートディレクトリ(コンピューティングリソースサービスプロバイダディレクトリなど)へのデータの更新及び/または同期を1206でリクエストしてもよい。更新及び/または同期は、1つまたは複数のプロセスによって発行されるコマンドの結果として生じてもよく、あるいは、自動的に生じてもよく、あるいは、システムタイマの結果として生じてもよく、あるいは、まったく生じなくてもよい。更新後、マネージドディレクトリサービスは、1210でリモートディレクトリから読み取ってもよく、次いで、1220で次の読み取りまたは書き込みのリクエストを待機してもよい。
1204操作タイプが書き込み操作である場合、サービスは、1208でリモートディレクトリへの書き込みを送信してもよく、2つのシステム間の同期を維持するために、1212でローカルディレクトリへの書き戻しを再現してもよい。ローカルディレクトリは任意の書き込み衝突があるかどうかを1214で判定してもよく、書き込み衝突があると判定された場合、最初に1216で書き込み衝突を調停してもよい。ディレクトリがコンピュータシステムファイルシステムを含むとき、複数のプロセスがデータを同一のファイルまたはその他のそのようなファイルシステム位置へ書き込もうとするときに書き込み衝突が発生することがある。書き込みが許可される前に、書き込み衝突は潜在的なエラーのために調停されてもよい。いくつかの実施形態において、書き込み衝突は、データに関する権限として1つのプロセスを選択することによって調停されてもよく、正式なプロセスを選択して書き込み衝突を調停する。書き込み衝突がローカルディレクトリで調停されると、それらはローカルディレクトリからリモートディレクトリへ1218で逆に再現されてもよく、次いで、マネージドディレクトリサービスは、1220で次の読み取りまたは書き込みリクエストを待機してもよい。意図されるように、これらの操作は、ディレクトリを使用して実行されてもよい操作のタイプの例示的な実施例であり、その他の操作は、本開示の範囲内であると見なされてもよい。
本明細書に説明されるプロセス1200は、ローカルディレクトリが有利に競合または衝突を解決するという点で、ローカルディレクトリが正式なディレクトリであることを前提とする。いくつかの実施形態において、リモートディレクトリは、正式なディレクトリでもよく、1212でローカルディレクトリへの書き戻しを再現する前に、調停を実行してもよい。いくつかの実施形態において、ローカルディレクトリ及びリモートディレクトリは、正式な義務を分担してもよく、どちらが書き込み衝突を調停してもよいか、及び/または、それらの書き込み衝突をどのように解決してもよいかについて、それらの間で取り決める。プロセス1200は、複数のローカル及び/またはリモートディレクトリを使用して実行されてもよく、1つまたは複数のディレクトリによって、特定のシステム実施形態による書き込み衝突を解決する。
図13は、さまざまな実施形態による態様を実装するための例示的環境1300の態様を示す。理解されるように、ウェブベースの環境が解説のために使用されるが、さまざまな実施形態を実装するために異なる環境が、適宜、使用されてもよい。環境には、電子クライアントデバイス1302が含まれ、それは、適切なネットワーク1304越しにリクエスト、メッセージ、または情報を送信及び/または受信し、いくつかの実施形態において、情報をデバイスのユーザへ戻すために使用可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、組み込み型コンピュータシステム、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意のその他のそのようなネットワーク、及び/またはそれらの組合せを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境のタイプに、少なくとも一部において依存する可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書では詳細に論じない。ネットワーク越しの通信は、有線または無線接続及びそれらの組合せによって可能にすることができる。本実施例では、環境がリクエストを受信し、それに答えてコンテンツを供給するためのウェブサーバ1306を含むとき、ネットワークはインターネットを含むが、当業者にとって明らかであるように、その他のネットワークは、類似の目的を供給する代替のデバイスを使用することができる。
例示的な環境は、少なくとも1つのアプリケーションサーバ1308及びデータストア1310を含む。いくつかのアプリケーションサーバ、レイヤ、またはその他のエレメント、プロセスまたはコンポーネントが存在することができるが、それらは連結されてもよく、またはそれ以外に構成されてもよく、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することができることは理解されるべきである。サーバは、本明細書で使用される場合、ハードウェアデバイスまたは仮想コンピュータシステムなど、さまざまな方法で実装されてもよい。いくつかの文脈において、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを参照してもよい。本明細書で使用される場合、特に明記しない限り、または文脈から明らかでない限り、「データストア」という用語は、データの記憶、アクセス、及び検索が可能な、任意のデバイスまたはデバイスの組合せに関するものであり、任意の標準的な、分散された、仮想の、またはクラスタ化された環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データストレージデバイス、及びデータストレージメディアを含んでもよい。アプリケーションサーバは、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことができ、アプリケーションのデータアクセス及びビジネスロジックの一部またはすべてを処理する。アプリケーションサーバは、データストアと連携するアクセス制御サービスを提供してもよく、テキスト、グラフィクス、オーディオ、ビデオ、及び/またはユーザに提供するために使用可能なその他のコンテンツを含むがこれらに限定されないコンテンツを生成することができ、ハイパーテキストマークアップランゲージ(「HTML」)、拡張可能マークアップランゲージ(「XML」)、JavaScript(登録商標)、カスケーディングスタイルシート(「CSS」)、または別の適切なクライアントサイド構造化言語の形態で、ウェブサーバによってユーザに供給することができる。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理されてもよく、可聴的に、視覚的に、ならびに/あるいは触覚、味覚、及び/または嗅覚を含むその他の感覚によってユーザに認識できる形態を含むがこれらに限定されない1つまたは複数の形態でコンテンツを提供する。すべてのリクエスト及び応答の処理、ならびにクライアントデバイス1302とアプリケーションサーバ1308との間のコンテンツの配信は、本実施例においては、PHPハイパーテキストプリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、または別の適切なサーバサイド構造化言語を使用して、ウェブサーバで処理することができる。本明細書の他の場所で論じられるように、本明細書に論じられる構造化されたコードを任意の適切なデバイスまたはホストマシンで実行することができるとき、ウェブ及びアプリケーションサーバは必要ではなく、単に例示的なコンポーネントであることは理解されるべきである。さらに、単一のデバイスで実行されるように本明細書で説明される操作は、文脈から明らかでない限り、複数のデバイスで全体的に実行されてもよく、それは分散された及び/または仮想システムを形成してもよい。
データストア1310は、本開示の特定の態様に関するデータを格納するための、いくつかの別々データテーブル、データベース、データドキュメント、動的データストレージスキーム、及び/またはその他のデータストレージ機構及びメディアを含むことができる。たとえば、示されるデータストアは、生産データ1312及びユーザ情報1316を格納するための機構を含んでもよく、それは生産側のコンテンツを供給するために使用することができる。データストアはまた、ログデータ1314を格納するための機構を含むようにも示され、それは報告、分析、またはその他のそのような目的のために使用することができる。データストアに格納される必要があってもよい、ページ画像情報及びアクセス権情報などの多くのその他の態様があり、それは上記の適切な機構、またはデータストア1310の追加の機構のいずれかに格納することができることは理解されるべきである。データストア1310は、それに関連するロジックによって、アプリケーションサーバ1308からの命令を受信して、それに応答してデータを取得、更新、またはそれ以外では処理するために使用可能である。アプリケーションサーバ1308は、受信した命令に応じて、静的データ、動的データ、または動的及び静的データの組合せを提供してもよい。本明細書に説明されるように、ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及びその他のそのようなアプリケーションで使用されるデータなどの動的データは、サーバサイド構造化言語によって生成されてもよく、または、アプリケーションサーバで動作するまたはその制御下のコンテンツ管理システム(「CMS」)によって提供されてもよい。1つの実施例において、ユーザは、ユーザによって作動されるデバイスを通して、特定のタイプのアイテムの検索要求を提出することがある。この場合、データストアは、ユーザの識別情報を検証するために、ユーザ情報にアクセスすることがあり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。次いで情報は、ユーザがユーザデバイス1302上のブラウザを介して閲覧することができるウェブページに記載される結果などで、ユーザに返すことができる。関心のある特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで閲覧することができる。しかし、本開示の実施形態は、ウェブページの文脈に必ずしも制限されるわけではなく、リクエストが必ずしもコンテンツの要求ではない場合に、一般的なリクエストの処理により一般に適用可能でもよいことに注意しなければならない。
各サーバは、実行可能プログラム命令をそのサーバの一般的な管理及び操作のために提供するオペレーティングシステムを通常含み、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を通常含む。オペレーティングシステムの好適な実装及びサーバの一般的な機能は知られている、または市販のものであり、特に本明細書の開示を考慮して、当業者によって確実に実装される。
環境は、1つの実施形態において、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する、分散された及び/または仮想コンピューティング環境である。しかし、そのようなシステムは、図13に示されるよりも少ないまたは多いコンポーネントを有するシステムにおいて、同様に正しく機能することは、当業者によって理解されるであろう。それゆえ、図13のシステム1300の描写は、本来は例示的なものと見なすべきであり、本開示の範囲を限定するものではない。
本開示の実施形態は、以下の項を考慮して説明することができる。
1.
コンピューティングリソースサービスプロバイダのマネージドディレクトリサービスの、実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
前記コンピューティングリソースサービスプロバイダの顧客から、前記顧客のコンピューティング環境でホストされる顧客コンピュータシステムディレクトリをコンピューティングリソースサービスプロバイダのコンピューティング環境へ拡張するリクエストを受信することと、
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で1組のコンピューティングリソースを使用して、前記コンピューティングリソースサービスプロバイダの前記環境の前記顧客コンピュータシステムディレクトリを再現し、それによって、前記作成かつ拡張された顧客コンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダの前記環境にホストされる顧客コンピュータシステムを結合するように構成される拡張された顧客コンピュータシステムディレクトリを作成することと、
前記顧客に代わって、前記作成かつ拡張された顧客コンピュータシステムディレクトリを、少なくとも一部において管理することと
を含む、
コンピュータ実装化方法。
2.
前記作成かつ拡張された顧客コンピュータシステムディレクトリが、前記顧客コンピュータシステムディレクトリの読み取り専用レプリカを利用する、
1項に記載のコンピュータ実装化方法。
3.
前記作成かつ拡張された顧客コンピュータシステムディレクトリが、リクエストが前記顧客の前記環境で処理される前記レプリカによって受信される前記拡張された顧客コンピュータシステムディレクトリを変更するように構成される、
1〜2項に記載のコンピュータ実装化方法。
4.
前記顧客コンピュータシステムディレクトリへの修正を示す情報を受信することと、
前記修正を示す前記情報に従って、前記再現された顧客コンピュータシステムディレクトリを同期させることと
をさらに含む、
1〜3項のいずれかに記載のコンピュータ実装化方法。
5.
前記再現された顧客コンピュータシステムディレクトリが、ディレクトリ書き込み操作を実行するリクエストを満たし、前記顧客コンピュータシステムディレクトリが前記満たされたリクエストに従って更新されるように構成される、
1〜4項のいずれかに記載のコンピュータ実装化方法。
6.
前記拡張された顧客コンピュータシステムディレクトリが、前記拡張された顧客コンピュータシステムディレクトリの1組の非管理ユーザの各非管理ユーザについて、認証が前記顧客の前記コンピューティング環境または前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で発生するかどうかにかかわらず、前記非管理ユーザが、証明書の単一の組を使用できる前記拡張された顧客コンピュータシステムディレクトリで認証するように構成される、
1〜5項のいずれかに記載のコンピュータ実装化方法。
7.
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるとき、前記コンピューティングリソースサービスプロバイダの顧客から、コンピューティングリソースサービスプロバイダのコンピューティング環境に顧客コンピュータシステムディレクトリを拡張するリクエストを受信し、コンピューティングリソースサービスプロバイダの環境の顧客コンピュータシステムディレクトリの少なくとも一部を再現するため前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で1組のコンピューティングリソースを使用し、それによって、前記作成かつ拡張された顧客コンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダの前記環境にホストされる顧客コンピュータシステムを結合するように構成される拡張された顧客コンピュータシステムディレクトリを作成し、前記顧客に代わって、前記作成かつ拡張された顧客コンピュータシステムディレクトリを少なくとも一部において管理することを少なくともシステムにさせる実行可能命令を含むメモリと
を備える、
システム。
8.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、読み取り専用である、
7項に記載のシステム。
9.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記顧客のコンピューティング環境で実行される
ように構成される、
8項に記載のシステム。
10.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で実行される
ように構成される、
7〜9項のいずれかに記載のシステム。
11.
前記リクエストが、前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で前記コンピューティングリソースサービスプロバイダによって管理される仮想ネットワークを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現の部分が、前記指定された仮想ネットワークの内側に構成される、
7〜10項のいずれかに記載のシステム。
12.
前記1つまたは複数のプロセッサで実行されるとき、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリを管理させる前記命令が、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリ上で、前記顧客コンピュータシステムディレクトリの少なくとも再現された部分を操作するために使用される実行可能コードへの更新を含む管理操作を実行させる、
7〜11項のいずれかに記載のシステム。
13.
前記リクエストが、前記顧客のコンピューティング環境のドメインネームシステムを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、前記顧客コンピュータシステムディレクトリと通信するために前記指定したドメインネームシステムを利用するように構成される、
12項に記載のシステム。
14.
コンピュータシステムの1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに少なくとも
前記コンピューティングリソースサービスプロバイダの顧客から、コンピューティングリソースサービスプロバイダのコンピューティング環境に顧客コンピュータシステムディレクトリを拡張するリクエストを受信させて、
コンピューティングリソースサービスプロバイダの環境の顧客コンピュータシステムディレクトリの少なくとも一部を再現するため前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で一連のコンピューティングリソースを使用させて、
それによって、前記作成かつ拡張された顧客コンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダの前記環境にホストされる顧客コンピュータシステムを結合するように構成される拡張された顧客コンピュータシステムディレクトリを作成し、
前記顧客に代わって、前記作成かつ拡張された顧客コンピュータシステムディレクトリを少なくとも一部において管理させる集合的に格納された実行可能命令
を有する、
非一時的コンピュータ可読記憶媒体。
15.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、読み取り専用である、
14項に記載の非一時的コンピュータ可読記憶媒体。
16.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記顧客のコンピューティング環境で実行される
ように構成される、
14〜15項に記載の非一時的コンピュータ可読記憶媒体。
17.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で実行される
ように構成される、
14〜16項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
18.
前記リクエストが、前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で前記コンピューティングリソースサービスプロバイダによって管理される仮想ネットワークを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現の部分が、前記指定された仮想ネットワークの内側に構成される、
14〜17項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
19.
前記1つまたは複数のプロセッサで実行されるとき、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリを管理させる前記命令が、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリ上で、前記顧客コンピュータシステムディレクトリの少なくとも再現された部分を操作するために使用される実行可能コードへの更新を含む管理操作を実行させる、
14〜19項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
20.
前記リクエストが、前記顧客のコンピューティング環境のドメインネームシステムを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、前記顧客コンピュータシステムディレクトリと通信するために前記指定したドメインネームシステムを利用するように構成される、
14〜19項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
追加の説明
以下の部分の説明は、本明細書に論じられる実施形態の3組のいずれかに適用することができる。
さまざまな実施形態が、場合によっては、複数のアプリケーションのうちのいずれかを操作するために使用できる1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる多種多様な動作環境でさらに実装することができる。ユーザデバイスまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータ、ならびに、モバイルソフトウェアを実行し、複数のネットワークプロトコル及びメッセージングプロトコルをサポートすることが可能な携帯電話装置、無線デバイス、及びハンドヘルドデバイスなどの複数の汎用パーソナルコンピュータのうちのいずれかを含むことができる。そのようなシステムはまた、さまざまな市販の入手可能なオペレーティングシステムのうちのいずれか、及び開発及びデータベース管理などの目的のために、その他の既知のアプリケーションを実行する複数のワークステーションを含むことができる。これらのデバイスはまた、ダミー端子、シンクライアント、ゲームシステム、及びネットワークを介した通信が可能なその他のデバイスなどのその他の電子デバイスを含むことができる。これらのデバイスはまた、仮想マシン、ハイパーバイザ、及びネットワークを介した通信が可能なその他の仮想デバイスなどの仮想デバイスを含むことができる。
本開示のさまざまな実施形態は、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、オープンシステムインターコネクション(「OSI」)モデルのさまざまなレイヤで動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、共通インターネットファイルシステム(「CIFS」)、及びアップルトークなどのさまざまな市販の入手可能なプロトコルのうちのいずれかを使用する通信をサポートするために、当業者に精通する少なくとも1つのネットワークを利用する。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、衛星ネットワーク、及びそれらの任意の組合せとすることができる。
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキストトランスファプロトコル(「HTTP」)サーバ、FTPサーバ、共通ゲートウェイインタフェース(「CGI」)サーバ、データサーバ、Java(登録商標)サーバ、Apache(登録商標)サーバ、及びビジネスアプリケーションサーバを含む、任意のさまざまなサーバまたは中間層アプリケーションを実行することができる。サーバはまた、たとえば、Java(登録商標)、C、C#、またはC++などの任意のプログラミング言語、あるいは、Ruby、PHP、Perl、Python、またはTCLなどの任意のスクリプト言語、ならびに、これらの組合せで記述された1つまたは複数のスクリプトまたはプログラムとして実装されてもよい1つまたは複数のウェブアプリケーションを実行することによるなど、ユーザデバイスからのリクエストに応答してプログラムまたはスクリプトを実行することが可能でもよい。サーバ(単数または複数)は、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)製の市販品、ならびに、MySQL、Postgres、SQLite、MongoDBなどのオープンソースサーバ、ならびに、構造化または非構造化データの格納、検索、アクセスが可能な任意のその他のサーバを含むがこれらに限定されないデータベースサーバも含んでもよい。データベースサーバは、テーブルベースサーバ、ドキュメントベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、あるいはこれら及び/またはその他のデータベースサーバの組合せを含んでもよい。
環境は、上記のように、さまざまなデータストア、ならびにその他のメモリ及び記憶媒体を含むことができる。これらは、1つまたは複数のコンピュータに近い(及び/またはその中に常駐の)記憶媒体上、または、ネットワーク経由でいずれかまたはすべてのコンピュータから離れた記憶媒体上などの、さまざまな位置に存在することができる。実施形態の特定のグループでは、情報は、当業者に精通したストレージエリアネットワーク(「SAN」)に存在してもよい。同様に、コンピュータ、サーバ、またはその他のネットワークデバイスに起因する機能を実行するための任意の必要なファイルは、適宜、ローカル及び/またはリモートに格納されてもよい。システムがコンピュータ化されたデバイスを含む場合、そのような各デバイスは、バスを介して電気的に結合されてもよいハードウェアエレメントを含むことができ、そのエレメントは、たとえば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力デバイス(たとえば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(たとえば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。そのようなシステムはまた、ディスクドライブ、光学ストレージデバイス、及びランダムアクセスメモリ(「RAM」)またはリードオンリーメモリ(「ROM」))、ならびに、リムーバブルメディアデバイス、メモリーカード、フラッシュカードなどのソリッドステートストレージデバイス1つまたは複数のストレージデバイスを含んでもよい。
そのようなデバイスはまた、コンピュータ可読記憶媒体リーダ、通信デバイス(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及び、上記のようなワーキングメモリを含むことができる。コンピュータ可読記憶媒体リーダは、リモート、ローカル、固定、及び/または、リムーバブルストレージデバイスを示すコンピュータ可読記憶媒体、ならびに、コンピュータ可読情報を一時的及び/またはより恒久的に含む、格納する、伝送する、及び検索するための記憶媒体と接続し、またはそれらを収容するように構成できる。システム及びさまざまなデバイスはまた、複数のソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置するその他のエレメントを通常は含み、オペレーティングシステム、及びクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムを含む。代替の実施形態が上記のものから多数の変化を有してもよいことが理解されるべきである。たとえば、カスタマイズされたハードウェアが使用されてもよく、及び/あるいは、特定のエレメントが、ハードウェア、ソフトウェア(アプレットなどの携帯型ソフトウェアを含む)、またはその両方に実装されてもよい。さらに、ネットワーク入出力デバイスなどのその他のコンピューティングデバイスへの接続が、採用されてもよい。
コードまたはコードの部分を含む記憶媒体及びコンピュータ可読メディアは、RAM、ROM、電気的消去可能PROM(「EEPROM」)、フラッシュメモリまたは他メモリ技術、コンパクトディスクリードオンリーメモリ(「CD−ROM」)、デジタル多用途ディスク(DVD)またはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、あるいは所望の情報の格納に使用でき、システムデバイスでアクセスできる任意のその他のメディアを含む、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報の記憶及び/または伝送のための任意の方法または技術で実装される、揮発性及び不揮発性のリムーバブル及び非リムーバブルメディアなどのしかしこれらに限定されない記憶媒体及び通信メディアを含む、既知のまたは当該技術分野において使用される任意の適切なメディアを含むことができる。本明細書に提示される開示及び教示に基づき、当業者はさまざまな実施形態を実装するその他の方法及び/または手段を理解する。
したがって、明細書及び図面は、制限的な意味よりむしろ例示的なものと見なされる。しかし、さまざまな変更形態及び変化形態が、特許請求の範囲に記載した本発明のより広い精神及び範囲から逸脱しない範囲で、それに対して行われてもよいことは明らかである。
その他の変化は、本開示の精神の範囲内である。それゆえ、開示された技術は、さまざまな変更形態及び代替の構造に影響されやすいが、それらの特定の例示される実施形態は、図面に示されて、上記で詳細に説明された。しかし、開示される特定の形態に本発明を制限する意図はなく、逆に、添付の特許請求の範囲に規定されるように、本発明の精神及び範囲内にあるすべての変更形態、代替の構造、及び等価物を含包することが意図されることは理解されるべきである。
開示される実施形態を説明する文脈における(特に以下の特許請求の範囲の文脈において)用語「1つの(a)」及び「1つの(an)」及び「その(the)」及び類似の指示物の使用は、本明細書に特に明記しないまたは文脈で明確に否定されない限り、単数及び複数を含むものと解釈される。用語「備える(Comprising)」、「有する(having)」、「含む(including)」、及び「含む(containing)」は、特に断りのない限り、制約のない(open−ended)用語と解釈される(すなわち、「含むが、これに限定されない」ことを意味する)。無修飾で、物理的接続に言及するとき、用語「接続された」は、たとえ介在するものがあるとしても、部分的または完全に中で含まれる、取り付けられる、または結合されるものと解釈される。本明細書における値の範囲の列挙は、本明細書に示されない限り、その範囲に含まれるそれぞれの別々の値に個々に言及することを省略する方法の役割を果たすことを単に意図しており、それぞれの別々の値は、それが本明細書に個々に列挙されているように、本明細書に組み込まれる。用語「組(set)」(たとえば「一組のアイテム(a set of items)」)または「サブセット(subset)」の使用は、文脈で示されないまたは否定されない限り、1つまたは複数のメンバーを備える空でない集合と解釈される。さらに、文脈で示されないまたは否定されない限り、対応する組の用語「サブセット」は必ずしも、対応する組の適切なサブセットを示すというわけではないが、サブセット及び対応する組が等しくてもよい。
「A、B、及びCのうちの少なくとも1つ」または「A、B及びCのうちの少なくとも1つ)」のフレーズの形などの接続語は、特に明記しない限り、または文脈で明確に否定されない限り、アイテム、用語などが、AまたはBまたはC、あるいはA及びB及びCのセットの任意の空でないサブセットでもよいことを示すために一般的に使用されると文脈で理解される。たとえば、3つのメンバーを有する1組の例示的な実施例において、接続句「A、B、及びCのうちの少なくとも1つ」及び「A、B及びCのうちの少なくとも1つ」は、以下のいずれかのセット{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}についても言う。したがって、そのような接続語は一般に、特定の実施形態が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つがそれぞれ存在することを必要とすることを意味するとは意図されない。
本明細書に説明されるプロセスの操作は、本明細書に示されないまたは文脈で明確に否定されない限り、任意の好適な順序で実行することができる。本明細書に説明されるプロセス(またはそれらの変化及び/または組合せ)は、実行可能命令で構成される1つまたは複数のコンピュータシステムの制御下で実行されてもよく、ハードウェアまたはそれらの組合せによって、1つまたは複数のプロセッサで全体的に実行されるコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、あるいは1つまたは複数のアプリケーション)として実装されてもよい。コードは、たとえば、1つまたは複数のプロセッサで実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体に格納されてもよい。コンピュータ可読記憶媒体は非一時的なものでもよい。
任意及びすべての実施例、または本明細書で提供される例示的な言語(たとえば「など」)を使用することは、単に本発明をより明らかにする実施形態とすることが意図され、請求されない限り、本発明の範囲に制限をもたらさない。本明細書中の言語は、本発明の実践に必須の任意の非請求の要素を示すと解釈すべきではない。
本発明を実施するのに最良と発明者に知られている形態(モード)を含む本開示の好ましい実施形態が、本明細書で説明される。それらの好ましい実施形態の変化は、上記説明を読むことで、当業者に明らかになってもよい。発明者は、熟練した職人が適宜そのような変化を使用することを期待し、発明者は本開示の実施形態が、本明細書で特に説明される以外に実施されることを意図する。したがって、本開示の範囲は、適用法によって容認されるように、本文書に添付される特許請求の範囲に列挙される主題の変更形態及び等価物をすべて含む。さらに、それらのすべての可能な変化における上記の要素の任意の組合せは、本明細書に示されないまたは文脈で明確に否定されない限り、本開示の範囲に含まれる。
関連出願の説明
本出願はすべての目的のために、2013年11月11日出願の「MANAGED DIRECTORY SERVICE」と題するU.S. Patent Provisional Application No. 61/902,790、2013年12月5日出願の「MANAGED DIRECTORY SERVICE」と題するU.S. Patent Application No. 14/098,445、2013年12月5日出願の「MANAGED DIRECTORY SERVICE CONNECTION」と題するU.S. Patent Application No. 14/098,450、及び、2013年12月5日出願の「MANAGED DIRECTORY SERVICE WITH EXTENSION」と題するU.S. Patent Application No. 14/098,454の全開示を参照によって組み込む。
現代のコンピュータシステムは、システム、リソース、及びストレージについてローカル及びリモートの組合せを頻繁に使用し、システムエンティティ全体に処理及びストレージを分散し、システムエンティティ間でリソースのリクエストを送信する。ローカル及びリモートのシステムエレメントが異なる認可及び認証システムを有することがあるため、そのようなシステムの管理者は、分散システムによって提供されるリソースへのユーザアクセスを許可する複数のアカウント及び証明書を管理しなければならないことがある。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。リソースが顧客構内(すなわちローカル)に位置するかどうか、リソースがコンピューティングリソースサービスプロバイダ(すなわちリモート)に位置するかどうか、または、リソースがローカル及びリモート両方の組合せに位置するかどうかに応じて、リソースの管理に対する異なるアプローチが必要とされてもよい。サービスによってローカル及び/またはリモートディレクトリのアクセスを提供する既存のアプローチは通常、同一のユーザのために複数のユーザアカウントを必要とし、コストの増加、アカウント保守の問題、及びアカウントセキュリティの問題を引き起こす。複数のログインによるシステムのディレクトリ間の同期は、複雑さの追加の層を追加する。複数のログインを伴うシステム全体にわたるレプリケーションは、データがリモートシステム上で他者によってアクセス可能になることがあることを意味し、データ脆弱性及びより多くのセキュリティ問題につながる可能性がある。
コンピュータシステムエンティティをリモートコンピュータシステムリソースへ接続するための技術が、本明細書に説明される。リモートコンピュータシステムリソースへのアクセスをリクエストするコンピュータシステムエンティティは、そのリクエストを、当該リクエストを受信して、コンピュータシステムエンティティをリモートコンピュータシステムリソースに接続するマネージドディレクトリサービスに実行させる。接続している間、マネージドディレクトリサービスは、リモートコンピュータシステムリソース上で操作を実行するコマンドを受信し、コンピュータシステムエンティティが、リモートコンピュータシステムリソース上で操作の実行を認可される場合、マネージドディレクトリサービスは、リモートコンピュータシステムリソース上の操作を実行する。
少なくとも1つの実施形態に従って、コンピュータシステムディレクトリリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、ローカル及びリモートのコンピュータシステムリソースがローカル及びリモートのコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムエンティティによるコンピュータサービスへのアクセスのための認証及び認可のためのリクエストを満たすことができる例示的環境を示す。
少なくとも1つの実施形態に従って、さまざまな実施形態を行うことができる例示的環境を示す。
少なくとも1つの実施形態に従って、認可及び認証データの中央位置を格納できる例示的環境を示す。
少なくとも1つの実施形態に従って、マネージドディレクトリサービスへのアクセスを認証するための、及び1つまたは複数のコマンドを実行するために認証されるエンティティを認可するための例示的プロセスを示す。
少なくとも1つの実施形態に従って、マネージドディレクトリサービスを使用して1つまたは複数の高可用性リモートシステムリソースを提供できる例示的環境を示す。
少なくとも1つの実施形態に従って、マネージドディレクトリサービスを使用してリモートシステムリソースのスナップショットまたは複製を作成できる例示的環境を示す。
少なくとも1つの実施形態に従って、システムリソースのスナップショットまたは複製を作成するための例示的プロセスを示す。
少なくとも1つの実施形態に従って、システムリソースを再現できる例示的環境を示す。
少なくとも1つの実施形態に従って、リモート位置からローカル位置にシステムリソースを再現するための例示的プロセスを示す。
さまざまな実施形態を実装できる環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムディレクトリリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムエンティティによるコンピュータサービスへのアクセスのための認証及び認可のためのリクエストを満たすことができる例示的環境を示す。
少なくとも1つの実施形態に従って、さまざまな実施形態を行うことができる例示的環境を示す。
少なくとも1つの実施形態に従って、認可及び認証データの中央位置を格納できる例示的環境を示す。
少なくとも1つの実施形態に従って、マネージドディレクトリサービスへのアクセスを認証するための、及び1つまたは複数のコマンドを実行するために認証されるエンティティを認可するための例示的プロセスを示す。
少なくとも1つの実施形態に従って、コンピュータシステムエンティティがローカルシステムリソースを作成し、接続する例示的環境を示す。
少なくとも1つの実施形態に従って、ローカルシステムリソースに接続するための例示的プロセスを示す。
少なくとも1つの実施形態に従って、複数のコンピュータシステムエンティティがコンピュータシステムリソースに接続する例示的環境を示す。
少なくとも1つの実施形態に従って、ローカルシステムリソースが再現される例示的環境を示す。
さまざまな実施形態を実装できる環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムディレクトリリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムリソースがコンピュータシステムエンティティによってアクセスできる例示的環境を示す。
少なくとも1つの実施形態に従って、コンピュータシステムエンティティによるコンピュータサービスへのアクセスのための認証及び認可のためのリクエストを満たすことができる例示的環境を示す。
少なくとも1つの実施形態に従って、さまざまな実施形態を行うことができる例示的環境を示す。
少なくとも1つの実施形態に従って、認可及び認証データの中央位置を格納できる例示的環境を示す。
少なくとも1つの実施形態に従って、マネージドディレクトリサービスへのアクセスを認証するための、及び1つまたは複数のコマンドを実行するために認証されるエンティティを認可するための例示的プロセスを示す。
少なくとも1つの実施形態に従って、ローカルシステムリソースがリモートシステムリソースに拡張されてもよい例示的環境を示す。
少なくとも1つの実施形態に従って、マネージドディレクトリサービスを使用してローカルシステムリソースをリモートシステムリソースに拡張するための例示的プロセスを示す。
少なくとも1つの実施形態に従って、ローカルリソースが読み取り専用許可を有するリモートリソースに拡張されてもよい例示的環境を示す。
少なくとも1つの実施形態に従って、読み取り専用システムリソースへの読み取り及び書き込みのための例示的プロセスを示す。
少なくとも1つの実施形態に従って、ローカルリソースが読み取り/書き込み許可を有するリモートリソースに拡張されてもよい例示的環境を示す。
少なくとも1つの実施形態に従って、システムリソースへの読み取り及び書き込みのための例示的プロセスを示す。
さまざまな実施形態を実装できる環境を示す。
<実施形態の第1の組>
本出願の以下の部分は、マネージドディレクトリサービスのための技術の実施形態の第1の組を説明する。
実施形態の第1の組は、図面の第1の組を参照して説明される。
以下の説明において、さまざまな実施形態が説明される。解説の目的上、特定の構成及び詳細が、実施形態の詳細な理解を提供するために示される。しかし、特定の詳細なしで実施形態を実施してもよいことも、当業者にとって明らかである。さらにまた、実施形態が説明することを不明確にしないために、既知の特徴は省略または簡略化されてもよい。
本明細書で説明及び提案される技術は、分散及び/または仮想化されたコンピュータシステム上のローカル及び/またはリモートリソースならびにその上で動作する実行可能コードを管理する方法、システム、及びプロセスを含む。特に、ユーザ、サービス、プロセス、アプリケーション、クライアントデバイス、ゲストオペレーティングシステム及び/またはその他のそのようなコンピュータシステムエンティティを含むがこれに限定されないコンピュータシステムエンティティによる及びそれらのための、ディレクトリ、ファイルシステム、ファイル、ユーザ、セキュリティポリシー、ネットワークリソース、アプリケーション、システムストレージなどシステムリソースへのアクセスを容易にするかつ管理するシステム機能を利用するための技術が開示される。分散及び/または仮想化されたコンピュータシステムは、より良好なシステム性能、システムリソースへのより良好なアクセス、システムリソースの高可用性、より良好なデータセキュリティ、より良好なユーザセキュリティ、及び/またはその他のそのようなシステムの利益を促進するために、ローカル及び/またはリモートのシステムリソースの効率的な管理によって利益を得ることができる。
例示的な実施例において、分散及び/または仮想化されたコンピュータシステムは、ディレクトリサービスを含むがこれに限定されない1つまたは複数のコンピュータシステムサービスを有してもよく、特定のデータセンタに位置するディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどの、1つまたは複数のシステムリソースを有してもよい。ディレクトリサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどのシステムリソースは、システムリソース、コンピュータシステムリソース、サービス及びリソース、サービス及び/またはリソース、あるいはリソースとしてさまざまに、本開示の本明細書において集合的に言及されてもよい。これらのサービス及び/またはシステムリソースへのアクセスは、1つまたは複数のユーザアカウントと関連する一連の認証証明書を介してでもよい。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。いくつかの実施形態において、ローカル顧客データセンタは、データセンタ内のシステムリソースへのネットワークアクセスのためのローカル証明書を必要としてもよい。たとえば、コンピュータリソースサービスプロバイダで動作していてもよいサービスは、ローカルシステムリソースへのアクセスを必要としてもよいが、データセンタ内のシステムリソースへアクセスするためのローカル証明書を持つことはできない。一連のリソースへの臨時の証明書及びリンクを介したローカルシステムリソースへのアクセスを提供できるサービスが、アクセスを容易にしてもよい。そのようなサービスは、作成、破棄、接続、拡張する操作、及び/またはその他のそのような管理操作を提供することによって、ローカルシステムリソースの管理を支援してもよい。そのような管理操作は、いくつかの実施形態において、認証及び認可を管理してもよいポリシーサブシステムによって容易にされてもよい。いくつかの実施形態において、ローカル及び/またはリモートサービスのローカルシステムリソースを管理するシステムはまた、ローカル及び/またはリモートサービスのリモート及び/またはローカルとリモートが混在するシステムリソースを管理するように構成されてもよい。
本明細書で説明及び提案される技術は、ディレクトリサービスなどのコンピュータシステムサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、及び/またはストレージリソースなどのリソースの実装及び管理に関連する技術を含む。いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステム上のシステムユーザ、リソース、ポリシー、ネットワークアクセス、及び/またはセキュリティを管理する機能を含んでもよいディレクトリ・アズ・ア・サービス(DaaS)の機能を提供するように構成されてもよい。いくつかの実施形態において、マネージドディレクトリサービスは、分散及び/または仮想化されたコンピュータシステムのインスタンスによるそのような機能へのアクセスを管理するようにも構成されてもよく、その他の関連する分散及び/または仮想化されたコンピュータシステムサービスによるそのような機能へのアクセスを管理するようにも構成されてもよい。
たとえば、ユーザは、コンピューティングリソースサービスプロバイダ内に仮想マシン(VM)インスタンスを作成し、それにアクセスしてもよく、それはコンピューティングリソースサービスプロバイダによって管理できない顧客構内に格納されるシステムリソースへのアクセスを必要としてもよい。コンピューティングリソースサービスプロバイダ上で動作するマネージドディレクトリサービスは、取得した証明書を介して顧客構内ディレクトリにアクセスするように構成されてもよく、VMインスタンスに顧客構内リソースへのアクセスを提供するようにも構成されてもよい。いくつかの実施形態において、サービスを提供されるその他のそのようなコンピュータサービスリソースも、顧客構内リソースへのアクセスが提供されてもよく、その結果、たとえば、ブロックデータストレージサービスが、顧客構内のディレクトリに格納されるデータにアクセスしてもよく、または、弾性ロードバランサが、それが作成する各インスタンスのために、顧客構内のアプリケーションをインスタンス化してもよく、または、データウェアハウスが顧客構内ファイルシステムにアクセスし、リモート位置に自動的にバックアップしてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステムのためにユーザアクセス、ポリシー、記憶装置、アプリケーション、セキュリティ、及び/またはその他のそのようなリソースなどのディレクトリサービスを管理するように構成され、それらのディレクトリサービスへのインタフェースとしても構成されてもよい。マネージドディレクトリサービスは、企業ディレクトリなどのディレクトリのためのディレクトリサービスを管理するように構成されてもよい。ディレクトリは、ディレクトリのさまざまなオブジェクトについての情報のデータベースを含有してもよい。オブジェクトは、リソース及びセキュリティプリンシパルに対応してもよく、したがって、ユーザアクセスオブジェクト、ポリシーオブジェクト、ストアオブジェクト、アプリケーションリンクオブジェクト、セキュリティオブジェクト、及び/またはその他のそのようなオブジェクトを含有してもよい。ディレクトリデータベースはそれらのデータベースオブジェクト間の関係も含んでもよく、その結果、ディレクトリはたとえば、どのユーザがどの記憶装置へのアクセスを有するかを管理するために使用できる。
マネージドディレクトリサービスは、ディレクトリの作成を含むがこれに限定されない、そのようなサービスを提供してもよい。マネージドディレクトリサービスは、コンピューティングサービスリソースプロバイダ内、顧客構内、あるいはそれら及び/またはその他のそのような位置の組合せ内に、企業ディレクトリ、DaaS、及び/またはその他のそのようなディレクトリを含むがこれらに限定されないディレクトリを作成してもよい。コンピューティングサービスリソースプロバイダ内で作成されるディレクトリは、コンピューティングサービスリソースプロバイダで動作する仮想マシン内のスタンドアロンディレクトリとして作成されてもよく、または、それらはコンピューティングサービスリソースプロバイダのプライベート及び/または異なる限定サブセット内に位置するプライベートディレクトリとして作成されてもよい(たとえば、仮想ネットワーク及びそのトポロジに(たとえば、アプリケーションプログラミングインタフェース(API)コールによって)仕様を提供している顧客の代わりに、コンピューティングリソースサービスプロバイダによってホストされ、管理される仮想ネットワーク)。ディレクトリを作成するとき、マネージドディレクトリサービスはディレクトリと関連するさまざまな追加のリソースを作成し、リソースを管理及び/またはディレクトリに提供してもよく、さらに、いくつかの実施形態において、サービス障害、待ち時間問題、及び/またはその他のそのようなサービス関連の問題に対する追加の保護及び冗長性を提供してもよい。たとえば、ディレクトリは、ディレクトリのサーバとしての機能を果たすように構成されてもよい1つまたは複数のマシンインスタンスで作成されてもよく、または、ディレクトリにアドレス解決を提供する1つまたは複数のルーティングサービスで作成されてもよく、または、さまざまなその他のそのようなサービス及び/またはリソースで作成されてもよい。いくつかの実施形態において、コンピューティングサービスリソースプロバイダ内に作成されるディレクトリは、多領域分散及び/または仮想化システムの複数の領域内に、追加のリソース及び/またはエンティティを作成してもよく、ならびに/あるいは、マルチドメイン分散及び/または仮想化システムの種々のサブドメイン内に、追加のリソースを作成してもよい。
いくつかの実施形態において、企業ディレクトリにおけるもののような既存の顧客ディレクトリ管理システムとインタフェースし、それらのディレクトリ管理システムから分散及び/または仮想化されたコンピュータシステムサービスまでセキュリティ及び/またはその他のそのようなポリシーを拡張するように、マネージドディレクトリサービスは構成されてもよい。このような実施形態において、ディレクトリリソースは、クライアントアプリケーション、プログラム、サービス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって呼び出されてもよい1つまたは複数のライブラリに含まれる1つまたは複数のAPIコールを提供してもよく、ディレクトリリソース上での、構成、変更、管理、及び/またはその他のそのような操作を少なくとも可能にする。いくつかの実施形態において、顧客ディレクトリ管理システムはたとえば、特定の部門のユーザの、アプリケーションの特定の組合せ、ストレージ位置の特定のサブセット、特定のネットワークリソース、及び/または特定のレベルのセキュアなアクセスへのアクセスを可能にしてもよい。マネージドディレクトリサービスは、VMインスタンス、ならびにその特定の部門のユーザによって分散及び/または仮想化されたコンピュータシステム上でインスタンス化されるその他のそのようなサービスにこれらのポリシーを拡張してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、透過的に及び/または自動的に、そのようなポリシーを拡張してもよく、その結果、たとえば、特定の部門からのユーザのためにまたはその代わりにインスタンス化される仮想マシンインスタンスは、その場のすべての必要なシステム及びすべてのセキュリティ及び/またはすでに適用されているその他のポリシーでインスタンス化されてもよい。
マネージドディレクトリサービスはまた、顧客構内からコンピューティングリソースサービスプロバイダまで特定のリソースの可用性を拡張するように構成されてもよい。顧客構内に位置するファイルシステム及び/またはディレクトリなどのリソースは、たとえば、適切な証明書が示されるときにリソースにリンクを提供することによって、コンピューティングリソースサービスプロバイダ上で動作するサービスに対して利用可能にされてもよい。いくつかの実施形態において、たとえば、そのようなリンクは、ネットワークの複雑さまたはコンピューティングリソースサービスプロバイダホストマシンと顧客構内との間の著しい距離のために許容できない待ち時間を導入してもよい。マネージドディレクトリサービスは、コンピューティングリソースサービスプロバイダに対してシステムリソースを少なくとも部分的に拡張し、拡張されたシステムリソースへの読み取り及び/または書き込みに対して待ち時間の短いアクセスを提供し、同時に、顧客構内のオリジナルリソースとコンピューティングリソースサービスプロバイダ上の拡張されたリソースとの間の同期を管理することによって、この許容できない待ち時間に対処するように構成されてもよい。マネージドディレクトリサービスは、拡張されたシステムリソースへの読み取り専用アクセスを提供してもよく、または、いくつかの実施形態において、拡張されたシステムリソースへの読み書きアクセスを提供してもよい。読み取り/書き込みアクセスが提供されてもよいいくつかの実施形態において、顧客構内システムリソースはマスタに指定されてもよく、または、拡張されたシステムリソースプロバイダがマスタに指定されてもよく、または、2つのリソースは、たとえば書き込みの衝突が生じた場合に、どちらが権限を有するかを取り決めてもよい。いくつかの実施形態において、リソースは、複数のコンピューティングリソースサービスプロバイダ、コンピューティングリソースサービスプロバイダ内の複数の領域、複数の顧客構内、あるいはこれら及び/またはその他のそのような位置の組合せを含むがこれらに限定されない複数の位置に拡張されてもよい。
マネージドディレクトリサービスは、特定のリソースを顧客構内からコンピューティングリソースサービスプロバイダに移動するようにも構成されてもよく、特定のリソースをコンピュータサービスリソースプロバイダから顧客構内に戻すようにも構成されてもよい。マネージドディレクトリサービスは、たとえば、バックアップの作成、冗長性の作成、及び/またはその他のそのような目的のために、コンピュータシステムリソースの完全な及び/または部分的なスナップショットを作成するように構成されてもよい。たとえば、本明細書で説明される拡張操作は、いくつかの実施形態において、マネージドディレクトリサービスの機能を利用して、少なくとも部分的なスナップショットを作成し、顧客構内からコンピューティングリソースサービスプロバイダにそのスナップショットをコピーすることによって、スナップショットを作成してもよい。マネージドディレクトリサービスはまた、いくつかの実施形態において、コンピュータシステムリソースの完全スナップショットを作成してもよく、次いで、そのスナップショットを顧客構内からコンピューティングリソースサービスプロバイダへ、またはコンピュータリソースサービスプロバイダから顧客構内へコピーしてもよい。次いで、元のコンピュータシステムリソースにアクセスしていたコンピュータサービスの1つまたは複数は、異なる位置のコピーにアクセスするように変更されてもよい。いくつかの実施形態において、そのような移動は、特定のリソースの負荷の減少、リソースの特定の集中化した位置への移動、または、その他のそのような目的に役立ってもよい。
図1は、ディレクトリサービス(単に「コンピュータシステムディレクトリ」または「ディレクトリ」と呼ばれる)、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むがこれらに限定されないそのようなディレクトリサービスと関連するリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードなどの、コンピュータシステムディレクトリリソースにアクセスするための環境100を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス102は、コンピュータシステムクライアントデバイス104を通してコンピュータシステムに接続してもよく、1つまたは複数のコンピュータシステムサービス110への接続108を介してアクセスをリクエストしてもよい。いくつかの実施形態において、サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、信頼されたユーザによって、あるいは、ユーザによって、あるいは、自律的プロセスによって、あるいは、アラーム及び/またはその他のそのような状態の結果として、あるいは、これら及び/またはその他のそのような方法の組合せによって、発行されてもよい。
サービス(単数または複数)は、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースデータベースストレージシステム、ブロックストレージサービス、冗長データストレージサービス、データアーカイブサービス、データウェアハウジングサービス、ユーザアクセス管理サービス、コンテンツ管理サービス、及び/またはその他のそのようなコンピュータシステムサービスなどのコンピュータサービスへのアクセスを提供してもよいコンピューティングリソースサービスプロバイダ106上で動作していてもよい。コンピューティングリソースサービスプロバイダ106は、また、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースへのアクセスを提供してもよい。いくつかの分散及び/または仮想化されたコンピュータシステム環境において、コンピュータサービスと関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組合せ、あるいはその他のそのようなデバイスの実施形態でもよい。
コンピューティングリソースサービスプロバイダの1つまたは複数のサービス110は、いくつかの実施形態において、ディレクトリサービスならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースを含むがこれらに限定されない1つまたは複数のディレクトリリソース116へのアクセスを必要としてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、1つまたは複数のAPIコールを使用して、ディレクトリを作成するリクエストを受信することを含んでもよい。いくつかの実施形態において、ディレクトリは、コンピューティングリソースサービスプロバイダ内、または、顧客構内データセンタ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内、または、顧客構内データセンタ内の仮想ネットワーク内、または、いくつかのその他のそのような位置の中で作成されてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、クライアント及び/または顧客に代わってディレクトリを管理する操作などの、ディレクトリでのその他の操作を含んでもよい。
システムリソースまたはリソースがコンピューティングリソースサービスプロバイダ内に位置してもよいいくつかの実施形態において、コンピュータサービスリソースプロバイダは、1つまたは複数のシステムリソースへのアクセスを提供してもよい。システムリソースまたはリソースが、たとえば、少なくとも部分的に顧客構内にあるなど、コンピューティングリソースサービスプロバイダの外側に少なくとも部分的に位置してもよいいくつかの実施形態において、コンピュータサービスリソースプロバイダは、たとえば、ユニフォームリソース識別子(URI)またはいくつかのその他のそのようなリンクによるなど、1つまたは複数のリンクまたはロケータ114を介して、1つまたは複数のリソースへのアクセスをリクエストしてもよい。リンクは、1つまたは複数のリンクまたはロケータを介して1つまたは複数のコンピュータシステムサービスに、コンピュータシステムリソースへのアクセスを少なくとも提供するように構成されてもよいマネージドディレクトリサービス112などの、コンピューティングリソースサービスプロバイダ上で動作するサービスによって管理されてもよい。リンクは、コンピューティングリソースサービスプロバイダ内で動作するプロセスによって、あるいは、顧客構内内で動作するプロセスによって、あるいは、コンピューティングリソースサービスプロバイダに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、顧客構内に接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、マネージドディレクトリサービスのリンク及び/またはロケータを提供及び/または管理するプロセス(単数または複数)、ならびに、マネージドディレクトリサービスに関連するかつ/またはそのコントロール下にあるその他のプロセスは、コンピュータシステムエンティティ上で実行されてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダ内で、または、顧客構内で、または、これら及び/またはコンピューティングリソースサービスプロバイダのその他のそのようなローカル及び/またはリモート位置の組合せにおいて、コンピュータシステムリソースを使用してもよい。
図2は、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードを含むがこれらに限定されないコンピュータシステムディレクトリリソースにアクセスするための環境200を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス202は、コンピュータシステムクライアントデバイス204を通してその他のコンピュータシステムに接続してもよく、1つまたは複数のサービス226への接続206を介してアクセスをリクエストしてもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス204は、1つまたは複数のネットワーク216及び/または、直接または間接的にそのネットワークに接続されたその他のサーバなどのネットワーク216に関連するエンティティを介してサービスへのアクセスをリクエストしてもよい。上記のように、アクセスは、さまざまな構成及び位置のディレクトリを作成する機能、ならびに、その他のディレクトリ管理操作にアクセスする機能を含んでもよい。いくつかの実施形態において、ディレクトリは、仮想マシン及び/またはその他のクライアントがディレクトリのドメインに参加してもよいように作成及び構成されてもよく、それによって、ディレクトリにアクセスする。たとえば、ディレクトリはコンピューティングリソースサービスプロバイダ内で作成されてもよくて、仮想マシン及び/またはその他のクライアントが必要に応じてディレクトリに参加することを可能とするように構成されてもよい。ディレクトリへのアクセスを必要としてもよいクライアントは、1つまたは複数の認証された接続及び/または1つまたは複数の認可されたAPIコールを使用してディレクトリのドメインに参加することによって、そうしてもよい。コンピューティングリソースサービスプロバイダ内に作成されるディレクトリは、いくつかの実施形態において、隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に作成されてもよい。隔離仮想ネットワークは、コンピューティングリソースサービスプロバイダの、顧客が構成する隔離サブセクションであり、コンピュータリソースサービスプロバイダ内でその他のサービスに直接アクセス可能ではない、セキュアかつ隔離された仮想ネットワーク環境の顧客に、1つまたは複数のコンピューティングリソースサービスプロバイダサービスを提供する。隔離仮想ネットワークの中で作成されるリソースへのアクセスは、隔離仮想ネットワーク内のその他のサービス及びエンティティのみ利用可能でもよく、リソースが隔離仮想ネットワークのサブネット内に作成される実施形態において、リソースは、そのサブネット内のその他のサービス及びエンティティのみ利用可能でもよい。
ディレクトリへのアクセスをリクエストしてもよいコンピュータシステムクライアントデバイス204は、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース(登録商標)、WiFi(登録商標)、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、顧客構内は、1つまたは複数のディレクトリ208を含んでもよく、それは少なくとも部分的に顧客構内に位置してもよく、それはファイル、ならびに/あるいは、ディレクトリ、アプリケーション、データ、データベース、その他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなリソースを含むがこれらに限定されない、その上のその他のコンピュータシステムリソースを保存してもよい。いくつかの実施形態において、コンピュータシステムリソースは、ファイルシステムリソースでもよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、ソリッドステートドライブ、リムーバブルドライブ、あるいはこれら及び/またはその他のそのようなストレージデバイスの組合せなどの、さまざまなストレージデバイスに保存されてもよい。いくつかの実施形態において、コンピュータシステムリソースは、たとえば本明細書で説明されるネットワーク接続などの1つまたは複数の接続を介して、コンピュータシステムクライアントデバイス204によってアクセスされてもよいデータセンタ(複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイスを一箇所に置くことができる)の少なくとも一部に位置してもよい。コンピュータシステムリソース及び/またはデータセンタはローカルに位置してもよく、ローカル及びリモートを組み合わせて位置してもよい。たとえば、いくつかの実施形態において、ファイルシステム及び/またはディレクトリは、ローカルデータセンタに位置するディスク上に位置してもよく、ファイルシステム及び/またはディレクトリのコンテンツも、リモートデータセンタに位置するディスクに再現されてもよい。いくつかの他の実施形態において、ファイルシステム及び/またはディレクトリは、ローカルでもよい(すなわちデータセンタ内にホストされる))1つのデータセンタにそのコンテンツの少なくとも一部を配置し、また、ローカルまたはリモートでもよい1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分を配置してもよい。ストレージデバイスは、本明細書に説明されるような物理デバイス、及び/またはそのような物理デバイスの仮想表現を含んでもよい。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、いくつかの量の物理メモリを含んでもよく、その一部は、仮想ディスクドライブ上に作成されるファイルシステムを有する仮想ディスクドライブとしてのストレージ専用である。その他のそのようなストレージデバイスが、本開示の範囲内であると見なしてもよい。
いくつかの実施形態において、サービス226は、本明細書に説明されるような1つまたは複数のコンピュータシステムディレクトリリソースへのアクセスを必要としてもよい。サービス226は、いくつかの実施形態において、ユーザ、その他のコンピュータシステム、プロセス及び/または自動化プロセス、ならびに/あるいはその他のそのようなコンピュータシステムエンティティを含むがこれらに限定されないさまざまなその他のコンピュータシステムエンティティを含んでもよい。システムディレクトリリソースへのアクセス214は、いくつかの実施形態において、マネージドディレクトリサービス218などのサービスによって提供されてもよく、それは1つまたは複数のシステムリソースへのアクセスを提供してもよい。たとえば、ディレクトリ208は、コンピューティングリソースサービスプロバイダ内で、または、顧客構内のデータセンタ内で、または、いくつかのその他のそのような位置の中で、マネージドディレクトリサービス218によって作成されてもよい。ディレクトリがマネージドディレクトリサービスによって作成されると、マネージドディレクトリサービスは、ディレクトリに参加することを望むことがある、または、ディレクトリで認可されたコマンドを実行することを望むことがある、または、その他のディレクトリ管理操作を実行することを望むことがあるサービスにURI214を提供することによって、ディレクトリへのアクセスを提供することができる。マネージドディレクトリサービス218は、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが、認証220、認可222、及びディレクトリサービス224を介したディレクトリ管理の目的のためのアクセスを含むがこれに限定されないディレクトリの管理を行うことを可能にするさまざまなサービスを提供してもよい。
たとえば、マネージドディレクトリサービスは、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティの証明書を認証できる220認証サービスを提供し、そのエンティティが、たとえば、ディレクトリを作成する、ディレクトリ及び/またはその他のそのようなディレクトリ管理機能のドメインに参加するためにマネージドディレクトリサービスにアクセスすることが認可されるかどうかを少なくとも決定してもよい。いくつかの実施形態において、証明書は、マネージドディレクトリサービス自身によって認証されてもよく、または、それらは、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、マネージドディレクトリサービスが通信できるプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、これら及び/あるいはその他のそのようなサービスまたはエンティティの組合せによって認証されてもよい。
マネージドディレクトリサービス218はまた、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティを認可できる222認可サービスを提供し、そのエンティティがマネージドディレクトリサービスによって管理されるディレクトリに関連して、1つまたは複数の可能なアクションのうちのどのアクションを実行できるかを少なくとも決定してもよい。たとえば、エンティティがディレクトリでの実行を認可されてもよくまたは認可されることができないアクションは、ディレクトリの作成、ディレクトリを含む1組のディレクトリの説明、ディレクトリの削除、ディレクトリの別のディレクトリへの拡張、ディレクトリのスナップショットについての情報の作成及び/または提供、ディレクトリのスナップショットの削除、ディレクトリのスナップショットからのディレクトリのリストア、ディレクトリと関連するタグの管理(追加/削除)、ディレクトリのURIのエイリアスの作成、エイリアスが利用可能かどうかの確認、ならびに/あるいは、ディレクトリのURIのエイリアスの削除を含むが、これらに限定されるものではない。ディレクトリが作成されると、ディレクトリの管理者は、作成されたディレクトリを介して、ディレクトリでの操作を実行することができる。たとえば、管理者は、ファイルシステムの作成、ファイルシステムの破棄、ファイルシステムへの取付け、ファイルシステムからの取り外し、ファイルシステムへのアクセスリンクの提供、ファイルシステムへのアクセスリンクの返還要求、ファイルシステムからの読み取りの許可、ファイルシステムへの書き込みの許可、及び/または、その他のそのようなファイルシステムリソースアクションなどのアクションを実行できる。
システムリソース上のアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、その他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはその他のそのようなその上のシステムリソースオブジェクトでのアクションを含むが、これらに限定されるものではなくてもよく、本明細書に言及されるアクションのようなアクションを含んでもよい。システムリソースの開始、停止、返還要求、破棄、及び/またはそれ以外の管理を行うアクション、ならびに、その他のそのようなアクションが、利用可能なアクションに含まれてもよい。アクションを実行する認可は、たとえば、特定のエンティティに関連する1組の証明書及び/またはポリシーを保守するシステムなどの証明書発行またはポリシーシステムのようなエンティティによって管理されてもよく、少なくとも一部において証明書及び/またはポリシーの組に基づいて、エンティティが実行を認可されるアクションを決定してもよい。エンティティが実行を認可されてもよいアクションは、静的でもよく、または、時刻、証明書のタイプ、システムポリシー、性質、アクセスされるオブジェクトのタイプまたは位置、あるいは、これら及び/またはその他のそのような認可要因の組合せを含むがこれらに限定されない複数の要因によって変化してもよい。たとえば、コンピュータシステムエンティティは、ファイルシステムの特定のファイルの読み取りのみ、ファイルシステムの特定のその他のファイルの読み取り及び書き込み、ならびに、ファイルシステムの特定のその他のファイルの追加及び削除を認可されてもよい。異なるコンピュータシステムエンティティが、ファイルシステム上の任意のアクションの実行を認可されてもよいが、それは、それらのアクションが特定の位置から、そして特定の時間に開始される場合のみである。1つまたは複数のプロセスは、システムログなどのファイルシステム上のファイルへの書き込みのみ認可されてもよく、同時に、その他のプロセスが、そのファイルからの読み取りのみ認可されてもよい。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス214を提供できる224ディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソースなどのコンピュータシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能は、ディレクトリサービスによって提供されてもよい。ディレクトリサービスは、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。
いくつかの実施形態において、コンピュータシステムリソースへのアクセスは、アクセスがリクエスト側エンティティに不可視であるような方法で提供されてもよい。たとえば、アクセス214は、ディレクトリ208の位置210へのURIまたはその他のそのようなリンクとして、リクエスト側エンティティに提供されてもよい。コンピュータシステムリソース上の位置は、コンピュータシステム上で動作する1つまたは複数のプロセスによってURIに212変換されてもよい。コンピュータシステムリソースへのアクセスをリクエストしたサービスまたはエンティティ226は、コンピュータシステムリソースの位置に依存する構成を必要とすることなく、コンピュータシステムリソースにアクセスするための228受信したURIを使用してもよく、いくつかの実施形態において、サービスまたはエンティティ226がコンピュータシステムリソースに直接接続されているように動作するコンピュータシステムリソースにリンクするURIを使用してもよい。たとえば、サービスまたはエンティティに対して、サービスまたはエンティティに近い位置に位置するように見えてもよいファイルに1組のデータを書き込むように見える操作が、データを実際にネットワークパケットにパッケージ化してもよく、次いで、アクセスリンク214を介してネットワーク216を越えてパケットを転送し、ディレクトリ208に位置するファイルに実際に書き込まれる。意図されるように、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行されてもよいその他のタイプの操作も、本開示の範囲内であると見なしてもよい。
図3は、ディレクトリをサポートするコンピュータシステムディレクトリリソースにアクセスするための環境300を示す。ディレクトリリソースは、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、その上で動作する関連コードを含むがこれらに限定されるものではなくてもよい。ユーザまたはプロセス302は、コンピュータシステムクライアントデバイス304を通してコンピュータシステムに接続してもよく、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、接続306を介してネットワーク接続316越しに、1つまたは複数のサービス326へのアクセスをリクエストしてもよい。(たとえば、コンピューティングリソースサービスプロバイダの)コンピューティング環境は、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、顧客構内の外部の少なくとも一部に位置してもよい1つまたは複数のコンピュータシステムディレクトリ308を含んでもよい。いくつかの実施形態において、サービス326は、図1及び2に関連して少なくとも本明細書に説明されるものなどの、ディレクトリ308によって管理されるアクセスコンピュータシステムリソースを必要としてもよい。ディレクトリ308によって管理されるコンピュータシステムリソースへの(たとえば、URI314を介した)アクセスは、いくつかの実施形態において、マネージドディレクトリサービス318などのサービスによって提供されてもよく、それはディレクトリ308によって管理される1つまたは複数のシステムリソースへのアクセスを提供してもよい。アクセスは、ディレクトリの作成、ディレクトリの削除、ディレクトリの拡張、ディレクトリへの接続、ディレクトリ及び/またはその他のそのようなディレクトリ管理操作への参加の機能を含んでもよい。たとえば、ユーザまたはプロセス302は、仮想マシンサービス326によって管理される仮想マシンを、ユーザまたはプロセスが以前に作成したディレクトリ308に参加するよう所望してもよい。マネージドディレクトリサービスは、URI314を介するアクセスを提供してもよく、いくつかの実施形態において、ディレクトリに参加するための認証及び/または認可をユーザまたはプロセス302に提供してもよい。
マネージドディレクトリサービスは、さまざまなサービスを提供して、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスがシステムリソースにアクセスすることを可能にしてもよい。たとえば、マネージドディレクトリサービスは、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される220認証サービスに類似の認証サービス320を提供してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される222認可サービスに類似の322認可サービスを提供してもよい。マネージドディレクトリサービスはまた、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される224ディレクトリサービスに類似の324ディレクトリサービスも提供してもよい。マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムディレクトリリソースへの認証されたエンティティアクセス314を提供してもよいディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能は、ディレクトリサービス324によって提供されてもよい。ディレクトリサービス324は、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。いくつかの実施形態において、URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。
図4は、少なくとも図2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、分散及び/または仮想化されたコンピュータシステム環境におけるローカル及び/またはリモートコンピュータシステムリソースに対する、ローカル及び/またはリモートサービスによる認証、認可、及びアクセスのためのユーザリクエストを提供する環境400を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス402は、コンピュータシステムクライアントデバイス404を通してコンピュータシステムに接続してもよく、マネージドディレクトリサービス、クラウドサービス、ウェブサービス、仮想マシンサービス、データベースサービス、及び/またはその他のそのようなコンピューティングリソースサービスプロバイダサービスを含むがこれらに限定されない1つまたは複数のローカル及び/またはリモートサービスへのコンピュータシステムエンティティ、ユーザ、またはプロセスによるアクセスを容易にするために、証明書の認証を406リクエストしてもよい。証明書の認証をリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。証明書の認証をリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス404は、1つまたは複数のネットワーク408及び/あるいは直接または間接的にネットワーク408に接続されるその他のサーバなどのそれらに関連するエンティティを使用して、コンピュータシステムに接続されてもよい。コンピュータシステムクライアントデバイスは、ネットワークを介してコンピュータシステムで接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、コンピュータシステムクライアントデバイス404は、マネージドディレクトリサービス410の制御に対応して及び/または制御の下で動作する1つまたは複数の認証プロセス412にアクセスしてもよく、認証プロセスは、外部プロセスからのリクエストに少なくとも応じて、コンピュータシステムエンティティ、ユーザ、またはプロセスをリクエストする証明書を認証するように構成されてもよい。たとえば、リクエスト側コンピュータシステムエンティティ、ユーザ、またはプロセスがマネージドディレクトリサービスへのアクセスが可能とされるかどうかを、認証プロセスは414を確認してもよい。認証プロセスは、ユーザ名及びパスワードの組合せを検証することによって、あるいは、ハードウェア、ソフトウェア、ファームウェア、またはその他のそのようなデバイス上に格納される暗号鍵を検証することによって、あるいは、コンピュータシステムクライアントデバイスがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、ネットワークがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、これら及び/またはその他のそのような検証方法の組合せによって、マネージドディレクトリサービスへのアクセスを有効にしてもよい。認証プロセスは、その他のそのような認証タスクを実行してもよく、いくつかの実施形態において、コンピュータシステム及び/またはその他のコンピュータシステムに格納されるデータに対応して及び/またはそのデータとともに動作するその他のプロセスと組み合わせて認証タスクを実行してもよい。
いくつかの実施形態において、本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセス402は、本明細書に説明されるように1つまたは複数のネットワーク408及び/またはネットワーク408に関連するエンティティを使用して、本明細書に説明されるコンピュータシステムクライアントデバイス404を通してコンピュータシステムに接続してもよく、中に作成されてもよいディレクトリ432上でまたはそれに接続して、1つまたは複数の操作やプロセスを実行する認可を416でリクエストしてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダから、または、コンピューティングリソースサービスプロバイダ内の、もしくは、隔離仮想ネットワークのサブネット内の、もしくは、顧客構内のデータセンタ内の、もしくは、顧客構内の仮想ネットワーク内の、もしくは、いくつかのその他のそのような位置内の隔離仮想ネットワークからアクセス可能でもよい。いくつかの実施形態において、リクエストされる操作認可は、ディレクトリの作成または削除などの、ディレクトリに関連する1つまたは複数のコンピュータシステムリソース操作を直接実行するようリクエストされる認可でもよい。いくつかの実施形態において、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を間接的に実行するようリクエストされる操作でもよい。たとえば、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を実行する認可のための、コンピュータシステムエンティティ、ユーザ、またはプロセス402の制御下のリモートコンピュータシステムサービス、プロセス、またはエンティティの認可のリクエストでもよい。認可は、マネージドディレクトリサービス410の制御に対応して及び/またはその制御の下で動作する1つまたは複数の認可プロセス418からリクエストされてもよく、認可プロセスは、外部プロセスからのリクエストに少なくとも応じるように、そして、ディレクトリ432上またはそれ以外ではそのディレクトリに関連するコンピュータシステムエンティティ、ユーザ、またはプロセスによる1つまたは複数の操作及び/またはプロセスの性能を認可するように、構成されてもよい。コンピュータシステムリソースは、顧客構内のデータセンタなどのようにローカルに位置してもよく、あるいは、リモートに位置してもよく、あるいは、分散及び/または仮想コンピュータシステム上などの複数のリモート位置に位置してもよく、あるいは、ローカル及び/またはリモート位置の組合せに位置してもよい。たとえば、ファイルシステムは、ローカルデータセンタに位置するローカルディスク上に位置してもよく、そのファイルシステムのコンテンツはまた、1つまたは複数のリモートデータセンタに位置する1つまたは複数のリモートディスクに再現されてもよい。いくつかの実施形態において、ファイルシステムは、少なくともローカルまたはリモートでもよい1つのデータセンタにそのコンテンツの少なくとも一部を配置し、また1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分とを配置してもよい。
認可されてもよい操作及び/またはプロセスの実施例は、420のリソースオブジェクトの作成及び/または破棄、422のリソースオブジェクトの読み取り及び/または書き込み、ならびに/あるいは、その他のそのようなシステムリソース操作を含むが、これらに限定されるものではない。認可は、エンティティ、ユーザ、またはプロセスによって、日時によって、エンティティのクラスによって、ユーザのクラスによって、プロセスのクラスによって、1つまたは複数のシステムポリシーによって、リクエストの性質によって、あるいは、これら及び/またはその他のそのような考慮事項の組合せによって、変化してもよい。たとえば、コンピュータシステムエンティティは、ファイル及び/またはディレクトリの作成は認可されてもよいが、それらの削除は認可されることはできなく、あるいは、プロセスは、そのプロセスによって作成されたファイル及び/またはディレクトリの削除のみ認可されてもよいが、他は認可されることはできなく、あるいは、エンティティは、特定のディレクトリで特定のファイルの読み取りは認可されてもよいが、他は認可されることはできない。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
いくつかの実施形態において、本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセス402は、本明細書に説明される1つまたは複数のネットワーク408及び/またはネットワーク408に関連するエンティティを使用して、本明細書に説明されるコンピュータシステムクライアントデバイス404を通してコンピュータシステムに接続してもよく、ディレクトリ432の管理のためにディレクトリ432へのアクセスをリクエストしてもよい1つまたは複数のローカル及び/またはリモートサービス428を作成及び/またはインスタンス化424してもよい。ディレクトリは、本明細書に説明されるような1つまたは複数の位置のうちの1つに事前に作成されていてもよく、アクセスは、URI424を介して作成されたディレクトリに提供されてもよい。いくつかの実施形態において、コンピュータサービス、プロセス、またはエンティティ428は、マネージドディレクトリサービス410の制御に対応して及び/またはその制御の下で動作する1つまたは複数のディレクトリサービスプロセス426にアクセスしてもよく、ディレクトリサービスプロセスは、外部プロセスからのリクエストに少なくとも応じ、そして、1つまたは複数のファイルシステムへのアクセスを提供するように構成されてもよい。1つまたは複数のファイルシステムへのアクセスは、ファイルならびに/あるいはディレクトリ、アプリケーション、データ、データベース、その他のファイルシステムへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなファイルシステムオブジェクトなどのその他のファイルシステムオブジェクトに対する、読み取り、書き込み、実行、削除、作成、インスタンス化、及び/またはその他のそのような操作などの操作へのアクセスを含んでもよい。いくつかの実施形態において、操作へのアクセスは、本明細書に説明されるような1つまたは複数の認可プロセス418を有する通信430によって容易にされてもよく、その中に含まれるリソース認可ポリシーに従って認可を提供する。
前述のように、図4のコンピュータシステムエンティティ、ユーザ、またはプロセス402、及びコンピュータシステムクライアントデバイス404は、分散型コンピューティングシステム及び/またはデータセンタ環境で相互接続される複数のエンティティ、ユーザ、プロセス、及び/またはデバイスの中の1つでもよい。図5は、さまざまな実施形態が行われてもよい分散コンピューティング環境及び/またはデータセンタ環境500を示す。1つまたは複数のコンピュータシステムエンティティ、ユーザ、またはプロセス502は、1つまたは複数のネットワーク508を介して1つまたは複数のコンピュータシステムサービス506に、1つまたは複数のコンピュータシステムクライアントデバイス504を介して接続してもよい。1つまたは複数のデータセンタ516に位置してもよい1つまたは複数のローカル及び/またはリモートコンピュータシステムディレクトリリソース514へのサービスによるアクセスは、512のマネージドディレクトリサービスを介して、1つまたは複数のURI510などの1つまたは複数の接続によって提供されてもよい。コンピューティングリソースサービスプロバイダ内に位置してもよいデータセンタ516は、いくつかの実施形態において、仮想データセンタでもよく、さらに隔離仮想ネットワークの一部でもよく、または、隔離仮想ネットワークのサブネットの部分でもよい。
ディレクトリがコンピューティングリソースサービスプロバイダによって提供されるデータセンタに位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、ディレクトリへのアクセスを提供するコンピューティングリソースサービスプロバイダにアクセスしてもよい位置から、データセンタ及びディレクトリにアクセスしてもよい。ディレクトリが隔離仮想ネットワーク内または隔離仮想ネットワークのサブネット内に位置し、コンピュータシステムエンティティが隔離仮想ネットワーク内またはサブネット内に位置するいくつかの実施形態において、ディレクトリは隔離仮想ネットワークまたはサブネット内のそれらのエンティティに対して利用可能とされてもよい。たとえば、コンピューティングリソースサービスプロバイダで位置するディレクトリは、コンピューティングリソースサービスプロバイダにアクセスすることができる複数のデバイスかつ複数の位置からの適切な認可を有するコンピュータシステムエンティティによってアクセスされてもよい。ディレクトリは、ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって共有されてもよく、それぞれは、それらのコンピュータシステムエンティティが位置するところに関係なく、ディレクトリにアクセスして、たとえばディレクトリのドメインに参加してもよいが、それは、それらのエンティティがコンピューティングリソースサービスプロバイダにアクセスして、適切な証明書を有する場合に限る。このような実施形態において、ディレクトリへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。
ディレクトリが、たとえば、顧客によって提供されるデータセンタに位置し、そして顧客構内に位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、同様の方法で、多くの異なる位置からディレクトリにアクセスしてもよいが、それは、それらのエンティティが顧客構内のデータセンタにアクセスする場合に限る。このような実施形態において、顧客構内のデータセンタへのアクセスは、少なくとも図1及び2に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。いくつかの実施形態において、ディレクトリは顧客構内の隔離ネットワークで位置してもよく、エンティティはそのようなディレクトリにアクセスしてもよいが、それは、それらは隔離ネットワークにアクセスして、適切な証明書を有する場合に限る。意図されるように、これらは例示的な実施例であり、複数のコンピュータシステムエンティティがデータセンタ及び/またはシステムリソースに接続することを可能にする516データセンタ及び514システムリソースの位置のその他のタイプ及び/または配置は、本開示の範囲内であると見なしてもよく、それらは、分散されたデータセンタ及び/またはシステムリソース、仮想データセンタ及び/またはシステムリソース、冗長性をもつデータセンタ及び/またはシステムリソース、部分的にローカルなデータセンタ及び/またはシステムリソース、隔離仮想ネットワーク、隔離仮想ネットワークのサブネット、顧客構内の隔離ネットワーク、ならびに/あるいは、部分的にリモートなデータセンタ及び/またはシステムリソースを含むが、これらに限定されない。さらに意図されるように、システムリソースは、さまざまなシステムリソースを含んでもよく、それらは、ローカル及び/またはリモートストレージ位置、システムメモリ、中央処理装置(CPU)、ネットワークインタフェース、ネットワーク帯域幅、ディスプレイデバイス、入力デバイス、ならびに/あるいはその他のそのようなコンピュータシステムリソースを含むが、これらに限定されず、これらのその他のそのようなリソースも本開示の範囲内であると見なしてもよい。
図6は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、認証及び認可証明書のために使用される中央位置ユーザプロファイル、記憶装置、及びシステムポリシーを保守するための例示的環境600を示す。管理者602は、いくつかの実施形態において、顧客構内に位置してもよい1つまたは複数のローカルストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、コンピューティングリソースサービスプロバイダに位置してもよい1つまたは複数のリモートストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、ローカル及びリモートストレージ位置の組合せに位置してもよいストレージ位置に位置してもよい、1組のシステムアクセスデータ604を有してもよい。いくつかの実施形態において、システムアクセスデータは、ユーザ名、ユーザパスワード、ユーザ個人データ、及び/またはその他のそのようなユーザプロファイル情報を含有してもよい1つまたは複数のユーザプロファイル606を含有してもよい。ユーザプロファイルは、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認証サービスなどの認証サービスを提供するために、1つまたは複数のシステムによって使用されてもよい。いくつかの実施形態において、システムアクセスデータは、1つまたは複数のコンピュータシステムリソースへの参照を含有してもよい1つまたは複数の記憶装置608を含有してもよい。いくつかの実施形態において、システムアクセスデータは、たとえば、システムサービス、ファイルシステム、ディレクトリ、マシン、仮想マシン、アプリケーション、ドキュメント、及び/またはその他のそのようなシステムリソースなどのシステムリソースへのアクセスを可能にする、禁止する、及び/または制限する1つまたは複数のポリシーステートメントを含有してもよい1つまたは複数のポリシー610を含有してもよい。ポリシーステートメントは、1つまたは複数のユーザプロファイルのコンテンツ、ユーザプロファイルタイプ、リクエスト側サービス、リクエスト側サービスタイプ、リクエスト側サービス位置、時刻、ユーザの事業価値、クライアント、顧客、リクエスト及び/またはその他のそのような事業価値、またはこれら及び/またはその他のそのような要因の組合せなどの要因に基づいて、システムリソースへのアクセスを可能にしてもよく、禁止してもよく、及び/または制限してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスを提供するコンピューティングリソースサービスプロバイダのアカウントと関連する様々なユーザに、さまざまなレベルのアクセスを提供してもよい。たとえば、一部のユーザは、ディレクトリを作成及び削除することができてもよく、一方で、その他のユーザは、ディレクトリを削除する認可がなくてもよい。したがって、図7は、マネージドディレクトリサービスによって管理されるディレクトリの管理機能へのアクセスを制御するための例示的プロセス700を示す。以下でより詳細に論じられるように、プロセスは、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスへのアクセスを認証するために、かつ、マネージドディレクトリサービスと関連する1つまたは複数のコマンドの実行を認証されるエンティティを認可するために、使用されてもよい。図4で説明されるマネージドディレクトリサービス410などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図7に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、リクエスタがマネージドディレクトリサービス、ならびにマネージドディレクトリサービスによって提供されるコマンド、リソース、及び/またはサービスのうちの1つまたは複数にアクセスすることを可能にするリクエスト702を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初に、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるプロセスなどのプロセスを使用するユーザを704で認証してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図6に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイルデータなどのシステムアクセスデータを使用してもよい。リクエスタが704で認証される場合、マネージドディレクトリサービスは708で接続を可能にし、710でリクエスタからのコマンドを受信し始める。リクエスタが704で認証されない場合、マネージドディレクトリサービスは706で接続を拒絶してもよい。
マネージドディレクトリサービスが710でリクエスタからコマンドを受信し始めると、マネージドディレクトリサービスは、リクエスタが各コマンドの実行を認可されるかどうかを714で決定してもよい。マネージドディレクトリサービスが受信してもよいコマンドの実施例は、ディレクトリを作成または破棄するコマンド、ディレクトリサービスを管理するコマンド、ディレクトリタグを管理するコマンド、ディレクトリエイリアスを管理するコマンド、ディレクトリへの読み出し及び/またはディレクトリからの書き込みのコマンド、ならびに/あるいは、その他のそのようなコマンドを含むがこれらに限定されるものではない。マネージドディレクトリサービスは、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認可プロセスなどの認可プロセスを使用して、リクエスタに各コマンドを実行することを認可してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図6に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイル及び/またはポリシーデータなどのシステムアクセスデータを使用してもよい。
リクエスタが受信したコマンドの実行を714で認可されない場合、マネージドディレクトリサービスは716で特定のコマンドを拒絶してもよく、次いで、712でリクエスタからのコマンドの処理を続けなければならないかどうか決定してもよい。いくつかの実施形態において、いくつかの拒絶されたコマンドが、コマンドを実行しないことになってもよく、いくつかの拒絶されたコマンドが、コマンドが拒絶されたリクエスタ及び/またはその他のコンピュータシステムエンティティに警告することになってもよく、いくつかの拒絶されたコマンドが、リクエスタへの接続を終了させることになってもよく、さらに、いくつかの拒絶されたコマンドが、これら及び/またはその他のそのようなアクションの組合せになってもよい。マネージドディレクトリサービスが、リクエスタからのコマンドを受信し続けることを712で決定する場合、マネージドディレクトリサービスは、710で次のコマンドを待ってもよい。マネージドディレクトリサービスが、続けることを712で決定しない場合、マネージドディレクトリサービスは、722でリクエスタを切断してもよい。いくつかの実施形態において、722リクエスタの分離は、リクエスタの分離、リクエスタへの切断の通知、1つまたは複数のその他のコンピュータシステムエンティティへの切断の通知、あるいは、これら及び/またはその他のそのような切断アクションの組合せを含んでもよい。
リクエスタが受信したコマンドの実行を714で認可される場合、マネージドディレクトリサービスは718で、コマンドの実行、コマンドが許可されることのリクエスタへの警告、コマンドが許可されることの1つまたは複数のその他のシステムエンティティへの警告、1つまたは複数のその他のシステムエンティティへのコマンドの実行のリクエスト、あるいは、これら及び/またはその他のそのような応答の組合せを含んでもよいコマンドを許可してもよい。受信したコマンド及び/または718への応答は、コマンドは、マネージドディレクトリサービスがリクエスタを722で切断してもよい、720の切断するリクエストを少なくとも一部において含んでもよいことを可能にする。マネージドディレクトリが720の切断コマンドを受信しない場合、マネージドディレクトリサービスは、710で次のコマンドを待ってもよい。
図8は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリリソースなどのマネージドディレクトリサービスを使用する1つまたは複数の高可用性ディレクトリを提供するための例示的環境800を示す。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。コンピューティングリソースサービスプロバイダ832は、コンピューティングリソースサービスプロバイダ832内に位置する1つまたは複数のディレクトリ814を含む1つまたは複数のデータセンタ812にアクセスしてもよい1つまたは複数のマネージドディレクトリサービス808を提供してもよい。少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、データセンタ812は、コンピューティングリソースサービスプロバイダ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に位置してもよい。いくつかの実施形態において、コンピューティングリソースサービスプロバイダがさまざまな位置から高可用性であり、マネージドディレクトリサービスも高可用性であるとき、マネージドディレクトリサービスに接続されるディレクトリも、高可用性にされてもよい。
いくつかの実施形態において、ディレクトリ814は、ユーザ、プロセス、デバイス、サービス、及び/またはその他のそのようなコンピュータシステムエンティティなどの1つまたは複数のコンピュータシステムエンティティによって共有されてもよいオフプレミスディレクトリ及び/またはファイルシステムでもよい。このような実施形態において、ユーザ802は、コンピュータシステムデバイス804を介してサービス806に接続してもよく、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるようにマネージドディレクトリサービス808によって提供されるURI810などのリンクを介して、ディレクトリにアクセスしてもよい。別のユーザ816も、コンピュータシステムデバイス818を介して、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービス808によって提供されるURI820などのリンクを介してディレクトリにアクセスしてもよい。ユーザ802及び/またはサービス806のためのディレクトリへのアクセスのための許可及び/またはポリシーは、ユーザ816のためのディレクトリへのアクセスのための許可及び/またはポリシーとは異なってもよい。たとえば、ユーザ802はディレクトリへの読み取り書き込みアクセスを有してもよく、一方、ユーザ816はリモートコンピュータシステムリソースへの読み取りアクセスのみ有してもよい。同様に、URI826などのリンクを介してディレクトリにアクセスしてもよいサービス822、及びURI830などのリンクを介してディレクトリにアクセスしてもよいプロセス828は、読み取り専用、読み取り/書き込み、書き込み専用、追加、及び/またはその他のタイプのディレクトリと関連する許可及び/またはポリシーを有してもよい。ディレクトリにアクセスするためのURIリンクは、すべてのユーザ、サービス、プロセス、及びその他のコンピュータシステムエンティティに対して同一でもよく、または、通信の方法によって変わってもよい。たとえば、特定のサービスは、データがディレクトリへ読み出される及び/またはディレクトリからの書き込まれる前に、URIリンクのいくつかの内部及び/または外部翻訳を必要としてもよい。
図9は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリリソースなどのマネージドディレクトリサービスを使用するディレクトリのスナップショットまたは複製を作成するための例示的環境900を示す。サービス902は、マネージドディレクトリサービス904によって提供されるURI906などのリンクを介して、リモートデータセンタ908のオフプレミスディレクトリ910などのディレクトリに接続されてもよい。第2のサービス920は、マネージドディレクトリサービス904によって提供されるURI922などのリンクを介して、リモートデータセンタ908のディレクトリ910に接続されてもよい。マネージドディレクトリサービス904と関連するプロセス(単数または複数)は、コマンドをリモートデータセンタ908に送信して、ディレクトリ910の複製912を生成してもよい。いくつかの実施形態において、複製を完成させる前に、リモートデータセンタ、マネージドディレクトリサービス、または別のそのようなコンピュータシステムエンティティなどのコンピュータシステムエンティティは最初に、ディレクトリ910での任意の書き込み、修正、更新、またはその他のそのような操作を無効にしてもよい。更新が終わると、リモートデータセンタ908は、リモートデータセンタ916に複製ディレクトリ918を914で作成してもよい。いくつかの実施形態において、複製は、冗長性、セキュリティ、またはその他のそのような目的などの目的のためにリクエストされてもよく、あるいは、複製はまた、システム性能の改善、及び/またはコンピュータシステムの1つまたは複数のエンティティに対するリソース要求の減少のためにリクエストされてもよく、あるいは、複製は、その他のそのような目的のためにリクエストされてもよい。いくつかの実施形態において、複製が作成されたあと、オリジナルは残してもまたは破棄してもよく、あるいは、オリジナル及び複製は、冗長性を提供するために同期し続けてもよく、あるいは、オリジナルはアーカイブされてもよく、あるいは、複製が作成されたあとにオリジナル及び/または複製に対して実行されるその他のアクションがあってもよい。いくつかの実施形態において、複製は、たとえばシステム負荷を減少させるために作成されてもよい。このような実施形態において、サービス920は、複製されたディレクトリ918に転送926されてもよく、URI928などのリンクによって、新しいマネージドディレクトリサービス924を介して複製されたディレクトリに接続してもよく、こうして、オリジナルディレクトリ910の負荷を減少させてもよい。
図10は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるようなマネージドディレクトリサービスと関連するディレクトリのスナップショットまたは複製を作成するための例示的プロセス1000を示す。図4で説明されるマネージドディレクトリサービス410などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図10に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスと関連するディレクトリのスナップショットまたは複製を作成するためのリクエスト1002を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスはコマンド1004を発行し、ディレクトリに対するすべての更新、書き込み、変更、及び/またはその他のそのような修正を中断してもよく、次いで、すべての更新が中断されるまで、1006で待機してもよい。すべての更新が中断されると、マネージドディレクトリサービスは最初に、1008でディレクトリのローカルコピーを作成してもよく、次いで1010で、スナップショットまたは複製をローカルに残すかどうか、すなわち、リモート位置に送信するかどうかを決定してもよい。マネージドディレクトリサービスが1010でスナップショットをローカルのままにすると決定する場合には、マネージドディレクトリサービスは、1018でディレクトリへのアクセスを再開してもよい。マネージドディレクトリサービスが1010でスナップショットをリモート位置に送信すると決定する場合には、マネージドディレクトリサービスは、1012でスナップショットをリモート位置に伝送してもよく、1014でリモート位置に転送される必要があってもよい任意のクライアントを転送してもよく、1016でシステムリソースのリモートスナップショットへのアクセスを可能にするためにリモート位置に通知してもよく、そして、最後に1018でディレクトリへのアクセスを再開する。オリジナルディレクトリが作成されてもよく、ローカル(たとえばコンピューティングリソースサービスプロバイダ内)に、または、リモート(たとえば顧客構内のデータセンタ内)に、または、ローカル及びリモート位置の組合せに、位置してもよい。たとえば、ローカルコピーにリモートディレクトリのスナップショットをとるマネージドディレクトリサービスは、ステップ1002、1004、1006、1008、1010、次いで1018を実行してもよい。別のリモートコピーにリモートリソースのスナップショットをとるマネージドディレクトリサービスは、ステップ1002〜1010を実行し、次いでステップ1012、1014、1016を実行し、最後に1018を実行してもよい。
図11は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される1つまたは複数のマネージドディレクトリサービスを使用して、リモート位置から顧客構内に位置する位置に戻ってディレクトリを再現するための例示的環境1100を示す。いくつかの実施形態において、顧客構内に位置してもよいサービス1102は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ネットワーク1104越しにマネージドディレクトリサービス1106によって提供されるURI1108などのリンクを介して、リモートデータセンタ1112のオフプレミスディレクトリ1114などのディレクトリに接続されてもよい。第2のサービス1118は、いくつかの実施形態において、リモートに位置してもよく、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービス1116によって提供されるURI1120などのリンクを介して、リモートデータセンタ1112のディレクトリ1114に接続されてもよい。
マネージドディレクトリサービス1106と関連するプロセス(単数または複数)は、コマンドをリモートデータセンタ1112に送信して、ディレクトリ1114を1110で再現してもよい。いくつかの実施形態において、レプリケーションを完成させる前に、リモートデータセンタ、マネージドディレクトリサービス、または別のそのようなコンピュータシステムエンティティなどのコンピュータシステムエンティティは最初に、ディレクトリ1114での任意の書き込み、修正、更新、またはその他のそのような操作を無効にしてもよい。更新が終わると、リモートデータセンタ1112は、1130で顧客構内に複製ディレクトリ1122を作成してもよい。複製ディレクトリが作成されると、サービスは、いくつかの実施形態において、複製ディレクトリに接続されてもよい。たとえば、サービス1102は、ディレクトリ1122に1126で接続するコマンドを受信してもよく、どちらもサービスに対してローカルであるため、サービスは直接接続してもよい。サービス1118も、ディレクトリ1122に1128で接続するコマンドを受信してもよく、ネットワーク1104を介して、マネージドディレクトリサービス1124によって提供されるURI1132を介してそうしてもよい。URI1120及びURI1132は、ディレクトリとマネージドディレクトリサービス1106の位置が異なるため、異なってもよい。マネージドディレクトリサービス1106、マネージドディレクトリサービス1116、及びマネージドディレクトリサービス1124は、同一のサービスでもよく、または、複数の別々のサービスでもよい。
図12は、少なくとも図4に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように1つまたは複数のマネージドディレクトリサービスを使用して、リモート位置からローカル位置へディレクトリを再現するための例示的プロセス1200を示す。図4で説明されるマネージドディレクトリサービス410などの1つまたは複数のサービス、またはそれらのマネージドディレクトリサービスと関連するプロセスは、図12に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、第1のマネージドディレクトリサービスと関連するディレクトリから第2のマネージドディレクトリサービスと関連するローカルディレクトリへディレクトリを再現するためのリクエスト1202を受信してもよい。第1及び第2のマネージドディレクトリサービスは、いくつかの実施形態において、同一のマネージドディレクトリサービスでもよく、または、いくつかの実施形態において、異なるマネージドディレクトリサービスでもよい。いくつかの実施形態において、リクエスタは、少なくとも図1に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスはコマンド1204を発行し、ディレクトリに対するすべての更新、書き込み、変更、及び/またはその他のそのような修正を中断してもよく、次いで、すべての更新が中断されるまで、1206で待機してもよい。すべての更新が中断されると、マネージドディレクトリサービスは最初、1208でディレクトリを顧客構内のローカル位置へ複製してもよく、次いで、1212で複製が完成するまで、1210で待機する。1212で複製が完成すると、マネージドディレクトリサービスは1214で、直接接続及び/またはローカル複製へのアクセスを必要としてもよいローカルクライアントのためのURIなどのリンクを提供することによって、及び、ローカル複製へのアクセスを望んでもよいリモートクライアントのためのURIなどのリンクを提供することによって、ローカル複製へのアクセスをリストアしてもよい。マネージドディレクトリはまた、1216でオリジナルディレクトリへのアクセスの保持を望んでもよいその他のクライアントによるアクセスを再開する。
図13は、さまざまな実施形態による態様を実装するための例示的環境1300の態様を示す。理解されるように、ウェブベースの環境が解説のために使用されるが、さまざまな実施形態を実装するために異なる環境が、適宜、使用されてもよい。環境には、電子クライアントデバイス1302が含まれ、それは、適切なネットワーク1304越しにリクエスト、メッセージ、または情報を送信及び/または受信し、いくつかの実施形態において、情報をデバイスのユーザへ戻すことに使用可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、組み込み型コンピュータシステム、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意のその他のそのようなネットワーク、及び/またはそれらの組合せを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境のタイプに、少なくとも一部において依存する可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書では詳細に論じない。ネットワーク越しの通信は、有線または無線接続及びそれらの組合せによって可能にすることができる。本実施例において、ネットワークはインターネットを含み、それは、環境がリクエストを受信し、それに答えてコンテンツを供給するためのウェブサーバ1306を含むためであるが、当業者にとって明らかであるように、その他のネットワークに対して、類似の目的を供給する代替のデバイスを使用することができる。
例示的な環境は、少なくとも1つのアプリケーションサーバ1308及びデータストア1310を含む。いくつかのアプリケーションサーバ、レイヤ、またはその他のエレメント、プロセスまたはコンポーネントが存在することができるが、それらは連結されてもよく、またはそれ以外に構成されてもよく、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することができることは理解されるべきである。サーバは、本明細書で使用される場合、ハードウェアデバイスまたは仮想コンピュータシステムなど、さまざまな方法で実装されてもよい。いくつかの文脈において、
サーバは、コンピュータシステム上で実行されているプログラミングモジュールを参照してもよい。本明細書で使用される場合、特に明記しない限り、または文脈から明らかでない限り、「データストア」という用語は、データの記憶、アクセス、及び検索が可能な、任意のデバイスまたはデバイスの組合せに関するものであり、任意の標準的な、分散された、仮想の、またはクラスタ化された環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データストレージデバイス、及びデータストレージメディアを含んでもよい。アプリケーションサーバは、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことができ、アプリケーションのデータアクセス及びビジネスロジックの一部またはすべてを処理する。アプリケーションサーバは、データストアと連携するアクセス制御サービスを提供してもよく、テキスト、グラフィクス、オーディオ、ビデオ、及び/またはユーザに提供するために使用可能なその他のコンテンツを含むがこれらに限定されないコンテンツを生成することができ、ハイパーテキストマークアップランゲージ(「HTML」)、拡張可能マークアップランゲージ(「XML」)、JavaScript(登録商標)、カスケーディングスタイルシート(「CSS」)、または別の適切なクライアントサイド構造化言語の形態で、ウェブサーバによってユーザに供給することができる。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理されてもよく、可聴的に、視覚的に、ならびに/あるいは触覚、味覚、及び/または嗅覚を含むその他の感覚によってユーザに認識できる形態を含むがこれらに限定されない1つまたは複数の形態でコンテンツを提供する。すべてのリクエスト及び応答の処理、ならびにクライアントデバイス1302とアプリケーションサーバ1308との間のコンテンツの配信は、本実施例においては、PHPハイパーテキストプリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、または別の適切なサーバサイド構造化言語を使用して、ウェブサーバで処理することができる。本明細書の他の場所で論じられるように、本明細書に論じられる構造化されたコードを任意の適切なデバイスまたはホストマシンで実行することができるとき、ウェブ及びアプリケーションサーバは必要ではなく、単に例示的なコンポーネントであることは理解されるべきである。さらに、単一のデバイスで実行されるように本明細書で説明される操作は、文脈から明らかでない限り、複数のデバイスで全体的に実行されてもよく、それは分散された及び/または仮想システムを形成してもよい。
データストア1310は、本開示の特定の態様に関するデータを格納するための、いくつかの別々データテーブル、データベース、データドキュメント、動的データストレージスキーム、及び/またはその他のデータストレージ機構及びメディアを含むことができる。たとえば、示されるデータストアは、生産データ1312及びユーザ情報1316を格納するための機構を含んでもよく、それは生産側のコンテンツを供給するために使用することができる。データストアはまた、ログデータ1314を格納するための機構を含むようにも示され、それは報告、分析、またはその他のそのような目的のために使用することができる。データストアに格納される必要があってもよい、ページ画像情報及びアクセス権情報などの多くのその他の態様があり、それは上記の適切な機構、またはデータストア1310の追加の機構のいずれかに格納することができることは理解されるべきである。データストア1310は、データストア1310に関連するロジックによって、アプリケーションサーバ1308からの命令を受信して、それに応じてデータを取得、更新、またはそれ以外では処理するために使用可能である。アプリケーションサーバ1308は、受信した命令に応答して、静的データ、動的データ、または動的及び静的データの組合せを提供してもよい。本明細書に説明されるように、ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及びその他のそのようなアプリケーションで使用されるデータなどの動的データは、サーバサイド構造化言語によって生成されてもよく、または、アプリケーションサーバで動作するまたはその制御下のコンテンツ管理システム(「CMS」)によって提供されてもよい。1つの実施例において、ユーザは、ユーザによって作動させられるデバイスを通して、特定のタイプのアイテムの検索要求を提出することがある。この場合、データストアは、ユーザの識別情報を検証するために、ユーザ情報にアクセスすることがあり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。次いで情報は、ユーザがユーザデバイス1302上のブラウザを介して閲覧することができるウェブページに記載される結果などで、ユーザに返すことができる。関心のある特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで閲覧することができる。しかし、本開示の実施形態は、ウェブページの文脈に必ずしも制限されるわけではなく、リクエストが必ずしもコンテンツの要求ではない場合に、一般の要求を処理することにより一般的に適用できてもよいことに注意しなければならない。
各サーバは、実行可能プログラム命令をそのサーバの一般的な管理及び操作のために提供するオペレーティングシステムを通常含み、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を通常含む。オペレーティングシステムの好適な実装及びサーバの一般的な機能は知られている、または市販のものであり、特に本明細書の開示を考慮して、当業者によって確実に実装される。
環境は、1つの実施形態において、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する、分散された及び/または仮想コンピューティング環境である。しかし、そのようなシステムは、図13に示されるよりも少ないまたは多いコンポーネントを有するシステムにおいて、同様に正しく機能することは、当業者によって理解されるであろう。それゆえ、図13のシステム1300の描写は、本来は例示的なものと見なすべきであり、本開示の範囲を限定するものではない。
実施形態の第1の組の実施形態は、以下の節を考慮して説明することができる。
1.
コンピューティングリソースサービスプロバイダのマネージドディレクトリサービスの、実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
前記コンピューティングリソースサービスプロバイダの顧客から、アプリケーションプログラミングインタフェースコールの形態で、前記コンピューティングリソースサービスプロバイダのコンピューティング環境にホストされる前記顧客の隔離仮想ネットワーク内にコンピュータシステムディレクトリを作成するリクエストを受信することと、
リクエストに応答して、作成されたコンピュータシステムディレクトリが、コンピュータシステムディレクトリのドメインに前記仮想ネットワーク内の仮想マシンを少なくとも結合するように構成される、顧客の隔離仮想ネットワークでコンピュータシステムディレクトリを作成することと、前記作成されたコンピュータシステムディレクトリが、前記コンピュータシステムディレクトリのドメインに前記仮想ネットワーク内の仮想マシンを少なくとも加えるように構成される、作成することと、
前記マネージドディレクトリサービスによって、前記顧客に代わって前記作成されたコンピュータシステムディレクトリを管理することと
を含む
コンピュータ実装化方法。
2.
前記作成されたコンピュータシステムディレクトリを管理することが、
前記作成されたコンピュータシステムディレクトリが利用不能の場合に使用可能な、前記作成されたディレクトリのレプリカを作成することと、
前記作成されたコンピュータシステムディレクトリへの修正に従って、前記レプリカ及び前記作成されたディレクトリを同期させることと
を含む、
1項に記載のコンピュータ実装化方法。
3.
前記顧客が、前記顧客のコンピューティング環境に1つまたは複数の顧客コンピュータシステムをホストし、
前記顧客の前記コンピューティング環境が、仮想プライベートネットワーク接続を介して前記隔離仮想ネットワークで通信するように構成され、
前記作成されたコンピュータシステムディレクトリが、前記顧客の前記コンピューティング環境の1つまたは複数の顧客コンピュータシステムを、前記作成されたコンピュータシステムディレクトリに結合するようにさらに構成される、
1項または2項に記載のコンピュータ実装化方法。
4.
前記作成されたコンピュータシステムディレクトリを管理することが、異なる時間に、前記作成されたコンピュータシステムディレクトリのスナップショットを取得することを含む、
1〜3項に記載のコンピュータ実装化方法。
5.
前記作成されたコンピュータシステムディレクトリのスナップショットをとるリクエストを受信すること
をさらに含み、
前記スナップショットの少なくとも1つが、前記コンピュータシステムディレクトリのスナップショットをとる前記リクエストを受信することの結果として取得される、
4項に記載のコンピュータ実装化方法。
6.
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるとき、コンピューティングリソースサービスプロバイダの顧客から、前記顧客によって指定される1つまたは複数のパラメータに従って、前記コンピューティングリソースサービスプロバイダのコンピューティング環境にコンピュータシステムディレクトリを作成するリクエストを受信し、作成されたコンピュータシステムディレクトリが、作成されたコンピュータシステムディレクトリに、コンピューティングリソースサービスプロバイダからのコンピューティングリソースを結合するように構成されるように前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記コンピュータシステムディレクトリを少なくとも作成することによって前記受信したリクエストを実行し、前記顧客に代わって前記作成されたコンピュータシステムディレクトリを管理することをシステムにさせる実行可能命令を含むメモリと
を備えるシステム。
7.
前記1つまたは複数のパラメータが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境の前記コンピューティングリソースサービスプロバイダによってホストされる前記顧客の仮想ネットワークを指定する、
6項に記載のシステム。
8.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、時間とともに前記作成されたコンピュータシステムディレクトリにもたらされる修正に従って、前記システムに前記作成されたコンピュータシステムディレクトリのレプリカを保守させる命令を含む、
6項または7項に記載のシステム。
9.
前記コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境外側のコンピューティング環境のコンピュータシステムインスタンスを前記作成されたコンピュータシステムディレクトリに結合する機能を備えて作成される、
6〜8項に記載のシステム。
10.
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境外側の前記コンピューティング環境が、前記顧客の構内にホストされる、
9項に記載のシステム。
11.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記システムに前記作成されたコンピュータシステムディレクトリを作動させるための実行可能コードにパッチをあてさせる命令を含む、
6〜10項に記載のシステム。
12.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、異なる時間に、前記システムに前記作成されたコンピュータシステムディレクトリのスナップショットを取得させる命令を含む、
節11に記載のシステム。
13.
前記システムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記システムに、前記取得された複数のスナップショットのうちの取得された1つのスナップショットの前記作成されたコンピュータシステムディレクトリの一バージョンをインスタンス化させる命令を含む、
12項に記載のコンピュータシステム。
14.
コンピュータシステムの1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに少なくとも
コンピューティングリソースサービスプロバイダの顧客から、前記顧客によって指定される1つまたは複数のパラメータに従って、前記コンピューティングリソースサービスプロバイダのコンピューティング環境にコンピュータシステムディレクトリを作成するリクエストを受信させ、
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記コンピュータシステムディレクトリを少なくとも作成することによって前記受信したリクエストを満たし、その結果、前記作成されたコンピュータシステムディレクトリが、前記作成されたコンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダからのコンピューティングリソースを結合するように構成させ、
前記顧客に代わって前記作成されたコンピュータシステムディレクトリを管理させる
集合的に格納された実行可能命令を有する、
非一時的コンピュータ可読記憶媒体。
15.
前記1つまたは複数のパラメータが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境の前記コンピューティングリソースサービスプロバイダによってホストされる前記顧客の仮想ネットワークを指定する、
14項に記載の非一時的コンピュータ可読記憶媒体。
16.
前記1つまたは複数のパラメータが、前記ディレクトリが作成される前記指定された仮想ネットワークのサブネットワークを指定する、
14項または15項に記載の非一時的コンピュータ可読記憶媒体。
17.
前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリ上で管理操作を実行するアプリケーションプログラミングインタフェースコールを受信させ、満たさせる命令を含む、
14〜16項に記載の非一時的コンピュータ可読記憶媒体。
18.
前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムにフェールオーバイベントで使用するための前記作成されたコンピュータシステムディレクトリのレプリカを同期させる命令を含む、
14〜17項に記載の非一時的コンピュータ可読記憶媒体。
19.
前記コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダと異なるエンティティによってホストされるコンピューティング環境の前記作成されたコンピュータシステムディレクトリのコンピュータシステムインスタンスに結合する機能を備えて作成される、
14〜18項に記載の非一時的コンピュータ可読記憶媒体。
20.
前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを管理させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリを操作するために使用される実行可能コードへの更新を実行させる命令を含む、
14〜19項に記載の非一時的コンピュータ可読記憶媒体。
<実施形態の第2の組>
本出願の以下の部分は、マネージドディレクトリサービスのための技術の実施形態の第2の組を説明する。
実施形態の第2の組は、図面の第2の組を参照して説明される。
以下の説明において、さまざまな実施形態が説明される。解説の目的上、特定の構成及び詳細が、実施形態の詳細な理解を提供するために示される。しかし、特定の詳細なしで実施形態を実施してもよいことも、当業者にとって明らかである。さらにまた、実施形態が説明することを不明確にしないために、既知の特徴は省略または簡略化されてもよい。
本明細書で説明及び提案される技術は、分散及び/または仮想化されたコンピュータシステム上のローカル及び/またはリモートリソースならびにその上で動作する実行可能コードを管理する方法、システム、及びプロセスを含む。特に、ユーザ、サービス、プロセス、アプリケーション、クライアントデバイス、ゲストオペレーティングシステム及び/またはその他のそのようなコンピュータシステムエンティティを含むがこれに限定されないコンピュータシステムエンティティによる及びそれらのための、ディレクトリ、ファイルシステム、ファイル、ユーザ、セキュリティポリシー、ネットワークリソース、アプリケーション、システムストレージなどシステムリソースへのアクセスを容易にするかつ管理するシステム機能を利用するための技術が開示される。分散及び/または仮想化されたコンピュータシステムは、より良好なシステム性能、システムリソースへのより良好なアクセス、システムリソースの高可用性、より良好なデータセキュリティ、より良好なユーザセキュリティ、及び/またはその他のそのようなシステムの利益を促進するために、ローカル及び/またはリモートのシステムリソースの効率的な管理によって利益を得ることができる。
例示的な実施例において、分散及び/または仮想化されたコンピュータシステムは、ディレクトリサービスを含むがこれに限定されない1つまたは複数のコンピュータシステムサービスを有してもよく、特定のデータセンタに位置するディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどの、1つまたは複数のシステムリソースを有してもよい。ディレクトリサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどのシステムリソースは、システムリソース、コンピュータシステムリソース、サービス及びリソース、サービス及び/またはリソース、あるいはリソースとしてさまざまに、本開示の本明細書において集合的に呼ばれてもよい。これらのサービス及び/またはシステムリソースへのアクセスは、1つまたは複数のユーザアカウントと関連する1組の認証証明書を介してでもよい。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。いくつかの実施形態において、ローカル顧客データセンタは、データセンタ内のシステムリソースへのネットワークアクセスのためのローカル証明書を必要としてもよい。たとえば、コンピュータリソースサービスプロバイダで動作していてもよいサービスは、ローカルシステムリソースへのアクセスを必要としてもよいが、データセンタ内のシステムリソースへアクセスするためのローカル証明書を有することはできない。1組のリソースへの臨時の証明書及びリンクを介したローカルシステムリソースへのアクセスを提供できるサービスが、アクセスを容易にしてもよい。そのようなサービスは、作成、破棄、接続、拡張する操作、及び/またはその他のそのような管理操作を提供することによって、ローカルシステムリソースの管理を支援してもよい。そのような管理操作は、いくつかの実施形態において、認証及び認可を管理してもよいポリシーサブシステムによって容易にされてもよい。いくつかの実施形態において、ローカル及び/またはリモートサービスのローカルシステムリソースを管理するシステムはまた、ローカル及び/またはリモートサービスのリモート及び/またはローカル及びリモートが混在するシステムリソースを管理するように構成されてもよい。
本明細書で説明及び提案される技術は、ディレクトリサービスなどのコンピュータシステムサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、及び/またはストレージリソースなどのリソースの実装及び管理に関連する技術を含む。いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステム上のシステムユーザ、リソース、ポリシー、ネットワークアクセス、及び/またはセキュリティを管理する機能を含んでもよいディレクトリ・アズ・ア・サービス(DaaS)の機能を提供するように構成されてもよい。いくつかの実施形態において、マネージドディレクトリサービスは、分散及び/または仮想化されたコンピュータシステムのインスタンスによるそのような機能へのアクセスを管理するようにも構成されてもよく、その他の関連する分散及び/または仮想化されたコンピュータシステムサービスによるそのような機能へのアクセスを管理するようにも構成されてもよい。
たとえば、ユーザは、コンピューティングリソースサービスプロバイダ内に仮想マシン(VM)インスタンスを作成し、それにアクセスしてもよく、それはコンピューティングリソースサービスプロバイダによって管理できない顧客構内に格納されるシステムリソースへのアクセスを必要としてもよい。コンピューティングリソースサービスプロバイダ上で動作するマネージドディレクトリサービスは、取得した証明書を介して顧客構内ディレクトリにアクセスするように構成されてもよく、VMインスタンスに顧客構内リソースへのアクセスを提供するようにも構成されてもよい。いくつかの実施形態において、その他のそのようなコンピューティングリソースサービスプロバイダサービスも、顧客構内リソースへのアクセスが提供されてもよく、その結果、たとえば、ブロックデータストレージサービスが、顧客構内のディレクトリに格納されるデータにアクセスしてもよく、または、弾性のロードバランサが、それが作成する各インスタンスのために、顧客構内のアプリケーションをインスタンス化してもよく、または、データウェアハウスが顧客構内ファイルシステムにアクセスし、リモート位置に自動的にバックアップしてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステムに代わってユーザアクセス、ポリシー、記憶装置、アプリケーション、セキュリティ、及び/またはその他のそのようなリソースなどのディレクトリサービスを管理するように構成され、それらのディレクトリサービスへのインタフェースとしても構成されてもよい。マネージドディレクトリサービスは、企業ディレクトリなどのディレクトリのためのディレクトリサービスを管理するように構成されてもよい。ディレクトリは、ディレクトリのさまざまなオブジェクトについての情報のデータベースを含有してもよい。オブジェクトは、リソース及びセキュリティプリンシパルに対応してもよく、したがって、ユーザアクセスオブジェクト、ポリシーオブジェクト、ストアオブジェクト、アプリケーションリンクオブジェクト、セキュリティオブジェクト、及び/またはその他のそのようなオブジェクトを含有してもよい。ディレクトリデータベースはそれらのデータベースオブジェクト間の関係も含んでもよく、その結果、ディレクトリはたとえば、どのユーザがどの記憶装置へのアクセスを有するかを管理するために使用できる。
マネージドディレクトリサービスは、ディレクトリの作成を含むがこれに限定されない、そのようなサービスを提供してもよい。マネージドディレクトリサービスは、コンピューティングサービスリソースプロバイダ内、顧客構内、あるいはそれら及び/またはその他のそのような位置の組合せ内に、企業ディレクトリ、DaaS、及び/またはその他のそのようなディレクトリを含むがこれらに限定されないディレクトリを作成してもよい。コンピューティングサービスリソースプロバイダ内で作成されるディレクトリは、コンピューティングサービスリソースプロバイダで動作する仮想マシン内のスタンドアロンディレクトリとして作成されてもよく、または、それらはコンピューティングサービスリソースプロバイダのプライベート及び/または異なる限定サブセット内に位置するプライベートディレクトリとして作成されてもよい(たとえば、仮想ネットワーク及びそのトポロジに(たとえば、アプリケーションプログラミングインタフェース(API)コールによって)仕様を提供している顧客の代わりに、コンピューティングリソースサービスプロバイダによってホストされ、管理される仮想ネットワーク)。ディレクトリを作成するとき、マネージドディレクトリサービスはディレクトリと関連するさまざまな追加のリソースを作成し、リソースを管理及び/またはディレクトリに提供してもよく、また、いくつかの実施形態において、サービス障害、待ち時間問題、及び/またはその他のそのようなサービス関連の問題に対する追加の保護及び冗長性を提供してもよい。たとえば、ディレクトリは、ディレクトリのサーバとしての機能を果たすように構成されてもよい1つまたは複数のマシンインスタンスで作成されてもよく、または、ディレクトリにアドレス解決を提供する1つまたは複数のルーティングサービスで作成されてもよく、または、さまざまなその他のそのようなサービス及び/またはリソースで作成されてもよい。いくつかの実施形態において、コンピューティングサービスリソースプロバイダ内に作成されるディレクトリは、多領域分散及び/または仮想化システムの複数の領域内に、追加のリソース及び/またはエンティティを作成してもよく、及び/または、マルチドメイン分散及び/または仮想化システムの異なるサブドメイン内に、追加のリソースを作成してもよい。
いくつかの実施形態において、企業ディレクトリにおけるもののような既存の顧客ディレクトリ管理システムとインタフェースし、それらのディレクトリ管理システムから分散及び/または仮想化されたコンピュータシステムサービスまでセキュリティ及び/またはその他のそのようなポリシーを拡張するように、マネージドディレクトリサービスは構成されてもよい。このような実施形態において、ディレクトリリソースは、クライアントアプリケーション、プログラム、サービス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって呼び出されてもよい1つまたは複数のライブラリに含まれる1つまたは複数のAPIコールを提供し、ディレクトリリソース上での、構成、変更、管理、及び/またはその他のそのような操作を少なくとも可能にすることができる。いくつかの実施形態において、顧客ディレクトリ管理システムはたとえば、特定の部門のユーザの、アプリケーションの特定の組合せ、ストレージ位置の特定のサブセット、特定のネットワークリソース、及び/または特定のレベルのセキュアなアクセスへのアクセスを可能にしてもよい。マネージドディレクトリサービスは、VMインスタンス、ならびにその特定の部門のユーザによって分散及び/または仮想化されたコンピュータシステム上でインスタンス化されるその他のそのようなサービスにこれらのポリシーを拡張してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、透過的に及び/または自動的に、そのようなポリシーを拡張してもよく、その結果、たとえば、特定の部門からのユーザのためにまたはその代わりにインスタンス化される仮想マシンインスタンスは、その場のすべての必要なシステム及びすべてのセキュリティ及び/またはすでに適用されているその他のポリシーでインスタンス化されてもよい。
マネージドディレクトリサービスはまた、顧客構内からコンピューティングリソースサービスプロバイダまで特定のリソースの可用性を拡張するように構成されてもよい。顧客構内に位置するファイルシステム及び/またはディレクトリなどのリソースは、たとえば、適切な証明書が示されるときにリソースにリンクを提供することによって、コンピューティングリソースサービスプロバイダ上で動作するサービスに対して利用可能にされてもよい。いくつかの実施形態において、たとえば、そのようなリンクは、ネットワークの複雑さまたはコンピューティングリソースサービスプロバイダホストマシンと顧客構内との間の著しい距離のために許容できない待ち時間を導入してもよい。マネージドディレクトリサービスは、コンピューティングリソースサービスプロバイダに対してシステムリソースを少なくとも部分的に拡張し、拡張されたシステムリソースへの読み取り及び/または書き込みに対して待ち時間の短いアクセスを提供し、同時に、顧客構内のオリジナルリソースとコンピューティングリソースサービスプロバイダ上の拡張されたリソースとの間の同期を管理することによって、この許容できない待ち時間に対処するように構成されてもよい。マネージドディレクトリサービスは、拡張されたシステムリソースへの読み取り専用アクセスを提供してもよく、または、いくつかの実施形態において、拡張されたシステムリソースへの読み書きアクセスを提供してもよい。読み取り/書き込みアクセスが提供されてもよいいくつかの実施形態において、顧客構内システムリソースはマスタに指定されてもよく、または、拡張されたシステムリソースプロバイダがマスタに指定されてもよく、または、2つのリソースは、たとえば書き込みの衝突が生じた場合に、どちらが権限を有するかを取り決めてもよい。いくつかの実施形態において、リソースは、複数のコンピューティングリソースサービスプロバイダ、コンピューティングリソースサービスプロバイダ内の複数の領域、複数の顧客構内、あるいはこれら及び/またはその他のそのような位置の組合せを含むがこれらに限定されない複数の位置に拡張されてもよい。
マネージドディレクトリサービスは、特定のリソースを顧客構内からコンピューティングリソースサービスプロバイダに移動するようにも構成されてもよく、特定のリソースをコンピュータサービスリソースプロバイダから顧客構内に戻すようにも構成されてもよい。マネージドディレクトリサービスは、たとえば、バックアップの作成、冗長性の作成、及び/またはその他のそのような目的のために、コンピュータシステムリソースの完全な及び/または部分的なスナップショットを作成するように構成されてもよい。たとえば、本明細書で説明される拡張操作は、いくつかの実施形態において、マネージドディレクトリサービスの機能を利用して、少なくとも部分的なスナップショットを作成し、顧客構内からコンピューティングリソースサービスプロバイダにそのスナップショットをコピーすることによって、スナップショットを作成してもよい。マネージドディレクトリサービスはまた、いくつかの実施形態において、コンピュータシステムリソースの完全スナップショットを作成してもよく、次いで、そのスナップショットを顧客構内からコンピューティングリソースサービスプロバイダへ、またはコンピュータリソースサービスプロバイダから顧客構内へコピーしてもよい。次いで、元のコンピュータシステムリソースにアクセスしていたコンピュータサービスの1つまたは複数は、異なる位置のコピーにアクセスするように変更されてもよい。いくつかの実施形態において、そのような移動は、特定のリソースの負荷の減少、リソースの特定の集中化した位置への移動、または、その他のそのような目的に役立ってもよい。
図14は、ディレクトリサービス(単に「コンピュータシステムディレクトリ」または「ディレクトリ」と呼ばれる)、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むがこれらに限定されないそのようなディレクトリサービスと関連するリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連するコードなどの、コンピュータシステムディレクトリリソースにアクセスするための環境1400を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス1402は、コンピュータシステムクライアントデバイス1404を通ってコンピュータシステムに接続してもよく、1つまたは複数のコンピュータシステムサービス1410への接続1408を介してアクセスをリクエストしてもよい。いくつかの実施形態において、サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、または、コンピュータシステムから発生してもよく、または、コンピュータシステムクライアントデバイスのユーザから発生してもよく、または、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、信頼されたユーザによって、あるいは、ユーザによって、あるいは、自律的プロセスによって、あるいは、アラーム及び/またはその他のそのような状態の結果として、あるいは、これら及び/またはその他のそのような方法の組合せによって、発行されてもよい。
サービス(単数または複数)は、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースデータベースストレージシステム、ブロックストレージサービス、冗長データストレージサービス、データアーカイブサービス、データウェアハウジングサービス、ユーザアクセス管理サービス、コンテンツ管理サービス、及び/またはその他のそのようなコンピュータシステムサービスなどのコンピュータサービスへのアクセスを提供してもよいコンピューティングリソースサービスプロバイダ1406上で動作していてもよい。コンピューティングリソースサービスプロバイダ1406また、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースへのアクセスを提供してもよい。いくつかの分散及び/または仮想化されたコンピュータシステム環境において、コンピュータサービスと関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組合せ、あるいはその他のそのようなデバイスの実施形態でもよい。
コンピューティングリソースサービスプロバイダの1つまたは複数のサービス1410は、いくつかの実施形態において、ディレクトリサービスならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースを含むがこれらに限定されない1つまたは複数のディレクトリリソースへのアクセスを必要としてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、1つまたは複数のAPIコールを使用して、ディレクトリを作成するリクエストを受信することを含んでもよい。いくつかの実施形態において、ディレクトリは、コンピューティングリソースサービスプロバイダ内、または、顧客構内データセンタ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内、または、顧客構内データセンタ内の仮想ネットワーク内、または、いくつかのその他のそのような位置の中で作成されてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、クライアントに代わって及び/または顧客に代わってディレクトリを管理する操作などの、ディレクトリでのその他の操作を含んでもよい。
システムリソース(単数または複数)が、顧客構内に位置するオンプレミスディレクトリなどのローカルシステムリソース1416でもよいいくつかの実施形態において、コンピュータサービスリソースプロバイダは、たとえば、ユニフォームリソース識別子(URI)またはディレクトリノード1420を介したいくつかのその他のそのようなリンクによるなどの、1つまたは複数の1414のリンクまたはロケータを介して1つまたは複数のリソースにアクセスしてもよい。ディレクトリノード1420は、オンプレミスディレクトリ1416などのシステムリソースから、接続リンク1422を提供してもよい。オンプレミスディレクトリは、いくつかの実施形態において、オンプレミス接続1418を介してコンピュータシステムデバイスに接続してもよい。いくつかの実施形態において、ディレクトリノードは、ローカルシステムディレクトリリソースからディレクトリノードへ状態及び/またはや構成の少なくとも一部をコピーすることによって、ローカルシステムディレクトリリソースから作成されてもよい。
いくつかの実施形態において、URI1414などのリンクは、1つまたは複数のリンクまたはロケータを介して1つまたは複数のコンピュータシステムサービスに、コンピュータシステムリソースへのアクセスを少なくとも提供するように構成されてもよいマネージドディレクトリサービス1412などの、コンピューティングリソースサービスプロバイダ上で動作するサービスによって管理されてもよい。リンクは、コンピューティングリソースサービスプロバイダ内で動作するプロセスによって、あるいは、顧客構内内で動作するプロセスによって、あるいは、コンピューティングリソースサービスプロバイダに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、顧客構内に接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、マネージドディレクトリサービスのリンク及び/またはロケータを提供及び/または管理するプロセス(単数または複数)、ならびに、マネージドディレクトリサービスに関連するかつ/またはそのコントロール下にあるその他のプロセスは、コンピュータシステムエンティティ上で実行されてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダ内で、または、顧客構内で、または、これら及び/またはコンピューティングリソースサービスプロバイダのその他のそのようなローカル及び/またはリモート位置の組合せにおいて、コンピュータシステムリソースを使用してもよい。
図15は、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードを含むがこれらに限定されないコンピュータシステムディレクトリリソースにアクセスするための環境1500を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス1502は、コンピュータシステムクライアントデバイス1504を通してその他のコンピュータシステムに接続してもよく、1つまたは複数のサービス1526への接続1506を介してアクセスをリクエストしてもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス1504は、1つまたは複数のネットワーク1516及び/または、直接または間接的にそのネットワークに接続されたその他のサーバなどのネットワーク1516に関連するエンティティを介してサービスへのアクセスをリクエストしてもよい。上記のように、アクセスは、さまざまな構成及び位置のディレクトリを作成する機能、ならびに、その他のディレクトリ管理操作にアクセスする機能を含んでもよい。いくつかの実施形態において、ディレクトリは、仮想マシン及び/またはその他のクライアントがディレクトリのドメインに参加してもよいように作成及び構成されてもよく、それによって、ディレクトリにアクセスする。たとえば、ディレクトリはコンピューティングリソースサービスプロバイダ内で作成されてもよくて、仮想マシン及び/またはその他のクライアントが必要に応じてディレクトリと結合することを可能とするように構成されてもよい。ディレクトリへのアクセスを必要としてもよいクライアントは、1つまたは複数の認証された接続及び/または1つまたは複数の認可されたAPIコールを使用してディレクトリのドメインに参加することによって、そうしてもよい。コンピューティングリソースサービスプロバイダ内に作成されるディレクトリは、いくつかの実施形態において、隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に作成されてもよい。隔離仮想ネットワークは、コンピューティングリソースサービスプロバイダの、顧客が構成する隔離サブセクションであり、コンピュータリソースサービスプロバイダ内でその他のサービスに直接アクセス可能ではない、セキュアかつ隔離された仮想ネットワーク環境の顧客に、1つまたは複数のコンピューティングリソースサービスプロバイダサービスを提供する。隔離仮想ネットワークの中で作成されるリソースへのアクセスは、隔離仮想ネットワーク内のその他のサービス及びエンティティのみ利用可能でもよく、リソースが隔離仮想ネットワークのサブネット内に作成される一実施形態において、リソースは、そのサブネット内のその他のサービス及びエンティティのみ利用可能でもよい。
ディレクトリへのアクセスをリクエストしてもよいコンピュータシステムクライアントデバイス1504は、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、顧客構内は、1つまたは複数のディレクトリ1508を含んでもよく、それは少なくとも部分的に顧客構内に位置してもよく、それはファイル、ならびに/あるいは、ディレクトリ、アプリケーション、データ、データベース、その他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなリソースを含むがこれらに限定されない、その上のその他のコンピュータシステムリソースを保存してもよい。いくつかの実施形態において、コンピュータシステムリソースは、ファイルシステムリソースでもよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、ソリッドステートドライブ、リムーバブルドライブ、あるいはこれら及び/またはその他のそのようなストレージデバイスの組合せなどの、さまざまなストレージデバイスに保存されてもよい。いくつかの実施形態において、コンピュータシステムリソースは、たとえば本明細書で説明されるネットワーク接続などの1つまたは複数の接続を介して、コンピュータシステムクライアントデバイス1504によってアクセスされてもよいデータセンタ(複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイスを一箇所に置くことができる)に少なくとも一部が位置してもよい。コンピュータシステムリソース及び/またはデータセンタはローカルに位置してもよく、ローカルとリモートの組み合わせで位置してもよい。たとえば、いくつかの実施形態において、ファイルシステム及び/またはディレクトリは、ローカルデータセンタに位置するディスク上に位置してもよく、ファイルシステム及び/またはディレクトリのコンテンツも、リモートデータセンタに位置するディスクに再現されてもよい。いくつかの他の実施形態において、ファイルシステム及び/またはディレクトリは、ローカルでもよい(すなわちデータセンタ内にホストされる))1つのデータセンタにそのコンテンツの少なくとも一部を配置しまたローカルまたはリモートでもよい1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分を配置してもよい。ストレージデバイスは、本明細書に説明されるような物理デバイス、及び/またはそのような物理デバイスの仮想表現を含んでもよい。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、いくつかの量の物理メモリを含んでもよく、その一部は、仮想ディスクドライブ上に作成されるファイルシステムを有する仮想ディスクドライブとしてのストレージ専用である。その他のそのようなストレージデバイスが、本開示の範囲内であると見なしてもよい。
いくつかの実施形態において、サービス1526は、本明細書に説明されるような1つまたは複数のコンピュータシステムディレクトリリソースへのアクセスを必要としてもよい。サービス1526は、いくつかの実施形態において、ユーザ、その他のコンピュータシステム、プロセス及び/または自動化プロセス、ならびに/あるいはその他のそのようなコンピュータシステムエンティティを含むがこれらに限定されないさまざまなその他のコンピュータシステムエンティティを含んでもよい。サービスによるディレクトリへのアクセスは、いくつかの実施形態において、マネージドディレクトリサービス1518などのサービスによって提供されてもよく、それは1つまたは複数のシステムリソースへのアクセスを提供してもよい。たとえば、ディレクトリ1508は、コンピューティングリソースサービスプロバイダ内で、または、顧客構内のデータセンタ内で、または、いくつかのその他のそのような位置の中で、マネージドディレクトリサービス1518によって作成されてもよい。ディレクトリがマネージドディレクトリサービスによって作成されると、マネージドディレクトリサービスは、ディレクトリと結合することを望むことがある、または、ディレクトリで認可されたコマンドを実行することを望むことがある、または、その他のディレクトリ管理操作を実行することを望むことがあるサービスにURI1514を提供することによって、ディレクトリへのアクセスを提供することができる。マネージドディレクトリサービス1518は、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが、認証1520、認可1522、及びディレクトリサービス1524を介して意図されるディレクトリ管理のためのアクセスを含むがこれに限定されないディレクトリの管理を行うことを可能にするさまざまなサービスを提供してもよい。
たとえば、マネージドディレクトリサービスは、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティの証明書を認証できる1520認証サービスを提供し、そのエンティティが、たとえば、ディレクトリを作成する、ディレクトリのドメインに参加する、ディレクトリ及び/またはその他のそのようなディレクトリ管理機能を拡張するためにマネージドディレクトリサービスにアクセスすることが認可されるかどうかを少なくとも決定してもよい。いくつかの実施形態において、証明書は、マネージドディレクトリサービス自身によって認証されてもよく、または、それらは、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、マネージドディレクトリサービスが通信できるプロセス、プログラム、またはサービスによって認証されてもよく、または、それらは、これら及び/あるいはその他のそのようなサービスまたはエンティティの組合せによって認証されてもよい。
マネージドディレクトリサービス1518はまた、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティを認可できる1522認可サービスを提供し、そのエンティティがマネージドディレクトリサービスによって管理されるディレクトリに関連して、1つまたは複数の可能なアクションのうちのどのアクションを実行できるかを少なくとも決定してもよい。たとえば、エンティティがディレクトリでの実行を認可されてもよくまたは認可することができないアクションは、ディレクトリの作成、ディレクトリを含む1組のディレクトリの説明、ディレクトリの削除、ディレクトリの別のディレクトリへの拡張、ディレクトリのスナップショットについての情報の作成及び/または提供、ディレクトリのスナップショットの削除、ディレクトリのスナップショットからのディレクトリのリストア、ディレクトリと関連するタグの管理(追加/削除)、ディレクトリのURIのエイリアスの作成、エイリアスが利用可能かどうかの確認、ならびに/あるいは、ディレクトリのURIのエイリアスの削除を含むが、これらに限定されるものではない。ディレクトリが作成されると、ディレクトリの管理者は、作成されたディレクトリで、ディレクトリでの操作を実行することができる。たとえば、管理者は、ファイルシステムの作成、ファイルシステムの破棄、ファイルシステムへの取付け、ファイルシステムからの取り外し、ファイルシステムへのアクセスリンクの提供、ファイルシステムへのアクセスリンクの返還要求、ファイルシステムからの読み取りの許可、ファイルシステムへの書き込みの許可、及び/または、その他のそのようなファイルシステムリソースアクションなどのアクションを実行できる。
システムリソース上のアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、その他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはその他のそのようなその上のシステムリソースオブジェクトでのアクションを含むが、これらに限定されるものではなくてもよく、本明細書に言及されるアクションのようなアクションを含んでもよい。システムリソースの開始、停止、返還要求、破棄、及び/またはそれ以外の管理を行うアクション、ならびに、その他のそのようなアクションが、利用可能なアクションに含まれてもよい。アクションを実行する認可は、たとえば、特定のエンティティに関連する1組の証明書及び/またはポリシーを保守するシステムなどの証明書発行またはポリシーシステムなどのエンティティによって管理されてもよく、少なくとも一部において証明書及び/またはポリシーの組に基づいて、エンティティが実行を認可されるアクションを決定してもよい。エンティティが実行を認可されてもよいアクションは、静的でもよく、または、時刻、証明書のタイプ、システムポリシー、性質、アクセスされるオブジェクトのタイプまたは位置、あるいは、これら及び/またはその他のそのような認可要因の組合せを含むがこれらに限定されない複数の要因によって変化してもよい。たとえば、コンピュータシステムエンティティは、ファイルシステムの特定のファイルの読み取りのみ、ファイルシステムの特定のその他のファイルの読み取り及び書き込み、ならびに、ファイルシステムの特定のその他のファイルの追加及び削除を認可されてもよい。異なるコンピュータシステムエンティティが、ファイルシステム上の任意のアクションの実行を認可されてもよいが、それは、それらのアクションが特定の位置から、そして特定の時間に開始される場合のみである。1つまたは複数のプロセスは、システムログなどのファイルシステム上のファイルへの書き込みのみ認可されてもよく、同時に、その他のプロセスが、そのファイルからの読み取りのみ認可されてもよい。意図されるように、これらは例示的な実施例である。マネージドディレクトリサービス認可システムによって認可されてもよいようなその他のタイプの操作および、そのようなその他の操作も、本開示の範囲内であると見なされる。
マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス1514を提供できる1524ディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソースなどのコンピュータシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能が、ディレクトリサービスによって提供されてもよい。ディレクトリサービスは、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。
いくつかの実施形態において、コンピュータシステムリソースへのアクセスは、アクセスがリクエスト側エンティティに透過的であるような方法で提供されてもよい。たとえば、アクセス1534は、オンプレミスディレクトリ1508の位置1510へのURIまたはその他のそのようなリンクとして、リクエスト側エンティティに提供されてもよい。コンピュータシステムリソースの上の位置は、コンピュータシステム上で動作する1つまたは複数のプロセスによってURIに変換されてもよい。コンピュータシステムリソースへのアクセスをリクエストしたサービスまたはエンティティ1526は、コンピュータシステムリソースの位置に依存する構成を必要とすることなく、コンピュータシステムリソースにアクセスするための1528受信したURIを使用してもよく、いくつかの実施形態において、サービスまたはエンティティ1526がコンピュータシステムリソースに直接接続されているように動作するコンピュータシステムリソースにリンクするURIを使用してもよい。サービスがURI1534などのリンクを介したシステムディレクトリノードへのアクセスを提供され、次にURI1514などのリンクを介してオンプレミスディレクトリ1508にアクセスしてもよいいくつかの実施形態において、サービスまたはエンティティ1526は、URI1514及び1534の一方または両方にアクセスしてもよく、システムリソース1508及び/またはシステムディレクトリノード1530にアクセスするために、その一方または両方を交換可能に使用してもよい。ディレクトリノード1530に位置するサービスまたはエンティティに見えてもよいファイルへの1組のデータの書き込みを含むように示される操作は、データを1つまたは複数のネットワークパケット(または、その他の通信単位)にパッケージ化することによって、実際に実行されてもよく、次いで、アクセスリンク1514を介してネットワーク1516を越えてパケット(単数または複数)(すなわち通信単位)を転送し、ディレクトリ1508に位置するファイルに実際に書き込まれる。意図されるように、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行されてもよいその他のタイプの操作も、本開示の範囲内であると見なしてもよい。
図16は、少なくとも図15に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、分散及び/または仮想化されたコンピュータシステム環境におけるローカル及び/またはリモートファイルシステムに対する、ローカル及び/またはリモートサービスによる認証、認可、及びアクセスのためのユーザリクエストを提供する環境1600を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス1602は、コンピュータシステムクライアントデバイス1604を通してコンピュータシステムに接続してもよく、マネージドディレクトリサービス、クラウドサービス、ウェブサービス、仮想マシンサービス、データベースサービス、及び/またはその他のそのようなコンピューティングリソースサービスプロバイダサービスを含むがこれらに限定されない1つまたは複数のローカル及び/またはリモートサービスへのコンピュータシステムエンティティ、ユーザ、またはプロセスによるアクセスを容易にするために、証明書の認証を1606リクエストしてもよい。アクセスは、ディレクトリの作成、ディレクトリの削除、ディレクトリの拡張、ディレクトリへの接続、ディレクトリ及び/またはその他のそのようなディレクトリ管理操作との結合の機能を含んでもよい。たとえば、ユーザまたはプロセス1602は、サービス1628などの仮想マシンサービスによって管理される仮想マシンを、ユーザまたはプロセスが以前に作成したディレクトリ1632に結合するよう所望してもよい。マネージドディレクトリサービスは、URI1624を介するアクセスを提供してもよく、いくつかの実施形態において、仮想マシンをディレクトリに結合するための認証及び/または認可をユーザまたはプロセス1602に提供してもよい。いくつかの実施形態において、証明書の認証をリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。証明書の認証をリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス1604は、1つまたは複数のネットワーク1608及び/あるいは直接または間接的にネットワークに接続されるその他のサーバなどのネットワーク1608に関連するエンティティを使用して、コンピュータシステムに接続されてもよい。コンピュータシステムクライアントデバイスは、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、コンピュータシステムクライアントデバイス1604は、マネージドディレクトリサービス1610の制御に対応して及び/または制御の下で動作する1つまたは複数の認証プロセス1612にアクセスしてもよく、認証プロセスは、外部プロセスからリクエストに少なくとも応答して、コンピュータシステムエンティティ、ユーザ、またはプロセスをリクエストする証明書を認証するように構成されてもよい。たとえば、リクエスト側コンピュータシステムエンティティ、ユーザ、またはプロセスがマネージドディレクトリサービスへのアクセスが可能とされるかどうか認証プロセス1614が確認する。認証プロセスは、ユーザ名及びパスワードの組合せを検証することによって、あるいは、ハードウェア、ソフトウェア、ファームウェア、またはその他のそのようなデバイス上に格納される暗号鍵を検証することによって、あるいは、コンピュータシステムクライアントデバイスがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、ネットワークがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、これら及び/またはその他のそのような検証方法の組合せによって、マネージドディレクトリサービスへのアクセスを有効にしてもよい。いくつかの実施形態において、認証プロセスは、その他のそのような認証タスクを実行してもよく、コンピュータシステム及び/またはその他のコンピュータシステムに格納されるデータに対応して及び/またはそのデータとともに動作するその他のプロセスと組み合わせて認証タスクを実行してもよい。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス1602は、本明細書に説明されるように1つまたは複数のネットワーク1608及び/またはネットワーク1608に関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス1604を通してコンピュータシステムに接続してもよく、中に作成されてもよいディレクトリ1632上でまたはそれに接続して、1つまたは複数の操作やプロセスを実行する認可を1616でリクエストしてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダから、または、コンピューティングリソースサービスプロバイダ内の、もしくは、隔離仮想ネットワークのサブネット内の、もしくは、顧客構内のデータセンタ内の、もしくは、顧客構内の仮想ネットワーク内の、もしくは、いくつかのその他のそのような位置内の隔離仮想ネットワークからアクセス可能でもよい。いくつかの実施形態において、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を直接的に実行するリクエストされる認可でもよい。いくつかの実施形態において、リクエストされる操作認可は、ディレクトリの作成または削除などの、ディレクトリに関連する1つまたは複数のコンピュータシステムリソース操作を間接的に実行するリクエストされる操作でもよい。たとえば、リクエストは、1つまたは複数のコンピュータシステムリソース操作を実行する認可のための、コンピュータシステムエンティティ、ユーザ、またはプロセス1602の制御下のリモートコンピュータシステムサービス、プロセス、またはエンティティの認可のリクエストでもよい。認可は、マネージドディレクトリサービス1610の制御に対応して及び/またはその制御の下で動作する1つまたは複数の認可プロセス1618からリクエストされてもよく、認可プロセスは、外部プロセスからのリクエストに少なくとも応答するように、そして、ディレクトリ1632上またはそれ以外ではそのディレクトリに関連するコンピュータシステムエンティティ、ユーザ、またはプロセスによる1つまたは複数の操作及び/またはプロセスの性能を認可するように、構成されてもよい。コンピュータシステムリソースは、顧客構内のデータセンタなどにローカルに位置してもよく、あるいは、リモートに位置してもよく、あるいは、分散及び/または仮想コンピュータシステム上などの複数のリモート位置に位置してもよく、あるいは、ローカル及び/またはリモート位置の組合せに位置してもよい。たとえば、ファイルシステムは、ローカルデータセンタに位置するローカルディスク上に位置してもよく、そのファイルシステムのコンテンツはまた、1つまたは複数のリモートデータセンタに位置する1つまたは複数のリモートディスクに再現されてもよい。いくつかの実施形態において、ファイルシステムは、少なくともローカルまたはリモートでもよい1つのデータセンタにそのコンテンツの少なくとも一部を配置し、また1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分とを配置してもよい。
認可されてもよい操作及び/またはプロセスの実施例は、1620のリソースオブジェクトの作成及び/または破棄、1622のリソースオブジェクトの読み取り及び/または書き込み、ならびに/あるいは、その他のそのようなシステムリソース操作を含むが、これらに限定されるものではない。認可は、エンティティ、ユーザ、またはプロセスによって、日時によって、エンティティのクラスによって、ユーザのクラスによって、プロセスのクラスによって、1つまたは複数のシステムポリシーによって、リクエストの性質によって、あるいは、これら及び/またはその他のそのような考慮事項の組合せによって、変化してもよい。コンピュータシステムエンティティは、ディレクトリ上のまたはディレクトリと関連する1つまたは複数のディレクトリ操作の実行を認可されてもよい。ディレクトリ操作は、ファイルの作成、ファイルの削除、ファイルからの読み取り、ファイルへの書き込み、サブディレクトリの作成、サブディレクトリの削除、許可の変更、アクセス権の付与と取り消し、所有権の変更、及び/または、その他のそのようなディレクトリ操作を含むがこれらに限定されるものではない。たとえば、コンピュータシステムエンティティは、ファイル及び/またはディレクトリの作成は認可されてもよいが、それらの削除は認可されなくて、あるいは、プロセスは、そのプロセスによって作成されたファイル及び/またはディレクトリの削除のみ認可されてもよいが、他は認可されなくて、あるいは、エンティティは、特定のディレクトリで特定のファイルの読み取りは認可されてもよいが、他は認可されない。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス1602は、本明細書に説明されるように1つまたは複数のネットワーク1608及び/またはネットワーク1608に関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス1604を通してコンピュータシステムに接続してもよく、ディレクトリ1632の管理のためにディレクトリ1632へのアクセスをリクエストしてもよい1つまたは複数のローカル及び/またはリモートサービス1628を作成及び/またはインスタンス化1624してもよい。ディレクトリは、本明細書に説明されるように1つまたは複数の位置のうちの1つに事前に作成されていてもよく、アクセスは、URI1624を介して作成されたディレクトリに提供されてもよい。いくつかの実施形態において、コンピュータサービス、プロセス、またはエンティティ1628は、マネージドディレクトリサービス1610の制御に対応して及び/またはその制御の下で動作する1つまたは複数のディレクトリサービスプロセス1626にアクセスしてもよく、ディレクトリサービスプロセスは、外部プロセスからのリクエストに少なくとも応答して、そして、1つまたは複数のファイルシステムへのアクセスを提供するように構成されてもよい。1つまたは複数のファイルシステムへのアクセスは、ファイルならびに/あるいはディレクトリ、アプリケーション、データ、データベース、その他のファイルシステムへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/または他のそのようなファイルシステムオブジェクトなどのその他のファイルシステムオブジェクトに対する、読み取り、書き込み、実行、削除、作成、インスタンス化、及び/またはその他のそのような操作などの操作へのアクセスを含んでもよい。いくつかの実施形態において、操作へのアクセスは、本明細書に説明されるように1つまたは複数の認可プロセス1618を有する通信1630によって容易にされてもよく、その中に含まれるリソース認可ポリシーに従って認可を提供する。
前述のように、図16のコンピュータシステムエンティティ、ユーザ、またはプロセス1602、及びコンピュータシステムクライアントデバイス1604は、分散型コンピューティングシステム及び/またはデータセンタ環境で相互接続される複数のエンティティ、ユーザ、プロセス、及び/またはデバイスの中の1つでもよい。図17は、さまざまな実施形態が行われてもよい分散コンピューティング環境及び/またはデータセンタ環境1700を示す。1つまたは複数のコンピュータシステムエンティティ、ユーザ、またはプロセス1702は、1つまたは複数のネットワーク1708を介して1つまたは複数のコンピュータシステムサービス1706に、1つまたは複数のコンピュータシステムクライアントデバイス1704を介して接続してもよい。コンピューティングリソースサービスプロバイダ1708に位置してもよい1つまたは複数のローカル及び/またはリモートコンピュータシステムディレクトリリソース1714へのサービスによるアクセスは、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、1712のマネージドディレクトリサービスを介して、1つまたは複数のURI1710などの1つまたは複数の接続によって提供されてもよい。オンプレミスディレクトリは、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、接続1718を介してディレクトリノード1720に接続し、URI1722を介してアクセスされてもよい。
ディレクトリがコンピューティングリソースサービスプロバイダによって提供されるデータセンタに位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、ディレクトリへのアクセスを提供するコンピューティングリソースサービスプロバイダにアクセスしてもよい位置から、データセンタ及びディレクトリにアクセスしてもよい。ディレクトリが隔離仮想ネットワーク内または隔離仮想ネットワークのサブネット内に位置し、コンピュータシステムエンティティが隔離仮想ネットワーク内またはサブネット内に位置するいくつかの実施形態において、ディレクトリは隔離仮想ネットワークまたはサブネット内のそれらのエンティティに対して利用可能とされてもよい。たとえば、コンピューティングリソースサービスプロバイダに位置するディレクトリは、コンピューティングリソースサービスプロバイダにアクセスすることができる複数のデバイスかつ複数の位置からの適切な認可を有するコンピュータシステムエンティティによってアクセスされてもよい。ディレクトリは、ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって共有されてもよく、それぞれは、それらのコンピュータシステムエンティティが位置するところに関係なく、ディレクトリにアクセスして、たとえばディレクトリのドメインに参加してもよいが、それは、それらのエンティティがコンピューティングリソースサービスプロバイダにアクセスして、適切な証明書を有する場合に限る。このような実施形態において、ディレクトリへのアクセスは、少なくとも図14及び15に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。
ディレクトリが、たとえば、顧客によって提供されるデータセンタに位置し、そして顧客構内に位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、同様の方法で、多くの異なる位置からディレクトリにアクセスしてもよいが、それは、それらのエンティティが顧客構内のデータセンタにアクセスする場合に限る。このような実施形態において、顧客構内のデータセンタへのアクセスは、少なくとも図14及び15に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。意図されるように、これらは例示的な実施例であり、複数のコンピュータシステムエンティティがデータセンタ及び/またはシステムリソースに接続することを可能にする1716データセンタ及び1714システムリソースの位置のその他のタイプ及び/または配置は、本開示の範囲内であると見なしてもよく、それらは、分散されたデータセンタ及び/またはシステムリソース、仮想データセンタ及び/またはシステムリソース、冗長性をもつデータセンタ及び/またはシステムリソース、部分的にローカルなデータセンタ及び/またはシステムリソース、隔離仮想ネットワーク、隔離仮想ネットワークのサブネット、ならびに/あるいは、部分的にリモートなデータセンタ及び/またはシステムリソースを含むが、これらに限定されない。さらに意図されるように、システムリソースは、さまざまなシステムリソースを含んでもよく、それらは、ローカル及び/またはリモートストレージ位置、システムメモリ、中央処理装置(CPU)、ネットワークインタフェース、ネットワーク帯域幅、ディスプレイデバイス、入力デバイス、ならびに/あるいはその他のそのようなコンピュータシステムリソースを含むが、これらに限定されず、これらのその他のそのようなリソースも本開示の範囲内であると見なしてもよい。
図18は、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、認証及び認可証明書のために使用されるユーザプロファイル、記憶装置、及びシステムポリシーの中心位置を保守するための例示的環境1800を示す。管理者1802は、いくつかの実施形態において、顧客構内に位置してもよい1つまたは複数のローカルストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、コンピューティングリソースサービスプロバイダに位置してもよい1つまたは複数のリモートストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、ローカル及びリモートストレージ位置の組合せに位置してもよいストレージ位置に位置してもよい、1組のシステムアクセスデータ1804を有してもよい。いくつかの実施形態において、システムアクセスデータは、ユーザ名、ユーザパスワード、ユーザ個人データ、及び/またはその他のそのようなユーザプロファイル情報を含有してもよい1つまたは複数のユーザプロファイル1806を含有してもよい。ユーザプロファイルは、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認証サービスなどの認証サービスを提供するために、1つまたは複数のシステムによって使用されてもよい。いくつかの実施形態において、システムアクセスデータは、1つまたは複数のコンピュータシステムリソースへの参照を含有してもよい1つまたは複数の記憶装置1808を含有してもよい。いくつかの実施形態において、システムアクセスデータは、たとえば、システムサービス、ファイルシステム、ディレクトリ、マシン、仮想マシン、アプリケーション、ドキュメント、及び/またはその他のそのようなシステムリソースなどのシステムリソースへのアクセスを可能にする、禁止する、及び/または制限する1つまたは複数のポリシーステートメントを含有してもよい1つまたは複数のポリシー1810を含有してもよい。ポリシーステートメントは、1つまたは複数のユーザプロファイルのコンテンツ、ユーザプロファイルタイプ、リクエスト側サービス、リクエスト側サービスタイプ、リクエスト側サービス位置、時刻、ユーザの事業価値、クライアント、顧客、リクエスト及び/またはその他のそのような事業価値、またはこれら及び/またはその他のそのような要因の組合せなどの要因に基づいて、システムリソースへのアクセスを可能にしてもよく、禁止してもよく、及び/または制限してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスを提供するコンピューティングリソースサービスプロバイダのアカウントと関連する別のユーザに、さまざまなレベルのアクセスを提供してもよい。たとえば、一部のユーザは、ディレクトリを作成及び削除することができてもよく、一方で、その他のユーザは、ディレクトリを削除する認可がなくてもよい。したがって、図19は、マネージドディレクトリサービスによって管理されるディレクトリの管理機能へのアクセスを制御するための例示的プロセス1900を示す。以下でより詳細に論じられるように、プロセスは、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスへのアクセスを認証するために、かつ、マネージドディレクトリサービスと関連する1つまたは複数のコマンドの実行を認証されるエンティティを認可するために、使用されてもよい。図16で説明されるようにマネージドディレクトリサービス1610などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図19に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、リクエスタがマネージドディレクトリサービス、ならびにマネージドディレクトリサービスによって提供されるコマンド、リソース、及び/またはサービスのうちの1つまたは複数にアクセスすることを可能にするリクエスト1902を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初に、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるプロセスなどのプロセスを使用するユーザを1904で認証してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図18に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイルデータなどのシステムアクセスデータを使用してもよい。リクエスタが1904で認証される場合、マネージドディレクトリサービスは1908で接続を可能にし、1910でリクエスタからのコマンドを受信し始める。リクエスタが1904で認証されない場合、マネージドディレクトリサービスは1906で接続を拒絶してもよい。
マネージドディレクトリサービスが1910でリクエスタからコマンドを受信し始めると、マネージドディレクトリサービスは、リクエスタが各コマンドの実行を認可されるかどうかを1914で決定してもよい。マネージドディレクトリサービスが受信してもよいコマンドの実施例は、ディレクトリを作成または破棄するコマンド、ディレクトリサービスを管理するコマンド、ディレクトリタグを管理するコマンド、ディレクトリエイリアスを管理するコマンド、ディレクトリへの読み出し及び/またはディレクトリからの書き込みのコマンド、ならびに/あるいは、その他のそのようなコマンドを含むがこれらに限定されるものではない。マネージドディレクトリサービスは、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認可プロセスなどの認可プロセスを使用して、各コマンドを実行するリクエスタを認可してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図18に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイル及び/またはポリシーデータなどのシステムアクセスデータを使用してもよい。
リクエスタが受信したコマンドの実行を1914で認可されない場合、マネージドディレクトリサービスは1916で特定のコマンドを拒絶してもよく、次いで、1912でリクエスタからのコマンドの処理を続けなければならないかどうか決定してもよい。いくつかの実施形態において、いくつかの拒絶されたコマンドが、コマンドを実行しないことになってもよく、いくつかの拒絶されたコマンドが、コマンドが拒絶されたリクエスタ及び/またはその他のコンピュータシステムエンティティに警告することになってもよく、いくつかの拒絶されたコマンドが、リクエスタへの接続を終了させることになってもよく、さらに、いくつかの拒絶されたコマンドが、これら及び/またはその他のそのようなアクションの組合せになってもよい。マネージドディレクトリサービスが、リクエスタからのコマンドを受信し続けることを1912で決定する場合、マネージドディレクトリサービスは、1910で次のコマンドを待ってもよい。マネージドディレクトリサービスが、続けることを1912で決定しない場合、マネージドディレクトリサービスは、1922でリクエスタを切断してもよい。いくつかの実施形態において、1922リクエスタの分離は、リクエスタの分離、リクエスタへの切断の通知、1つまたは複数のその他のコンピュータシステムエンティティへの切断の通知、あるいは、これら及び/またはその他のそのような切断アクションの組合せを含んでもよい。
リクエスタが受信したコマンドの実行を1914で認可される場合、マネージドディレクトリサービスは1918で、コマンドの実行、コマンドが許可されることのリクエスタへの警告、コマンドが許可されることの1つまたは複数のその他のシステムエンティティへの警告、1つまたは複数のその他のシステムエンティティへのコマンドの実行のリクエスト、あるいは、これら及び/またはその他のそのような応答の組合せを含んでもよいコマンドを許可してもよい。受信したコマンド及び/または1918への応答は、マネージドディレクトリサービスにリクエスタを1922で切断させてもよい、1920の切断するリクエストを、コマンドが少なくとも一部分含んでもよいことを可能にする。マネージドディレクトリが1920の切断コマンドを受信しない場合、マネージドディレクトリサービスは、1910で次のコマンドを待ってもよい。
図20は、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、システムリソースを作成し、それに接続するための例示的環境2000を示す。コンピュータシステムエンティティ、サービス、ユーザ、またはプロセス2002は、ディレクトリ及びファイルシステムリソースを含むがこれらに限定されない1つまたは複数のローカルコンピュータシステムリソース2006を含む1つまたは複数のコンピュータシステムに対するコンピュータシステムクライアントデバイス2004を通して、コンピュータシステムに接続してもよい。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。いくつかの実施形態において、コンピュータシステムエンティティは、コンピュータシステムクライアントデバイスを介して1つまたは複数のコマンドを発行し、ディレクトリノードなどのシステムリソースプロキシを使用して、オンプレミスディレクトリなどのシステムリソースをリモートシステムエンティティに2008で接続してもよい。いくつかの実施形態において、ディレクトリノードは、それが示すディレクトリのラッパ、サロゲート、プロキシ、及び/またはいくつかのその他のそのような表現であり、ディレクトリリソースにアクセスを提供するが、一方で、ディレクトリデータを実際には公開しない。たとえば、ディレクトリノードは、ユーザがディレクトリのデータにアクセスすることを可能にするが、データは依然としてディレクトリにあるままであり、ディレクトリノードにはない。ローカルシステムリソースを接続するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスなどのプロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これらならびに/あるいはその他のシステム方法及び/またはエンティティの組合せによって、発行されてもよい。ローカルシステムリソースに接続するコマンド(単数または複数)は、いくつかの実施形態において、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリサービスなどのマネージドディレクトリサービス2010に発行されてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは最初に、ディレクトリノードを介してコンピュータシステムリソースに接続するコマンドを2012で認証及び認可してもよい。ローカルシステムリソースを作成することが認証及び認可される場合、コンピュータシステムは、2018ディレクトリノードを2016で作成し、接続してもよい。ディレクトリノードが作成されると、コンピュータシステムは、ローカルシステムリソースにアクセスするために使用してもよいURI2030などの2028リンクを決定してもよく、次いで、マネージドディレクトリサービスへのリンクを2012で提供してもよい。マネージドディレクトリサービス2014が、ローカルシステムリソースに2026で接続するようコンピュータシステムサービスによるリクエストを受信するとき、ディレクトリノード2018への接続2028を介してそのようにしてもよい。マネージドディレクトリサービス2014は、いくつかの実施形態において、マネージドディレクトリ2010と同一でもよい。
図21は、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを使用して、URIなどのリンクを介してコンピュータシステムエンティティをローカルシステムリソースに接続するための例示的プロセス2100を示す。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。図16で説明されるようなマネージドディレクトリサービス1610などのサービス、またはそのようなマネージドディレクトリサービスと関連するプロセスは、プロセス2100に示されるアクションの少なくとも一部を実行してもよい。コンピュータシステムクライアントデバイス1604に接続されるローカルシステムなどのローカルシステムは、図21に示されるアクションの少なくとも一部を実行してもよい。
マネージドディレクトリサービスは、ローカルディレクトリを作成し、接続するリクエスト2102を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初、ローカルシステムがリクエストを2104で認証及び認可するようにしてもよい。リクエストまたはリクエスタがそのような操作の実行が認可されないことが2106で決定される場合、次いで2108で、許可は与えず、プロセスは2116で終了してもよい。2106でローカルシステムがリクエスト及び/またはリクエスタを認証及び認可できる場合、次いで、ローカルシステムは2110で接続のためのローカルディレクトリを作成してもよい。ローカルシステムが2112でローカルディレクトリの作成及び/または初期化に失敗する場合、次いで、ローカルシステムは2114でエラーを発行してもよく、及び2116で終了してもよい。ローカルシステムが2112でローカルディレクトリの作成に成功する場合、ローカルシステムはURIなどのリンクを介してローカルディレクトリが位置する場所をマネージドディレクトリサービスに2118で通知してもよく、その結果、マネージドディレクトリサービスは2116に戻る前に、ローカルディレクトリに接続することができる。
図22は、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを介して、複数のローカル及び/またはリモートコンピュータシステムエンティティ、サービス、ユーザ、デバイス、及び/またはプロセスによるローカルディレクトリへの接続を可能にするための例示的環境2200を示す。顧客構内に位置するローカルディレクトリ2228は、URIなどのリンク及び1つまたは複数のマネージドディレクトリサービスを使用して、顧客構内の内部及び外部両方のコンピュータシステムエンティティに利用可能にしてもよい。たとえば、サービス2202は、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリノード2230を使用してマネージドディレクトリサービス2212によって提供されるURIなどのリンク2204を介して、ネットワーク2214越しにローカルディレクトリに接続してもよい。リモートユーザ2206は、少なくとも図14に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリノード2232を使用してマネージドディレクトリサービス2212によって提供されるURIなどのリンク2210を介して、ネットワーク2214越しにローカルディレクトリに接続してもよいシステム2208に接続してもよい。
顧客構内2216のローカルユーザは、URIなどのリンク2222を介してローカルシステムに接続してもよいサービス2220に接続してもよいシステム2218に接続してもよい。リンク2222はローカルであるため、いくつかの実施形態において、サービス2220に直接提供されてもよく、または、いくつかの実施形態において、ローカルで動作するマネージドディレクトリサービスを介してローカルサービス2220に提供されてもよく、または、いくつかの実施形態において、顧客構内で動作するいくつかのその他のプロセスによってローカルサービス2220に提供されてもよい。顧客構内のローカルシステム2224は、ローカルディレクトリに2226で直接接続されてもよい。リモート及び/またはローカルシステム、ユーザ、デバイス、プロセス、またはその他のそのようなエンティティのうちのいずれかによるリソースへの修正は、リソースの共有された性質のために、それらのすべてに利用可能にしてもよく、少なくとも図16及び18に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、コンピュータシステムエンティティのそれぞれが提供されてもよいアクセスタイプは、ポリシーシステムに従って変化してもよい。
図23は、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、クロスプラットフォームのディレクトリサービスを使用してローカルディレクトリを再現するための例示的環境2300を示す。ローカルコンピュータシステム2312は、ローカルディレクトリ2310への接続を可能にしてもよい。いくつかの実施形態において、ローカルディレクトリへのアクセス及び/または接続は、少なくとも図16に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、コンピューティングリソースサービスプロバイダ2302で動作するマネージドディレクトリサービス2306によって提供されるURIなどのリンク2308を介してもよい。コンピューティングリソースサービスプロバイダで動作するサービス2304も、リンク2308を介してローカルディレクトリにアクセスしてもよい。いくつかの実施形態において、ローカルシステムは、ローカルディレクトリを第2のローカルディレクトリ2318に2314で再現してもよい。ローカルシステムは、システム効率を改善する、またはローカルディレクトリに対するリソース要求を減少させるために、あるいは、これら及び/またはその他のそのような理由を組み合わせた理由のために、ローカルディレクトリを再現してもよい。サービスは、リンク2308を介してローカルディレクトリ2310にアクセスしてもよく、または、リンク2316を介して再現されたローカルディレクトリ2318にアクセスしてもよく、または、両方のリンクを介してローカル及び再現両方のディレクトリにアクセスしてもよい。サービスがローカルディレクトリまたは再現されたローカルディレクトリにアクセスするかどうかについての決定は、ローカルシステムに対するリソース要求、サービスに対するリソース要求、ローカルシステムに対するリソース要求、所望されるアクセスのタイプ、サービスの事業価値、顧客の事業価値、サービスで動作するプロセスの事業価値、あるいは、これら及び/またはその他のそのような要因の組合せを含むがこれらに限定されないさまざまな要因に依存してもよい。いくつかの実施形態において、オンプレミスディレクトリ2310及びオンプレミスディレクトリ2318は、同一の顧客構内位置に位置してもよく、または、それらは、たとえば西海岸の1つの施設及び東海岸の1つの施設などの異なる位置に位置してもよい。
図24は、さまざまな実施形態に従って態様を実装するための例示的環境2400の態様を示す。理解されるように、ウェブベースの環境が解説のために使用されるが、さまざまな実施形態を実装するために異なる環境が、適宜、使用されてもよい。環境は、電子クライアントデバイス2402を含み、それは使用可能な任意の適切なデバイスを含み、適切なネットワーク2404にわたってリクエスト、メッセージ、または情報を送信及び/または受信することができ、いくつかの実施形態では、情報をデバイスのユーザへ戻すことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、組み込み型コンピュータシステム、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意のその他のそのようなネットワーク、及び/またはそれらの組合せを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境のタイプに、少なくとも一部において依存する可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書では詳細に論じない。ネットワーク越しの通信は、有線または無線接続及びそれらの組合せによって可能にすることができる。本実施例では、リクエストを受信し、それに答えてコンテンツを供給するために環境がウェブサーバ2406を含むとき、ネットワークはインターネットを含むが、当業者にとって明らかであるように、その他のネットワークでは、類似の目的を供給する代替のデバイスを使用してもよい。
例示的な環境は、少なくとも1つのアプリケーションサーバ2408及びデータストア2410を含む。いくつかのアプリケーションサーバ、レイヤ、またはその他のエレメント、プロセスまたはコンポーネントが存在することができるが、それらは連結されてもよく、またはそれ以外に構成されてもよく、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することができることは理解されるべきである。サーバは、本明細書で使用される場合、ハードウェアデバイスまたは仮想コンピュータシステムなど、さまざまな方法で実装されてもよい。いくつかの文脈において、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを参照してくもよい。本明細書で使用される場合、特に明記しない限り、または文脈から明らかでない限り、「データストア」という用語は、データの記憶、アクセス、及び検索が可能な、任意のデバイスまたはデバイスの組合せに関するものであり、任意の標準的な、分散された、仮想の、またはクラスタ化された環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データストレージデバイス、及びデータストレージメディアを含んでもよい。アプリケーションサーバは、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことができ、アプリケーションのデータアクセス及びビジネスロジックの一部またはすべてを処理する。アプリケーションサーバは、データストアと連携するアクセス制御サービスを提供してもよく、テキスト、グラフィクス、オーディオ、ビデオ、及び/またはユーザに提供するために使用可能なその他のコンテンツを含むがこれらに限定されないコンテンツを生成することができ、ハイパーテキストマークアップランゲージ(「HTML」)、拡張可能マークアップランゲージ(「XML」)、JavaScript(登録商標)、カスケーディングスタイルシート(「CSS」)、または別の適切なクライアントサイド構造化言語の形態で、ウェブサーバによってユーザに供給することができる。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理されてもよく、可聴的に、視覚的に、ならびに/あるいは触覚、味覚、及び/または嗅覚を含むその他の感覚によってユーザに認識できる形態を含むがこれらに限定されない1つまたは複数の形態でコンテンツを提供する。すべてのリクエスト及び応答の処理、ならびにクライアントデバイス2402とアプリケーションサーバ2408との間のコンテンツの配信は、本実施例においては、PHPハイパーテキストプリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、または別の適切なサーバサイド構造化言語を使用して、ウェブサーバで処理することができる。本明細書の他の場所で論じられるように、本明細書に論じられる構造化されたコードを任意の適切なデバイスまたはホストマシンで実行することができるとき、ウェブ及びアプリケーションサーバは必要ではなく、単に例示的なコンポーネントであることは理解されるべきである。さらに、単一のデバイスで実行されるように本明細書で説明される操作は、文脈から明らかでない限り、複数のデバイスで全体的に実行されてもよく、それは分散された及び/または仮想システムを形成してもよい。
データストア2410は、本開示の特定の態様に関するデータを格納するための、いくつかの別々データテーブル、データベース、データドキュメント、動的データストレージスキーム、及び/またはその他のデータストレージ機構及びメディアを含むことができる。たとえば、示されるデータストアは、生産データ2412及びユーザ情報2416を格納するための機構を含んでもよく、それは生産側のコンテンツを供給するために使用することができる。データストアはまた、ログデータ2414を格納するための機構を含むようにも示され、それは報告、分析、またはその他のそのような目的のために使用することができる。データストアに格納される必要がある、ページ画像情報及びアクセス権情報などの多くのその他の態様があり、それは上記の適切な機構、またはデータストア2410の追加の機構のいずれかに格納することができることは理解されるべきである。データストア2410は、データストア2410に関連するロジックによって、アプリケーションサーバ2408からの命令を受信して、それに応じてデータを取得、更新、またはそれ以外では処理するために使用可能である。アプリケーションサーバ2408は、受信した命令に応答して、静的データ、動的データ、または動的及び静的データの組合せを提供してもよい。本明細書に説明されるように、ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及びその他のそのようなアプリケーションで使用されるデータなどの動的データは、サーバサイド構造化言語によって生成されてもよく、または、アプリケーションサーバで動作するまたはその制御下のコンテンツ管理システム(「CMS」)によって提供されてもよい。1つの実施例において、ユーザは、ユーザによって作動させられるデバイスを通して、特定のタイプのアイテムの検索要求を提出することがある。この場合、データストアは、ユーザの識別情報を検証するために、ユーザ情報にアクセスすることがあり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。次いで情報は、ユーザがユーザデバイス2402上のブラウザを介して閲覧することができるウェブページに記載される結果などで、ユーザに返すことができる。関心のある特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで閲覧することができる。しかし、本開示の実施形態は、ウェブページの文脈に必ずしも制限されるわけではなく、リクエストが必ずしもコンテンツの要求ではない場合、一般的なリクエストの処理により一般に適用可能でもよいことに注意しなければならない。
各サーバは、実行可能プログラム命令をそのサーバの一般的な管理及び操作のために提供するオペレーティングシステムを通常含み、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を通常含む。オペレーティングシステムの好適な実装及びサーバの一般的な機能は知られている、または市販のものであり、特に本明細書の開示を考慮して、当業者によって確実に実装される。
環境は、1つの実施形態において、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する、分散された及び/または仮想コンピューティング環境である。しかし、そのようなシステムは、図24に示されるよりも少ないまたは多いコンポーネントを有するシステムにおいて、同様に正しく機能することは、当業者によって理解されるであろう。それゆえ、図24のシステム2400の描写は、本来は例示的なものと見なすべきであり、本開示の範囲を限定するものではない。
本開示の実施形態は、以下の項を考慮して説明することができる。
1.
コンピューティングリソースサービスプロバイダのマネージドディレクトリサービスの、実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
顧客コンピュータシステムディレクトリをコンピューティングリソースサービスプロバイダのコンピューティング環境で利用可能な顧客コンピューティング環境でホストさせるよう前記コンピューティングリソースサービスプロバイダの顧客から、リクエストを受信することと、
前記リクエストに応答して、前記コンピューティングリソースサービスプロバイダ環境で、コンピューティングリソースサービスプロバイダのコンピューティング環境への顧客コンピュータシステムディレクトリのレプリケーションなしで、ディレクトリ操作を実行するためにリクエストを処理するように構成される、コンピュータシステムディレクトリノードを作成することと、
前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で作成されたディレクトリノードを管理することと
を含む、
1組の操作を実行するコンピュータ実装化方法。
2.
ディレクトリ操作を実行する前記リクエストを処理することが、前記顧客コンピュータシステムディレクトリに前記リクエストを送り届けることを含む、
1項に記載のコンピュータ実装化方法。
3.
前記コンピュータシステムディレクトリノードのユニフォームリソース識別子を取得することと、
ドメインネームサービスで前記ユニフォームリソース識別子を登録し、その結果、前記ドメインネームサービスが、前記コンピュータシステムディレクトリノードのネットワークアドレスに対する前記ユニフォームリソース識別子を解決することと
をさらに含む、
1〜2項のいずれかに記載のコンピュータ実装化方法。
4.
前記リクエストが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境でホストされる前記顧客の隔離仮想ネットワークを指定し、
前記コンピュータシステムディレクトリノードが、前記指定した隔離仮想ネットワーク内に作成される、
1〜3項のいずれかに記載のコンピュータ実装化方法。
5.
前記リクエストが、前記指定した隔離仮想ネットワークのサブネットワークをさらに指定し、
前記コンピュータシステムディレクトリノードが、前記指定したサブネットワーク内に作成される、
4項に記載のコンピュータ実装化方法。
6.
前記作成されたディレクトリノードを保守することが、前記作成されたディレクトリノードを実装するコンピュータシステム上で保守操作を実行することを含む、
1〜5項のいずれかに記載のコンピュータ実装化方法。
7.
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるとき、コンピューティングリソースサービスプロバイダの顧客のために、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境への前記顧客コンピュータシステムディレクトリのレプリケーションなしで、顧客コンピュータシステムディレクトリ上にディレクトリ操作の実行を可能にするように構成されるコンピュータシステムディレクトリノードをコンピューティングリソースサービスプロバイダ環境に作成し、
前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記作成されたディレクトリノードを管理することをシステムにさせる実行可能命令とを含むメモリと
を備える、
システム。
8.
前記顧客コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダの前記環境の外側の前記顧客のコンピューティング環境でホストされる、
7項に記載のコンピュータシステム。
9.
前記システムに前記コンピュータシステムディレクトリノードを作成させる前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記システムに、前記ディレクトリノードを実装するためにコンピュータシステムインスタンスを構成させる命令を含み、
前記コンピュータシステムインスタンスが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境の前記顧客のその他のコンピュータシステムインスタンスが通信できるネットワークアドレスを有するように構成される、
7〜8項に記載のシステム。
10.
前記コンピュータシステムディレクトリノードが、性能のために前記顧客コンピュータシステムディレクトリにディレクトリ操作を実行するためのリクエストを送信するように作成される、
7〜9項のいずれかに記載のシステム。
11.
前記コンピュータシステムディレクトリノードが、コンピュータシステムが前記作成されたコンピュータシステムディレクトリノードを介して前記顧客コンピュータシステムディレクトリに結合することを可能にするように作成される、
7〜10項のいずれかに記載のシステム。
12.
前記コンピュータシステムディレクトリノードが、前記顧客に代わって前記コンピューティングリソースサービスプロバイダによってホストされて仮想ネットワークに作成される、
7〜11項のいずれかに記載のシステム。
13.
前記コンピュータシステムディレクトリノードが、前記顧客によって指定される前記仮想ネットワークのサブネットワークに作成される、
12項に記載のシステム。
14.
コンピュータシステムの1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに少なくとも、
コンピューティングリソースサービスプロバイダの顧客のために、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境への前記顧客コンピュータシステムディレクトリのレプリケーションなしで、顧客コンピュータシステムディレクトリ上でのディレクトリ操作の実行を可能にするように構成されるコンピュータシステムディレクトリノードをコンピューティングリソースサービスプロバイダ環境に作成させ、
前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境に前記作成されたディレクトリノードを管理させる、集合的に格納された実行可能命令を有する、
非一時的コンピュータ可読記憶媒体。
15.
前記作成されたコンピュータシステムディレクトリノードが、前記コンピューティング環境でホストされるコンピューティングリソースが前記作成されたコンピュータシステムディレクトリノードを介して前記顧客コンピュータシステムディレクトリに結合することを可能にするように構成される、
14項に記載の非一時的コンピュータ可読記憶媒体。
16.
前記顧客コンピュータシステムディレクトリが、前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境外側の前記顧客のコンピューティング環境でホストされる、
14〜15項に記載の非一時的コンピュータ可読記憶媒体。
17.
前記命令が、前記コンピュータシステムに、フェールオーバ用に前記コンピュータシステムディレクトリノードのレプリカを作成させる、
14〜16項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
18.
前記コンピュータシステムディレクトリノードが、サブネットワークの、顧客によって指定される、前記顧客に代わって前記コンピューティングリソースサービスプロバイダによってホストされる前記顧客の仮想ネットワークのネットワークアドレスで作成される、
14〜17項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
19.
前記命令が、前記1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに前記作成されたコンピュータシステムディレクトリノード上で管理操作を実行するリクエストが提出可能であるウェブサービスインタフェースを提供させる命令をさらに含み、
前記コンピュータシステムディレクトリノードが、前記提供されたウェブサービスインタフェースによって提出されるリクエストに応答して作成される、
14〜18項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
20.
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境への前記顧客コンピュータシステムディレクトリのレプリケーションなしで前記顧客コンピュータシステムディレクトリ上でのディレクトリ操作の前記実行を可能にすることが、前記顧客コンピュータシステムディレクトリに前記ディレクトリ操作を実行させることを含む、
14〜19項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
<実施形態の第3の組>
本出願の以下の部分は、マネージドディレクトリサービスのための技術の実施形態の第3の組を説明する。
実施形態の第3の組は、図面の第3の組を参照して説明される。
以下の説明において、さまざまな実施形態が説明される。解説の目的上、特定の構成及び詳細が、実施形態の詳細な理解を提供するために示される。しかし、特定の詳細なしで実施形態を実施してもよいことも、当業者にとって明らかである。さらにまた、実施形態が説明することを不明確にしないために、既知の特徴は省略または簡略化されてもよい。
本明細書で説明及び提案される技術は、分散及び/または仮想化されたコンピュータシステム上のローカル及び/またはリモートリソースならびにその上で動作する実行可能コードを管理する方法、システム、及びプロセスを含む。特に、ユーザ、サービス、プロセス、アプリケーション、クライアントデバイス、ゲストオペレーティングシステム及び/またはその他のそのようなコンピュータシステムエンティティを含むがこれに限定されないコンピュータシステムエンティティによる及びそれらのための、ディレクトリ、ファイルシステム、ファイル、ユーザ、セキュリティポリシー、ネットワークリソース、アプリケーション、システムストレージなどシステムリソースへのアクセスを容易にするかつ管理するシステム機能を利用するための技術が開示される。分散及び/または仮想化されたコンピュータシステムは、より良好なシステム性能、システムリソースへのより良好なアクセス、システムリソースの高可用性、より良好なデータセキュリティ、より良好なユーザセキュリティ、及び/またはその他のそのようなシステムの利益を促進するために、ローカル及び/またはリモートのシステムリソースの効率的な管理によって利益を得ることができる。
例示的な実施例において、分散及び/または仮想化されたコンピュータシステムは、ディレクトリサービスを含むがこれに限定されない1つまたは複数のコンピュータシステムサービスを有してもよく、特定のデータセンタに位置するディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどの、1つまたは複数のシステムリソースを有してもよい。ディレクトリサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、ストレージリソース、及び/またはその他のそのようなリソースなどのシステムリソースは、システムリソース、コンピュータシステムリソース、サービス及びリソース、サービス及び/またはリソース、あるいはリソースとしてさまざまに、本開示の本明細書において集合的に言及されてもよい。これらのサービス及び/またはシステムリソースへのアクセスは、1つまたは複数のユーザアカウントと関連する1組の認証証明書を介してでもよい。いくつかの実施形態において、接続証明書は、ユーザ名、パスワード、キーフレーズ、生体認証デバイス、ハードウェアキー、仮想ハードウェアキー、及びその他のそのような認証及び/または認可証明書などの証明書を含んでもよい。いくつかの実施形態において、ローカル顧客データセンタは、データセンタ内のシステムリソースへのネットワークアクセスのためのローカル証明書を必要としてもよい。たとえば、コンピュータリソースサービスプロバイダで動作していてもよいサービスは、ローカルシステムリソースへのアクセスを必要とするかもしれないが、データセンタ内のシステムリソースへアクセスするためのローカル証明書を持っていないかもしれない。1組のリソースへの臨時の証明書及びリンクを介したローカルシステムリソースへのアクセスを提供できるサービスが、アクセスを容易にしてもよい。そのようなサービスは、作成、破棄、接続、拡張する操作、及び/またはその他のそのような管理操作を提供することによって、ローカルシステムリソースの管理を支援してもよい。そのような管理操作は、いくつかの実施形態において、認証及び認可を管理してもよいポリシーサブシステムによって容易にされてもよい。いくつかの実施形態において、ローカル及び/またはリモートサービスのローカルシステムリソースを管理するシステムはまた、ローカル及び/またはリモートサービスのリモート及び/またはローカル及びリモートが混在するシステムリソースを管理するように構成されてもよい。
本明細書で説明及び提案される技術は、ディレクトリサービスなどのコンピュータシステムサービス、ならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、及び/またはストレージリソースなどのリソースの実装及び管理に関連する技術を含む。いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステム上のシステムユーザ、リソース、ポリシー、ネットワークアクセス、及び/またはセキュリティを管理する機能を含んでもよいディレクトリ・アズ・ア・サービス(DaaS)の機能を提供するように構成されてもよい。いくつかの実施形態において、マネージドディレクトリサービスは、分散及び/または仮想化されたコンピュータシステムのインスタンスによるそのような機能へのアクセスを管理するようにも構成されてもよく、その他の関連する分散及び/または仮想化されたコンピュータシステムサービスによるそのような機能へのアクセスを管理するようにも構成されてもよい。
たとえば、ユーザは、コンピューティングリソースサービスプロバイダ内に仮想マシン(VM)インスタンスを作成し、それにアクセスしてもよく、それはコンピューティングリソースサービスプロバイダによって管理できない顧客構内に格納されるシステムリソースへのアクセスを必要としてもよい。コンピューティングリソースサービスプロバイダ上で動作するマネージドディレクトリサービスは、取得した証明書を介して顧客構内ディレクトリにアクセスするように構成されてもよく、VMインスタンスに顧客構内リソースへのアクセスを提供するようにも構成されてもよい。いくつかの実施形態において、サービスを提供されるその他のそのようなコンピュータサービスリソースも、顧客構内リソースへのアクセスが提供されてもよく、その結果、たとえば、ブロックデータストレージサービスが、顧客構内のディレクトリに格納されるデータにアクセスしてもよく、または、ロードバランサが、それが作成する各インスタンスのために、顧客構内のアプリケーションをインスタンス化してもよく、または、データウェアハウスが顧客構内ファイルシステムにアクセスし、リモート位置に自動的にバックアップしてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは、コンピュータシステムの代わりにユーザアクセス、ポリシー、記憶装置、アプリケーション、セキュリティ、及び/またはその他のそのようなリソースなどのディレクトリサービスを管理するように構成され、及びそれらのディレクトリサービスへのインタフェースとしても構成されてもよい。マネージドディレクトリサービスは、企業ディレクトリなどのディレクトリのためのディレクトリサービスを管理するように構成されてもよい。ディレクトリは、ディレクトリのさまざまなオブジェクトについての情報のデータベースを含有してもよい。オブジェクトは、リソース及びセキュリティプリンシパルに対応してもよく、したがって、ユーザアクセスオブジェクト、ポリシーオブジェクト、ストアオブジェクト、アプリケーションリンクオブジェクト、セキュリティオブジェクト、及び/またはその他のそのようなオブジェクトを含有してもよい。ディレクトリデータベースはそれらのデータベースオブジェクト間の関係も含んでもよく、その結果、ディレクトリは、たとえば、どのユーザがどの記憶装置へのアクセスを有するかを管理するために使用できる。
マネージドディレクトリサービスは、ディレクトリの作成を含むがこれに限定されない、そのようなサービスを提供してもよい。マネージドディレクトリサービスは、コンピューティングサービスリソースプロバイダ内、顧客構内、あるいはそれら及び/またはその他のそのような位置の組合せ内に、企業ディレクトリ、DaaS、及び/またはその他のそのようなディレクトリを含むがこれらに限定されないディレクトリを作成してもよい。コンピューティングサービスリソースプロバイダ内で作成されるディレクトリは、コンピューティングサービスリソースプロバイダで動作する仮想マシン内のスタンドアロンディレクトリとして作成されてもよく、または、それらはコンピューティングサービスリソースプロバイダのプライベート及び/または異なる限定サブセット内に位置するプライベートディレクトリとして作成されてもよい(たとえば、仮想ネットワーク及びそのトポロジに(たとえば、アプリケーションプログラミングインタフェース(API)コールによって)仕様を提供している顧客に代わりに、コンピューティングリソースサービスプロバイダによってホストされ、管理される仮想ネットワーク)。ディレクトリを作成するとき、マネージドディレクトリサービスはディレクトリと関連するさまざまな追加のリソースを作成し、リソースを管理及び/またはディレクトリに提供してもよく、さらに、いくつかの実施形態において、サービス障害、待ち時間問題、及び/またはその他のそのようなサービス関連の問題に対する追加の保護及び冗長性を提供してもよい。たとえば、ディレクトリは、ディレクトリのサーバとしての機能を果たすように構成されてもよい1つまたは複数のマシンインスタンスで作成されてもよく、及び/または、ディレクトリにアドレス解決を提供する1つまたは複数のルーティングサービスで作成されてもよく、または、さまざまなその他のそのようなサービス及び/またはリソースで作成されてもよい。いくつかの実施形態において、コンピューティングサービスリソースプロバイダ内に作成されるディレクトリは、多領域分散及び/または仮想化システムの複数の領域内に、追加のリソース及び/またはエンティティを作成してもよく、及び/または、マルチドメイン分散及び/または仮想化システムの異なるサブドメイン内に、追加のリソースを作成してもよい。
いくつかの実施形態において、企業ディレクトリにおけるもののような既存の顧客ディレクトリ管理システムとインタフェースし、それらのディレクトリ管理システムから分散及び/または仮想化されたコンピュータシステムサービスまでセキュリティ及び/またはその他のそのようなポリシーを拡張するように、マネージドディレクトリサービスは構成されてもよい。このような実施形態において、ディレクトリリソースは、クライアントアプリケーション、プログラム、サービス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって呼び出されてもよい1つまたは複数のライブラリに含まれる1つまたは複数のAPIコールを提供してもよく、ディレクトリリソース上での、構成、変更、管理、及び/またはその他のそのような操作を少なくとも可能にする。いくつかの実施形態において、顧客ディレクトリ管理システムはたとえば、特定の部門のユーザの、アプリケーションの特定の組合せ、ストレージ位置の特定のサブセット、特定のネットワークリソース、及び/または特定のレベルのセキュアなアクセスへのアクセスを可能にしてもよい。マネージドディレクトリサービスは、VMインスタンス、ならびにその特定の部門のユーザによって分散及び/または仮想化されたコンピュータシステム上でインスタンス化されるその他のそのようなサービスにこれらのポリシーを拡張してもよい。いくつかの実施形態において、マネージドディレクトリサービスは、透過的に及び/または自動的に、そのようなポリシーを拡張してもよく、その結果、たとえば、特定の部門からのユーザのためにまたはその代わりにインスタンス化される仮想マシンインスタンスは、その場のすべての必要なシステム及びすべてのセキュリティ及び/またはすでに適用されているその他のポリシーでインスタンス化されてもよい。
マネージドディレクトリサービスはまた、顧客構内からコンピューティングリソースサービスプロバイダまで特定のリソースの可用性を拡張するように構成されてもよい。顧客構内に位置するファイルシステム及び/またはディレクトリなどのリソースは、たとえば、適切な証明書が示されるときにリソースにリンクを提供することによって、コンピューティングリソースサービスプロバイダ上で動作するサービスに対して利用可能にされてもよい。いくつかの実施形態において、たとえば、そのようなリンクは、ネットワークの複雑さまたはコンピューティングリソースサービスプロバイダホストマシンと顧客構内との間の著しい距離のために許容できない待ち時間を導入してもよい。マネージドディレクトリサービスは、コンピューティングリソースサービスプロバイダに対してシステムリソースを少なくとも部分的に拡張し、拡張されたシステムリソースへの読み取り及び/または書き込みに対して待ち時間の短いアクセスを提供し、同時に、顧客構内のオリジナルリソースとコンピューティングリソースサービスプロバイダ上の拡張されたリソースとの間の同期を管理することによって、この許容できない待ち時間に対処するように構成されてもよい。マネージドディレクトリサービスは、拡張されたシステムリソースへの読み取り専用アクセスを提供してもよく、または、いくつかの実施形態において、拡張されたシステムリソースへの読み書きアクセスを提供してもよい。読み取り/書き込みアクセスが提供されてもよいいくつかの実施形態において、顧客構内システムリソースはマスタに指定されてもよく、または、拡張されたシステムリソースプロバイダはマスタに指定されてもよく、または、2つのリソースは、たとえば書き込みの衝突が生じた場合に、どちらが権限を有するかを取り決めてもよい。いくつかの実施形態において、リソースは、複数のコンピューティングリソースサービスプロバイダ、コンピューティングリソースサービスプロバイダ内の複数の領域、複数の顧客構内、あるいはこれら及び/またはその他のそのような位置の組合せを含むがこれらに限定されない複数の位置に拡張されてもよい。
マネージドディレクトリサービスは、特定のリソースを顧客構内からコンピューティングリソースサービスプロバイダに移動するようにも構成されてもよく、特定のリソースをコンピュータサービスリソースプロバイダから顧客構内に戻すようにも構成されてもよい。マネージドディレクトリサービスは、たとえば、バックアップの作成、冗長性の作成、及び/またはその他のそのような目的のために、コンピュータシステムリソースの完全な及び/または部分的なスナップショットを作成するように構成されてもよい。たとえば、本明細書で説明される拡張操作は、いくつかの実施形態において、マネージドディレクトリサービスの機能を利用して、少なくとも部分的なスナップショットを作成し、顧客構内からコンピューティングリソースサービスプロバイダにそのスナップショットをコピーすることによって、スナップショットを作成してもよい。マネージドディレクトリサービスはまた、いくつかの実施形態において、コンピュータシステムリソースの完全スナップショットを作成してもよく、次いで、そのスナップショットを顧客構内からコンピューティングリソースサービスプロバイダへ、またはコンピュータリソースサービスプロバイダから顧客構内へコピーしてもよい。次いで、元のコンピュータシステムリソースにアクセスしていたコンピュータサービスの1つまたは複数は、異なる位置のコピーにアクセスするように変更されてもよい。いくつかの実施形態において、そのような移動は、特定のリソースの負荷の減少、リソースの特定の集中化した位置への移動、または、その他のそのような目的に役立ってもよい。
図25は、ディレクトリサービス(単に「コンピュータシステムディレクトリ」または「ディレクトリ」と呼ばれる)、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースを含むがこれらに限定されないそのようなディレクトリサービスと関連するリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードなどの、コンピュータシステムディレクトリリソースにアクセスするための環境2500を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス2502は、コンピュータシステムクライアントデバイス2504を通してコンピュータシステムに接続してもよく、1つまたは複数のコンピュータシステムサービス2510への接続2508を介してアクセスをリクエストしてもよい。いくつかの実施形態において、サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、信頼されたユーザによって、あるいは、ユーザによって、あるいは、自律的プロセスによって、あるいは、アラーム及び/またはその他のそのような状態の結果として、あるいは、これら及び/またはその他のそのような方法の組合せによって、発行されてもよい。
サービス(単数または複数)は、仮想マシン(VM)インスタンス、自動スケーリンググループ、ファイルベースデータベースストレージシステム、ブロックストレージサービス、冗長データストレージサービス、データアーカイブサービス、データウェアハウジングサービス、ユーザアクセス管理サービス、コンテンツ管理サービス、及び/またはその他のそのようなコンピュータシステムサービスなどのコンピュータサービスへのアクセスを提供してもよいコンピューティングリソースサービスプロバイダ106上で動作していてもよい。コンピューティングリソースサービスプロバイダ2506また、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースへのアクセスを提供してもよい。いくつかの分散及び/または仮想化されたコンピュータシステム環境において、コンピュータサービスと関連するリソースは、物理デバイス、仮想デバイス、物理及び/または仮想デバイスの組合せ、あるいはその他のそのようなデバイスの実施形態でもよい。
コンピューティングリソースサービスプロバイダの1つまたは複数のサービス2510は、いくつかの実施形態において、ディレクトリサービスならびにディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソースを含むがこれらに限定されない1つまたは複数のディレクトリリソースへのアクセスを必要としてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、1つまたは複数のAPIコールを使用して、ディレクトリを作成するリクエストを受信することを含んでもよい。いくつかの実施形態において、ディレクトリは、コンピューティングリソースサービスプロバイダ内、または、顧客構内データセンタ内、または、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内、または、顧客構内データセンタ内の仮想ネットワーク内、または、いくつかのその他のそのような位置の中で作成されてもよい。いくつかの実施形態において、ディレクトリへのアクセスは、クライアント及び/または顧客に代わってディレクトリを管理する操作などの、ディレクトリでのその他の操作を含んでもよい。
システムリソース(単数または複数)が、顧客構内に位置するオンプレミスディレクトリなどのローカルシステムリソース2520でもよいいくつかの実施形態において、コンピュータシステムクライアントデバイス2504は、ローカルシステムリソース2520へのアクセス2518を有してもよく、同時に、1つまたは複数のサービス2510は、ローカルシステムリソースへの直接アクセスを有することができない。このような実施形態において、コンピュータサービスリソースプロバイダは、たとえば、ユニフォームリソース識別子(URI)またはいくつかのその他のそのようなリンクによるなど、1つまたは複数の2514リンクまたはロケータを介して2510サービスに関連してもよい、ディレクトリなどの2516システムリソースにローカルシステムリソースを2522で拡張することによって、ローカルシステムリソースへのアクセスを備えてもよい。 システムリソースは、ローカルシステムリソースからリモートシステムリソースへ少なくとも一部のコンテンツ、状態、及び/または構造をコピーすることによって拡張されてもよい。たとえば、ローカルシステムリソースがファイルシステムであるいくつかの実施形態において、リモートファイルシステムが、ローカルファイルシステムの拡張として機能するように、リモートシステムリソースは、ローカルファイルシステムの構造、コンテンツの一部またはすべて、ならびに状態の一部またはすべてをリモートファイルシステムへコピーしてもよい。いくつかの実施形態において、1つまたは複数のサービスが有するアクセスのタイプに基づき、リモートファイルシステムリソース、読み書き阻止、書き込み同期、マスタスレーブ指示、及び/またはその他のシステムアクセスポリシーが、URI2514などのリンクのために実装されてもよい。
いくつかの実施形態において、URI2514などのリンクは、1つまたは複数のリンクまたはロケータを介して1つまたは複数のコンピュータシステムサービスに、コンピュータシステムリソースへのアクセスを少なくとも提供するように構成されてもよいマネージドディレクトリサービス2512などの、コンピューティングリソースサービスプロバイダ上で動作するサービスによって管理されてもよい。リンクは、コンピューティングリソースサービスプロバイダ内で動作するプロセスによって、あるいは、顧客構内内で動作するプロセスによって、あるいは、コンピューティングリソースサービスプロバイダに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、顧客構内に接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、マネージドディレクトリサービスのリンク及び/またはロケータを提供及び/または管理するプロセス(単数または複数)、ならびに、マネージドディレクトリサービス関連するかつ/またはそのコントロール下にあるその他のプロセスは、コンピュータシステムエンティティ上で実行されてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダ内で、または、顧客構内で、または、これら及び/またはコンピューティングリソースサービスプロバイダのその他のそのようなローカル及び/またはリモート位置の組合せにおいて、コンピュータシステムリソースを使用してもよい。
図26は、ディレクトリサービスなどのコンピュータシステムサービス、ならびに、分散及び/または仮想化されたコンピュータシステム環境における、ディレクトリサービスと関連するユーザリソース、ポリシーリソース、ネットワークリソース、及び/またはストレージリソースなどのリソース、ならびに、少なくとも1つの実施形態に従って、その上で動作する関連コードを含むがこれらに限定されないコンピュータシステムディレクトリリソースにアクセスするための環境2600を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス2602は、コンピュータシステムクライアントデバイス2604を通してその他のコンピュータシステムに接続してもよく、1つまたは複数のサービス2626への接続2606を介してアクセスをリクエストしてもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、または、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよい。サービスへのアクセスをリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス2604は、1つまたは複数のネットワーク2616及び/または、直接または間接的にそのネットワークに接続されたその他のサーバなどのネットワーク2616に関連するエンティティを介してサービスへのアクセスをリクエストしてもよい。上記のように、アクセスは、さまざまな構成及び位置のディレクトリを作成する機能、ならびに、その他のディレクトリ管理操作にアクセスする機能を含んでもよい。いくつかの実施形態において、ディレクトリは、仮想マシン及び/またはその他のクライアントがディレクトリのドメインに参加してもよいように作成及び構成されてもよく、それによって、ディレクトリにアクセスする。たとえば、ディレクトリはコンピューティングリソースサービスプロバイダ内で作成されてもよくて、仮想マシン及び/またはその他のクライアントが必要に応じてディレクトリと結合することを可能とするように構成されてもよい。ディレクトリへのアクセスを必要としてもよいクライアントは、1つまたは複数の認証された接続及び/または1つまたは複数の認可されたAPIコールを使用してディレクトリのドメインに参加することによって、そうしてもよい。コンピューティングリソースサービスプロバイダ内に作成されるディレクトリは、いくつかの実施形態において、隔離仮想ネットワーク内、または、隔離仮想ネットワークのサブネット内に作成されてもよい。隔離仮想ネットワークは、コンピューティングリソースサービスプロバイダの、顧客が構成する隔離サブセクションであり、コンピュータリソースサービスプロバイダ内でその他のサービスに直接アクセス可能ではない、セキュアかつ隔離された仮想ネットワーク環境の顧客に、1つまたは複数のコンピューティングリソースサービスプロバイダサービスを提供する。隔離仮想ネットワークの中で作成されるリソースへのアクセスは、隔離仮想ネットワーク内のその他のサービス及びエンティティのみ利用可能でもよく、リソースが隔離仮想ネットワークのサブネット内に作成される実施形態において、リソースは、そのサブネット内のその他のサービス及びエンティティのみ利用可能でもよい。
ディレクトリへのアクセスをリクエストしてもよいコンピュータシステムクライアントデバイス2604は、ネットワークを介してコンピュータシステムと接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、顧客構内は、1つまたは複数のディレクトリ2608を含んでもよく、それは少なくとも部分的に顧客構内に位置してもよく、それはファイル、ならびに/あるいは、ディレクトリ、アプリケーション、データ、データベース、その他のコンピュータシステムリソースへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなリソースを含むがこれらに限定されない、その上のその他のコンピュータシステムリソースを保存してもよい。いくつかの実施形態において、コンピュータシステムリソースは、ファイルシステムリソースでもよく、システムランダムアクセスメモリ(RAM)、ディスクドライブ、ソリッドステートドライブ、リムーバブルドライブ、あるいはこれら及び/またはその他のそのようなストレージデバイスの組合せなどの、さまざまなストレージデバイスに保存されてもよい。いくつかの実施形態において、コンピュータシステムリソースは、たとえば本明細書で説明されるネットワーク接続などの1つまたは複数の接続を介して、コンピュータシステムクライアントデバイス2604によってアクセスされてもよいデータセンタ(一箇所に配置してもよい複数のコンピュータシステムリソース、サービス、及び/またはストレージデバイス)に少なくとも部分的に位置してもよい。コンピュータシステムリソース及び/またはデータセンタはローカルに位置してもよく、ローカル及びリモートを組み合わせて位置してもよい。たとえば、いくつかの実施形態において、ファイルシステム及び/またはディレクトリは、ローカルデータセンタに位置するディスク上に位置してもよく、ファイルシステム及び/またはディレクトリのコンテンツも、リモートデータセンタに位置するディスクに再現されてもよい。いくつかの他の実施形態において、ファイルシステム及び/またはディレクトリは、ローカルでもよい(すなわちデータセンタ内にホストされる))1つのデータセンタにそのコンテンツの少なくとも一部を配置し、またローカルまたはリモートでもよい1つまたは複数のその他のデータセンタにそのコンテンツのその他の部分を配置してもよい。ストレージデバイスは、本明細書に説明されるような物理デバイス、及び/またはそのような物理デバイスの仮想表現を含んでもよい。たとえば、ファイルシステム及び/またはディレクトリストレージデバイスは、いくつかの量の物理メモリを含んでもよく、その一部は、仮想ディスクドライブ上に作成されるファイルシステムを有する仮想ディスクドライブとしてのストレージ専用である。その他のそのようなストレージデバイスは、本開示の範囲内であると見なしてもよい。
いくつかの実施形態において、サービス2626は、本明細書に説明されるような1つまたは複数のコンピュータシステムディレクトリリソースへのアクセスを必要としてもよい。サービス2626は、いくつかの実施形態において、ユーザ、その他のコンピュータシステム、プロセス及び/または自動化プロセス、ならびに/あるいはその他のそのようなコンピュータシステムエンティティを含むがこれらに限定されないさまざまなその他のコンピュータシステムエンティティを含んでもよい。システムディレクトリリソースへのアクセス2614は、いくつかの実施形態において、マネージドディレクトリサービス2618などのサービスによって提供されてもよく、それは1つまたは複数のシステムリソースへのアクセスを提供してもよい。たとえば、ディレクトリ2608は、コンピューティングリソースサービスプロバイダ内で、または、顧客構内のデータセンタ内で、または、いくつかのその他のそのような位置の中で、マネージドディレクトリサービス2618によって作成されてもよい。ディレクトリがマネージドディレクトリサービスによって作成されると、マネージドディレクトリサービスは、ディレクトリと結合することを望むことがある、または、ディレクトリで認可されたコマンドを実行することを望むことがある、または、その他のディレクトリ管理操作を実行することを望むことがあるサービスにURI2614を提供することによって、ディレクトリへのアクセスを提供することができる。マネージドディレクトリサービス2618は、コンピュータシステム及び/またはコンピュータシステムクライアントデバイスが、認証2620、認可2622、及びディレクトリサービス2624を介したディレクトリ管理の目的のためのアクセスを含むがこれに限定されないディレクトリの管理を行うことを可能にするさまざまなサービスを提供してもよい。
たとえば、マネージドディレクトリサービスは、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティの証明書を認証できる2620認証サービスを提供し、そのエンティティが、たとえば、ディレクトリを作成する、コンピュータシステムがディレクトリのドメインに参加することを可能にするようにディレクトリを構成する、ディレクトリ及び/またはその他のそのようなディレクトリ管理機能を拡張するためにマネージドディレクトリサービスにアクセスすることが認可されるかどうかを少なくとも決定してもよい。いくつかの実施形態において、証明書は、マネージドディレクトリサービス自身によって認証されてもよく、あるいは、それらは、マネージドディレクトリサービスの制御下のプロセス、プログラム、またはサービスによって認証されてもよく、あるいは、それらは、マネージドディレクトリサービスが通信できるプロセス、プログラム、またはサービスによって認証されてもよく、あるいは、それらは、これら及び/あるいはその他のそのようなサービスまたはエンティティの組合せによって認証されてもよい。
マネージドディレクトリサービス2618はまた、ユーザ、コンピュータシステム、プロセス、自動化プロセスまたはその他のそのようなエンティティを認可できる2622認可サービスを提供し、そのエンティティがマネージドディレクトリサービスによって管理されるディレクトリに関連して、1つまたは複数の可能なアクションのうちのどのアクションを実行できるかを少なくとも決定してもよい。たとえば、エンティティがディレクトリでの実行を認可されてもよくまたは認可されることができないアクションは、ディレクトリの作成、ディレクトリを含む一連のディレクトリの説明、ディレクトリの削除、ディレクトリの別のディレクトリへの拡張、ディレクトリのスナップショットについての情報の作成及び/または提供、ディレクトリのスナップショットの削除、ディレクトリのスナップショットからのディレクトリのリストア、ディレクトリと関連するタグの管理(追加/削除)、ディレクトリのURIのエイリアスの作成、エイリアスが利用可能かどうかの確認、ならびに/あるいは、ディレクトリのURIのエイリアスの削除を含むが、これらに限定されるものではない。ディレクトリが作成されると、ディレクトリの管理者は、作成されたディレクトリで、ディレクトリでの操作を実行することができる。たとえば、管理者は、ファイルシステムの作成、ファイルシステムの破棄、ファイルシステムへの取付け、ファイルシステムからの取り外し、ファイルシステムへのアクセスリンクの提供、ファイルシステムへのアクセスリンクの返還要求、ファイルシステムからの読み取りの許可、ファイルシステムへの書き込みの許可、及び/または、その他のそのようなファイルシステムリソースアクションなどのアクションを実行できる。
システムリソース上のアクションは、ディレクトリ、ファイル、アプリケーション、データ、データベース、その他のリソースへのリンク、システムドライバ、オペレーティングシステム、仮想マシン、及び/またはその他のそのようなその上のシステムリソースオブジェクトでのアクションを含むが、これらに限定されるものではなくてもよく、本明細書に言及されるアクションのようなアクションを含んでもよい。システムリソースの開始、停止、返還要求、破棄、及び/またはそれ以外の管理を行うアクション、ならびに、その他のそのようなアクションが、利用可能なアクションに含まれてもよい。アクションを実行する認可は、たとえば、特定のエンティティに関連する1組の証明書及び/またはポリシーを保守するシステムなどの証明書発行またはポリシーシステムのようなエンティティによって管理されてもよく、少なくとも一部において証明書及び/またはポリシーの組に基づいて、エンティティが実行を認可されるアクションを決定してもよい。エンティティが実行を認可されてもよいアクションは、静的でもよく、または、時刻、証明書のタイプ、システムポリシー、性質、アクセスされるオブジェクトのタイプまたは位置、あるいは、これら及び/またはその他のそのような認可要因の組合せを含むがこれらに限定されない複数の要因によって変化してもよい。たとえば、コンピュータシステムエンティティは、ファイルシステムの特定のファイルの読み取りのみ、ファイルシステムの特定のその他のファイルの読み取り及び書き込み、ならびに、ファイルシステムの特定のその他のファイルの追加及び削除を認可されてもよい。異なるコンピュータシステムエンティティが、ファイルシステム上の任意のアクションの実行を認可されてもよいが、それは、それらのアクションが特定の位置から、そして特定の時間に開始される場合のみである。1つまたは複数のプロセスは、システムログなどのファイルシステム上のファイルへの書き込みのみ認可されてもよく、同時に、その他のプロセスが、そのファイルからの読み取りのみ認可されてもよい。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
マネージドディレクトリサービスはまた、認可証明書及び/またはポリシーに従って、コンピュータシステムリソースへの認証されたエンティティアクセス2634を提供できる2624ディレクトリサービスを提供してもよい。たとえば、コンピュータシステムエンティティがファイルシステムリソースなどのコンピュータシステムリソース上での特定のデータストアの読み書きが認可されてもよい実施形態において、それを行う機能は、ディレクトリサービスによって提供されてもよい。ディレクトリサービスは、URIオブジェクトまたはいくつかのその他のそのようなリンケージによるなど、ファイルシステムリソース位置にリンクを提供することによって、ファイルシステムリソースへのアクセスを提供してもよい。URIは、コンピュータシステムクライアントデバイスによって、あるいは、データセンタで動作するプロセスによって、あるいは、データセンタに接続されたコンピュータシステム上で動作するプロセスによって、あるいは、マネージドディレクトリサービスによって、あるいは、これら及び/またはその他のそのようなコンピュータシステムエンティティの組合せによって、提供されてもよい。いくつかの実施形態において、ディレクトリ2608は、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリ2630に2632で拡張されてもよい。マネージドディレクトリサービスは、認可証明書及び/またはポリシーに従って、ディレクトリ2630への認証されたエンティティアクセス2634を提供してもよい。
いくつかの実施形態において、コンピュータシステムディレクトリリソースへのアクセスは、アクセスがリクエスト側エンティティに不可視であるような方法で提供されてもよい。たとえば、アクセス2634は、ディレクトリ2608の位置2610へのURIまたはその他のそのようなリンクとして、リクエスト側エンティティに提供されてもよい。コンピュータシステムリソースの上の位置は、コンピュータシステム上で動作する1つまたは複数のプロセスによってURIに変換されてもよい。コンピュータシステムリソースへのアクセスをリクエストしたサービスまたはエンティティ2626は、コンピュータシステムリソースの位置に依存する構成を必要とすることなく、コンピュータシステムリソースにアクセスするための2628受信したURIを使用してもよく、いくつかの実施形態において、サービスまたはエンティティ2626がコンピュータシステムリソースに直接接続されているように動作するコンピュータシステムリソースにリンクするURIを使用してもよい。サービスがURI2634などのリンクを介した拡張されたディレクトリへのアクセスを提供され、次にURI2614などのリンクを介してオンプレミスディレクトリ2608にアクセスしてもよいいくつかの実施形態において、サービスまたはエンティティ2626は、URI2614及び2634の一方または両方にアクセスしてもよく、オンプレミスディレクトリ2608及び/または拡張されたディレクトリ2630にアクセスするために、その一方または両方を交換可能に使用してもよい。たとえば、サービスまたはエンティティに対して、サービスまたはエンティティに近い位置に位置するように見えてもよいファイルに1組のデータを書き込むように見える操作が、データを実際にネットワークパケットにパッケージ化してもよく、次いで、アクセスリンク2614を介してネットワーク2616を越えてパケットを転送し、ディレクトリ2608のファイルに実際に書き込まれる。意図されるように、これらは例示的な実施例であり、マネージドディレクトリサービスによって実行されてもよいその他のタイプの操作も、本開示の範囲内であると見なしてもよい。
図27は、少なくとも図26に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、分散及び/または仮想化されたコンピュータシステム環境におけるローカル及び/またはリモートコンピュータシステムリソースに対する、ローカル及び/またはリモートサービスによる認証、認可、及びアクセスのためのユーザリクエストを提供する環境2700を示す。コンピュータシステムエンティティ、ユーザ、またはプロセス2702は、コンピュータシステムクライアントデバイス2704を通してコンピュータシステムに接続してもよく、マネージドディレクトリサービス、クラウドサービス、ウェブサービス、仮想マシンサービス、データベースサービス、及び/またはその他のそのようなコンピューティングリソースサービスプロバイダサービスを含むがこれらに限定されない1つまたは複数のローカル及び/またはリモートサービスへのコンピュータシステムエンティティ、ユーザ、またはプロセスによるアクセスを容易にするために、証明書の認証を2706リクエストしてもよい。アクセスは、ディレクトリの作成、ディレクトリの削除、ディレクトリの拡張、ディレクトリへの接続、ディレクトリ及び/またはその他のそのようなディレクトリ管理操作との結合の機能を含んでもよい。たとえば、ユーザまたはプロセス2702は、サービス2728などの仮想マシンサービスによって管理される仮想マシンを、ユーザまたはプロセスが以前に作成したディレクトリ2732と結合するよう所望してもよい。マネージドディレクトリサービスは、URI2724を介するアクセスを提供してもよく、いくつかの実施形態において、仮想マシンをディレクトリに結合するための認証及び/または認可をユーザまたはプロセス2702に提供してもよい。いくつかの実施形態において、証明書の認証をリクエストするコマンド(単数または複数)は、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、コンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのようなオブジェクトの組合せの結果として発生してもよい。証明書の認証をリクエストするコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスなどのプロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これらならびに/あるいはその他のシステム方法及び/またはエンティティの組合せによって、発行されてもよい。
コンピュータシステムクライアントデバイス2704は、1つまたは複数のネットワーク2708及び/あるいは直接または間接的にネットワークに接続されるその他のサーバなどのネットワーク2708に関連するエンティティを使用して、コンピュータシステムに接続されてもよい。コンピュータシステムクライアントデバイスは、ネットワークを介してコンピュータシステムで接続することが可能である任意のデバイスを含んでもよく、それらは、少なくともサーバ、ラップトップ、スマートフォンまたはタブレットなどのモバイルデバイス、スマートウォッチ、スマートテレビ、セットトップボックス、ビデオゲームコンソール、及びその他のそのようなネットワーク使用可能なスマートデバイスなどのその他のスマートデバイス、分散型コンピューティングシステム及びそれらのコンポーネント、ゲストコンピュータシステムまたは仮想マシンなどの抽象化コンポーネント、ならびに/あるいは、その他のタイプのコンピューティングデバイス及び/またはコンポーネントを含む。ネットワークはたとえば、ローカルネットワーク、内部ネットワーク、インターネットなどの公衆ネットワーク、広域ネットワーク、ワイヤレスネットワーク、モバイルネットワーク、衛星ネットワーク、複数のネットワークノードを有する分散型コンピューティングシステムなどを含んでもよい。ネットワークはまた、以下に掲げる、ブルートゥース、WiFi、携帯電話ネットワークプロトコル、衛星ネットワークプロトコル、及び/またはその他などのさまざまなプロトコルに従って動作してもよい。
いくつかの実施形態において、コンピュータシステムクライアントデバイス2704は、マネージドディレクトリサービス2710の制御に対応して及び/または制御の下で動作する1つまたは複数の認証プロセス2712にアクセスしてもよく、認証プロセスは、外部プロセスからリクエストに少なくとも応答して、コンピュータシステムエンティティ、ユーザ、またはプロセスをリクエストする証明書を認証するように構成されてもよい。たとえば、リクエスト側コンピュータシステムエンティティ、ユーザ、またはプロセスがマネージドディレクトリサービスへのアクセスが可能とされるか認証プロセスは2714で確認してもよい。認証プロセスは、ユーザ名及びパスワードの組合せを検証することによって、あるいは、ハードウェア、ソフトウェア、ファームウェア、またはその他のそのようなデバイス上に格納される暗号鍵を検証することによって、あるいは、コンピュータシステムクライアントデバイスがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、ネットワークがアクセスをリクエストすることが認可されるかどうかを検証することによって、あるいは、これら及び/またはその他のそのような検証方法の組合せによって、マネージドディレクトリサービスへのアクセスを有効にしてもよい。認証プロセスは、その他のそのような認証タスクを実行してもよく、いくつかの実施形態において、コンピュータシステム及び/またはその他のコンピュータシステムに格納されるデータに対応して及び/またはそのデータとともに動作するその他のプロセスと組み合わせて認証タスクを実行してもよい。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス2702は、本明細書に説明されるように1つまたは複数のネットワーク2708及び/またはそれらに関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス2704を通してコンピュータシステムに接続してもよく、中に作成されてもよいディレクトリ2732上でまたはそれに接続して、1つまたは複数の操作やプロセスを実行する認可を2716でリクエストしてもよく、ならびに/あるいは、コンピューティングリソースサービスプロバイダから、または、コンピューティングリソースサービスプロバイダ内の、もしくは、隔離仮想ネットワークのサブネット内の、もしくは、顧客構内のデータセンタ内の、もしくは、顧客構内の仮想ネットワーク内の、もしくは、いくつかのその他のそのような位置内の隔離仮想ネットワークからアクセス可能でもよい。いくつかの実施形態において、リクエストされる操作認可は、1つまたは複数のコンピュータシステムリソース操作を直接的に実行するリクエストされる認可でもよい。いくつかの実施形態において、リクエストされる操作認可は、ディレクトリの作成または削除などの、ディレクトリに関連する1つまたは複数のコンピュータシステムリソース操作を間接的に実行するリクエストされる操作でもよい。たとえば、リクエストされた操作は、1つまたは複数のコンピュータシステムリソース操作を実行する認可のための、コンピュータシステムエンティティ、ユーザ、またはプロセス2702の制御下のリモートコンピュータシステムサービス、プロセス、またはエンティティの認可のリクエストでもよい。認可は、マネージドディレクトリサービス2710の制御に対応して及び/またはその制御の下で動作する1つまたは複数の認可プロセス2718からリクエストされてもよく、認可プロセスは、外部プロセスからのリクエストに少なくとも応じるように、そして、ディレクトリ2732上またはそれ以外ではそのディレクトリに関連するコンピュータシステムエンティティ、ユーザ、またはプロセスによる1つまたは複数の操作及び/またはプロセスの性能を認可するように、構成されてもよい。コンピュータシステムリソースは、顧客構内のデータセンタなどのようにローカルに位置してもよく、あるいは、リモートに位置してもよく、あるいは、分散及び/または仮想コンピュータシステム上などの複数のリモート位置に位置してもよく、あるいは、ローカル及び/またはリモート位置の組合せに位置してもよい。たとえば、ファイルシステムは、ローカルデータセンタに位置するローカルディスク上に位置してもよく、そのファイルシステムのコンテンツはまた、1つまたは複数のリモートデータセンタに位置する1つまたは複数のリモートディスクに再現されてもよい。いくつかの実施形態において、ファイルシステムは、少なくともそのコンテンツの少なくとも一部をローカルまたはリモートでもよい1つのデータセンタに配置し、またそのコンテンツのその他の部分を1つまたは複数のその他のデータセンタに配置してもよい。
認可されてもよい操作及び/またはプロセスの実施例は、2720のリソースオブジェクトの作成及び/または破棄、2722のリソースオブジェクトの読み取り及び/または書き込み、ならびに/あるいは、その他のそのようなシステムリソース操作を含むが、これらに限定されるものではない。認可は、エンティティ、ユーザ、またはプロセスによって、日時によって、エンティティのクラスによって、ユーザのクラスによって、プロセスのクラスによって、1つまたは複数のシステムポリシーによって、リクエストの性質によって、あるいは、これら及び/またはその他のそのような考慮事項の組合せによって、変化してもよい。たとえば、コンピュータシステムエンティティは、ファイル及び/またはディレクトリの作成は認可されてもよいが、それらの削除は認可されることはできなくて、あるいは、プロセスは、そのプロセスによって作成されたファイル及び/またはディレクトリの削除のみ認可されてもよいが、他は認可されることはできなくて、あるいは、エンティティは、特定のディレクトリで特定のファイルの読み取りは認可されてもよいが、他は認可されることはできない。意図されるように、これらは例示的な実施例である。その他のタイプの操作は、マネージドディレクトリサービス認可システムによって認可されてもよく、そのようなその他のタイプの操作も、本開示の範囲内であると見なされる。
いくつかの実施形態において、本明細書に説明されるようにコンピュータシステムエンティティ、ユーザ、またはプロセス2702は、本明細書に説明されるように1つまたは複数のネットワーク2708及び/またはそれらに関連するエンティティを使用して、本明細書に説明されるようにコンピュータシステムクライアントデバイス2704を通してコンピュータシステムに接続してもよく、ディレクトリ2732の管理のためにディレクトリ2732へのアクセスをリクエストしてもよい1つまたは複数のローカル及び/またはリモートサービス2728を作成及び/またはインスタンス化2724してもよい。ディレクトリは、本明細書に説明されるような1つまたは複数の位置のうちの1つに事前に作成されていてもよく、アクセスは、URI2724を介して作成されたディレクトリに提供されてもよい。いくつかの実施形態において、コンピュータサービス、プロセス、またはエンティティ2728は、マネージドディレクトリサービス2710の制御に対応して及び/またはその制御の下で動作する1つまたは複数のディレクトリサービスプロセス2726にアクセスしてもよく、ディレクトリサービスプロセスは、外部プロセスからのリクエストに少なくとも応答して、そして、1つまたは複数のファイルシステムへのアクセスを提供するように構成されてもよい。1つまたは複数のファイルシステムへのアクセスは、ファイルならびに/あるいはディレクトリ、アプリケーション、データ、データベース、その他のファイルシステムへのリンク、システムドライバ、コンピュータオペレーティングシステム、仮想マシン、及び/またはその他のそのようなファイルシステムオブジェクトなどのその他のファイルシステムオブジェクトに対する、読み取り、書き込み、実行、削除、作成、インスタンス化、及び/またはその他のそのような操作などの操作へのアクセスを含んでもよい。いくつかの実施形態において、操作へのアクセスは、本明細書に説明されるような1つまたは複数の認可プロセス2718を有する通信2730によって容易にされてもよく、その中に含まれるリソース認可ポリシーに従って認可を提供する。
前述のように、図27のコンピュータシステムエンティティ、ユーザ、またはプロセス2702、及びコンピュータシステムクライアントデバイス2704は、分散型コンピューティングシステム及び/またはデータセンタ環境で相互接続される複数のエンティティ、ユーザ、プロセス、及び/またはデバイスの中の1つでもよい。図28は、さまざまな実施形態が行われてもよい分散コンピューティング環境及び/またはデータセンタ環境2800を示す。1つまたは複数のコンピュータシステムエンティティ、ユーザ、またはプロセス2802は、1つまたは複数のネットワーク2808を介して1つまたは複数のコンピュータシステムサービス2806に、1つまたは複数のコンピュータシステムクライアントデバイス2804を介して接続してもよい。コンピューティングリソースサービスプロバイダ2808に位置してもよい1つまたは複数のローカル及び/またはリモートコンピュータシステムディレクトリリソース2820へのサービスによるアクセスは、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、2812のマネージドディレクトリサービスを介して、1つまたは複数のURI2810などの1つまたは複数の接続によって提供されてもよい。ローカル及び/またはリモートシステムリソースは、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、URI2822を介したローカルデータセンタ2816からのローカルシステムリソース2814の2818の拡張でもよい。ディレクトリ2820は、いくつかの実施形態において、コンピューティングリソースサービスプロバイダ内の隔離仮想ネットワークの内側に位置してもよく、または、本明細書に説明されるように隔離仮想ネットワークのサブネット内に位置してもよい。オンプレミスディレクトリ2814は、いくつかの実施形態において、本明細書に説明されるように顧客構内内の仮想ネットワーク内に位置してもよい。
ディレクトリがコンピューティングリソースサービスプロバイダによって提供されるデータセンタに位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、ディレクトリへのアクセスを提供するコンピューティングリソースサービスプロバイダにアクセスしてもよい位置から、データセンタ及びディレクトリにアクセスしてもよい。ディレクトリが隔離仮想ネットワーク内または隔離仮想ネットワークのサブネット内に位置し、コンピュータシステムエンティティが隔離仮想ネットワーク内またはサブネット内に位置するいくつかの実施形態において、ディレクトリは隔離仮想ネットワークまたはサブネット内のそれらのエンティティに対して利用可能とされてもよい。たとえば、コンピューティングリソースサービスプロバイダで位置するディレクトリは、コンピューティングリソースサービスプロバイダにアクセスすることができる複数のデバイスかつ複数の位置からの適切な認可を有するコンピュータシステムエンティティによってアクセスされてもよい。ディレクトリは、ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティによって共有されてもよく、それぞれは、それらのコンピュータシステムエンティティが位置するところに関係なく、ディレクトリにアクセスして、たとえばディレクトリのドメインに参加してよいが、それは、それらのエンティティがコンピューティングリソースサービスプロバイダにアクセスして、適切な証明書を有する場合に限る。このような実施形態において、ディレクトリへのアクセスは、少なくとも図25及び26に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。
ディレクトリが、たとえば、顧客によって提供されるデータセンタに位置し、そして顧客構内に位置するいくつかの実施形態において、複数ユーザ、サービス、デバイス、プロセス、及び/またはその他のそのようなコンピュータシステムエンティティは、同様の方法で、多くの異なる位置からディレクトリにアクセスしてもよいが、それは、それらのエンティティが顧客構内のデータセンタにアクセスする場合に限る。このような実施形態において、顧客構内のデータセンタへのアクセスは、少なくとも図25及び26に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、少なくとも一部においてマネージドディレクトリサービスによって提供されてもよい。意図されるように、これらは例示的な実施例であり、複数のコンピュータシステムエンティティがデータセンタ及び/またはシステムリソースに接続することを可能にする2816データセンタ及び2814システムリソースの位置のその他のタイプ及び/または配置は、本開示の範囲内であると見なしてもよく、それらは、分散されたデータセンタ及び/またはシステムリソース、仮想データセンタ及び/またはシステムリソース、冗長性をもつデータセンタ及び/またはシステムリソース、部分的にローカルなデータセンタ及び/またはシステムリソース、隔離仮想ネットワーク、隔離仮想ネットワークのサブネット、ならびに/あるいは、部分的にリモートなデータセンタ及び/またはシステムリソースを含むが、これらに限定されない。さらに意図されるように、システムリソースは、さまざまなシステムリソースを含んでもよく、それらは、ローカル及び/またはリモートストレージ位置、システムメモリ、中央処理装置(CPU)、ネットワークインタフェース、ネットワーク帯域幅、ディスプレイデバイス、入力デバイス、ならびに/あるいはその他のそのようなコンピュータシステムリソースを含むが、これらに限定されず、これらのその他のそのようなリソースも本開示の範囲内であると見なしてもよい。
図29は、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、認証及び認可証明書のために使用される中央位置ユーザプロファイル、記憶装置、及びシステムポリシーを保守するための例示的環境2900を示す。管理者2902は、いくつかの実施形態において、顧客構内に位置してもよい1つまたは複数のローカルストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、コンピューティングリソースサービスプロバイダに位置してもよい1つまたは複数のリモートストレージ位置に位置してもよい、あるいは、いくつかの実施形態において、ローカル及びリモートストレージ位置の組合せに位置してもよいストレージ位置に位置してもよい、1組のシステムアクセスデータ2904を有してもよい。いくつかの実施形態において、システムアクセスデータは、ユーザ名、ユーザパスワード、ユーザ個人データ、及び/またはその他のそのようなユーザプロファイル情報を含有してもよい1つまたは複数のユーザプロファイル2906を含有してもよい。ユーザプロファイルは、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認証サービスなどの認証サービスを提供するために、1つまたは複数のシステムによって使用されてもよい。いくつかの実施形態において、システムアクセスデータは、1つまたは複数のコンピュータシステムリソースへの参照を含有してもよい1つまたは複数の記憶装置2908を含有してもよい。いくつかの実施形態において、システムアクセスデータは、たとえば、システムサービス、ファイルシステム、ディレクトリ、マシン、仮想マシン、アプリケーション、ドキュメント、及び/またはその他のそのようなシステムリソースなどのシステムリソースへのアクセスを可能にする、禁止する、及び/または制限する1つまたは複数のポリシーステートメントを含有してもよい1つまたは複数のポリシー2910を含有してもよい。ポリシーステートメントは、1つまたは複数のユーザプロファイルのコンテンツ、ユーザプロファイルタイプ、リクエスト側サービス、リクエスト側サービスタイプ、リクエスト側サービス位置、時刻、ユーザの事業価値、クライアント、顧客、リクエスト及び/またはその他のそのような事業価値、またはこれら及び/またはその他のそのような要因の組合せなどの要因に基づいて、システムリソースへのアクセスを可能にしてもよく、禁止してもよく、及び/または制限してもよい。
マネージドディレクトリサービスは、マネージドディレクトリサービスを提供するコンピューティングリソースサービスプロバイダのアカウントと関連するそれぞれのユーザに、さまざまなレベルのアクセスを提供してもよい。たとえば、いくつかのユーザは、ディレクトリを作成及び削除することができてもよく、一方で、その他のユーザは、ディレクトリを削除する認可がなくてもよい。したがって、図30は、マネージドディレクトリサービスによって管理されるディレクトリの管理機能へのアクセスを制御するための例示的プロセス3000を示す。以下でより詳細に論じられるように、プロセスは、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスへのアクセスを認証するために、かつ、マネージドディレクトリサービスと関連する1つまたは複数のコマンドの実行を認証されるエンティティを認可するために、使用されてもよい。図27で説明されるようにマネージドディレクトリサービス2710などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図30に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、リクエスタがマネージドディレクトリサービス、ならびにマネージドディレクトリサービスによって提供されるコマンド、リソース、及び/またはサービスのうちの1つまたは複数にアクセスすることを可能にするリクエスト3002を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初に、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるプロセスなどのプロセスを使用するユーザを3004で認証してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図29に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイルデータなどのシステムアクセスデータを使用してもよい。リクエスタが3004で認証される場合、マネージドディレクトリサービスは3008で接続を可能にし、3010でリクエスタからのコマンドを受信し始める。リクエスタが3004で認証されない場合、マネージドディレクトリサービスは3006で接続を拒絶してもよい。
マネージドディレクトリサービスが3010でリクエスタからコマンドを受信し始めると、マネージドディレクトリサービスは、リクエスタが各コマンドの実行を認可されるかどうかを3014で決定してもよい。マネージドディレクトリサービスが受信してもよいコマンドの実施例は、ディレクトリを作成または破棄するコマンド、ディレクトリサービスを管理するコマンド、ディレクトリタグを管理するコマンド、ディレクトリエイリアスを管理するコマンド、ディレクトリへの読み出し及び/またはディレクトリからの書き込みのコマンド、ならびに/あるいは、その他のそのようなコマンドを含むがこれらに限定されるものではない。マネージドディレクトリサービスは、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明される認可プロセスなどの認可プロセスを使用して、各コマンドを実行するリクエスタを認可してもよい。マネージドディレクトリサービスは、いくつかの実施形態において、少なくとも図29に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるユーザプロファイル及び/またはポリシーデータなどのシステムアクセスデータを使用してもよい。
リクエスタが受信したコマンドの実行を3014で認可されない場合、マネージドディレクトリサービスは3016で特定のコマンドを拒絶してもよく、次いで、3012でリクエスタからのコマンドの処理を続けなければならないかどうか決定してもよい。いくつかの実施形態において、いくつかの拒絶されたコマンドが、コマンドを実行しないことになってもよく、いくつかの拒絶されたコマンドが、コマンドが拒絶されたリクエスタ及び/またはその他のコンピュータシステムエンティティに警告することになってもよく、いくつかの拒絶されたコマンドが、リクエスタへの接続を終了させることになってもよく、いくつかの拒絶されたコマンドが、これら及び/またはその他のそのようなアクションの組合せになってもよい。マネージドディレクトリサービスが、リクエスタからのコマンドを受信し続けることを3012で決定する場合、マネージドディレクトリサービスは、3012で次のコマンドを待ってもよい。マネージドディレクトリサービスが、続けることを3012で決定しない場合、マネージドディレクトリサービスは、3022でリクエスタを切断してもよい。いくつかの実施形態において、3022リクエスタの分離は、リクエスタの分離、リクエスタへの切断の通知、1つまたは複数のその他のコンピュータシステムエンティティへの切断の通知、あるいは、これら及び/またはその他のそのような切断アクションの組合せを含んでもよい。
リクエスタが受信したコマンドの実行を3014で認可される場合、マネージドディレクトリサービスは3018で、コマンドの実行、コマンドが許可されることのリクエスタへの警告、コマンドが許可されることの1つまたは複数のその他のシステムエンティティへの警告、1つまたは複数のその他のシステムエンティティへのコマンドの実行のリクエスト、あるいは、これら及び/またはその他のそのような応答の組合せを含んでもよいコマンドを許可してもよい。受信したコマンド及び/または3018への応答は、マネージドディレクトリサービスにリクエスタを3022で切断させてもよい、3020の切断するリクエストをコマンドが、少なくとも一部において含んでもよいことを可能にする。マネージドディレクトリが3020の切断コマンドを受信しない場合、マネージドディレクトリサービスは、3010で次のコマンドを待ってもよい。
図31は、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、コンピューティングリソースサービスプロバイダ内に位置するディレクトリなどのリモートシステムディレクトリにオンプレミスディレクトリなどのローカルディレクトリを拡張するための例示的環境3100を示す。コンピュータシステムユーザ、プロセス、またはサービスなどのコンピュータシステムエンティティは、本明細書に説明されるネットワーク接続などの1つまたは複数の接続についてのネットワークプロトコルまたはその他のそのような通信プロトコルなどの1つまたは複数の接続プロトコルを使用して、ローカル及び/またはリモートシステムリソースに接続してもよい。コンピュータシステムエンティティとコンピュータシステムリソースとの間の接続は、たとえば、一方向接続、双方向接続、読み取り専用接続、読み書き接続、あるいは、これら及び/またはその他の接続タイプの組合せでもよい。いくつかの実施形態において、コンピュータシステムエンティティは、コンピュータシステムクライアントデバイスを介して、3108でリモートディレクトリにローカルシステムディレクトリを拡張する1つまたは複数のコマンドを発行してもよい。ローカルシステムディレクトリを拡張するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスなどのプロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これらならびに/あるいはその他のシステム方法及び/またはエンティティの組合せによって、発行されてもよい。ローカルシステムディレクトリを拡張するコマンド(単数または複数)は、いくつかの実施形態において、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリサービスなどのマネージドディレクトリサービス3110に発行されてもよい。
いくつかの実施形態において、マネージドディレクトリサービスは最初に、ローカルシステムディレクトリを拡張するコマンドを3112で認証及び認可してもよく、認証及び認可される場合、マネージドディレクトリサービス3114は、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、ディレクトリ3118を3116で作成してもよい。マネージドディレクトリサービス3110は、いくつかの実施形態において、マネージドディレクトリサービス3114と同一でもよい。リモートディレクトリリソースが作成されたあと、ローカルシステムディレクトリを拡張するコマンドは、ローカルシステムディレクトリを3118リモートシステムディレクトリに3126で拡張するローカルシステムディレクトリ3106に発行されてもよい。また、コンピュータシステムクライアントデバイスは、マネージドディレクトリサービスが、URI3130などのリンクを介して、リモートシステムディレクトリに3128で接続してもよいように、マネージドディレクトリサービスへのURIなどのリンクを提供してもよい。
図32は、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるマネージドディレクトリサービスなどのマネージドディレクトリサービスを使用するコンピューティングリソースサービスプロバイダ内に位置するディレクトリなどのリモートシステムディレクトリにオンプレミスディレクトリなどのローカルシステムディレクトリを拡張するための例示的プロセス3200を示す。図27で説明されるようにマネージドディレクトリサービス2710などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、図32に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、ローカルシステムディレクトリを拡張するリクエスト3202を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
マネージドディレクトリサービスは最初、リクエストを3204で認証及び認可してもよく、3206でリクエストまたはリクエスタがそのような操作の実行が認可されない場合は3208で許可が与えられず、マネージドディレクトリサービスは、3216で戻ってもよい。3206でマネージドディレクトリサービスがリクエストやリクエスタを認証及び認可できる場合、マネージドディレクトリサービスは、ディレクトリへのアクセスが読み取り専用または読み取り/書き込みであるかどうかを3220で決定してもよい。リモートシステムが3220でディレクトリへの読み取りのみまたは読み取り/書き込みアクセスを有するかどうかに基づき、マネージドディレクトリサービスは、3222で読み取り専用ディレクトリを作成してもよく、または、3224で読み取り/書き込みディレクトリを作成してもよい。リモートシステムリソースは、ローカルディレクトリからリモートディレクトリへ、コンテンツ、状態、及び/または構造の少なくとも一部をコピーすることによって作成されてもよい。マネージドディレクトリサービスが、3212でディレクトリの作成及び/または初期化に失敗した場合、マネージドディレクトリサービスは、エラーを3214で発行してもよい。クロスプレミスディレクトリサービスが3212でリモートディレクトリの作成及び/または初期化に成功した場合、クロスプレミスディレクトリサービスは3216に戻る前に拡張してもよい。
図33は、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを使用して、読み取り専用許可を有するリモートディレクトリにローカルディレクトリを拡張するための例示的環境3300を示す。コンピューティングリソースサービスプロバイダ3306のサービス3308は、オンプレミスディレクトリ3312などのローカルディレクトリの拡張3314であるリモートディレクトリ3316への読み取り専用アクセス3318を有してもよく、拡張は、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるとおりである。サービスは、マネージドディレクトリサービス3310によって提供されるURIなどの3318のリンクを介して、リモートディレクトリから読み取ってもよい。サービスがリモートディレクトリ3316への書き込みアクセスを有しないため、サービスはリモートディレクトリに書き込むことができない。いくつかの実施形態において、サービスは、マネージドディレクトリサービス3310によって提供されるURIなどの3320のリンクを介して、ローカルディレクトリ3312に書き込んでもよい。このような実施形態において、ローカルディレクトリへの書き込みは、URI3322などの再現リンクを介して、リモートディレクトリに再現されてもよい。いくつかの実施形態において、許可された書き込みアクセスがないと判定されると、書き込みは、その代わりに、URI3322などの再現リンクを介して書き込みをローカルリソースにリダイレクトしてもよいディレクトリ3316に向けられてもよい。
図34は、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスと関連する読み取り専用ディレクトリへの読み取り及び書き込みのための例示的プロセス3400を示す。図27で説明されるマネージドディレクトリサービス2710などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、プロセス3400に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、読み取り専用ディレクトリへの読み取りまたは書き込みを行うリクエスト3402を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
3404の操作タイプが読み取りである場合、マネージドリソースサービスは、いくつかの実施形態において、読み取りを実行する前に、オンプレミスディレクトリなどのローカルディレクトリからコンピューティングリソースサービスプロバイダ内に位置するディレクトリなどのリモートディレクトリへのデータの更新及び/または同期を3406でリクエストしてもよい。いくつかの実施形態において、更新及び/または同期は、1つまたは複数のプロセスによって発行されるコマンドの結果として生じてもよく、あるいは、自動的に生じてもよく、あるいは、システムタイマの結果として生じてもよく、あるいは、まったく生じなくてもよい。更新後、マネージドディレクトリサービスは、3410でリモートディレクトリから読み取ってもよく、次いで、3418で次の読み取りまたは書き込みのリクエストを待機してもよい。
3404操作タイプが書き込み操作であり、サービスがリモートディレクトリへの書き込み許可を有しない場合、サービスは、その代わりに、3408でローカルディレクトリへの書き込みを送信する。ローカルディレクトリは任意の書き込み衝突があるかどうかを3412で判定してもよく、書き込み衝突があると判定された場合、最初に3414で書き込み衝突を調停してもよい。ディレクトリがコンピュータファイルシステムを含むとき、複数のプロセスがデータを同一のファイルまたはその他のそのようなファイルシステム位置へ書き込もうとするときに書き込み衝突が発生することがある。書き込みが許可される前に、書き込み衝突は潜在的なエラーのために調停されてもよい。いくつかの実施形態において、書き込み衝突は、データに関する権限として1つのプロセスを選択することによって調停されてもよく、正式なプロセスを選択して書き込み衝突を調停する。書き込み衝突がローカルディレクトリで調停されると、それらはローカルディレクトリからリモートディレクトリへ3416で逆に再現されてもよく、次いで、マネージドディレクトリサービスは、3418で次の読み取りまたは書き込みリクエストを待機してもよい。意図されるように、これらの操作は、拡張されたディレクトリを使用して実行されてもよい操作のタイプの例示的な実施例であり、その他の操作は、本開示の範囲内であると見なされてもよい。いくつかの実施形態において、プロセス3400は、複数のローカル及び/またはリモートディレクトリを使用して実行されてもよく、1つまたは複数の書き込み可能なディレクトリによって、特定のシステムによる書き込み衝突を解決する。
いくつかの実施形態において、正式なまたはマスタディレクトリは、少なくとも図34に関連して本明細書に説明されるように、ローカルまたはオンプレミスディレクトリでもよい。いくつかの実施形態において、正式なまたはマスタディレクトリは、リモートまたはコンピューティングリソースサービスプロバイダディレクトリでもよい。正式なまたはマスタディレクトリがコンピューティングリソースサービスプロバイダディレクトリであるような実施形態において、ステップ3412の書き込み衝突は、マネージドディレクトリサービスによって評価されてもよい。任意の書き込み衝突がある場合、マネージドディレクトリサービスは、ステップ3414で衝突を調停してもよい。いくつかの実施形態において、オンプレミスディレクトリ、及びコンピューティングリソースサービスプロバイダディレクトリ、及び/またはこれらのエンティティと関連する1つまたは複数のサービスは、協働して書き込み衝突の有無の判定及び/またはそれらの衝突の調停を行ってもよい。
図35は、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスを使用する、読み取り/書き込み許可を有するリモート(コンピューティングリソースサービスプロバイダ)ディレクトリへのローカル(オンプレミス)ディレクトリの拡張のための例示的環境3500を示す。コンピューティングリソースサービスプロバイダ3506のサービス3508は、ローカルディレクトリ3512の拡張3514であるリモートディレクトリ3516への3518の読み取り/書き込みアクセスを有してもよく、拡張は、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるとおりである。サービスは、3518のマネージドディレクトリサービス3510によって提供されるURIなどのリンクを介してリモートディレクトリから読み取ってもよい。サービスは、マネージドディレクトリによって提供される同一のリンクを介して、リモートディレクトリに書き込んでもよい。いくつかの実施形態において、サービスはまた、図33に関連して本明細書に説明されるように、リンク3320などのURIのようなリンクを介してローカルディレクトリ3512への読み書きを行ってもよい。このような実施形態において、ローカルディレクトリへの書き込みは、リモートディレクトリに3520で再現されてもよい。
図36は、少なくとも図27に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるように、マネージドディレクトリサービスと関連するディレクトリへの読み取り及び書き込みのための例示的プロセス3600を示す。図27で説明されるようにマネージドディレクトリサービス2710などのサービス、またはマネージドディレクトリサービスと関連するプロセスは、プロセス3600に示されるアクションを実行してもよい。
マネージドディレクトリサービスは、ディレクトリへの読み取りまたは書き込みを行うリクエスト3602を受信してもよい。いくつかの実施形態において、リクエスタは、少なくとも図25に関連して、そして少なくとも1つの実施形態に従って本明細書に説明されるコンピュータシステムエンティティ、ユーザ、またはプロセスなどのコンピュータシステムエンティティ、ユーザ、またはプロセスでもよい。いくつかの実施形態において、リクエストは、外部のコンピュータシステム及び/またはサーバから発生してもよく、あるいは、リモートネットワーク位置のエンティティ、ユーザ、またはプロセスから発生してもよく、あるいは、ローカルコンピュータシステムから発生してもよく、あるいは、コンピュータシステムクライアントデバイスのユーザから発生してもよく、あるいは、これら及び/またはその他のそのような状態の組合せの結果として発生してもよい。リクエストを発行するコマンド(単数または複数)は、いくつかの実施形態において、特権ユーザによって、あるいは、非特権ユーザによって、あるいは、自律的プロセスによって、あるいは、アラームまたは状態の結果として、あるいは、これら及び/またはその他の方法の組合せによって、発行されてもよい。
3604の操作タイプが読み取りである場合、マネージドリソースサービスは、いくつかの実施形態において、読み取りを実行する前に、ローカルディレクトリ(オンプレミスディレクトリなど)からリモートディレクトリ(コンピューティングリソースサービスプロバイダディレクトリなど)へのデータの更新及び/または同期を3606でリクエストしてもよい。更新及び/または同期は、1つまたは複数のプロセスによって発行されるコマンドの結果として生じてもよく、あるいは、自動的に生じてもよく、あるいは、システムタイマの結果として生じてもよく、あるいは、まったく生じなくてもよい。更新後、マネージドディレクトリサービスは、3610でリモートディレクトリから読み取ってもよく、次いで、3620で次の読み取りまたは書き込みのリクエストを待機してもよい。
3604操作タイプが書き込み操作である場合、サービスは、3608でリモートディレクトリへの書き込みを送信してもよく、2つのシステム間の同期を維持するために、3612でローカルディレクトリへの書き戻しを再現してもよい。ローカルディレクトリは任意の書き込み衝突があるかどうかを3614で判定してもよく、書き込み衝突があると判定された場合、最初に3616で書き込み衝突を調停してもよい。ディレクトリがコンピュータシステムファイルシステムを含むとき、複数のプロセスがデータを同一のファイルまたはその他のそのようなファイルシステム位置へ書き込もうとするときに書き込み衝突が発生することがある。書き込みが許可される前に、書き込み衝突は潜在的なエラーのために調停されてもよい。いくつかの実施形態において、書き込み衝突は、データに関する権限として1つのプロセスを選択することによって調停されてもよく、正式なプロセスを選択して書き込み衝突を調停する。書き込み衝突がローカルディレクトリで調停されると、それらはローカルディレクトリからリモートディレクトリへ3618で逆に再現されてもよく、次いで、マネージドディレクトリサービスは、3620で次の読み取りまたは書き込みリクエストを待機してもよい。意図されるように、これらの操作は、ディレクトリを使用して実行されてもよい操作のタイプの例示的な実施例であり、その他の操作は、本開示の範囲内であると見なされてもよい。
本明細書に説明されるプロセス3600は、ローカルディレクトリが有利に競合または衝突を解決するという点で、ローカルディレクトリが正式なディレクトリであることを前提とする。いくつかの実施形態において、リモートディレクトリは、正式なディレクトリでもよく、3612でローカルディレクトリへの書き戻しを再現する前に、調停を実行してもよい。いくつかの実施形態において、ローカルディレクトリ及びリモートディレクトリは、正式な義務を分担してもよく、どちらが書き込み衝突を調停してもよいか、及び/または、それらの書き込み衝突をどのように解決してもよいかについて、それらの間で取り決める。プロセス3600は、複数のローカル及び/またはリモートディレクトリを使用して実行されてもよく、1つまたは複数のディレクトリによって、特定のシステム実施形態による書き込み衝突を解決する。
図37は、さまざまな実施形態による態様を実装するための例示的環境3700の態様を示す。理解されるように、ウェブベースの環境が解説のために使用されるが、さまざまな実施形態を実装するために異なる環境が、適宜、使用されてもよい。環境には、電子クライアントデバイス3702が含まれ、それは、適切なネットワーク3704越しにリクエスト、メッセージ、または情報を送信及び/または受信し、いくつかの実施形態において、情報をデバイスのユーザへ戻すために使用可能な任意の適切なデバイスを含むことができる。そのようなクライアントデバイスの実施例は、パーソナルコンピュータ、携帯電話、携帯メッセージングデバイス、ラップトップコンピュータ、タブレットコンピュータ、セットトップボックス、パーソナルデータアシスタント、組み込み型コンピュータシステム、電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、携帯電話ネットワーク、ローカルエリアネットワーク、衛星ネットワーク、または任意のその他のそのようなネットワーク、及び/またはそれらの組合せを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用されるコンポーネントは、選択されるネットワーク及び/または環境のタイプに、少なくとも一部において依存する可能性がある。そのようなネットワークを介して通信するためのプロトコル及びコンポーネントは、よく知られており、本明細書では詳細に論じない。ネットワーク越しの通信は、有線または無線接続及びそれらの組合せによって可能にすることができる。本実施例では、環境がリクエストを受信し、それに答えてコンテンツを供給するためのウェブサーバ3706を含むとき、ネットワークはインターネットを含むが、当業者にとって明らかであるように、その他のネットワークは、類似の目的を供給する代替のデバイスを使用することができる。
例示的な環境は、少なくとも1つのアプリケーションサーバ3708及びデータストア3710を含む。いくつかのアプリケーションサーバ、レイヤ、またはその他のエレメント、プロセスまたはコンポーネントが存在することができるが、それらは連結されてもよく、またはそれ以外に構成されてもよく、適切なデータストアからデータを取得するなどのタスクを実行するために相互作用することができることは理解されるべきである。サーバは、本明細書で使用される場合、ハードウェアデバイスまたは仮想コンピュータシステムなど、さまざまな方法で実装されてもよい。いくつかの文脈において、サーバは、コンピュータシステム上で実行されているプログラミングモジュールを参照してもよい。本明細書で使用される場合、特に明記しない限り、または文脈から明らかでない限り、「データストア」という用語は、データの記憶、アクセス、及び検索が可能な、任意のデバイスまたはデバイスの組合せに関するものであり、任意の標準的な、分散された、仮想の、またはクラスタ化された環境において、任意の組合せ及び任意の数のデータサーバ、データベース、データストレージデバイス、及びデータストレージメディアを含んでもよい。アプリケーションサーバは、クライアントデバイスの1つまたは複数のアプリケーションの態様を実行するために必要に応じてデータストアと統合するための任意の適切なハードウェア、ソフトウェア、及びファームウェアを含むことができ、アプリケーションのデータアクセス及びビジネスロジックの一部またはすべてを処理する。アプリケーションサーバは、データストアと連携するアクセス制御サービスを提供してもよく、テキスト、グラフィクス、オーディオ、ビデオ、及び/またはユーザに提供するために使用可能なその他のコンテンツを含むがこれらに限定されないコンテンツを生成することができ、ハイパーテキストマークアップランゲージ(「HTML」)、拡張可能マークアップランゲージ(「XML」)、JavaScript(登録商標)、カスケーディングスタイルシート(「CSS」)、または別の適切なクライアントサイド構造化言語の形態で、ウェブサーバによってユーザに供給することができる。クライアントデバイスに転送されるコンテンツは、クライアントデバイスによって処理されてもよく、可聴的に、視覚的に、ならびに/あるいは触覚、味覚、及び/または嗅覚を含むその他の感覚によってユーザに認識できる形態を含むがこれらに限定されない1つまたは複数の形態でコンテンツを提供する。すべてのリクエスト及び応答の処理、ならびにクライアントデバイス3702とアプリケーションサーバ3708との間のコンテンツの配信は、本実施例においては、PHPハイパーテキストプリプロセッサ(「PHP」)、Python(登録商標)、Ruby(登録商標)、Perl(登録商標)、Java(登録商標)、HTML、XML、または別の適切なサーバサイド構造化言語を使用して、ウェブサーバで処理することができる。本明細書の他の場所で論じられるように、本明細書に論じられる構造化されたコードを任意の適切なデバイスまたはホストマシンで実行することができるとき、ウェブ及びアプリケーションサーバは必要ではなく、単に例示的なコンポーネントであることは理解されるべきである。さらに、単一のデバイスで実行されるように本明細書で説明される操作は、文脈から明らかでない限り、複数のデバイスで全体的に実行されてもよく、それは分散された及び/または仮想システムを形成してもよい。
データストア3710は、本開示の特定の態様に関するデータを格納するための、いくつかの別々データテーブル、データベース、データドキュメント、動的データストレージスキーム、及び/またはその他のデータストレージ機構及びメディアを含むことができる。たとえば、示されるデータストアは、生産データ3712及びユーザ情報3716を格納するための機構を含んでもよく、それは生産側のコンテンツを供給するために使用することができる。データストアはまた、ログデータ3714を格納するための機構を含むようにも示され、それは報告、分析、またはその他のそのような目的のために使用することができる。データストアに格納される必要があってもよい、ページ画像情報及びアクセス権情報などの多くのその他の態様があり、それは上記の適切な機構、またはデータストア3710の追加の機構のいずれかに格納することができることは理解されるべきである。データストア3710は、それに関連するロジックによって、アプリケーションサーバ3708からの命令を受信して、それに応答してデータを取得、更新、またはそれ以外では処理するために使用可能である。アプリケーションサーバ3708は、受信した命令に応じて、静的データ、動的データ、または動的及び静的データの組合せを提供してもよい。本明細書に説明されるように、ウェブログ(ブログ)、ショッピングアプリケーション、ニュースサービス、及びその他のそのようなアプリケーションで使用されるデータなどの動的データは、サーバサイド構造化言語によって生成されてもよく、または、アプリケーションサーバで動作するまたはその制御下のコンテンツ管理システム(「CMS」)によって提供されてもよい。1つの実施例において、ユーザは、ユーザによって作動されるデバイスを通して、特定のタイプのアイテムの検索要求を提出することがある。この場合、データストアは、ユーザの識別情報を検証するために、ユーザ情報にアクセスすることがあり、そのタイプのアイテムについての情報を取得するために、カタログ詳細情報にアクセスすることができる。次いで情報は、ユーザがユーザデバイス3702上のブラウザを介して閲覧することができるウェブページに記載される結果などで、ユーザに返すことができる。関心のある特定のアイテムの情報は、ブラウザの専用ページまたはウィンドウで閲覧することができる。しかし、本開示の実施形態は、ウェブページの文脈に必ずしも制限されるわけではなく、リクエストが必ずしもコンテンツの要求ではない場合に、一般的なリクエストの処理により一般に適用可能でもよいことに注意しなければならない。
各サーバは、実行可能プログラム命令をそのサーバの一般的な管理及び操作のために提供するオペレーティングシステムを通常含み、サーバのプロセッサによって実行されるとき、サーバがその意図された機能を実行することを可能にする命令を格納するコンピュータ可読記憶媒体(たとえば、ハードディスク、ランダムアクセスメモリ、読み取り専用メモリなど)を通常含む。オペレーティングシステムの好適な実装及びサーバの一般的な機能は知られている、または市販のものであり、特に本明細書の開示を考慮して、当業者によって確実に実装される。
環境は、1つの実施形態において、1つまたは複数のコンピュータネットワークまたは直接接続を使用する通信リンクを介して相互接続されるいくつかのコンピュータシステム及びコンポーネントを利用する、分散された及び/または仮想コンピューティング環境である。しかし、そのようなシステムは、図37に示されるよりも少ないまたは多いコンポーネントを有するシステムにおいて、同様に正しく機能することは、当業者によって理解されるであろう。それゆえ、図37のシステム3700の描写は、本来は例示的なものと見なすべきであり、本開示の範囲を限定するものではない。
本開示の実施形態は、以下の項を考慮して説明することができる。
1.
コンピューティングリソースサービスプロバイダのマネージドディレクトリサービスの、実行可能命令によって構成される1つまたは複数のコンピュータシステムの制御下で、
前記コンピューティングリソースサービスプロバイダの顧客から、前記顧客のコンピューティング環境でホストされる顧客コンピュータシステムディレクトリをコンピューティングリソースサービスプロバイダのコンピューティング環境へ拡張するリクエストを受信することと、
前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で1組のコンピューティングリソースを使用して、前記コンピューティングリソースサービスプロバイダの前記環境の前記顧客コンピュータシステムディレクトリを再現し、それによって、前記作成かつ拡張された顧客コンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダの前記環境にホストされる顧客コンピュータシステムを結合するように構成される拡張された顧客コンピュータシステムディレクトリを作成することと、
前記顧客に代わって、前記作成かつ拡張された顧客コンピュータシステムディレクトリを、少なくとも一部において管理することと
を含む、
コンピュータ実装化方法。
2.
前記作成かつ拡張された顧客コンピュータシステムディレクトリが、前記顧客コンピュータシステムディレクトリの読み取り専用レプリカを利用する、
1項に記載のコンピュータ実装化方法。
3.
前記作成かつ拡張された顧客コンピュータシステムディレクトリが、リクエストが前記顧客の前記環境で処理される前記レプリカによって受信される前記拡張された顧客コンピュータシステムディレクトリを変更するように構成される、
1〜2項に記載のコンピュータ実装化方法。
4.
前記顧客コンピュータシステムディレクトリへの修正を示す情報を受信することと、
前記修正を示す前記情報に従って、前記再現された顧客コンピュータシステムディレクトリを同期させることと
をさらに含む、
1〜3項のいずれかに記載のコンピュータ実装化方法。
5.
前記再現された顧客コンピュータシステムディレクトリが、ディレクトリ書き込み操作を実行するリクエストを満たし、前記顧客コンピュータシステムディレクトリが前記満たされたリクエストに従って更新されるように構成される、
1〜4項のいずれかに記載のコンピュータ実装化方法。
6.
前記拡張された顧客コンピュータシステムディレクトリが、前記拡張された顧客コンピュータシステムディレクトリの1組の非管理ユーザの各非管理ユーザについて、認証が前記顧客の前記コンピューティング環境または前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で発生するかどうかにかかわらず、前記非管理ユーザが、証明書の単一の組を使用できる前記拡張された顧客コンピュータシステムディレクトリで認証するように構成される、
1〜5項のいずれかに記載のコンピュータ実装化方法。
7.
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるとき、前記コンピューティングリソースサービスプロバイダの顧客から、コンピューティングリソースサービスプロバイダのコンピューティング環境に顧客コンピュータシステムディレクトリを拡張するリクエストを受信し、コンピューティングリソースサービスプロバイダの環境の顧客コンピュータシステムディレクトリの少なくとも一部を再現するため前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で1組のコンピューティングリソースを使用し、それによって、前記作成かつ拡張された顧客コンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダの前記環境にホストされる顧客コンピュータシステムを結合するように構成される拡張された顧客コンピュータシステムディレクトリを作成し、前記顧客に代わって、前記作成かつ拡張された顧客コンピュータシステムディレクトリを少なくとも一部において管理することを少なくともシステムにさせる実行可能命令を含むメモリと
を備える、
システム。
8.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、読み取り専用である、
7項に記載のシステム。
9.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記顧客のコンピューティング環境で実行される
ように構成される、
8項に記載のシステム。
10.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で実行される
ように構成される、
7〜9項のいずれかに記載のシステム。
11.
前記リクエストが、前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で前記コンピューティングリソースサービスプロバイダによって管理される仮想ネットワークを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現の部分が、前記指定された仮想ネットワークの内側に構成される、
7〜10項のいずれかに記載のシステム。
12.
前記1つまたは複数のプロセッサで実行されるとき、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリを管理させる前記命令が、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリ上で、前記顧客コンピュータシステムディレクトリの少なくとも再現された部分を操作するために使用される実行可能コードへの更新を含む管理操作を実行させる、
7〜11項のいずれかに記載のシステム。
13.
前記リクエストが、前記顧客のコンピューティング環境のドメインネームシステムを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、前記顧客コンピュータシステムディレクトリと通信するために前記指定したドメインネームシステムを利用するように構成される、
12項に記載のシステム。
14.
コンピュータシステムの1つまたは複数のプロセッサで実行されるとき、前記コンピュータシステムに少なくとも
前記コンピューティングリソースサービスプロバイダの顧客から、コンピューティングリソースサービスプロバイダのコンピューティング環境に顧客コンピュータシステムディレクトリを拡張するリクエストを受信させて、
コンピューティングリソースサービスプロバイダの環境の顧客コンピュータシステムディレクトリの少なくとも一部を再現するため前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で一連のコンピューティングリソースを使用させて、
それによって、前記作成かつ拡張された顧客コンピュータシステムディレクトリに、前記コンピューティングリソースサービスプロバイダの前記環境にホストされる顧客コンピュータシステムを結合するように構成される拡張された顧客コンピュータシステムディレクトリを作成し、
前記顧客に代わって、前記作成かつ拡張された顧客コンピュータシステムディレクトリを少なくとも一部において管理させる集合的に格納された実行可能命令
を有する、
非一時的コンピュータ可読記憶媒体。
15.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、読み取り専用である、
14項に記載の非一時的コンピュータ可読記憶媒体。
16.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記顧客のコンピューティング環境で実行される
ように構成される、
14〜15項に記載の非一時的コンピュータ可読記憶媒体。
17.
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、
前記拡張されたコンピュータシステムディレクトリを更新するリクエストを受信し、
前記受信したリクエストが前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で実行される
ように構成される、
14〜16項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
18.
前記リクエストが、前記顧客に代わって前記コンピューティングリソースサービスプロバイダの前記コンピューティング環境で前記コンピューティングリソースサービスプロバイダによって管理される仮想ネットワークを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現の部分が、前記指定された仮想ネットワークの内側に構成される、
14〜17項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
19.
前記1つまたは複数のプロセッサで実行されるとき、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリを管理させる前記命令が、前記システムに前記作成かつ拡張されたコンピュータシステムディレクトリ上で、前記顧客コンピュータシステムディレクトリの少なくとも再現された部分を操作するために使用される実行可能コードへの更新を含む管理操作を実行させる、
14〜19項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
20.
前記リクエストが、前記顧客のコンピューティング環境のドメインネームシステムを指定し、
前記顧客コンピュータシステムディレクトリの少なくとも再現された部分が、前記顧客コンピュータシステムディレクトリと通信するために前記指定したドメインネームシステムを利用するように構成される、
14〜19項のいずれかに記載の非一時的コンピュータ可読記憶媒体。
追加の説明
以下の部分の説明は、本明細書に論じられる実施形態の3組のいずれかに適用することができる。
さまざまな実施形態が、場合によっては、複数のアプリケーションのうちのいずれかを操作するために使用できる1つまたは複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる多種多様な動作環境でさらに実装することができる。ユーザデバイスまたはクライアントデバイスは、標準的なオペレーティングシステムを実行するデスクトップ、ラップトップ、またはタブレットコンピュータ、ならびに、モバイルソフトウェアを実行し、複数のネットワークプロトコル及びメッセージングプロトコルをサポートすることが可能な携帯電話装置、無線デバイス、及びハンドヘルドデバイスなどの複数の汎用パーソナルコンピュータのうちのいずれかを含むことができる。そのようなシステムはまた、さまざまな市販の入手可能なオペレーティングシステムのうちのいずれか、及び開発及びデータベース管理などの目的のために、その他の既知のアプリケーションを実行する複数のワークステーションを含むことができる。これらのデバイスはまた、ダミー端子、シンクライアント、ゲームシステム、及びネットワークを介した通信が可能なその他のデバイスなどのその他の電子デバイスを含むことができる。これらのデバイスはまた、仮想マシン、ハイパーバイザ、及びネットワークを介した通信が可能なその他の仮想デバイスなどの仮想デバイスを含むことができる。
本開示のさまざまな実施形態は、伝送制御プロトコル/インターネットプロトコル(「TCP/IP」)、ユーザデータグラムプロトコル(「UDP」)、オープンシステムインターコネクション(「OSI」)モデルのさまざまなレイヤで動作するプロトコル、ファイル転送プロトコル(「FTP」)、ユニバーサルプラグアンドプレイ(「UpnP」)、ネットワークファイルシステム(「NFS」)、共通インターネットファイルシステム(「CIFS」)、及びアップルトークなどのさまざまな市販の入手可能なプロトコルのうちのいずれかを使用する通信をサポートするために、当業者に精通する少なくとも1つのネットワークを利用する。ネットワークは、たとえば、ローカルエリアネットワーク、広域ネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、ワイヤレスネットワーク、衛星ネットワーク、及びそれらの任意の組合せとすることができる。
ウェブサーバを利用する実施形態において、ウェブサーバは、ハイパーテキストトランスファプロトコル(「HTTP」)サーバ、FTPサーバ、共通ゲートウェイインタフェース(「CGI」)サーバ、データサーバ、Javaサーバ(登録商標)、Apacheサーバ(登録商標)、及びビジネスアプリケーションサーバを含む、任意のさまざまなサーバまたは中間層アプリケーションを実行することができる。サーバはまた、たとえば、Java(登録商標)、C、C#、またはC++などの任意のプログラミング言語、あるいは、Ruby(登録商標)、PHP、Perl(登録商標)、Python(登録商標)、またはTCLなどの任意のスクリプト言語、ならびに、これらの組合せで記述された1つまたは複数のスクリプトまたはプログラムとして実装されてもよい1つまたは複数のウェブアプリケーションを実行することによるなど、ユーザデバイスからのリクエストに応答してプログラムまたはスクリプトを実行することが可能でもよい。サーバ(単数または複数)は、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、及びIBM(登録商標)製の市販品、ならびに、MySQL(登録商標)、Postgres(登録商標)、SQLite、MongoDBなどのオープンソースサーバ、ならびに、構造化または非構造化データの格納、検索、アクセスが可能な任意のその他のサーバを含むがこれらに限定されないデータベースサーバも含んでもよい。データベースサーバは、テーブルベースサーバ、ドキュメントベースサーバ、非構造化サーバ、リレーショナルサーバ、非リレーショナルサーバ、あるいはこれら及び/またはその他のデータベースサーバの組合せを含んでもよい。
環境は、上記のように、さまざまなデータストア、ならびにその他のメモリ及び記憶媒体を含むことができる。これらは、1つまたは複数のコンピュータに近い(及び/またはその中に常駐の)記憶媒体上、または、ネットワーク経由でいずれかまたはすべてのコンピュータから離れた記憶媒体上などの、さまざまな位置に存在することができる。実施形態の特定のグループでは、情報は、当業者に精通したストレージエリアネットワーク(「SAN」)に存在してもよい。同様に、コンピュータ、サーバ、またはその他のネットワークデバイスに起因する機能を実行するための任意の必要なファイルは、適宜、ローカル及び/またはリモートに格納されてもよい。システムがコンピュータ化されたデバイスを含む場合、そのような各デバイスは、バスを介して電気的に結合されてもよいハードウェアエレメントを含むことができ、そのエレメントは、たとえば、少なくとも1つの中央処理装置(「CPU」または「プロセッサ」)、少なくとも1つの入力デバイス(たとえば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド)、及び少なくとも1つの出力デバイス(たとえば、ディスプレイデバイス、プリンタ、またはスピーカ)を含む。そのようなシステムはまた、ディスクドライブ、光学ストレージデバイス、及びランダムアクセスメモリ(「RAM」)またはリードオンリーメモリ(「ROM」))、ならびに、リムーバブルメディアデバイス、メモリーカード、フラッシュカードなどのソリッドステートストレージデバイス1つまたは複数のストレージデバイスを含んでもよい。
そのようなデバイスはまた、コンピュータ可読記憶媒体リーダ、通信デバイス(たとえば、モデム、ネットワークカード(無線または有線)、赤外線通信デバイスなど)、及び、上記のようなワーキングメモリを含むことができる。コンピュータ可読記憶媒体リーダは、リモート、ローカル、固定、及び/または、リムーバブルストレージデバイスを示すコンピュータ可読記憶媒体、ならびに、コンピュータ可読情報を一時的及び/またはより恒久的に含む、格納する、伝送する、及び検索するための記憶媒体と接続し、またはそれらを収容するように構成できる。システム及びさまざまなデバイスはまた、複数のソフトウェアアプリケーション、モジュール、サービス、または少なくとも1つのワーキングメモリデバイス内に位置するその他のエレメントを通常は含み、オペレーティングシステム、及びクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムを含む。代替の実施形態が上記のものから多数の変化を有してもよいことが理解されるべきである。たとえば、カスタマイズされたハードウェアが使用されてもよく、及び/あるいは、特定のエレメントが、ハードウェア、ソフトウェア(アプレットなどの携帯型ソフトウェアを含む)、またはその両方に実装されてもよい。さらに、ネットワーク入出力デバイスなどのその他のコンピューティングデバイスへの接続が、採用されてもよい。
コードまたはコードの部分を含む記憶媒体及びコンピュータ可読メディアは、RAM、ROM、電気的消去可能PROM(「EEPROM」)、フラッシュメモリまたは他メモリ技術、コンパクトディスクリードオンリーメモリ(「CD−ROM」)、デジタル多用途ディスク(DVD)またはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、あるいは所望の情報の格納に使用でき、システムデバイスでアクセスできる任意のその他のメディアを含む、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータなどの情報の記憶及び/または伝送のための任意の方法または技術で実装される、揮発性及び不揮発性のリムーバブル及び非リムーバブルメディアなどのしかしこれらに限定されない記憶媒体及び通信メディアを含む、既知のまたは当該技術分野において使用される任意の適切なメディアを含むことができる。本明細書に提示される開示及び教示に基づき、当業者はさまざまな実施形態を実装するその他の方法及び/または手段を理解する。
したがって、明細書及び図面は、制限的な意味よりむしろ例示的なものと見なされる。しかし、さまざまな変更形態及び変化形態が、特許請求の範囲に記載した本発明のより広い精神及び範囲から逸脱しない範囲で、それに対して行われてもよいことは明らかである。
その他の変化は、本開示の精神の範囲内である。それゆえ、開示された技術は、さまざまな変更形態及び代替の構造に影響されやすいが、それらの特定の例示される実施形態は、図面に示されて、上記で詳細に説明された。しかし、開示される特定の形態に本発明を制限する意図はなく、逆に、添付の特許請求の範囲に規定されるように、本発明の精神及び範囲内にあるすべての変更形態、代替の構造、及び等価物を含包することが意図されることは理解されるべきである。
開示される実施形態を説明する文脈における(特に以下の特許請求の範囲の文脈において)用語「1つの(a)」及び「1つの(an)」及び「その(the)」及び類似の指示物の使用は、本明細書に特に明記しないまたは文脈で明確に否定されない限り、単数及び複数を含むものと解釈される。用語「備える(Comprising)」、「有する(having)」、「含む(including)」、及び「含む(containing)」は、特に断りのない限り、制約のない(open−ended)用語と解釈される(すなわち、「含むが、これに限定されない」ことを意味する)。無修飾で、物理的接続に言及するとき、用語「接続された」は、たとえ介在するものがあるとしても、部分的または完全に中で含まれる、取り付けられる、または結合されるものと解釈される。本明細書における値の範囲の列挙は、本明細書に示されない限り、その範囲に含まれるそれぞれの別々の値に個々に言及することを省略する方法の役割を果たすことを単に意図しており、それぞれの別々の値は、それが本明細書に個々に列挙されているように、本明細書に組み込まれる。用語「組(set)」(たとえば「一組のアイテム(a set of items)」)または「サブセット(subset)」の使用は、文脈で示されないまたは否定されない限り、1つまたは複数のメンバーを備える空でない集合と解釈される。さらに、文脈で示されないまたは否定されない限り、対応する組の用語「サブセット」は必ずしも、対応する組の適切なサブセットを示すというわけではないが、サブセット及び対応する組が等しくてもよい。
「A、B、及びCのうちの少なくとも1つ」または「A、B及びCのうちの少なくとも1つ)」のフレーズの形などの接続語は、特に明記しない限り、または文脈で明確に否定されない限り、アイテム、用語などが、AまたはBまたはC、あるいはA及びB及びCのセットの任意の空でないサブセットでもよいことを示すために一般的に使用されると文脈で理解される。たとえば、3つのメンバーを有する1組の例示的な実施例において、接続句「A、B、及びCのうちの少なくとも1つ」及び「A、B及びCのうちの少なくとも1つ」は、以下のいずれかのセット{A}、{B}、{C}、{A、B}、{A、C}、{B、C}、{A、B、C}についても言う。したがって、そのような接続語は一般に、特定の実施形態が、Aのうちの少なくとも1つ、Bのうちの少なくとも1つ、及びCのうちの少なくとも1つがそれぞれ存在することを必要とすることを意味するとは意図されない。
本明細書に説明されるプロセスの操作は、本明細書に示されないまたは文脈で明確に否定されない限り、任意の好適な順序で実行することができる。本明細書に説明されるプロセス(またはそれらの変化及び/または組合せ)は、実行可能命令で構成される1つまたは複数のコンピュータシステムの制御下で実行されてもよく、ハードウェアまたはそれらの組合せによって、1つまたは複数のプロセッサで全体的に実行されるコード(たとえば、実行可能命令、1つまたは複数のコンピュータプログラム、あるいは1つまたは複数のアプリケーション)として実装されてもよい。コードは、たとえば、1つまたは複数のプロセッサで実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体に格納されてもよい。コンピュータ可読記憶媒体は非一時的なものでもよい。
任意及びすべての実施例、または本明細書で提供される例示的な言語(たとえば「など」)を使用することは、単に本発明をより明らかにする実施形態とすることが意図され、請求されない限り、本発明の範囲に制限をもたらさない。本明細書中の言語は、本発明の実践に必須の任意の非請求の要素を示すと解釈すべきではない。
本発明を実施するのに最良と発明者に知られている形態(モード)を含む本開示の好ましい実施形態が、本明細書で説明される。それらの好ましい実施形態の変化は、上記説明を読むことで、当業者に明らかになってもよい。発明者は、熟練した職人が適宜そのような変化を使用することを期待し、発明者は本開示の実施形態が、本明細書で特に説明される以外に実施されることを意図する。したがって、本開示の範囲は、適用法によって容認されるように、本文書に添付される特許請求の範囲に列挙される主題の変更形態及び等価物をすべて含む。さらに、それらのすべての可能な変化における上記の要素の任意の組合せは、本明細書に示されないまたは文脈で明確に否定されない限り、本開示の範囲に含まれる。