(57)【特許請求の範囲】
【請求項１】
計算環境において、ソース・サービスとターゲット・サービスとの間で１組のパスワード資格証明を同期させる方法であって、前記１組のパスワード資格証明が、前記ソース・サービスおよび前記ターゲット・サービスの各々へのアクセスを可能にし、前記方法が、
プロセッサーにより、同期タイムスタンプを提供するステップであって、前記同期タイムスタンプが、前記ソース・デバイスおよび前記ターゲット・サービス間の最後のパスワード資格証明同期に対応する、ステップと、
ハッシュされた１組の変更されたパスワード資格証明を受けるステップであって、前記ハッシュされた１組の変更されたパスワード資格証明が、前記最後のパスワード資格証明同期から前記１組のパスワード資格証明に対し行われた変更のみを含む、ステップと、
前記ハッシュされた１組の変更されたパスワード資格証明を、アイデンティティ認証における使用のために、前記ターゲット・サービスにエクスポートするステップと、
を含み、
前記ハッシュされた１組の変更されたパスワード資格証明が、一次ハッシング・アルゴリズムによって計算され、前記方法が更に、前記ターゲット・サービスにエクスポートするために、前記ハッシュされた１組の変更されたパスワード資格証明に対応する二次ハッシュ・アルゴリズムを使用して、前記ハッシュされた１組の変更されたパスワード資格証明を秘密保護データーに二次的にハッシングするステップを含む、方法。
【請求項２】
請求項１記載の方法において、前記ハッシュされた１組の変更されたパスワード資格証明を前記秘密保護データーに二次的にハッシュするステップが、ランダム・ソルトおよび複数の繰り返しを使用するステップを含む、方法。
【請求項３】
システムであって、
ターゲット・ディレクトリー・サービスと、
複数のドメインを含むドメイン・メッシュと、
前記ドメイン・メッシュに結合された同期ホストと、
を含み、
前記同期ホストが、前記ドメイン・メッシュにおいて受けたパスワード変更を、前記メッシュの外部にある前記ターゲット・ディレクトリー・サービスと同期させるように構成され、前記パスワード変更を同期させることが、
前記ドメイン・メッシュからの平文パスワードを表すハッシュ値を受け、
二次ハッシュ・アルゴリズムを使用して前記ハッシュ値に対し追加のハッシュを実行して保護パスワード・データーを生成し、
前記保護パスワード・データーを前記ターゲット・ディレクトリー・サービスにエクスポートする、
ことを含む、システム。
【請求項４】
請求項３記載のシステムにおいて、前記同期ホストが、前記二次ハッシュ・アルゴリズムおよびランダム・ソルトを使用して、前記ハッシュ値を処理して前記保護パスワード・データーにする、システム。
【請求項５】
請求項３記載のシステムにおいて、更に、パスワード変更データーのために、前記複数のドメインのうちの１つにおけるどのドメイン・コントローラーに連絡するか決定するために構成されたメッシュ・サービスを含む、システム。
【請求項６】
請求項３記載のシステムにおいて、
前記複数のドメインに対する各ドメイン・コントローラー、
オンプレミス・サーバー・ドメイン・メッシュに結合された別のマシン、あるいは
前記ドメイン・メッシュから地理的に離れたクラウド・マシンまたは他のマシン、
の内の１つにおいて実行する前記同期ホストの少なくとも一部によって、前記二次ハッシュ・アルゴリズムを使用して前記ハッシュ値を処理して前記保護パスワード・データーにする、システム。
【請求項７】
請求項３記載のシステムにおいて、前記ターゲット・ディレクトリー・サービスには、複数のハッシング・アルゴリズムまたはアイデンティティに関連するハッシング・アルゴリズムの組み合わせの内任意のものを前記アイデンティティの認証の間に使用するために、暗号化方式の指定が構成される、システム。
【請求項８】
コンピューター実行可能命令を有する１つ以上のコンピューター読み取り可能記憶媒体であって、前記コンピューター実行可能命令が１つ以上のプロセッサーによって実行されると、前記１つ以上のプロセッサーに動作を実行させ、前記動作が、
ターゲット・サービスにおいて、平文パスワードに対応する保護パスワード・データーを含む複数組のデーターを維持する動作であって、保護パスワード・データーがそれぞれのアイデンティティと関連し、前記保護パスワード・データーが、少なくとも２つのハッシング・アルゴリズムの組み合わせによって平文パスワードから計算され、前記ターゲット・サービスに同期される、動作と、
前記ターゲット・サービスにおいて、アイデンティティおよびパスワードに対応する資格証明を含むログイン試行を受ける動作と、
前記パスワードに対して少なくとも１つのハッシング・アルゴリズムを実行することに基づいて第１の値を計算する動作と、
前記アイデンティティを認証するために、前記第１の値を、前記アイデンティティに関連する保護パスワード・データーと比較する動作と、
を含む、１つ以上のコンピューター読み取り可能記憶媒体。
【請求項９】
請求項８記載の１つ以上のコンピューター読み取り可能記憶媒体において、更にコンピューター実行可能命令を有し、該コンピューター実行可能命令が前記１つ以上のプロセッサーによって実行されると、前記１つ以上のプロセッサーに、アイデンティティに関連するデーターを、少なくとも１つの異なるハッシング・アルゴリズムから計算されたデーターと交換することを含む動作を実行させる、１つ以上のコンピューター読み取り可能記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  増々多くの組織が、単にオンプレミス・アプリケーションやリソースを使用するだけでなく、クラウド・サービス・アプリケーションおよびリソースを使用しつつある（ここで、「オンプレミス」とは、クラウドとは対照的に、いずれの物理的位置にも関係なく、組織の制御下にあることを指す）。オンプレミス・アプリケーションおよびリソースと同様に、既存のクラウド・サービスにアクセスするには、ユーザーは資格証明(credential)を必要とする。尚、組織の中には（通例非常に小さな組織）、それらの資格証明に基づくアイデンティティ・インフラストラクチャーおよびアプリケーションのためにのみクラウドを使用するものもある、つまり、資格証明に基づく認証を扱うためにクラウドを使用するものもあることを注記しておく。
【０００２】
[0002]  非常に大きな組織は、ユーザーを認証するために、そしてアプリケーションがユーザー・アカウントおよびアカウント間の関係を発見するために、ディレクトリー・サービスをオンプレミスで実行する（一例に、そのドメイン・コントローラー・サーバーを含むMicrosoft CorporationのActive Directory（登録商標）がある）。とりわけ、これは、このような組織が、データーをクラウドに提供するよりはむしろセキュリティの目的のために、それらの資格証明に関係するデーターの完全な制御を保持することを可能にする。大きな組織は、連携／連携サービス(federation/federation service)と呼ばれるとよいもの（例えば、Active  Directory（登録商標）のシナリオにおいて）を使用する。これは、個々のユーザーがクラウドにおけるリソースにアクセスするためにそれらのオンプレミス資格証明を利用するメカニズムを含む。資格証明は、同期されず、代わりに、クラウドがログイン要求等を、認証のためにオンプレミス・アイデンティティ・インフラストラクチャーに送り、ユーザーが１回だけサインインすることで済ませることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
[0003]  しかしながら、連携は、設置および維持するのに比較的多大な費用がかかり、したがって大きな組織だけが連携を使用する傾向がある。多くのもっと小さな組織は、同じユーザー名およびパスワードを使用して、クラウド・リソースおよびアプリケーションだけでなく、オンプレミス・リソースおよびアプリケーションにもアクセスすることを望む。しかしながら、連携がないと、オンプレミス資格証明およびクラウド資格証明を扱うための何らかの方法が必要となる。
【０００４】
[0004]  １つの解決手段は、ターゲット・ディレクトリー・サービスへのトランスポートのために平文ユーザー・パスワードを傍受することである。平文ユーザー・パスワードは、アイデンティティ・インフラストラクチャーにおいて全てのサーバー／データーベースに複製することができる。しかしながら、これは、特にクラウド発見サービスがターゲットであるときに、危険である可能性がある。更に、全てのユーザー・パスワード変更イベントを取り込むためには、ターゲット・ディレクトリー・サービスにおける各サーバーにおいて、ソフトウェアを構成する必要がある。欠点の中でもとりわけ、これは維持するのが非効率的で不便である。
【０００５】
[0005]  多くの会社は、セキュリティの理由のために、オンプレミス資格証明データーをクラウドに放出することを望まず、これが認証の問題を引き起こす。１つの解決手段は、ユーザーがクラウド・アプリケーションにアクセスするために１組の資格証明を発行し、更にユーザーがオンプレミス・アプリケーションにアクセスするために他の１組の資格証明を発行することである。これも、維持するのが非効率で不便である。
【課題を解決するための手段】
【０００６】
[0006]  この摘要は、詳細な説明において以下で更に説明する代表的な概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するように使用されることは全く意図していない。
【０００７】
[0007]  端的に言うと、本明細書において説明する主題の種々の形態は、同じ資格証明がソース位置およびターゲット位置において使用できるように、ソース位置からターゲット位置に変更されるパスワードを安全に同期させることを対象とする。１つの形態では、平文パスワードに基づいて計算されるハッシュ値を受ける。このハッシュ値は、ソース・サービスにおけるパスワード変更イベントに応答して計算されたものである。ハッシュ値に対応するデーターは、ターゲット・サービスにエクスポートされ、アイデンティティ認証における使用のために、新たなパスワードをターゲット・サービスに同期させる。ハッシュ値に対応するデーターは、二次的に、二次ハッシュ・アルゴリズムを使用して、パスワード保護ブロブにハッシュされてもよい。
【０００８】
[0008]  １つの形態では、同期ホスト・プロセスがドメイン・メッシュに結合される。同期ホスト・プロセスは、ドメイン・メッシュにおいて受けたパスワード変更を、メッシュ外部のターゲット・ディレクトリー・サービス（例えば、クラウド・ディレクトリー・サービス）と同期させるように構成される。同期ホスト・プロセスは、平文パスワードを表すハッシュ値をドメイン・メッシュから得て、少なくとも１つの二次ハッシュ・アルゴリズムによってこのハッシュ値を処理して秘密保護ブロブ(secret- protected blob)を求め、この秘密保護ブロブをターゲット・ディレクトリー・サービスにエクスポートする。同期ホスト・プロセスは、メッシュのコンポーネントに結合されここからハッシュ値を得るか、またはメッシュに結合されてもよく、このコンポーネントは、メッシュの任意のドメイン・コントローラーにおいて行われたパスワード変更に対応する複製パスワード変更データーを受けるように構成される。
【０００９】
[0009]  １つの態様では、平文パスワードに対応する被保護ブロブを含む複数組のデーターが維持される。各ブロブは、アイデンティティと関連付けられ、ブロブは、少なくとも２つのハッシング・アルゴリズムによって平文パスワードから計算される。他のハッシング・アルゴリズムによって計算された他のブロブがアイデンティティと関連付けられ、前述のブロブをこの他のブロブと交換することによって関連付けることを含む。これは、アイデンティティ毎にブロブを他のハッシング・アルゴリズムによって計算し、アイデンティティ毎に含ませ、そのアイデンティティに関連するブロブをハッシュして、そのアイデンティティに対する他のブロブを求めることによって遂行することができる。また、これは、オンプレミス・ディレクトリー・サービス・コンポーネントから他のブロブを受け、他のハッシング・アルゴリズムに対応する情報を識別する情報を受けることによって遂行することもできる。
【００１０】
[0010]  他の利点も、以下の詳細な説明を図面と関連付けて検討することにより、明白となるであろう。
【図面の簡単な説明】
【００１１】
[0011]  添付図面において、一例としてそして限定ではなく、本発明を図示する。図面においては、同様の参照番号は同様のエレメントを示すこととする。
【図１】図１は、一実現例にしたがって、オンプレミス・ディレクトリー・サービスにおいてクラウド・ディレクトリー・サービスに対して行われたパスワード変更を同期させるように構成されたコンポーネント例を表すブロック図である。
【図２】図２は、一実現例にしたがって、ソース・ディレクトリー・サービスにおけるパスワード変更をターゲット・ディレクトリー・サービスに安全に同期させるために実行することができるステップ例を表す流れ図である。
【図３】図３は、一実現例にしたがって、任意のドメイン・コントローラーにおいて行われたオンプレミス・ディレクトリー・サービス・パスワード変更を、１つのコンポーネントによって、クラウド・ディレクトリー・サービスに同期させるように構成されたコンポーネント例を表すブロック図である。
【図４】図４は、一実現例にしたがって、安全なパスワード同期動作全体において実行することができるステップ例を表す流れ図である。
【図５】図５は、一実現例にしたがって、安全に同期されたパスワード関係データーを使用するログオン試行の間にユーザーを認証するために実行することができるステップ例を表す流れ図である。
【図６】図６は、一実現例にしたがって、二次ハッシング・アルゴリズムおよび１組のユーザーのために維持されたパスワード関係データーを変更するために実行することができるステップ例を表す流れ図である。
【図７】図７は、本明細書において説明する種々の実施形態を実現することができる、非限定的なネットワーク接続環境例を表すブロック図である。
【図８】図８は、本明細書において説明する種々の実施形態の１つ以上の形態を実現することができる、非限定的な計算システムまたは動作環境例を表すブロック図である。
【発明を実施するための形態】
【００１２】
[0020]  本明細書において説明する技術の種々の形態は、全体的に、オンプレミス・リソース・アクセスおよびクラウド・リソース・アクセスの双方に、１組の資格証明が使用されることを可能にするパスワード同期技術を対象とする。理解されるであろうが、この技術は、比較的単純にオンプレミスを設置および維持しつつ、同時に安全である解決手段を提供する。
【００１３】
[0021]  １つの形態では、同期エージェントが、オンプレミス・ディレクトリー・サービスからのクラウド・ディレクトリー・サービスとの同期動作を実行する。一実現例では、ドメイン・メッシュ内の各ドメイン・コントローラーにおいて実行するのではなく、この同期エージェントをドメイン・コントローラー・メッシュに１つのコンポーネントとして追加することができる（例えば、ドメインに結合された１つのマシンにおいて実行する）。
【００１４】
[0022]  １つの形態では、最初に１つ以上のハッシュ・アルゴリズムを使用してパスワードをハッシュすることによって、オンプレミス・ディレクトリー・サービスにおいて維持される資格証明が、クラウド・ディレクトリー・サービスと同期される。一次ハッシュが使用され、少なくとも１つの二次ハッシュと組み合わせて使用されてもよい。平文パスワードは決してクラウドに送られない。
【００１５】
[0023]  １つの形態では、本技術は、ユーザーが彼らの既存のパスワードを変更する必要なく、またそうでなければユーザーの平文パスワードを再度取り込む必要なく、オンプレミス・システムに、新たな一次ハッシュ・アルゴリズムに切り替えさせることをサポートする。更に、二次ハッシュ・アルゴリズムが劣化した場合、または更に安全な二次ハッシュ・アルゴリズムを使用することが望ましくなった場合、ユーザーが彼らの既存のパスワードを変更する必要なく、またそうでなければユーザーの平文パスワードを再度取り込む必要なく、二次ハッシュ・アルゴリズムを変更することができる。
【００１６】
[0024]  尚、本明細書における例はいずれも非限定的であることは理解されてしかるべきである。例えば、本明細書における例の多くは、一般に、Active Directory（登録商標）のような、ディレクトリー・サービス環境において説明される。しかしながら、同様のアイデンティティ・インフラストラクチャー／環境はいずれも、本明細書において説明する技術から利益を得ることができる。更に、これらの例は安全な資格証明同期を対象とするが、安全に同期される必要がある他のタイプのデーターも、本明細書において説明する技術から利益を得ることができる。したがって、本発明は、本明細書において説明する特定の実施形態、形態、概念、構造、機能、そして例のいずれにも限定されない。逆に、本明細書において説明する実施形態、形態、概念、構造、機能、および例はいずれも非限定的であり、本発明は、データー同期、データー・セキュリティ、および／またはクラウド・サービス一般において利益および利点を提供する種々の方法で使用することができる。
【００１７】
[0025]  図１は、オンプレミス・コンポーネントからクラウド・ディレクトリー・サービス１０２への資格証明データーを含むデーターを安全に同期させるために使用することができるコンポーネント例を示すブロック図である。オンプレミス・コンポーネント１０４は、パスワード同期エージェント１０８を含む同期ホスト・プロセス１０６（例えば、アイデンティティ管理同期エンジン）を含む。一般に、同期ホスト・プロセス１０６は、ソース・ディレクトリー・サービス１１０からの資格証明の引き出しおよびエクスポートを能動的に駆動するプロセスを含む。
【００１８】
[0026]  一実現例では、同期はパスワード同期エージェント１０８によって遂行される。パスワード同期エージェント１０８は、該当するインターフェース１１２を介してオンプレミス（ローカル）ディレクトリー・サービス１０８（ソース・ディレクトリー）にコールして、以下で説明するように、ハッシュされたパスワードを含む資格証明関係データーを得る。ハッシュされたパスワードの内最後の同期時以降に変更されたもの（デルタ）のみを得るように、コールは同期タイムスタンプを与えることができる。例えば、Active Directory（登録商標）は公に文書化されたＡＰＩ（IDL DRSGetNCChanges）を有し、これがコールされると、与えられたタイムスタンプ以降の変更のリストを引き出して戻す。与えられたタイムスタンプは、パスワード同期エージェント１０８によって与えられた最後の同期時刻である。変更データーがパスワード関係データーよりも多くを含むシナリオでは、同期エージェント１０８は、戻されたデーターを解析／フィルタリングして、最後の同期時刻以降に更新された１組の資格証明を判定する。
【００１９】
[0027]  １組の変更された資格証明は、１組のハッシュされた資格証明として、パスワード同期エージェント１０８に戻される。一実現例では、これらのハッシュは、同期ホスト・プロセス１０６によっても、パスワード同期エージェント１０８によっても保存されず、資格証明ハッシュをターゲット・ディレクトリー・サービス、例えば、図１におけるクラウド・ディレクトリー・サービス１０２に同期させる試行において一時的に使用されるだけである。一実現例では、オンプレミス・パスワード・ハッシュは、ターゲット（クラウド）ディレクトリー・サービス１０２に送られる前に、ランダム生成（ソルト）値を使用して、複数回繰り返して二次的にハッシュされる。
【００２０】
[0028]  一実現例では、パスワード同期エージェント１０８は、範囲内アイデンティティ(in-scope identities)（範囲は、アイデンティティ・インフラストラクチャーにおいて周知の概念である）の資格証明のみをターゲット・ディレクトリー・サービス１０２に同期させようとする。範囲外アイデンティティに属する資格証明は、ターゲット・ディレクトリー・サービス１０２に同期されない。更に、ターゲット・ディレクトリー・サービス１０２にプロビジョニングされていないアイデンティティに属する資格証明も同期されず、代わりに、そのアイデンティティがターゲット・ディレクトリー・サービス１０２において首尾良くプロビジョニングされたときに、後の時点においてこれらを同期させることができる。
【００２１】
[0029]  図１において、クラウド管理エージェント１１４として表されるターゲット・ディレクトリー・コネクター・コンポーネントは、ハッシュされた資格証明のクラウド１１６へのエクスポートを扱うことを責務とする。このために、クラウド・フロント・エンド・コンポーネント１１８（例えば、ディレクトリー・サービス同期フロント・エンド・サーバー）は、資格証明を更新する要求を受け、次いで、（例えば、プライベート）プログラム・インターフェース(programmatic interface)１２２を介して、ハッシュされた資格証明をターゲット・ディレクトリー・サービス記憶システム１２０に保存しようとする。資格証明キャッシュがターゲット・ディレクトリー・サービスに首尾良く保存された場合、成功ステータスがフロント・エンド・コンポーネント１１８に戻され、フロント・エンド・コンポーネント１１８は成功ステータスを同期ホスト・プロセス１０６に戻す。「成功」応答を受けた時に、同期ホスト・プロセス１０６は、資格証明がターゲット・ディレクトリー・サービス１０２に首尾良く同期されたと見なす。失敗応答が発見された場合、後の時点における再試行のために、エクスポートを待ち行列に入れることもできる。
【００２２】
[0030]  図２は、以上の動作を１組のステップ例として示す。これらのステップの一部は、１つの資格証明について示されるが、容易に認めることができるように、資格証明同期は、一括処理することもでき、および／またはこれらのステップの一部または全部が並列に実行されてもよい。
【００２３】
[0031]  ステップ２０２において、パスワード同期エージェント１０８（図１）は変更を要求し、ソース・ディレクトリー・サービス１１０から（所与のタイムスタンプ以来の）変更を受ける。要求は、同期時点において行われ、周期的でもそれ以外でもよい。前述のように、パスワードは一次ハッシュ関数でハッシュされ、例えば、ＭＤ４（パスワード）というような、Ｈａ（パスワード）となる。
【００２４】
[0032]  ステップ２０４によって表されるように、変更を受けると、パスワード同期エージェント１０８はこれらの変更を解析して、どれを同期させるべきか、例えば、どれが範囲内でプロビジョニングされたアイデンティティのパスワード変更か判定する。前述のように、この時点では１つの資格証明だけが扱われていると考える。
【００２５】
[0033]  ステップ２０６は、ハッシュされたパスワード、例えば、ＳＨＡ２５６（ＭＤ４（パスワード））のような、Ｈ１（Ｈａ（パスワード））を二次的にハッシュすることを表す。二次的ハッシングについては、以下で更に説明する。
【００２６】
[0034]  ステップ２０８では、ハッシュされた資格証明をターゲット・ディレクトリー・サービス１０２にエクスポートし、ターゲット・ディレクトリー・サービス１０２はこれを保存しようとする。ステップ２１０では、エクスポート要求の結果を、戻されたステータスとして受け、ステップ２１２において評価されるように、成功が受け入れられた場合、資格証明はターゲット・ディレクトリー・サービスに首尾良く同期されたことになり（ステップ２１４）、本プロセスは終了する。ステップ２１２によって失敗が検出された場合、ステップ２１６によって表されるように、エクスポートは、後の時点における再試行のために、待ち行列に入れられる。
【００２７】
[0035]  図３において全体的に表されるように、オンプレミス・ドメイン・メッシュ３３０は、ドメイン１（ドメイン１コントローラー１〜ドメイン１コントローラーｊを有する）からドメインｎ（ドメインｎコントローラー１〜ドメインｎコントローラーｋを有する）までを含む。１つの形態では、このメッシュは、ディレクトリー・サービス・ドメイン・コントローラー・ロケーター・サービス３３２として実行する、マシン等において実行するコンポーネントを追加することもできる（例えば、加入されるまたそうでなければ結合されるのでもよい）。周知のように、パスワード変更は、１つのドメイン・コントローラーにおいて行われ（例えば、ユーザーから最も近いところであるが、他の方式も実現可能である）、そのドメインの他のドメイン・コントローラーに複製される。本明細書において説明するように、複製されるのは、一次ハッシュによってハッシュされた変更パスワードであって、平文パスワードではない。
【００２８】
[0036]  同期ホスト・プロセス１０６は、ディレクトリー・サービス・ドメイン・コントローラー・ロケーター・サービス３３２と連絡を取り、資格証明変更データーを引き出すドメイン・コントローラー・インスタンスを判定する。例えば、同期ホスト・プロセス１０６に変更を提供するために各ドメインにおいて識別される１つのドメイン・コントローラーがある場合がある。このように、メッシュの既存の複製方式を利用して、クラウド・サービスとのパスワード変更同期を実行することも可能である（尚、これは、全ての資格証明変更が取り込まれターゲット・ディレクトリーに同期されることを確保するためには、ソース・ディレクトリー／メッシュに関連する全てのマシンにコンポーネント／コード拡張ＤＬＬを登録しなければならない既存のシステムとは対照的であることを注記しておく）。
【００２９】
[0037]  図４は、図３の実現例およびドメイン・コントローラーの動作一般に関するステップ例を要約したものである。ステップ４０２は、平文のパスワード変更を受けることを表し、これは、通例、ユーザーに最も近いドメイン・コントローラーにおいて行われる（しかし、負荷均衡に基づくというような、他の方式も実現可能である）。ステップ４０４は、そのドメイン・コントローラーにおいて、パスワードが一次ハッシュ、例えば、Ｈａ（パスワード）によってハッシュされることを表す。ステップ４０６は、ハッシュされたパスワードを他のドメイン・コントローラーに複製することを表す。
【００３０】
[0038]  ステップ４０８は、同期ホスト・プロセス１０６がディレクトリー・サービス・ドメイン・コントローラー・ロケーター・サービス３３２と通信して、変更データーのためにどのドメイン・コントローラー（１つまたは複数）に連絡を取るか決定することを表す。一般に、各ドメインから１つのドメイン・コントローラーが、ドメイン・コントローラー・ロケーター・サービス３３２によって、同期ホスト・プロセス１０６に識別される。
【００３１】
[0039]  ステップ４１０は、パスワード同期エージェントが変更パスワード・ハッシュをディレクトリー・サービス・ドメイン・コントローラーから引き出すことを表す。尚、代案として、要求に応じた同期のため、または何らかの他のスケジュールによって、変更をパスワード同期エージェントにプッシュしてもよいことを注記しておく。同期ホスト・プロセスが、ディレクトリー・サービス・ドメイン・コントローラー・ロケーター・サービス３３２と同じマシンにおいて実行することは実現可能であるが、先に説明したように、同期ホスト・プロセスは、ターゲット・サービスとの同期を実行するために必要な以外は、ハッシュされたパスワードを保存しない。
【００３２】
[0040]  ターゲットをハッシュされたパスワードと同期させ、ハッシュされたパスワードを格納することは実現可能であるが、二次ハッシングを有することによって、本明細書において説明するように、多数の利益が得られる。ステップ４１２は、二次ハッシング、例えば、Ｈ１（Ｈａ（パスワード）を表す。１つの形態では、二次ハッシングは、被保護パスワード・ブロブを生成し、これは、ハッシング・アルゴリズムの名称およびバージョン、ならびにランダム・ソルト、繰り返し回数、およびダイジェストを含む。この二次ハッシングの結果は、ターゲット・ディレクトリー・サービスと同期され（ステップ４１４）、格納される（４１６）。尚、クラウドが、格納の前に再度ハッシュするためというように、このような二次ハッシングを実行してもよいことを注記しておく。
【００３３】
[0041]  ログインの形態に移り、例えば、ＡｕｔｈＮフロント・エンド・サーバー１２４（図１）を介して、アイデンティティ(identity)が、ターゲット・ディレクトリー・サービスに関連するサービスまたはソフトウェアにアクセスしようとするとき、資格証明に、ターゲット・ディレクトリー・サービスの認証プラットフォームにおいて「ソース・ディレクトリーから同期された」という印がある場合、認証プラットフォームは、しかるべきログイン検証手順を実行し、このアイデンティティによって提示された資格証明を、ソース・ディレクトリーから同期された資格証明ハッシュと比較することを理解する。
【００３４】
[0042]  ターゲット認証プラットフォームは、オンプレミス・ハッシング・アルゴリズムと調和する(match)アルゴリズムを使用するように命令されるが、これは任意の１つのアルゴリズムまたは１組のアルゴリズムでもよい。これは、暗号化方式の指定を含む複数のシナリオに役に立つ。一般に、暗号化方式の指定は、複数のハッシング・アルゴリズムを使用すること、および／またはハッシング・アルゴリズムの組み合わせを可能にする。その結果、一次ハッシング・アルゴリズムはときの経過と共に変わることができ、二次ハッシング・アルゴリズムはときの経過と共に変わることができ、異なる（例えば、第三者）サービスのアルゴリズムを使用してもよい等となる。
【００３５】
[0043]  図５は、クラウド・サービスにおけるログオン動作に関係するいくつかのステップ例を示し、ステップ５０２において開始し、ここで資格証明を使用するログオン試行を受ける。ステップ５０４において、資格証明に「ソース・ディレクトリーから同期された」等という印がない場合、例えば、クラウドは、認証およびリソース・アクセスのためにのみクラウドを使用する非常に小さな組織のユーザーというような、オンプレミス・ディレクトリー・サービスの一部ではないユーザーによってアクセスされていることになる。また、ユーザーは、オンプレミス・ディレクトリー・サービスの一部かもしれないが、本明細書において説明する技術を使用しておらず、つまり、資格証明に同期されたという印がない。その場合、ステップ５０６では、この要求を他の方法で、例えば、従来のクラウド・ログオンによって扱う。
【００３６】
[0044]  代わりに、ステップ５０４において、資格証明に「ソース・ディレクトリーから同期された」という印が付けられたことを検出した場合、ステップ５０８において、例えば、ユーザー・アイデンティティに基づいて、どのハッシュ・アルゴリズム／データーを使用するか調べる。ステップ５１０では、このハッシュのパラメーター、例えば、ソルトおよび繰り返しを判定する。尚、１つのハッシュ・アルゴリズムしか存在しないというシナリオでは、ステップ５０８および５１０は不要であるが、容易に認めることができるように、これらのステップは、暗号化方式の指定を可能にする(provide for)。
【００３７】
[0045]  ステップ５１２では、ログオン・パスワード・データーを、被保護パスワード・ブロブに変換し、ステップ５１４において、ターゲット・サービスのデーターベースに格納されているブロブと比較する。一致があった場合（ステップ５１６）、ステップ５１８によってアクセスが許可され、そうでない場合、ステップ５２０によってアクセスは拒否される。
【００３８】
[0046]  尚、暗号化方式の指定は、サービスに影響を与えることなく、そしてユーザーの平文パスワードを再度取り込む必要なく、新たなオンプレミス（一次）ハッシング・アルゴリズム（Ｈａ）をサポートすることを注記しておく。例えば、オンプレミス・システムがＨａからＨｂに切り替える場合について検討する（例えば、ディレクトリー・サービスの次のバージョンが、もっと進んだ何かを優先して、ＭＤ４を軽視する）。新たなパスワード／変更パスワード(changed password)が計算され、（Ｈ１（Ｈｂ（パスワード）））として同期される。ログオンの時点で、ユーザーが彼らのユーザー名および（平文）パスワードをタイプ入力すると、システムは、（Ｈ１（Ｈａ））または（Ｈ１（Ｈｂ））がデーターベース内にあるか否か判定し、比較のために該当するものを平文パスワードに適用する。
【００３９】
[0047]  更に、認証プラットフォームは、所望に応じて、格納されているハッシュの追加のハッシングを実行することができる。これは、暗号化方式の指定により、使用されていない(at rest)パスワードの耐時間データー保護(time-resistant data protection)を容易にする。一例として、二次ハッシング・アルゴリズム（Ｈ１）が劣化した、即ち、もはや十分に安全とは見なされない場合について検討する。ユーザーの平文パスワードを再度取り込む必要なく、Ｈ１ハッシング・アルゴリズムを効果的に置き換えることができる。
【００４０】
[0048]  一例として、現在計算および格納されたデーター・ブロブがＨ１（Ｈａ（パスワード））である場合について検討する。セキュリティのために、新たな二次ハッシング・アルゴリズム（Ｈ２）が導入される。図６のステップ６０２、６０４、および６０６において表されるように、ユーザー毎に、ターゲット・システムはデーターベース全体を解析し、（Ｈ２（Ｈ１（Ｈａ（パスワード）））を計算し、新たな値を格納する。ステップ６０８によって解析が完了したと評価されたとき、システムは、ステップ６１０において全てのユーザーに対して（Ｈ１（Ｈａ（パスワード）））を削除し、（Ｈ２（Ｈ１））アルゴリズムを使用するように切り替える。このように、ターゲット・システムは、もはや劣化して使用されないハッシュを格納しない。尚、ステップ６０６において既存のブロブを交換することは実現可能であるが、解析プロセスが長大である場合、解析プロセスが完了するまで、ユーザーがログオンするのを禁止してもよい。
【００４１】
[0049]  ログオンの時点で、ユーザーの観点からは、全てが以前と同じ動作を行う。ユーザーがログインすると、ターゲットは、（Ｈ２（Ｈ１（Ｈａ）））が、与えられたパスワードに対するハッシュ値を計算しそのハッシュ値を格納されているものと比較するためのハッシング・アルゴリズムであると判定する。
【００４２】
[0050]  また、ターゲット・システムは、新たなパスワードのために他のハッシュ関数に切り替えることもできる。例えば、既存のものよりもある面で優れていると考えられる他のハッシング・アルゴリズムＨ３が開発された場合について検討する。例えば、Ｈ３はＨ１よりも遙かに優れている、および／または高速である。この例では、変更はセキュリティの問題ではなく、つまり（Ｈ１（Ｈａ（パスワード）））は安全であり、無変化のまま残されている。同期ホスト・プロセス（およびターゲット・サービス）は、任意の新たなユーザー／変更パスワードのために（Ｈ３）をサポートするように更新される。このように、ユーザーが彼らのパスワードを変更すると、（Ｈ３（Ｈａ（パスワード）））を使用して同期される。ユーザーが彼らのパスワードを変更していない場合、引き続き（Ｈ１（Ｈａ（パスワード）））アルゴリズムによって認証される。
【００４３】
[0051]  パスワード履歴は、クラウド・サービスにおいて保持され、ログオンのときに、ユーザーを締め出すのを回避するために使用することができる。例えば、ユーザーが彼または彼女のパスワードを１つのデバイスにおいて変更し、その結果ブロブをクラウド・サービスに同期させたが、他のデバイスではパスワードを変更していないという場合について検討する。他のデバイスはいつも通りに以前のパスワードを使用してログイン・サービスと通信することができるが、問題を生ずるおそれがある。この問題を回避するために、ユーザーが与える平文パスワードを、「現在のパスワード」として格納されている既存のブロブ（１つまたは複数）と比較すればよく、一致するものがない場合、「以前のパスワード」として格納されているブロブ（１つまたは複数）と比較すればよい。任意の所望組数の以前の１つ以上のパスワード・ブロブ（１つまたは複数）を維持することができる。例えば、現在のパスワードに加えて、最後の２つのパスワード等も有効にしてもよい(work)。
【００４４】
[0052]  更に、パスワード履歴の制約が、例えば、パスワードをオンプレミスで変更しないユーザーに対して、保存中に(at rest)ハッシングによって実施されてもよい。例えば、ユーザーが彼らの５つの以前のパスワードをいずれも再使用することが許可されない方針について検討する。クラウド・サービスは、（Ｈ３（Ｈａ（パスワード＿現行）））のような最新のパスワード・ブロブ、更に方針の制限までの（Ｈ３（Ｈａパスワード＿以前）））、（Ｈ１（Ｈａ（パスワード＿以前２）））、（Ｈ２（（Ｈ１（Ｈａ（パスワード＿以前３）））等のような、パスワード履歴を格納する。尚、これらのブロブが、同じハッシング・アルゴリズムで生成された必要はないことを注記しておく。実際に、これらの一部は、元のハッシュが安全でないことが分かった場合、または他の理由で変更された場合に、再度ハッシュされたのでもよい。
【００４５】
[0053]  パスワード変更の時点で、新たなパスワードが収集されるとき、サービスは、パスワード履歴フィールドにおいてアルゴリズムのリストを調べ、対応するハッシュを計算し、これらを、格納されているダイジェストと比較して、変更が許されるか否か判断する。
ネットワーク接続および分散型環境例
[0054]  当業者であれば、本明細書において説明した種々の実施形態および方法は、コンピューター・ネットワークの一部としてまたは分散型計算環境において配備することができ、任意の種類の１つまたは複数のデーター・ストアに接続することができる任意のコンピューターあるいは他のクライアントまたはサーバー・デバイスと併せて実現できることを認めることができよう。これに関して、本明細書において説明した種々の実施形態は、任意の数のメモリーまたは記憶ユニット、ならびに任意の数の記憶ユニットに跨がって実行する任意の数のアプリケーションおよびプロセスを有する任意のコンピューター・システムまたは環境において実現することができる。これは、ネットワーク環境において配備されたサーバー・コンピューターおよびクライアント・コンピューターを有する環境、あるいはリモートまたはローカル・ストレージを有する分散型計算環境を含むが、これらに限定されるのではない。
【００４６】
[0055]  分散型コンピューティングは、計算デバイスおよびシステム間の通信交換によって、コンピューター・リソースおよびサービスの共有を可能にする。これらのリソースおよびサービスは、情報の交換、ファイルのような、オブジェクトのキャッシュ・ストレージおよびディスク・ストレージを含む。また、これらのリソースおよびサービスは、負荷均衡化、リソースの拡大、処理の特殊化等のために、複数の処理ユニットに跨がる処理パワーの共有も含む。分散型コンピューティングは、ネットワーク接続を利用し、クライアントが彼らの集合的パワーを利用して企業全体に役立つことを可能にする。これに関して、種々のデバイスは、本開示の種々の実施形態について説明したように、リソース管理メカニズムに関与することができる多くのアプリケーション、オブジェクト、またはリソースを有することができる。
【００４７】
[0056]  図７は、ネットワーク型または分散型計算環境例の模式図を示す。分散型計算環境は、計算オブジェクト７１０、７１２等、および計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等を含み、これらは、アプリケーション例７３０、７３２、７３４、７３６、７３８によって表されるように、プログラム、メソッド、データー・ストア、プログラマブル・ロジック等を含むことができる。尚、計算オブジェクト７１０、７１２等、および計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等は、パーソナル・ディジタル・アシスタント（ＰＤＡ）、オーディオ／ビデオ・デバイス、移動体電話機、ＭＰ３プレーヤ、パーソナル・コンピューター、ラップトップ等というような、異なるデバイスを含んでもよいことは認めることができよう。
【００４８】
[0057]  各計算オブジェクト７１０、７１２等および計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等は、１つ以上の他の計算オブジェクト７１０、７１２等および計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等と、通信ネットワーク７４０を介して、直接的または間接的のいずれかで通信することができる。図７では、１つのエレメントとして図示されているが、通信ネットワーク７４０は、図７のシステムにサービスを提供する他の計算オブジェクトおよび計算デバイスを含むこともでき、および／または図示されていない複数の相互接続されたネットワークを表すこともできる。また、各計算オブジェクト７１０、７１２等あるいは計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等は、アプリケーション７３０、７３２、７３４、７３６、７３８のようなアプリケーションを含むことができる。これらのアプリケーションは、本開示の種々の実施形態にしたがって提供されるアプリケーションとの通信、またはその実装(implementation)に適したＡＰＩ、あるいは他のオブジェクト、ソフトウェア、ファームウェア、および／またはハードウェアを利用することもできる。
【００４９】
[0058]  分散型計算環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、計算システムを一緒に、有線システムまたはワイヤレス・システムによって、ローカル・ネットワークによって、あるいは広く分散されたネットワークによって接続することができる。現在、多くのネットワークがインターネットに結合され、広く分散されたコンピューティングのためのインフラストラクチャーを提供し、多くの異なるネットワークを含む(encompass)が、種々の実施形態において説明したようなシステムに付随して行われる通信例には、任意のネットワーク・インフラストラクチャーを使用することができる。
【００５０】
[0059]  つまり、クライアント／サーバー、ピア・ツー・ピア、または混成アーキテクチャーというような、ネットワーク・トポロジーおよびネットワーク・インフラストラクチャーのホストを利用することができる。「クライアント」とは、それが関係しない他のクラスまたはグループのサービスを使用するクラスまたはグループのメンバーである。クライアントは、他のプログラムまたはプロセスによって提供されるサービスを要求するプロセス、例えば、大まかに１組の命令またはタスクとすることができる。クライアント・プロセスは、他のプログラムやサービス自体について作業詳細(working details)を全く「知る」必要なく、要求したサービスを利用する。
【００５１】
[0060]  クライアント／サービス・アーキテクチャー、特にネットワーク型システムでは、クライアントは、通常、他のコンピューター、例えば、サーバーによって提供される共有ネットワーク・リソースにアクセスするコンピューターである。図７の図では、非限定的な例として、計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等をクライアントとして考えることができ、計算オブジェクト７１０、７１２等をサーバーとして考えることができ、サーバーとして機能する計算デバイス７１０、７１２等は、クライアント計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等からデーターを受け、データーを格納し、データーを処理し、データーをクライアント計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等に送信するというような、データー・サービスを提供するが、状況に依存して、任意のコンピューターをクライアント、サーバー、または双方と見なすことができる。
【００５２】
[0061]  サーバーは、通例、インターネットまたはワイヤレス・ネットワーク・インフラストラクチャーというような、リモート・ネットワークまたはローカル・ネットワークを介してアクセス可能なリモート・コンピューター・システムである。クライアント・プロセスは、第１コンピューター・システムにおいてアクティブであってもよく、サーバー・プロセスは第２コンピューター・システムにおいてアクティブであってもよく、通信媒体を介して互いに通信し、このようにして分散機能を提供し、複数のクライアントがサーバーの情報収集能力を利用することを可能にする。
【００５３】
[0062]  通信ネットワーク７４０またはバスがインターネットであるネットワーク環境では、例えば、計算デバイス７１０、７１２等がウェブ・サーバーであることができ、他の計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等は、ハイパーテキスト・トランスファ・プロトコル（ＨＴＴＰ）のような、複数の周知のプロトコルの内任意のものによってこのウェブ・サーバーと通信する。また、サーバーとして機能する計算オブジェクト７１０、７１２等が、クライアント、例えば、計算オブジェクトまたはデバイス７２０、７２２、７２４、７２６、７２８等として役割を果たしてもよい。これは、分散型計算環境の特性と言える。
計算デバイス例
[0063]  前述のように、本明細書において説明した技法は任意のデバイスに適用できるという利点がある。したがって、全ての種類のハンドヘルド、携帯用、および他の計算デバイスならびに計算オブジェクトが、種々の実施形態との使用に考えられることは理解できよう。したがって、図８において以下に説明する以下の汎用リモート・コンピューターは、計算デバイスの一例に過ぎない。
【００５４】
[0064]  実施形態は、部分的に、デバイスまたはオブジェクト用サービスの開発者による使用のためのオペレーティング・システムによって実現されること、および／または本明細書において説明した種々の実施形態の１つ以上の機能的形態を実行するために動作するアプリケーション・ソフトウェア内に含まれることが可能である。ソフトウェアは、クライアント・ワークステーション、サーバー、または他のデバイスというような１つ以上のコンピューターによって実行される、プログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストで説明されてもよい。データーを通信するために使用することができるコンピューター・システムは、種々の構成およびプロトコルを有し、したがって特定の構成またはプロトコルが限定的と見なされないことが、当業者には認められよう。
【００５５】
[0065]  つまり、図８は、本明細書において説明した実施形態の１つ以上の形態を実現することができる、適した計算システム環境８００の一例を示すが、先に明確にしたように、計算システム環境８００は、適した計算環境の一例に過ぎず、使用範囲や機能に関して全く限定を示唆することを意図していない。加えて、計算システム環境８００は、計算システム環境例８００に示されるコンポーネントの任意の１つまたは組み合わせに関して依存性を有するように解釈されることは全く意図していない。
【００５６】
[0066]  図８を参照すると、１つ以上の実施形態を実現するためのリモート・デバイス例は、コンピューター８１０の形態とした汎用計算デバイスを含む。コンピューター８１０のコンポーネントは、処理ユニット８２０、システム・メモリー８３０、およびシステム・メモリーから処理ユニット８２０までを含む種々のシステム・コンポーネントを結合するシステム・バス８２２を含むことができるが、これらに限定されるのではない。
【００５７】
[0067]  コンピューター８１０は、通例、種々のコンピューター読み取り可能媒体を含み、コンピューター８１０によってアクセスすることができる任意の入手可能な媒体とすることができる。システム・メモリー８３０は、リード・オンリー・メモリー（ＲＯＭ）および／またはランダム・アクセス・メモリー（ＲＡＭ）というような揮発性および／または不揮発性メモリーの形態としたコンピューター記憶媒体を含むことができる。一例として、そして限定ではなく、システム・メモリー８３０は、オペレーティング・システム、アプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データーも含むことができる。
【００５８】
[0068]  ユーザーは、入力デバイス８４０を介して、コマンドおよび情報をコンピューター８１０に入力することができる。また、モニターまたは他のタイプのディスプレイ・デバイスも、出力インターフェース８５０のようなインターフェースを介して、システム・バス８２２に接続される。モニターに加えて、コンピューターは、スピーカーおよびプリンターのような、他の周辺出力デバイスも含むことができ、これらは出力インターフェース８５０を介して接続されればよい。
【００５９】
[0069]  コンピューター８１０は、リモート・コンピューター８７０のような、１つ以上の他のリモート・コンピューターへの論理接続を使用して、ネットワーク型または分散型環境において動作することができる。リモート・コンピューター８７０は、パーソナル・コンピューター、サーバー、ルーター、ネットワークＰＣ、ピア・デバイスまたは他の共通ネットワーク・ノード、あるいは任意の他のリモート・メディア消費または送信デバイスであってもよく、更にコンピューター８１０に関して以上で説明したエレメントの内任意のものまたは全てを含んでもよい。図８に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）のようなネットワーク８７２を含むが、他のネットワーク／バスも含んでもよい。このようなネットワーキング環境は、家庭、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットにおいては極普通である。
【００６０】
[0070]  前述のように、種々の計算デバイスおよびネットワーク・アーキテクチャーと関連付けて実施形態例について説明したが、基礎となる概念は、リソース使用の効率を向上させることが望ましいあらゆるネットワーク・システムおよび計算デバイスまたはシステムにも適用することができる。
【００６１】
[0071]  また、アプリケーションおよびサービスが本明細書において提供された技法を利用することを可能にする同じ機能または同様の機能、例えば、しかるべきＡＰＩ、ツール・キット、ドライバー・コード、オペレーティング・システム、制御手段、単独のまたはダウンロード可能なソフトウェア・オブジェクト等を実現するには複数の方法がある。したがって、本明細書における実施形態は、ＡＰＩ（または他のソフトウェア・オブジェクト）の観点から、更には本明細書において説明した１つ以上の実施形態を実現するソフトウェアまたはハードウェア・オブジェクトの観点からも考えられる。つまり、本明細書において説明した種々の実施形態は、全体的にハードウェア、部分的にハードウェアであり部分的にソフトウェア、およびソフトウェアである態様を有することができる。
【００６２】
[0072]  「一例の」(exemplary)という用語は、本明細書において用いられる場合、例(example)、実例(instance)、または例示(illustration)として役割を果たすことを意味する。疑問回避のために、本明細書において開示される主題は、このような例によって限定されないこととする。加えて、本明細書において「例示」(exemplary)として記載される態様または設計(design)はいずれも、他の態様または設計よりも好ましいまたは有利であるとは必ずしも解釈されず、当業者には知られている等価の構造および技法例を除外することを意味するのでもない。更に、「含む」(include)、「有する」(has)、「収容する」(contain)という用語、およびその他の同様の単語が使用されている限りでは、このような用語は、疑問回避のために、いずれの追加のエレメントまたは他のエレメントも除外しない、開いた移行語(open transition word)として請求項において用いられるときの「備える」(comprising)という用語と同様に、包含的であることを意図している。
【００６３】
[0073]  前述のように、本明細書において説明した種々の技法は、ハードウェアまたはソフトウェア、あるいはしかるべきときには、双方の組み合わせによって実現することができる。本明細書において使用する場合、「コンポーネント」、「モジュール」、「システム」等の用語は、同様に、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピューター関係エンティティに言及することを意図している。例えば、コンポーネントは、プロセッサーにおいて実行するプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピューターであってもよいが、これらに限定されるのではない。例示として、コンピューターにおいて実行するアプリケーション、およびこのコンピューターの双方がコンポーネントであることができる。１つ以上のコンポーネントが１つのプロセスおよび／または実行のスレッド内に存在することもでき、コンポーネントは、１つのコンピューターに局在すること、および／または２つ以上のコンピューター間で分散されるのでもよい。
【００６４】
[0074]  前述のシステムは、様々なコンポーネント間における相互作用に関して説明した。尚、このようなシステムおよびコンポーネントは、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントの一部、および／または追加のコンポーネントを、以上のことの種々の置換(permutation)および組み合わせにしたがって、含むことができることを認めることができよう。また、サブコンポーネントは、親コンポーネント内に含まれる代わりに（階層的）、他のコンポーネントに通信可能に結合されるコンポーネントとして実現することもできる。加えて、１つ以上のコンポーネントを組み合わせて１つのコンポーネントにして総合的な機能を設けることができ、または数個の別個のサブコンポーネントに分割することもでき、そして統合機能を得るためにこのようなサブコンポーネントに通信可能に結合する、管理レイヤーのようないずれの１つ以上の中間レイヤーが設けられてもよいことも特筆することができる。本明細書において説明したいずれのコンポーネントも、本明細書では具体的に説明しなかったが当業者には一般に知られている１つ以上の他のコンポーネントと相互作用することもできる。
【００６５】
[0075]  以上で説明したシステム例に関して、説明した主題にしたがって実現することができる方法は、種々の図のフローチャートを参照しても認識する(appreciate)ことができる。説明を簡素化するために、これらの方法を一連のブロックで示し説明したが、種々の実施形態はそのブロックの順序には限定されないことは言うまでもないことであり認められてしかるべきである。何故なら、一部のブロックは、本明細書において図示および説明したものとは異なる順序で出て来ても、および／または他のブロックと同時に出てきてもよいからである。連続しないフローまたは分岐するフローがフローチャートによって示される場合、同じまたは同様の結果が得られる種々の他の分岐、フロー・パス、およびブロックの順序も実現できることは、認めることができよう。更に、図示したブロックの中には、以下で説明する方法を実現するときには任意であるものもある。
結論
[0076]  本発明には種々の変更や代替構造が可能であるが、その内のある種の例示実施形態を図面に示し、以上で詳細に説明した。しかしながら、開示した特定の形態に本発明を限定する意図はなく、逆に、本発明は、本発明の主旨および範囲に該当する全ての変更、代替構造、および均等物を包含することを意図していることは理解されてしかるべきである。
【００６６】
[0077]  本明細書において説明した種々の実施形態に加えて、他の同様の実施形態も用いることができ、あるいは対応する実施形態（１つまたは複数）の同じ機能または同等の機能を実行するために、本発明から逸脱することなく、説明した実施形態（１つまたは複数）に対して変更および追加を行うことができることは言うまでもない。更にまた、多数の処理チップまたは多数のデバイスが、本明細書において説明した１つ以上の機能の実行を共有することもでき、同様に、複数のデバイスに跨がって格納を行うことができる。したがって、本発明は、いずれの１つの実施形態にも限定されず、逆に、添付する特許請求の範囲にしたがって、その広さ、主旨、および範囲が解釈されてしかるべきである。
【図１】
0006446032.tif 000002
【図２】
0006446032.tif 000003
【図３】
0006446032.tif 000004
【図４】
0006446032.tif 000005
【図５】
0006446032.tif 000006
【図６】
0006446032.tif 000007
【図７】
0006446032.tif 000008
【図８】
0006446032.tif 000009