(57)【特許請求の範囲】
【請求項１】
分散コンピューティング環境において１つまたは複数のクライアント装置と結合されたサーバが使用するための方法であって、
１組のリソースをホスティングするステップと、
前記リソースのうち１つのリソースにおいてクライアントユーザが動作を実行するという要求を受け取るステップであって、前記要求は前記クライアントユーザに関連付けられたスコープと前記動作に関連付けられたメソッドの名前とを含み、前記スコープは認可ポリシーストア内の認可ポリシーに関連付けられた前記リソースの集合であり、前記要求は、前記サーバがホスティングするアプリケーションを介して受け取られ、前記動作は前記リソースの内容又は機能の修正に関連づけられるステップと、
前記リソースに関して前記動作を実行する権限を前記クライアントユーザが委託されているか否かに応じて、前記動作を前記リソースに関して認可すべきか否かを判断するステップであって、前記権限は、前記クライアントユーザが前記サーバのいずれかのリソースに関連する管理グループのメンバに依存しないステップとを備えたことを特徴とする方法。
【請求項２】
前記動作を認可すべきかどうかを判断するステップは、委託管理フレームワークによって実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記リソースは、インターネット情報サービス（ＩＩＳ）メタベースノードとして表されることを特徴とする請求項１に記載の方法。
【請求項４】
前記リソースは、インターネットサービスプロバイダ（ＩＳＰ）がホスティングするウェブサイトであり、前記クライアントユーザは、前記委託管理フレームワークによる許可評価を受けるために前記ＩＳＰに前記要求を送ることによる以外は、前記ＩＳＰに関連付けられるどのリソースに対しても前記動作を実行することを認可されないことを特徴とする請求項２に記載の方法。
【請求項５】
前記要求は、前記クライアントユーザが、新たに構築されたコマンドラインを介して前記動作を実行することを望んでいるか、または前記動作にすでに関連付けられている実行可能オブジェクトを介して実行することを望んでいるかを示す指示をさらに備えたことを特徴とする請求項１に記載の方法。
【請求項６】
前記要求は、前記クライアントユーザが前記動作の結果をログすることを望むかどうかについての指示をさらに備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記委託管理フレームワークは、少なくとも、それが、前記リソースを対象とした前記動作を実行する、ユーザロールベースの許可のマッピングに対する前記クライアントユーザのアクセスを許可しないことを理由に安全であることを特徴とする請求項２に記載の方法。
【請求項８】
前記サーバ上に前記アプリケーションをインストールするステップと、
前記アプリケーションが実行できる１組の動作を識別するステップと、
前記クライアントユーザを含む１組のユーザが前記動作を実行できるようにするために前記１組のユーザに割り当てられた許可である認可ロールに基づいて、前記動作を１組のセキュリティ許可にマップするステップとをさらに備え、
前記判断するステップは、前記アプリケーションが、前記マッピングするステップを利用して、前記クライアントユーザが前記動作を実行する許可を得ているかどうかを識別するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
ロールベースのユーザアクセス許可を、前記リソースを識別するインターネット情報サービス（ＩＩＳ）のメタベースのノードに指定するステップと、
インタフェースをタスクに指示するステップであって、前記インタフェースが１組のパラメータと名前とを含み、前記タスクが前記動作を含むステップとをさらに備え、
前記判断するステップは、
構成ファイル中で前記インタフェースを突き止めるステップと、
前記インタフェースを突き止めるステップに応答して、前記スコープを評価するよう、前記クライアントユーザのアイデンティティを前記リソースに提示するステップと、
前記提示するステップに応答して、前記リソースに関して前記動作を実行するロールベースのアクセス許可を前記クライアントユーザが委託されているかどうかを識別するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記リソースに関して前記動作を実行する権限を前記クライアントユーザが委託されているかどうかを判断するステップに応答して、
前記動作に関連付けてパラメータを設定するステップと、
前記クライアントユーザに関連付けられた前記スコープ内において前記動作を実行するステップとをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１１】
サーバと、前記サーバに結合された１つまたは複数のコンピューティング装置とを含む分散コンピューティング環境において使用するためのコンピュータ読取り可能な記憶媒体であって、
１組のリソースをホスティングするステップであって、前記リソースのうちの特定のリソースによって、クライアントユーザが、自分が前記リソースのうちの１リソースにアクセスする権限を委託されているかどうかを判断可能となるステップと、
前記ユーザから、前記リソースにおいて動作を実行する要求を受け取るステップであって、前記要求は前記クライアントユーザに関連付けられたスコープと前記動作に関連付けられたメソッドの名前とを含み、前記スコープは認可ポリシーストア内の認可ポリシーに関連付けられた前記リソースの集合であり、前記動作は前記リソースの内容又は機能の修正に関連づけられた、ステップと、
前記リソースに関して前記動作を実行するロールベースのスコープの権限を前記クライアントユーザが委託されているか否か応じて、前記動作を前記リソースに関して認可すべきか否かを判断するステップであって、前記ロールベースのスコープの権限が、前記クライアントユーザが前記サーバのいずれかのリソースに関連する管理グループのメンバであることを要求しないステップとを実行する
コンピュータ実行可能な命令を備えたことを特徴とするコンピュータ読取り可能な記憶媒体。
【請求項１２】
前記リソースはインターネット情報サービス（ＩＩＳ）メタベースノードとして表されることを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１３】
前記リソースはインターネットサービスプロバイダ（ＩＳＰ）がホスティングするウェブサイトであり、前記クライアントユーザは前記管理グループのメンバではないことを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１４】
前記要求は、前記動作を、新たに構築されたコマンドラインを介して実行すべきか、または前記動作にすでに関連付けられている実行可能オブジェクトを介して実行すべきかを示す指示をさらに含むことを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１５】
前記動作を認可すべきかどうかを判断するステップに関連する動作は、少なくとも、前記クライアントユーザが、前記動作を実行するユーザロールベースの許可に対するアクセス権をもっていないことを理由に安全であることを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１６】
前記コンピュータ実行可能な命令は、
前記リソースに関連付けられた１組の動作を識別するステップと、
前記動作を１組のセキュリティ許可にマップするステップであって、前記セキュリティ許可が、前記ユーザを含む１組のユーザが前記動作を実行できるようにするために前記１組のユーザに割り当てられた許可である認可ロールに基づいているステップとを実行する命令をさらに備え、
前記判断するステップを実行する命令は、前記マップするステップを利用して、前記クライアントユーザが前記動作を実行する許可を得ているかどうかを識別するステップを実行する命令をさらに含むことを特徴とする請求項１３に記載のコンピュータ読取り可能な記憶媒体。
【請求項１７】
前記コンピュータ実行可能な命令は、
ロールベースのユーザアクセス許可を、前記リソースを識別するインターネット情報サービス（ＩＩＳ）のメタベースのノードに安全に指定するステップ、および
インタフェースをタスクに指示するステップであって、前記インタフェースが１組のパラメータと名前とを含み、前記タスクが前記動作を含むステップを実行する命令をさらに備え、
前記判断するステップのためのコンピュータ実行可能な命令は、
構成ファイル中で前記インタフェースを突き止めるステップと、
前記インタフェースを突き止めるステップに応答して、前記スコープを評価するよう、前記クライアントユーザのアイデンティティを前記リソースに提示するステップと、
前記提示するステップに応答して、前記リソースに関して前記動作を実行するロールベースのアクセス許可を前記クライアントユーザが委託されているか否かを識別するステップを実行する命令をさらに含むことを特徴とする請求項１１に記載のコンピュータ読取り可能な記憶媒体。
【請求項１８】
前記リソースに関して前記動作を実行する権限を前記クライアントユーザが委託されているかどうかを判断するステップに応答して、
前記動作に関連付けてパラメータを設定するステップと、
前記クライアントユーザに関連付けられた前記スコープ内において前記動作を実行するステップを実行する命令をさらに備えたことを特徴とする請求項１１に記載のコンピュータ読取り可能な媒体。
【請求項１９】
サーバおよび前記サーバに結合された１つまたは複数のクライアントコンピューティング装置を含む、分散コンピューティング環境において使用するための前記サーバであって、
プロセッサと、
前記プロセッサに結合されたメモリであって、
１組のリソースをホスティングするステップと、
ユーザから、前記リソースのうちの１つのリソースにおいて動作を実行する要求を受け取るステップであって、前記要求は前記クライアントユーザに関連付けられたスコープと前記動作に関連付けられたメソッドの名前とを含み、前記スコープは認可ポリシーストア内の認可ポリシーに関連付けられた前記リソースの集合であり、前記動作は前記リソースの内容又は機能の修正に関連づけられた、ステップと、
前記リソースに関して前記動作を実行するロールベースのスコープの権限を前記クライアントユーザが委託されているか否かに応じて、前記動作を認可すべきかどうかを判断するステップであって、前記ロールベースのスコープの権限が、前記クライアントユーザが前記サーバのリソースに関連する管理グループのメンバであることを要求しないステップとを実行するコンピュータ実行可能な命令を含むメモリと
を備えたことを特徴とするサーバ。
【請求項２０】
前記要求は、前記リソースのうちの少なくとも１つのリソースによって生成されることを特徴とする請求項１９に記載のサーバ。
【請求項２１】
前記リソースはインターネット情報サービス（ＩＩＳ）メタベースノードとして表されることを特徴とする請求項１９に記載のサーバ。
【請求項２２】
前記リソースはインターネットサービスプロバイダ（ＩＳＰ）がホスティングするウェブサイトであり、前記クライアントユーザは前記管理グループのメンバではないことを特徴とする請求項１９に記載のサーバ。
【請求項２３】
前記要求は、前記動作を、新たに構築されたコマンドラインを介して実行すべきか、または前記動作にすでに関連付けられている実行可能オブジェクトを介して実行すべきかを示す指示をさらに含むことを特徴とする請求項１９に記載のサーバ。
【請求項２４】
委託管理フレームワークによって実行される前記動作が認可されるか否かは、前記委託管理フレームワークが、少なくとも、前記リソースを対象とした前記動作を実行する、ユーザロールベースの許可のマップに対するクライアントユーザのアクセスを許可しないことを理由に安全であることを特徴とする請求項１９に記載のサーバ。
【請求項２５】
前記リソースに関連付けられた１組の動作を識別するステップと、
前記動作を、前記ユーザを含む１組のクライアントユーザが前記動作を実行できるようにするために前記１組のユーザに割り当てられた許可である認可ロールに基づく１組のセキュリティ許可にマップするステップとを実行する命令をさらに備え、
前記判断するステップを実行する命令は、前記マッピングするステップを利用して、前記クライアントユーザが前記動作を実行する許可を得ているかどうかを識別するステップを実行する命令を含むことを特徴とする請求項１９に記載のサーバ。
【請求項２６】
ロールベースのユーザアクセス許可を、インターネット情報サービス（ＩＩＳ）のメタベースのノードに安全に指定するステップであって、前記ノードが前記リソースを識別するステップと、
インタフェースをタスクに指示するステップであって、前記インタフェースが１組のパラメータと名前とを含み、前記タスクが前記動作を含むステップとを実行する命令をさらに含み、
前記判断するステップを実行するコンピュータ実行可能な命令は、
構成ファイル中で前記インタフェースを突き止めるステップと、
前記インタフェースを突き止めるステップに応答して、前記スコープを評価するよう、前記クライアントユーザのアイデンティティを前記リソースに提示するステップと、
前記提示するステップに応答して、前記リソースに関して前記動作を実行するロールベースのアクセス許可を前記クライアントユーザが委託されているかどうかを識別するステップとを実行する命令をさらに含むことを特徴とする請求項１９に記載のサーバ。
【請求項２７】
前記リソースに関して前記動作を実行する権限を前記クライアントユーザが委託されているかどうかを判断するステップに応答して、
前記動作に関連付けてパラメータを設定するステップと、
前記ユーザに関連付けられたスコープ内において前記動作を実行するステップとを実行する命令をさらに備えたことを特徴とする請求項１９に記載のサーバ。
【請求項２８】
１組のリソースをホスティングするための手段と、
前記ユーザから、前記リソースのうちの１つのリソースにおいて動作を実行する要求を受け取る手段であって、前記要求は前記クライアントユーザに関連付けられたスコープと前記動作に関連付けられたメソッドの名前とを含み、前記スコープは認可ポリシーストア内の認可ポリシーに関連付けられた前記リソースの集合であり、前記動作は前記リソースの内容又は機能の修正に関連づけられた、手段と、
前記リソースに関して前記動作を実行するロールベースのスコープの権限を前記クライアントユーザが委託されているか否かに応じて、前記動作を認可すべきか否かを判断する手段であって、前記ロールベースのスコープの権限が、前記クライアントユーザが前記サーバに関連する管理グループのメンバであることを要求しない手段と
を備えたことを特徴とするサーバ。
【請求項２９】
前記リソースは、インターネット情報サービス（ＩＩＳ）メタベースノードであることを特徴とする請求項２８に記載のサーバ。
【請求項３０】
前記リソースは、インターネットサービスプロバイダ（ＩＳＰ）がホスティングするウェブサイトであり、前記クライアントユーザは前記管理グループのメンバではないことを特徴とする請求項２８に記載のサーバ。
【請求項３１】
前記リソースに関して前記動作を実行する権限を前記クライアントユーザが委託されているかどうかを判断する手段に応答して、
前記動作に関連付けてパラメータを設定する手段と、
前記クライアントユーザに関連付けられた前記スコープ内において前記動作を実行する手段とをさらに備えたことを特徴とする請求項２８に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークサービスプロバイダがホスティングするリソースの管理に関する。
【背景技術】
【０００２】
ウェブサイトを管理することは、時間も費用もかかる可能性があり、特に、大規模なインターネットサービスプロバイダ（ＩＳＰ）の設置を管理するエンティティ（ｅｎｔｉｔｉｅｓ）にとってはそれが言える。時間と費用を節約するために、多くのＩＳＰは、個人のウェブサイトを犠牲にして、大企業のウェブサイトのみをサポートしている。この理由の１つとして、コンピュータのセキュリティが、企業やその他の組織のみならず個人にとっても重要な問題となりつつあることが挙げられる。このようなセキュリティ上のニーズを満たすためには、管理上のシナリオの各々について、コンピュータおよびウェブサイトのセキュリティ戦略を選択して強化しなければならない。
【０００３】
【特許文献１】米国特許出願第10/281,083号明細書 “Role-Based Authorization Management Framework”
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような選択および強化を行わなければならないことにより、個人のウェブサイトのサポートを著しく労力および時間がかかり、また、費用がかかるものとなっている。
【課題を解決するための手段】
【０００５】
分散コンピューティング環境でホスティングするリソースへのアクセスを委託するためのシステムおよび方法を説明する。一態様では、サーバが１組のリソースをホスティングする。このサーバは、ホスティングするリソースの１つに関して動作を行う要求をユーザから受け取る。この要求に応答して、サーバは、そのユーザが動作を行う権限をすでに委託されているかどうかを判断する。この委託権限は、そのユーザが、そのサーバのいずれかのリソースに関連する管理グループのメンバであるかどうかに無関係である。
【０００６】
図面において、コンポーネントの参照番号の一番左の桁は、そのコンポーネントが最初に記載された特定の図を識別する。
【発明を実施するための最良の形態】
【０００７】
（概要）
ウェブサイトの遠隔管理を委託し、実装するための、信頼できる拡張可能で扱い易くかつ安全なシステムおよび方法を説明する。特に、インターネットサービスプロバイダ（ＩＳＰ）のコンピュータサーバ管理者は、以下に記載のインターネット情報サービス（ＩＩＳ）委託管理（ＤＡ）フレームワークを利用して、指定されたウェブサイトの管理タスクを、実行できるよう認可されたユーザに委託する。このような認可ユーザには、例えば、ＩＳＰがホスティングする個人ウェブサイトを所有しているユーザを含むことができる。
【０００８】
ユーザの認可は、ホスティングするウェブサイトに関連して、指定するアプリケーションの動作を実行することに対する、指定するロールベースのアクセス許可を考慮して判断する。このＩＩＳ  ＤＡフレームワークにより、個人のウェブサイトを、上述のように、時間と費用の非効率性のためにサポートしないというコンピュータのセキュリティに関する現在の傾向を回避する。この理由の１つとして、管理者は、ホスティングする個人のウェブサイトが修正またはテストされるたびに介入すること（すなわち、コンピュータのセキュリティおよび認可アクセスを保証すること）を要求されないことが挙げられる。このような修正には、例えば、ウェブサイト上に新しいアプリケーションを配置するなど、ウェブサイトの内容／機能の変更が含まれる場合がある。
【０００９】
委託ウェブサイト管理のためのシステムおよび方法のこれらおよびその他の態様について、さらに詳細に説明する。
【００１０】
（例示的動作環境）
図面を見ると、同じ要素を同じ参照番号で表してあり、適切なコンピューティング環境に実装しているものとして本発明を示してある。必ずしも必要ではないが、本発明を、パーソナルコンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能な命令という一般的な状況で説明する。プログラムモジュールは、一般に、特定のタスクを実行し、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
【００１１】
図１は、以下に記載の、ホスティングするリソースの管理を委託するためのシステム、装置、および方法を実装することができる、適切なコンピューティング環境１２０の例を示す。例示的コンピューティング環境１２０は、適切なコンピューティング環境の一例にすぎず、本明細書に記載のシステムおよび方法の使用または機能の範囲を限定することを意図したものではない。また、コンピューティング環境１２０を、コンピューティング環境１２０中に示してあるコンポーネントのいずれか１つまたは組合せに依存するもの、またはコンポーネントのいずれか１つまたは組合せを必要とするものとして解釈すべきでもない。
【００１２】
本明細書に記載の方法およびシステムは、多数のその他の汎用または専用コンピューティングシステム環境または構成で動作可能である。適切と考えられる周知のコンピューティングシステム、環境、および／または構成の例には、スモールフォームファクタ（例えば、ハンドヘルド、モバイルなどの）のコンピューティング装置（例えば、携帯電話、パーソナルディジタルアシスタント（ＰＤＡ）など）、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどが含まれるが、それらに限定されるわけではない。本発明はまた、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される、分散コンピューティング環境においても実施される。分散コンピューティング環境では、ローカルおよびリモート両方のメモリストレージ装置にプログラムモジュールが配置される。
【００１３】
図１に示すように、コンピューティング環境１２０は、コンピュータ１３０の形態の汎用コンピューティング装置を含む。コンピュータ１３０のコンポーネントは、１つまたは複数のプロセッサまたは処理装置１３２、システムメモリ１３４、および、システムメモリ１３４を含めて様々なシステムコンポーネントをプロセッサ１３２に結合する、バス１３６を含む。バス１３６は、何種類かのバス構造のうちの１つまたは複数を表し、これには、様々なバスアーキテクチャのいずれかを使用した、メモリバスまたはメモリコントローラ、周辺バス、アクセラレイティッドグラフィックスポート、プロセッサまたはローカルバスが含まれる。例として、このようなバスアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子機器規格協会（ＶＥＳＡ）ローカルバス、およびメザニンバスとしても知られる周辺コンポーネント相互接続（ＰＣＩ）バスが含まれるが、それらに限定されるわけではない。
【００１４】
コンピュータ１３０は、一般に、様々なコンピュータ読取り可能な媒体を含む。このような媒体は、コンピュータ１３０がアクセス可能などのような入手可能な媒体であってもよく、これには、揮発性および不揮発性の、取外し可能なおよび固定の媒体が含まれる。システムメモリ１３４は、ランダムアクセスメモリ（ＲＡＭ）１３８などの揮発性メモリ、および／または読取り専用メモリ（ＲＯＭ）１４０などの不揮発性メモリの形態のコンピュータ読取り可能な媒体を含む。起動時などにコンピュータ１３０内の要素間の情報の転送を援助する基本ルーチンを含む、基本入出力システム（ＢＩＯＳ）１４２は、ＲＯＭ１４０中に記憶されている。ＲＡＭ１３８は、一般に、プロセッサ１３２が直ちにアクセス可能であり、かつ／またはプロセッサ１３２が現在動作させている、データおよび／またはプログラムモジュールを含む。
【００１５】
コンピュータ１３０は、その他の取外し可能／固定の揮発性／不揮発性コンピュータ記憶媒体をさらに含むことができる。例えば、ハードディスクドライブ１４４を使って、固定の不揮発性磁気媒体（図示せず）からの読取り、およびそこへの書き込みを行うことができ、磁気ディスクドライブ１４６を使って、取外し可能な不揮発性磁気ディスク１４８（例えば、「フロッピー（登録商標）ディスク」）からの読取り、およびそこへの書き込みを行うことができ、また、光ディスクドライブ１５０を使って、ＣＤ−ＲＯＭ／Ｒ／ＲＷ、ＤＶＤ−ＲＯＭ／Ｒ／ＲＷ／＋Ｒ／ＲＡＭまたはその他の光媒体などの取外し可能な不揮発性光ディスク１５２からの読取り、およびそこへの書き込みを行うことができる。ハードディスクドライブ１４４、磁気ディスクドライブ１４６、および光ディスクドライブ１５０は、それぞれ、１つまたは複数のインタフェース１５４によってバス１３６に接続される。
【００１６】
これらのドライブおよび関連するコンピュータ読取り可能な媒体は、コンピュータ読取り可能な命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージをコンピュータ１３０に提供する。本明細書に記載の例示的環境はハードディスク、取外し可能な磁気ディスク１４８、および取外し可能な光ディスク１５２を利用しているが、当業者は、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）など、コンピュータがアクセス可能なデータを記憶することができるその他のタイプのコンピュータ読取り可能な媒体もこの例示的動作環境で使用できることを理解されよう。
【００１７】
ハードディスク、磁気ディスク１４８、光ディスク１５２、ＲＯＭ１４０、またはＲＡＭ１３８にはいくつかのプログラムモジュールを記憶することができる。これには、例えば、オペレーティングシステム１５８、１つまたは複数のアプリケーションプログラム１６０、その他のプログラムモジュール１６２、およびプログラムデータ１６４が含まれる。
【００１８】
ＩＳＰのウェブサイト管理者などのユーザは、キーボード１６６やポインティング装置１６８（「マウス」など）などの入力装置を介して、コンピュータ１３０にコマンドおよび情報を供給することができる。その他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナ、ディジタルカメラなどが含まれる。これらおよびその他の入力装置は、バス１３６に結合されたユーザ入力インタフェース１７０を介して、処理装置１３２に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、その他のインタフェースおよびバス構造によって接続してもよい。
【００１９】
モニタ１７２またはその他のタイプの表示装置も、ビデオアダプタ１７４などのインタフェースを介してバス１３６に接続される。モニタを利用して、例えば、以下に説明するように、アプリケーションアクセスポリシーおよびルールを定義することにより、例えば、記載のウェブサイト管理を委託するためのシステムおよび方法に関連するユーザインタフェース（ＵＩ）を提示することができる。パーソナルコンピュータは、一般に、モニタ１７２に加えて、スピーカおよびプリンタなどのその他の周辺出力装置（図示せず）を含む。これらは、出力周辺機器インタフェース１７５を介して接続することができる。
【００２０】
コンピュータ１３０は、リモートコンピュータ１８２などの１台または複数のリモートコンピュータへの論理接続を使ったネットワーク化された環境で動作することができる。リモートコンピュータ１８２は、コンピュータ１３０に関してここで説明している要素および特徴の、いくつかまたは全てを含むことができる。論理接続には、例えば、ローカルエリアネットワーク（ＬＡＮ）１７７および汎用広域ネットワーク（ＷＡＮ）１７９が含まれる。このようなネットワーク化環境は、オフィス規模、企業規模のコンピュータネットワーク、イントラネット、インターネットではごく一般的である。
【００２１】
ＬＡＮネットワーク化環境において使用される場合、コンピュータ１３０はネットワークインタフェースまたはアダプタ１８６を介してＬＡＮ１７７に接続される。ＷＡＮネットワーク化環境において使用される場合、コンピュータは、一般に、モデム１７８、またはＷＡＮ１７９を介して通信を確立するためのその他の手段を含む。モデム１７８は、内蔵または外付けが可能で、ユーザ入力インタフェース１７０またはその他の適切なメカニズムを介し、システムバス１３６に接続することができる。
【００２２】
図１に、インターネットによる具体的なＷＡＮの実装を示す。ここでは、コンピュータ１３０が、モデム１７８を利用して、インターネット１８０を介し、少なくとも１台のリモートコンピュータ１８２と通信を確立する。ネットワーク化された環境では、コンピュータ１３０に関連して示すプログラムモジュール、またはその一部を、リモートメモリストレージ装置に記憶することができる。したがって、例えば、図１に示すように、リモートコンピュータ１８２のメモリ装置上にリモートアプリケーションプログラム１８９が常駐する場合がある。図示し、説明しているネットワーク接続は例にすぎない。したがって、コンピューティング装置間に通信リンクを確立するその他の手段を使用してもよい。
【００２３】
（例示的アプリケーションプログラムおよびデータ）
図２は、図１のシステムメモリ１３４のさらなる典型的な態様を示す構成図である。これには、ホスティングするリソースの管理を委託するためのアプリケーションプログラム１６０およびプログラムデータ１６４も含まれる。本実施形態においては、アプリケーションプログラム１６０には、例えば、認可モジュール２０２、委託モジュール２０４、リモートクライアントウェブサイト管理（ＲＣＷＡ）モジュール２０６（すなわち「要求側アプリケーション」）、実行モジュール２０８、および認可プロセス２１０が含まれる。説明のために、図１のシステム１００の選択されたその他の機能に関連するこれらのアプリケーションプログラムを、これ以降、しばしば「インターネット情報サービス（ＩＩＳ）委託管理（ＤＡ）フレームワーク」または「フレームワーク」と呼ぶ。
【００２４】
認可マネージャ２０２は、ＩＩＳメタベースノード（すなわち、ＩＩＳメタベース２１２のノード）のホスティングするリソースの管理を委託するためのセキュリティサポートを提供する。ＩＩＳメタベース２１２は、図１のコンピュータ１３０によってホスティングされ、配置され、かつ／または管理されているアプリケーション、リソース、またはオブジェクトのノードを識別する。より詳細には、メタベースは、ＩＩＳを構成するために使用される、構成情報およびスキーマの階層ストアである。既存のシステムでは、管理者グループのメンバであるユーザのみが、メタベースノードによって表されるリソースを見ることや修正することができる。このような従来のシステムとは対照的に、ここで説明しているＩＩＳ  ＤＡフレームワークは、ウェブサイト所有者など、管理者グループのユーザ（例えば、アプリケーション管理者）以外のユーザが、ＩＩＳメタベース２１２の特に指定された部分を見ること、および／または修正できるようにする。説明の目的で、「ユーザ」とは、管理者グループに属していない個人である。ただし、ユーザは、管理者グループに属していることもあり得る。
【００２５】
このために、認可モジュール２０２は、委託管理（ＤＡ）モジュール２０４との選択的対話によって、管理エンティティ（すなわち、管理者グループのメンバ）が、ＩＩＳメタベース２１２のノードへのユーザアクセス許可を指定（例えば、図１の表示装置１７２上に表示されているＵＩを介して指定）できるようにする。認可マネージャモジュール２０２は、このようなユーザアクセス許可（すなわち、ポリシー／ルール）を、認可ポリシーストア（ＡＰＳ）２１４に書き込む。一実施形態では、このようなアクセス許可が、例えば、ＸＭＬ（Ｅｘｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、アクティブディレクトリ、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  ｌａｎｇｕａｇｅ）またはその他のデータ形式で表現される。
【００２６】
アプリケーションは、実行時にＡＰＳ２１４に照会して（アプリケーションマネージャ２０２によって公開されたＡＰＩ２１６を介して）、クライアントが、要求した動作をリソース上で実行することを認可されているかどうかを確認する。認可マネージャは、認可ポリシーを管理し、アクセス制御およびユーザインタフェースの妥当性を検査するためのＡＰＩを管理者に提供して、管理者が認可ポリシーストアを管理できるようにする。
【００２７】
（アプリケーションの定義）
認可ポリシーストア（ＡＰＳ）２１４によって指定されるようなアプリケーションは、認可ポリシーストア２１４のトップレベルノードである。アプリケーションは、そのアプリケーションが実行できる動作またはタスクを指定し、また、例えばそのアプリケーションがインストールされた場合にそれらをＡＰＳ２１４において宣言する。アプリケーションの指定は、ジョブを実行する（例えば、組織内で）ために必要とされるタスクおよび動作に関する、管理者が識別したアプリケーション特有のロールを含む。ＡＰＳ２１４には、ロール、タスク、および動作（メソッド）の定義およびスコープが記憶される。ロールは、認可ロールまたはリソース構成ロール（例えば、何らかの１組のリソースに対する組織の許可）である。認可ロールは、ユーザのジョブの機能に基づく。リソース構成ロールは、コンピュータの機能に基づく。
【００２８】
タスクは、低レベル動作の集合である。タスクの目的は、どの低レベル動作が、管理者にとって意味をなすある単位の作業を行うかを判断することである。タスクの例として“Ｃｈａｎｇｅ  Ｐａｓｓｗｏｒｄ”が挙げられる。タスクにはその他のタスクも含まれ得る。例えば、Ｍａｎａｇｅ  Ｕｓｅｒ  Ａｃｃｏｕｎｔｓと呼ばれるタスクには、Ｃｈａｎｇｅ  Ｐａｓｓｗｏｒｄ、Ｒｅｓｅｔ  Ｐａｓｓｗｏｒｄ、Ｄｉｓａｂｌｅ  Ａｃｃｏｕｎｔなどのタスクが含まれ得る。
【００２９】
動作とは、リソースマネージャがセキュリティ手順を識別するために使用する低レベル許可である。いくつかの動作を使って、意味をなすタスクを実行することができる。（動作が管理者に対して公開されず、または意味をなさないことがしばしばある。）動作の例としてはＷｒｉｔｅＡｔｔｒｉｂｕｔｅｓやＲｅａｄＡｔｔｒｉｂｕｔｅｓが挙げられる。スコープとは、それぞれの認可ポリシーに関連付けられた１つまたは複数の物理または論理リソース（例えば、フォルダおよび／またはファイル）の集まりである。アプリケーションは、スコープを使って、リソースをグループ分けし、ユーザが要求しているリソースをスコープにマップする（例えば、アプリケーションがユーザアクセスをチェックする際に）などをすることができる。
【００３０】
この実施形態では、認可マネージャ２０２によって、ゼロ（０）または１つ以上のグループの指定、および指定されたグループメンバ各々に対応するロールの指定が可能になる。１つのグループは、ユーザの一ロールに対応し、アプリケーション管理者は、あるオブジェクト（例えば、アプリケーション、リソースなど）のアクセス制御リスト（ＡＣＬ）においてグループに許可を与えることによって、そのロールが必要とする許可を指定する。表１は、ＡＰＳ２１４の例示的なアプリケーションの定義を示す。本実施形態ではＸＭＬデータフォーマットである。
【００３１】
【表１】
0004718804.tif 000002
【００３２】
各アプリケーションは、実質的にグローバルに一意である識別子（“ＧＵＩＤ”、例えば、ｄ９０８９ｆ１７−５ｆａ６−４ａｅ９−ｂｄｄｆ−８ｃａ６ｃｄ１ｃ０６ｆｂ）、名前（例えば、ＳｉｔｅＡｄｍｉｎＡｐｐ）など、多数の属性を含む。アプリケーションの属性を使って、例えば、認可ポリシーストア２１４で指定されているアプリケーションのうち特定のアプリケーションを識別する。表１の例では、アプリケーションが、そのアプリケーションに関して１つまたは複数の「ロール」に割り当てられている１人または複数のユーザを指定するためのグループを含んでいる（例えば、“ＡｚＡｐｐｌｉｃａｔｉｏｎＧｒｏｕｐ”というタグペアを参照のこと）。ロールとは、ユーザが１組のタスクを実行できるようにするためにそのユーザに割り当てられる１組の許可である。各アプリケーショングループは、ＧＵＩＤ属性（例えば、ｂｆ９ｄ００ｆ０−２ｂｅ３−４３６７−ａ９３１−６８００３８ｂ５１ｄ０ａという値）および名前属性（例えば、ＧｒｏｕｐＭｅｔａｂａｓｅＣｈａｎｇｅＤｅｆａｕｌｔＤｏｃ）を含む。この例示のグループは、ＳＩＤ：Ｓ−１−５−２１−３１３１２３３７２３−６１６１３０２７１−９３７２１５９２４−１０３２で識別される１人のメンバを示している。この例では、これが、“Ｕｓｅｒ１”というユーザに関連付けられているＳＩＤであると仮定する。
【００３３】
この実施形態では、１組の関連付けられたオブジェクトにロールが適用され、次いで、あるユーザグループがそのロールに割り当てられている。
【００３４】
（スコープおよびロールの定義）
表１のアプリケーションは、スコープを有するアプリケーショングループを含む（ただし、このようなグループはいくつでも定義することが可能である）。スコープとは、それぞれの認可ポリシーに関連付けられた、１つまたは複数の物理または論理的リソース（例えば、フォルダおよび／またはファイル）の集まりである。アプリケーションは、スコープを使って、リソースをグループ分けし、（例えば、アプリケーションがユーザアクセスをチェックする際に）ユーザが要求しているリソースをスコープにマップするなどすることができる。以下は、スコープを定義するための例示的構文である。すなわち、<AzScope Guid="ce010982-6b6f-4e93-804e-d04bf1ddff78" Name="Site Access for "User1""/>。各スコープは、そのスコープにアクセスするためにアプリケーションプログラミングインタフェース（ＡＰＩ）と共に使用することができる、一意の識別子（例えば、ｃｅ０１０９８２−６ｂ６ｆ−４ｅ９３−８０４ｅ−ｄ０４ｂｆ１ｄｄｆｆ７８）および名前（例えば、“ｕｓｅｒ１”のＳｉｔｅ  Ａｃｃｅｓｓ）を備えている。説明のために、例示のスコープは“ｗ３ｓｖｃ／１”というメタベースサイトＩＤを備えている。
【００３５】
一実施形態では、あるスコープレベルで（すなわち、あるスコープ内で）１つまたは複数のロールを指定することにより、認可マネージャモジュール２０２をセキュリティポリシーストアとして使用する。例えば、それぞれのサイトへのセキュリティアクセスを変更するために、特定のロールを指定することができ、そのサイトの下に新しいノード（例えば、“ＷｅｂＤｉｒｓ”など）を表す別のロールを生成することができる。サイトのデフォルトドキュメントリストを変更するための、スコープ内のロールを例として示す。すなわち、"<AzRole Guid="3acl17fd-7fl2-4287-a7ff-982770d6ce49" Name="ChangeDefaultDoc"/>"。このロールは、作成時に割り当てられる一意の識別子を備えている（例えば、３ａｃｌｌ７ｆｄ−７ｆ１２−４２８７−ａ７ｆｆ−９８２７７０ｄ６ｃｅ４９、および名前、例えば、ＣｈａｎｇｅＤｅｆａｕｌｔＤｏｃ（この名前は、意味をなすように指定することができる））。表２は、スコープ内に定義されるロールの例を示す。
【００３６】
【表２】
0004718804.tif 000003
【００３７】
ロールは、そのロールが所属するスコープにアクセスできるアプリケーショングループに関して、少なくとも１つのタスクが指定された場合に定義される。タスクとは、管理者のためにある単位の作業を実行する、１つまたは複数の低レベル動作である。例えば、タスクは“Ｃｈａｎｇｅ  Ｐａｓｓｗｏｒｄ”の場合がある。タスクは、１つまたは複数の他のタスクをカプセル化できる。例えば、“Ｍａｎａｇｅ  Ｕｓｅｒ  Ａｃｃｏｕｎｔｓ”と呼ばれるタスクは、“Ｃｈａｎｇｅ  Ｐａｓｓｗｏｒｄ”、“Ｒｅｓｅｔ  Ｐａｓｓｗｏｒｄ”、“Ｄｉｓａｂｌｅ  Ａｃｃｏｕｎｔ”などのタスクを含むことができる。表３は、ロールの定義の例を示す。
【００３８】
【表３】
0004718804.tif 000004
【００３９】
表３に示すロールは、ＡｐｐＭｅｍｂｅｒＬｉｎｋ属性を含が、それはアプリケーショングループを、その一意の識別子、この例ではｂｆ９ｄ００ｆ０−２ｂｅ３−４３６７−ａ９３１−６８００３８ｂ５１ｄ０ａに基づいて参照する。表４は、関連ロールを有するスコープを示す。
【００４０】
【表４】
0004718804.tif 000005
【００４１】
（タスクおよびビジネスルールの定義）
ロールは、１つまたは複数のタスクを定義することができる。タスクは、ユーザが実行する許可を与えられる、１つまたは複数の低レベル「動作」、およびビジネスルールからなる。動作とは、あるタスクに関連付けられたセキュリティレベルを識別する、低レベルの許可である。いくつかの動作が、１つの意味をなすタスクを構成する場合がある。動作の例としては、“ＷｒｉｔｅＡｔｔｒｉｂｕｔｅｓ”および“ＲｅａｄＡｔｔｒｉｂｕｔｅｓ”が挙げられる。次の表５の例は、ユーザがウェブサイトのプロパティ（例えば、“ＤｅｆａｕｌｔＤｏｃ”プロパティ）を変更できるようにするタスクを示す。このタスクは２つの動作を含む。１つはこのプロパティの値を設定する動作であり、もう１つはこのプロパティの値を得る動作である。
【００４２】
【表５】
0004718804.tif 000006
【００４３】
表５の例では、前の属性の定義の場合と同様に、動作に一意の識別子と名前が割り当てられている。動作の最も重要な特性の１つがＯｐｅｒａｔｉｏｎＩＤ属性である。タスクは、このＯｐｅｒａｔｉｏｎＩＤを通して、１つまたは複数の動作を参照することができる。表６は、例示的タスクを定義する方法を示している。
【００４４】
【表６】
0004718804.tif 000007
【００４５】
表６の例は、１つのタスクが参照する２つの動作を示している。これは、ポリシーファイルをどのように定義することができるかを示すものである。複数の動作を参照するタスクも可能である。しかし、一実施形態において、ＩＩＳ委託管理フレームワークがそのツールで使用されるポリシーファイル内で確実に期待通りに動作するよう、タスクは１つの動作しか参照しない。このような実施形態では、動作がロール内のあるタスクによって参照されているときに、同じロール内の別のタスクがその動作を参照することはできない。ただし、別のロール内のタスクがその動作を参照することは可能であることに注意されたい。認可ポリシーストアの例示的構文に関するさらなる情報については、後に記載の表１１を参照されたい。
【００４６】
タスクは、一意のＩＤ、ビジネスルール、すなわちＢｉｚＲｕｌｅによって識別される、１つまたは複数の動作（例えば、表６に定義されている２つの動作）によって定義される。ビジネスルールは認可スクリプトとも呼ばれ、これは、ＪＳｃｒｉｐｔやＶＢＳｃｒｉｐｔなどのスクリプト言語で書かれている。本実施形態では、ユーザが所与のメソッドを実行できるかどうかを確認するためにＡｃｃｅｓｓＣｈｅｃｋ  ＡＰＩが呼び出されたときに実行されるタスクオブジェクトに、スクリプトが付加される。本実施形態では、オペレーティングシステム１５８（図１）の周知のプライベートオブジェクトセキュリティ（ＰＯＳ）ＡＰＩによってＡｃｃｅｓｓＣｈｅｃｋ  ＡＰＩが実装される。ＰＯＳ  ＡＰＩは、トークン中のユーザのグループメンバシップを見て、それらをアクセス制御リスト（ＡＣＬ）と比較し、ユーザが要求しているアクセス権を持っているかどうかを判断する。スクリプトは、「時刻」や「要求金額」など、実行時にのみ利用可能な情報を使って、認証の決定を行う。
【００４７】
表６の例では、ＪＳｃｒｉｐｔビジネスルールは、ユーザが実行しようとする可能性があるアクションに対して制限を課す。ユーザがタスクの一環として、ＯｐｅｒａｔｉｏｎＩＤ＝１を使って動作を実行しようとしたと仮定する。スクリプトは、ユーザがメソッドに渡したＤｅｆａｕｌｔＤｏｃパラメータの値を無効にすることができる。この例では、スクリプトは、ユーザが“ｉｎｄｅｘ．ｈｔｍ”とは異なるストリングにこのプロパティの値を設定することを許可しない。ＡｚＢｉｚＲｕｌｅＣｏｎｔｅｘｔは、ＢｉｚＲｕｌｅがアクセスできるオブジェクトである。そのＢｉｚＲｕｌｅＲｅｓｕｌｔプロパティを使って、ユーザが動作の実行を許可されているかどうかを判断することができる。
【００４８】
（ホスティングするリソースへのアクセスをユーザに委託すること）
認可マネージャ２０２に従うために、委託管理（ＤＡ）モジュール２０４は、認可マネージャ２０２にインタフェースする際に１組の入力値を使用し、および、ホスティングするリソース（例えば、ウェブサイト）に関して、ユーザが要求アプリケーション（例えば、リモートクライアントウェブサイト管理アプリケーション２０８）を介して実行することを望んでいる動作のパラメータである、別の１組の値を使用する。例えば、前の表６の例では、ＳｅｔＤｅｆａｕｌｔＤｏｃ動作について、ＤＡ２０４は、スコープ名、動作またはメソッド名、および上述のＢｉｚＲｕｌｅにおいて参照されたＤｅｆａｕｌｔＤｏｃパラメータの値を入力として利用する。
【００４９】
ＤＡ２０４は、構成ファイル２１８を使って、どの認可ポリシーストア２１４が入力スコープを含むかを判断し、また、入力動作またはメソッドの名前をＯｐｅｒａｔｉｏｎＩＤにマップする。本実施形態では、構成ファイル２１８は、所与の１組のユーザに割り当てられる各メソッドを指定／定義し、それらのメソッドを、認可ポリシーストア２１４内の対応する動作識別子（ＩＤ）にマップするＸＭＬファイルである。構成ファイル２１８はまた、メソッドのパラメータ、スコープのマッピング、ログファイルデータのフォーマット、およびコマンドラインのテンプレートも含む。スコープ名をマップする際に、ＤＡ２０４は、そのスコープが配置されている認可ポリシーストア２１４のパス、およびそのスコープが定義されている認可ポリシーストア中のアプリケーションの名前を、構成ファイル２１８から入手する。
【００５０】
ＤＡ２０４は、このような情報を得るために構成ファイルを構文解析した後、ストアパスを使って認可マネージャ２０２を初期化し、所望のアプリケーションを開き、およびユーザが要求している機能／リソースへのアクセス権を有するかどうかを判断するために用いられるクライアントコンテキストオブジェクトを得る。
【００５１】
（例示的な構成ファイルのフォーマット）
ＩＩＳ委託管理フレームワークは、「ストリング」型のレジストリエントリを使って構成ファイル２１８へのフルパス（例えば、ＨＫＬＭ＼Ｓｏｆｔｗａｒｅ＼Ｅｎｔｉｔｙ＼ＩＩＳＤｅｌＡｄｍｉｎ＼ＤｅｌｅｇＡｄｍｉｎＭａｐｐｉｎｇＰａｔｈ（ＲＥＧ＿ＳＺ））を記憶する。このようなストリングは、レジストリ２２０に記憶される。表７は、例示的構成ファイル２１８を示す。
【００５２】
【表７】
0004718804.tif 000008
【００５３】
この例示的な実施形態では、構成ファイル２１８は以下のエントリを含む。すなわち、ユーザに許可される各メソッドのエントリ、および、構成ファイル２１８中の既存のメソッドを参照するタスクを含むストアで使用される各スコープのエントリ。各スコープエントリは、認可ポリシーストア中のスコープを有するユーザに対応する。さらに、エントリは、所望の、および／またはデフォルトのログファイルデータフォーマットを定義する。
【００５４】
（メソッドおよびパラメータの構文）
表８は、構成ファイル２１８のＩＩＳＤＡＭｅｔｈｏｄノード内にメソッドを定義するための例示的テンプレートを示す。
【００５５】
【表８】
0004718804.tif 000009
【００５６】
本実施形態では、Ｄｅｓｃｒｉｐｔｉｏｎを除く全ての属性が利用されている。ＥｘｅｃｕｔｅＭｅｔｈｏｄが使用するノード定義からある属性がなくなっている場合、このメソッドはエラーを返す。（ＥｘｅｃｕｔｅＭｅｔｈｏｄは、ユーザによって要求された動作を実行するために（ユーザが認可されている場合に）、ＤＡモジュール２０４が公開したＡＰＩ２２２である）。
【００５７】
メソッドの構文は、以下の属性を含む。
●ＰｕｂｌｉｃＮａｍｅ−ユーザに公開された場合のメソッド名であり、ツールがエントリ（ＡＰＩ２２２を介してアクセスされ、ＤＡモジュール２０４によって公開される、ダイナミックリンクライブラリオブジェクト（例えば、ＣＯＭ）のＥｘｅｃｕｔｅＭｅｔｈｏｄメソッドのパラメータ）としての妥当性を検査する名前。
●ＥｘｅＰａｔｈ−ユーザによって要求されたメソッドを実行するために使用される、実行可能スクリプトまたはコマンドラインスクリプトへのパス、または、備えているメソッドのうちの１つを介して動作を実行するよう指定されたＣＯＭオブジェクトのＰｒｏｇＩＤのいずれかを定義する。
●ＡＺＳｔｏｒｅＩＤ−認可ポリシーストア中の、このメソッドに対応するＯｐｅｒａｔｉｏｎＩＤを定義する。
●ＣｍｄＬｉｎｅ−実行可能モジュールのコマンドラインが構築される方法を定義し、または、ＥｘｅＰａｔｈがＣＯＭオブジェクトのＰｒｏｇＩＤを指定する場合にはこのメソッドの名前を定義する。実行可能モジュールの場合、この属性で、キーワード、属性名／属性値（メソッド、パラメータ、およびスコープ属性）、およびパラメータインデックスを指定することができる。ＣｍｄＬｉｎｅ値の定義に関するさらなる情報については、後述する「ＣｍｄＬｉｎｅフィールドフォーマット」を参照されたい。
●ＷａｉｔＴｉｍｅｏｕｔ−ＣｒｅａｔｅＰｒｏｃｅｓｓ  ＡＰＩを呼び出した後、抜け出て、結果をログするまでに何秒待たなければならないかをＤＡ２０４に示す。ＣｒｅａｔｅＰｒｏｃｅｓｓの呼出しが成功した後、ツールは、ＷａｉｔＦｏｒＳｉｎｇｌｅＯｂｊｅｃｔ（ｐｒｏｃｅｓｓＨａｎｄｌｅ、ｔｉｍｅｏｕｔ）を呼び出して、そのプロセスが終了するのを待つ。動作がＣＯＭメソッドに関連付けられていない場合、この属性は使用されない。
●ＰｒｏｃｅｓｓＴｙｐｅ−メソッドを実行するために使用されるプロセスの型を指定する。この属性の有効値は“ＣＯＭ”（ＣＯＭメソッドがメソッドを実行することを指定する場合）および“ＣＭＤ”（コマンドライン実行可能がメソッドを実行することを指定する場合）である。
●Ｓｅｐａｒａｔｏｒ−実行可能モジュールの出力の粒度をより高くする際に支援する。特殊な文字（“＼ｒ”や“＼ｎ”など）の場合、このフィールドは、その文字をエスケープした形（例えば、“％０Ｄ”や“％０Ａ”）を含む。ツールは、常に、Ｓｅｐａｒａｔｏｒフィールドの値を読み取り、次いで、そのエスケープを解除する。したがって、これらの特殊文字を、ツールが分離文字として認識できるように指定することができる。例えば、結果が、サイトには認められない１組のＩＰアドレスを含むストリングであって、また、その結果が、“ＣＲＬＦ”（“＼ｒ＼ｎ”シーケンス）によって分離されたこれらのアドレス全てを含むストリングであると仮定する。ＩＩＳＤＡＭｅｔｈｏｄノードでＳｅｐａｒａｔｏｒ＝“％０Ｄ％０Ａ”が定義されていると、ＯｕｔｐｕｔＡｒｒａｙ関数は、それらのＩＰアドレスを備えたストリング全体を返す代わりに、各ストリングがその結果ストリングの各ＩＰアドレスに対応する、ストリングの配列を返す。
●Ｄｅｓｃｒｉｐｔｉｏｎ−メソッドの説明を追加する。これは、ユーザにメソッドを公開するアプリケーションにおいて使用することができる。例えば、ユーザがページ上のメソッド名の上でマウスを移動させたときにそのメソッドの説明を表示する、サンプルＡＳＰ．ＮＥＴアプリケーション、Ａｄｍｉｎが、これを使用する。
【００５８】
（パラメータの構文）
各メソッドは、ゼロ（０）または１つ以上のパラメータを定義することができる。以下のテンプレートは、パラメータがどのように定義されるかを示している。
<Parameter Name=" "MetabaseProperty=""Description=""/>
Ｐａｒａｍｅｔｅｒ  ＸＭＬタグが定義されている場合は、Ｄｅｓｃｒｉｐｔｉｏｎを除くすべての属性が利用される。ノードの定義からある属性がなくなっていて、そのノードをＥｘｅｃｕｔｅＭｅｔｈｏｄが使用した場合、このメソッドはエラーを返す。
【００５９】
メソッドのパラメータの構文は、以下の属性を使用する。
●Ｎａｍｅ−ツールが、ＡｃｃｅｓｓＣｈｅｃｋ関数にパラメータとして送る。同じ名前が、このパラメータが定義されているメソッドに対応する動作ＩＤを参照するタスクのＢｉｚＲｕｌｅで使用される。
●ＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ−実行モジュールが特定のメタベースプロパティをそのコマンドライン、例えば、“ａｄｓｕｔｉｌ．ｅｘｅ  ｇｅｔ  ｗ３ｓｖｃ／１／ＡｎｏｎｙｍｏｕｓＵｓｅｒＮａｍｅ”の一部として要求する場合に、使用することができる。この例では、パラメータが属性ＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ＝“ＡｎｏｎｙｍｏｕｓＵｓｅｒＮａｍｅ”を持っており、“ｗ３ｓｖｃ／１”はスコープで定義されているＭｅｔａｂａｓｅＮｏｄｅである。スコープの定義に関するさらなる情報については、後述の「スコープの構文」を参照されたい。
●Ｄｅｓｃｒｉｐｔｉｏｎ−説明をパラメータに関連付ける。例えば、このようなパラメータが属しているメソッドを公開するアプリケーションは、このフィールドを使って、そのパラメータの値に課される制限を表示することができる。
【００６０】
（インタフェースの構文）
Ｉｎｔｅｒｆａｃｅノードを使うことによって、動作を参照するタスク内でＢｉｚＲｕｌｅを実行するために使用するインタフェースを指定することができる。以下の例は、Ｉｎｔｅｒｆａｃｅノードの構文を示す。すなわち、<Interface Name=" "Flag=" "ProgID=" "/>。Ｉｎｔｅｒｆａｃｅノードは任意選択であって、そのメソッドを参照するタスクのビジネスルールにおいてＣＯＭオブジェクトが使用される場合に使用される。Ｉｎｔｅｒｆａｃｅノードが定義されている場合、属性の全てが利用される。ノード定義からある属性がなくなっていて、そのノードをＥｘｅｃｕｔｅＭｅｔｈｏｄが使用した場合、このメソッドはエラーを返す。
【００６１】
インタフェースの構文は以下の属性を使用する。
●Ｎａｍｅ−オブジェクトの名前を、ビジネスルールで使用される状態で識別する。
●Ｆｌａｇ−ＢｉｚＲｕｌｅスクリプトでオブジェクトを作成するために使用されるフラグを指定する。
●ＰｒｏｇＩＤ−ＣＯＭオブジェクトの独立したバージョンのＰｒｏｇＩＤを指定する。このノード中の対応するＮａｍｅは、実際にはこのオブジェクトのインスタンスである。ＢｉｚＲｕｌｅは、提供されたＮａｍｅを通じてのみこのオブジェクトを使用する。
【００６２】
各属性は、インタフェースに関連するＡｃｃｅｓｓＣｈｅｃｋが利用するパラメータに対応する。
【００６３】
（スコープの構文）
以下のテンプレートエントリはスコープを定義する。
<IISDAScope PublicName=" " AZName=" "MetabaseNode=" " AZStorePath=" " AZApplicationName=" " GenerateAudits=" " AuditName=" "/>
これらの属性は全て利用される。このうち１つがなくなっていて、そのノードをＥｘｅｃｕｔｅＭｅｔｈｏｄが使用した場合、このメソッドはエラーを返す。
【００６４】
スコープの構文は以下の属性を使用する。
●ＰｕｂｌｉｃＮａｍｅ−スコープが作成されたときにユーザに提供される名前であって、ユーザが、メタベース２１２のどのレベルで変更がなされたか（ユーザには、例えば、２つ以上のサイトが割り当てられる場合があるため）を識別するために提供する名前。
●ＡＺＮａｍｅ−このスコープに対応する、認可ポリシースコアファイルでのそのスコープの名前。ＭｅｔａｂａｓｅＮｏｄｅは実際のスコープを定義し、これは、実際にはユーザがアクセス権を有するメタベースノードである。
●ＡＺＳｔｏｒｅＰａｔｈ−このスコープが配置されている認可ポリシーストアのパス。この属性は、ＤＡモジュール２０４がこのスコープをサーチする認可ポリシーストアを指定する。
●ＡＺＡｐｐｌｉｃａｔｉｏｎＮａｍｅ−ストア中の、このスコープが定義されているアプリケーションを指定する。
●ＧｅｎｅｒａｔｅＡｕｄｉｔｓ−このスコープへのアクセスの試みによって監査が生成されるかどうかを指定する。
●ＡｕｄｉｔＮａｍｅ−アクセスされたオブジェクトを識別するために、監査で使用されるキーストリングを指定する（本実施形態では、特にこのスコープがアクセスされたことを確認する）。
【００６５】
（ログファイルの構文）
構成ファイル２１８はまた、以下のテンプレートを使って、ログファイル２２４のフォーマットを定義する。
<IISDALog Path=" ">
<Field Name=" "/>
<Field Name=" "/>
</IISDALog>
【００６６】
ログファイル２２４の構文は以下の属性を使用する。
●Ｐａｔｈ−このログファイルが記憶されている場所のパスを定義する。この属性が利用される。それが存在しない場合、ツールはエラーを返す。この属性の値は、有効でアクセス可能なフォルダを指す。そうではない場合、本実施形態のツールは何もログせず、例外を生成する。最初にログファイルを作成する場合、アプリケーションは、親フォルダ（Ｐａｔｈ属性の値によって識別される）から継承したセキュリティ設定を使用する。これは、ＣＯＭ＋アプリケーション（その他のモジュール２１０）のアイデンティティがこのフォルダへ読取り／書込みアクセスを行ったことを意味する。
●Ｆｉｅｌｄ−関連するＮａｍｅ属性を使って、ログファイル中の各フィールドを識別する。フィールドに関するさらなる情報については、後述の「ログファイルのフィールド」を参照されたい。
【００６７】
ＥｘｅｃｕｔｅＭｅｔｈｏｄ（ＥｘｅｃｕｔｅＭｅｔｈｏｄは、ユーザが要求した動作を、そのユーザが認可されている場合に実行するために、ＤＡモジュール２０４が公開したＡＰＩ２２２である。ＥｘｅｃｕｔｅＭｅｔｈｏｄによって実装された動作またはタスクは、実行モジュール２０８として示される）の結果は、コンマで区切った値のログフォーマットを使ってログされる。本実施形態では、構成ファイル２１８中にロギングセクションが存在しない場合、ＤＡ２０２は何もログせず、例外をスローする。
【００６８】
（ログファイルのフィールド）
ログファイルは任意の数のフィールドを備えることができ、それらのフィールド各々は、ＦｉｅｌｄサブノードのＮａｍｅ属性によって識別される。ログファイルには、デフォルトで次の最初の６フィールドが含まれている。
要求（ＥｘｅｃｕｔｅＭｅｔｈｏｄの呼出し）の日付および時間（Ｄａｔｅフィールド）。
ユーザの名前（Ｕｓｅｒフィールド。例えば、．ａｓｐｘページ内でＥｘｅｃｕｔｅＭｅｔｈｏｄが呼び出された場合には、その．ａｓｐｘページへのアクセスが許可されたユーザの名前がログされる）。
発呼者が提供したメソッド名（Ｍｅｔｈｏｄフィールド）。
発呼者が提供したスコープ名（Ｓｃｏｐｅフィールド）。
メソッドに対応するＥｘｅＰａｔｈ属性の値（構成ファイル属性中のメソッド定義の属性であるＰｒｏｃｅｓｓＴｙｐｅ属性）。
メソッドに対応するＣｍｄＬｉｎｅ属性の値（ＣｍｄＬｉｎｅフィールド）。
【００６９】
委託管理２０４はまた、最後の２つの位置に、ＥｘｅｃｕｔｅＭｅｔｈｏｄ関数２０８の結果（Ｒｅｓｕｌｔフィールド）および例外情報（Ｅｘｃｅｐｔｉｏｎフィールド）をログする。例外情報は、例外のコンテキストについての詳細（すなわち、メソッド実行のどの段階でその例外が発生したかについて）、およびツールが捉えた例外コードを提供する。
【００７０】
（ＣｍｄＬｉｎｅフィールドのフォーマット）
６番目のフィールド、ＣｍｄＬｉｎｅは、特記を利用する。ＰｒｏｃｅｓｓＴｙｐｅ＝“ＣＯＭ”を有するＩＩＳＤＡＭｅｔｈｏｄノードの場合、このフィールドにログされる値は、構成ファイル２１８でＣｍｄＬｉｎｅ属性に定義されて表されている通りである。ＰｒｏｃｅｓｓＴｙｐｅ＝“ＣＭＤ”を有するＩＩＳＤＡＭｅｔｈｏｄの場合、このフィールドにログされた値は、ＣｍｄＬｉｎｅ属性中の構成ファイル２１８に定義されて表されている通りであるか、または、（ストリングがＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓを参照する場合に）もしＥｘｅｃｕｔｅＭｅｔｈｏｄが、実行可能モジュールのコマンドラインを返す前に、実際に構築したのであるならばその実行可能モジュールのフルコマンドラインの値であるかいずれかである。これは、要求の要素をできるだけ多くの把握する助けとなり、また、トラブルシューティングプロセスを容易なものとする、より多くの情報をログファイル中に供給する。
【００７１】
定義されているＦｉｅｌｄノードがない場合、ＤＡモジュール２０４は、例えば、上述の８フィールドをログし、およびＩＩＳＤＡＬｏｇノードは、ログファイルパスを得るためだけに使用される。通常、デフォルトでログされる上述のフィールドに加えて、役に立つ場合があるその他のフィールドがあるため、フィールド名は、“Ｐａｒａｍ１”、“Ｐａｒａｍ２”といった形態になる。
【００７２】
本実施形態では、“Ｐａｒａｍ”フィールドは、上述の最初の６フィールドの後にログされる。パラメータ値のリストが、ＩＩＳＤＡＬｏｇノード中の実際のＦｉｅｌｄノードの数よりも多くの要素を含んでいる場合、それらのパラメータ値の全てがログされるわけではない。しかし、ＩＩＳＤＡＬｏｇノード中のＦｉｅｌｄノードの数よりも、メソッドのパラメータ値の数が少ない場合には、ログエントリ中の残りのフィールド値はスペース（“  ”）からなる。
【００７３】
（コマンドラインパラメータのフォーマット）
構成ファイル２１８では、実行されるメソッドのコマンドラインパラメータのフォーマットを（言い換えれば、ＰｒｏｃｅｓｓＴｙｐｅ属性が“ＣＭＤ”の場合に、ＩＩＳＤＡＭｅｔｈｏｄのＣｍｄＬｉｎｅ属性の値がどのように解釈されるかを）定義することができる。以下のテンプレートは、コマンドラインパラメータのフォーマットを示す。
<IISDACmdLineKeys>
<IISDACmdLineKey Name=" " AttributeName=" "Node=" "/>
</IISDACmdLineKeys> 
【００７４】
ＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓは、次の属性を備える。
●Ｎａｍｅ−コマンドラインストリング中でキーとして使用される。
●ＡｔｔｒｉｂｕｔｅＮａｍｅ−構成ファイル内で、ＩＩＳＤＡＭｅｔｈｏｄ、ＩＩＳＤＡＳｃｏｐｅ、またはＰａｒａｍｅｔｅｒノードの下に、そのキーが参照する属性の名前を指定する。この属性によって、属性名自体、またはそれが参照する属性値のいずれかを指定することができる。
●Ｎｏｄｅ−その下にＡｔｔｒｉｂｕｔｅＮａｍｅが配置されているノードを識別する。Ｎｏｄｅ属性は、“ＩＩＳＤＡＭｅｔｈｏｄ”、“ＩＩＳＤＡＳｃｏｐｅ”、“Ｐａｒａｍｅｔｅｒ”の値のうち１つを備えることができる。
【００７５】
コマンドラインテンプレートによって、委託管理２０２は、メソッドのコマンドライン定義（ＩＩＳＤＡＭｅｔｈｏｄノードのＣｍｄＬｉｎｅ属性）内でトークンをサポートすることができる。このようなトークンには、例えば表９に示すトークンが含まれる。
【００７６】
【表９】
0004718804.tif 000010
【００７７】
本実施形態では、コマンドラインを構築するのに＃および＄が使用されるため、これらの文字は次の意味において制限される。すなわち、これらの文字２つによるシーケンス（＃ストリング＃や＄ストリング＄のような）がある場合、ツールは「ストリング」と同等のＮａｍｅ属性を有するＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙノードを見つけようとする。これは、移植に依存する機能であり、設計アーキテクチャが示唆するように修正可能である。
【００７８】
このコマンドラインパラメータを定義する技術によって、モジュールコマンドライン中に％ＳＹＳＴＥＭＲＯＯＴ％などの環境変数を指定することが可能になる。ＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙノードが作成されると、全ての属性が利用される。そうではない場合、ＥｘｅｃｕｔｅＭｅｔｈｏｄは、ノードを構文解析しようとする際に失敗する。ＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙノードの定義、および、実行時にそれらがどのように解釈されるかに関するさらなる情報については、ＣｍｄＬｉｎｅおよびＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓの例を参照されたい。
【００７９】
（委託管理モジュールによって公開される例示的メソッド（ＡＰＩ２２２））
委託管理モジュール２０２は、ＡＰＩ２２２を介して以下のメソッドを公開する。
●Ｐａｒａｍｅｔｅｒｓメソッド−動作に関連するパラメータを設定する。このメソッドのパラメータは、ＶＴ＿ＡＲＲＡＹ型（配列中の各要素がＶＴ  ＢＳＴＲ型で）の変形またはＶＴ＿ＢＳＴＲ型の変形である。このメソッドは、ＥｘｅｃｕｔｅＭｅｔｈｏｄが呼び出される前に呼び出される。
●ＰａｒａｍＥｒｒｏｒメソッド−Ｐａｒａｍｅｔｅｒｓメソッドによってパラメータが正しく設定されたかどうかをチェックする。パラメータが無事に設定された場合には０を返す。Ｐａｒａｍｅｔｅｒｓメソッドによってパラメータが正しく設定されなかった場合にＥｘｅｃｕｔｅＭｅｔｈｏｄを呼び出すことを避けるためにこのメソッドを呼び出す。
●ＥｘｅｃｕｔｅＭｅｔｈｏｄメソッド−ユーザが要求した動作を実行する。無事に完了した場合には０を返す。このメソッドを呼び出す前に、動作が少なくとも１つのパラメータを利用しているのであれば、Ｐａｒａｍｅｔｅｒｓメソッドを呼び出す。実行が失敗した場合に返されるエラーコードに関する情報については、委託管理の戻り値を参照されたい。ＥｘｅｃｕｔｅＭｅｔｈｏｄメソッドは、以下のパラメータを備えている。
○Ｓｃｏｐｅ名−動作の実行を要求しているユーザに関連するスコープの名前。メソッドをユーザに公開するアプリケーションは、このスコープをユーザから収集する。例えば、ユーザは、サンプルＡＳＰ.ＮＥＴアプリケーションを使って、管理すべきサイトの名前を指定する。この名前は、セッション変数として記憶され、ＥｘｅｃｕｔｅＭｅｔｈｏｄが呼び出されるときはいつでも使用される。このパラメータの型はＢＳＴＲである。
○Ｍｅｔｈｏｄ名−ユーザが実行しようとするメソッドの名前。この名前は、構成ファイル中のＩＩＳＤＡＭｅｔｈｏｄノードのＰｕｂｌｉｃＮａｍｅ属性の値に対応する。このパラメータの型はＢＳＴＲである。
○ＬｏｇＲｅｓｕｌｔ−メソッドが動作の結果をログすべきかどうかを指定するブール値。
○ＥｘｅｃｕｔｅＯｐｅｒａｔｉｏｎ−ＥｘｅｃｕｔｅＭｅｔｈｏｄメソッドがコマンドラインを実行するか、またはメソッドに関連するＣＯＭメソッドを呼び出すかを指定するブール値。このパラメータは、ユーザがＥｘｅｃｕｔｅＭｅｔｈｏｄを実行するためのアクセス権を許可されているかどうかをＡｃｃｅｓｓＣｈｅｃｋが決定する点まで、ＥｘｅｃｕｔｅＭｅｔｈｏｄを使用したい場合に役立つ。どのメソッドもコマンドラインも実行しないことを選択した場合（このパラメータをＦＡＬＳＥに設定することによって）、ＩＩＳＤＡＭｅｔｈｏｄノードの対応する属性の値を空ストリングにしておくことができる。ＡｃｃｅｓｓＣｈｅｃｋが返した後、その結果がログされる。
【００８０】
（ウェブサイトの管理を委託するための例示的手順）
図３は、委託されたウェブサイト管理のための例示的手順３００を示す。特に、この手順は、ユーザがウェブサイトのプロパティを修正しようとする場合に行われる例示的処理を示す。この場合、そのウェブサイトは、説明した図１および２のＩＩＳ委託管理フレームワークを実装しているＩＳＰがホスティングするものである。したがって、また説明のために、この手順の動作を、図１および２の機能に関して説明する。上述のように、図中、コンポーネントの参照番号の一番左側の桁は、そのコンポーネントが最初に記載された特定の図１を識別するものである。
【００８１】
ブロック３０２で、管理エンティティ（例えば、管理グループのメンバ）は、コンピュータ１３０（図１）がホスティングするアプリケーションおよび／またはリソースに関する動作の１つまたは複数のパラメータを供給する。このような供給は、認可モジュール２０２（図２）によって公開されるＡＰＩ２１６を介して行われる。
【００８２】
ブロック３０４で、ユーザは、コンピュータ１３０（図１）がホスティングする、リモートウェブサイト管理（ＲＣＷＡ）アプリケーション２０６（図２）などのアプリケーションを実行する。ＲＷＳＡアプリケーション２０６によって、ウェブサイト所有者などのユーザは、コンピュータ１３０（図１）がホスティングするウェブサイトまたはリソースの内容および／または機能、あるいはその他の態様の修正、テスト、またはその他の管理を行うことができる。以下に説明するように、このような管理の認可は、委託認可（ＤＡ）モジュール２０４が動的に決定する。この例では、ユーザは、図１のコンピュータ１３０に関連する構成および／またはリソースの管理に関する管理グループのメンバではない。ただし、ユーザがそのような管理グループのメンバの場合もあり得る。ブロック３０６で、ホスティングするリソース（例えば、ウェブサイトなど）に関する少なくとも１つの動作の実行をユーザが要求する。このために、アプリケーション（例えば、ＲＷＳＡアプリケーション２０６）は、委託認可（ＤＡ）モジュール２０４によって公開される１つまたは複数のＡＰＩ２２２を呼び出して、その動作へのアクセスを要求する。すでに述べたように、ホスティングするリソースに対するユーザ動作アクセスは、表１０に示すように、いくつかの機能の層によって制御される。
【００８３】
【表１０】
0004718804.tif 000011
【００８４】
ブロック３０８で、委託管理モジュール２０４は、要求された動作によってリソースにアクセスすることをユーザが認可されているかどうかを判断する。この判断は、そのユーザがコンピュータ１３０（図１）のリソースの管理に関する管理グループのメンバであるかどうかには全く無関係になされる。このために、ＤＡモジュール２０４は、ＰａｒａｍｅｔｅｒｓメソッドＡＰＩ２２２を介して、ＥｘｅｃｕｔｅＭｅｔｈｏｄパラメータを設定する。ＥｘｅｃｕｔｅＭｅｔｈｏｄは、構成ファイル２１８へのパスを提供する、レジストリ２２０中のエントリを探す。構成ファイル２１８は、あらゆるユーザが実行でき、また、管理エンティティが各ユーザのエントリ（すなわち、ＩＩＳＤＡＳｃｏｐｅノード）を追加することができる、あらゆる可能な方法を指定する。
【００８５】
この時点で、ブロック３０６において、ＥｘｅｃｕｔｅＭｅｔｈｏｄは、構成ファイル２１８を読み出し、要求された動作名、スコープ、およびパラメータをそのファイル中のエントリにマップすることを試みる。これらのエントリが見つかった場合には、認可ポリシーストア２１４に関連する情報（すなわち、ＩＩＳＤＡＳｃｏｐｅノード属性から引き出された情報）が検索される。ＥｘｅｃｕｔｅＭｅｔｈｏｄは、認可ポリシーストア２１４から情報を検索し、（例えば、ＡｃｃｅｓｓＣｈｅｃｋを呼び出して）ユーザが指定されたスコープに対するアクセス権を持っているかどうかを、そのメソッドおよび提供されたパラメータに基づいて検証する。これを行うために、ＥｘｅｃｕｔｅＭｅｔｈｏｄは、発呼者を偽装して、それがホスティングするリソースに対し、クライアントのアイデンティティをクライアントの代わりに提示し、そのクライアントのアイデンティティに対するアクセスチェックまたは認証が行われるようにする。（偽装は、セキュリティ上のコンテキストで実行するスレッドの機能であり、そのスレッドを所有するプロセスの機能とは異なる機能である。）
【００８６】
ブロック３１０で、ユーザが要求した動作の実行が認可されていないと判断された場合、ユーザはその動作へのアクセスを拒否される。しかし、ブロック３１２で、ユーザがスコープへのアクセスを許可され、および、参照されるメソッドがユーザのスコープ内のタスク中にあるならば、ＥｘｅｃｕｔｅＭｅｔｈｏｄはプロセス（すなわち、認可プロセス２１０）を実行し、またはＣｏｍｍａｎｄ  Ｌｉｎｅ２１０を構築して、ユーザが要求している動作を実施するプロセスを実行する（すなわち、オブジェクト（例えば、ＣＯＭオブジェクト）またはＣｏｍｍａｎｄ  Ｌｉｎｅを介して実行する）。
【００８７】
例えば、ＤＡモジュール２０２は、実際に動作／メソッドを実行する実行可能モジュールのコマンドラインを構築するか、あるいは、その動作に関連するＣＯＭオブジェクトを初期化して、指定したメソッドのＤＩＳＰＩＤを得ることを試みる。次いで、ＤＡモジュール２０２は、最初のブールパラメータ中に何が指定されているかに応じて、ＣｒｅａｔｅＰｒｏｃｅｓｓまたはその動作に関連するＣＯＭメソッドを呼び出す。ＣｒｅａｔｅＰｒｏｃｅｓｓの場合、ＤＡモジュール２０２は、構築されたばかりのコマンドライン２１０を使用し、プロセスは、アプリケーション（ＣＯＭアプリケーション）のユーザコンテキストの下で開始する。説明のために、このようなアプリケーションを認可プロセス２１０中に示す。
【００８８】
ブロック３１４で、要求された動作が無事に実行されたならば、認可プロセス２１０は出力配列を構築し、その出力配列をログファイル２２４にログする。説明のために、このような出力配列を「その他のデータ」２２６のそれぞれの部分として示す。本実施形態では、メソッドの戻り型がＶＴ＿ＢＳＴＲまたはＶＴ＿ＡＲＲＡＹの場合、配列中の全ての要素がＶＴ＿ＢＳＴＲ型である。
【００８９】
（例示的委託管理）
表１１は、認可ポリシーストア２１４の例示的フォーマットを示す。この型のファイルの構文に関するさらなる情報については、「認可ポリシーストアのファイルフォーマット」を参照されたい。
【００９０】
【表１１】
0004718804.tif 000012
【００９１】
【表１２】
0004718804.tif 000013
【００９２】
（ＣｍｄＬｉｎｅおよびＤＡＣｍｄＬｉｎｅＫｅｙｓの例）
以下の例は、構成ファイル２１８中の設定、およびＥｘｅｃｕｔｅＭｅｔｈｏｄメソッドおよびＰａｒａｍｅｔｅｒｓメソッドに渡されるパラメータに基づいて、どのようにモジュールのコマンドラインが構築されるかを示す。
【００９３】
【表１３】
0004718804.tif 000014
【００９４】
以下の例は、表１２の例示的コマンドラインが引き出される、構成ファイル２１８の例示的構文を示す。
【００９５】
【表１４】
0004718804.tif 000015
【００９６】
次のパラメータがＥｘｅｃｕｔｅＭｅｔｈｏｄに渡される。すなわち“Ｓｃｏｐｅ１”、“ＳｅｔＦｌａｇｓ”、ｔｒｕｅ、ｔｒｕｅ。“３”というパラメータがＰａｒａｍｅｔｅｒｓに渡される。このメソッドのＣｍｄＬｉｎｅ属性の値は、“ＳＥＴ  ＃ｍｎ＃／＃ｍｐ＠１＃  ＃１＃”である。委託管理２０２（「ツール」）は、２つの＃文字または＄文字で区切られた最初のシーケンス、この例では＃ｍｎ＃を見る。ツールは、Ｎａｍｅ＝“ｍｎ”という属性を持つ、ＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓのサブノードを見つけることを試みる。ＩＩＳ委託管理は、それが参照するＡｔｔｒｉｂｕｔｅＮａｍｅ、この例ではＭｅｔａｂａｓｅＮｏｄｅ、およびこの属性が定義されているとみなされているＮｏｄｅ、この例ではＩＩＳＤＡＳｃｏｐｅを突き止める。ツールは、“Ｓｃｏｐｅ１”がＥｘｅｃｕｔｅＭｅｔｈｏｄの発呼者によって指定されたスコープであるため、＃ｍｎ＃シーケンスをスコープ“Ｓｃｏｐｅ１”中に定義されている属性ＭｅｔａｂａｓｅＮｏｄｅの値と置き換える。この例では、この値は“ｗ３ｓｖｃ／１／Ｒｏｏｔ”である。
【００９７】
委託管理２０２は、２つの＃文字または＄文字で区切られた次のシーケンス、この例では＃ｍｐ＠１＃を評価して、Ｎａｍｅ＝“ｍｐ”という属性を持つＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓのサブノードを突き止める。委託管理２０２は、それが参照するＡｔｔｒｉｂｕｔｅＮａｍｅ、この例ではＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ、およびその属性が定義されているとみなされるＮｏｄｅ、この例ではＰａｒａｍｅｔｅｒを突き止める。“＠１”はトークン中に存在するため、ツールは、トークン＃ｍｐ＠１＃を、インデックス１のパラメータに定義されているＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ属性の値、この例では“ＡｃｃｅｓｓＦｌａｇｓ”と置き換える。
【００９８】
上記の説明から、このコマンドラインを生成するために次のアクションが行われる。すなわち、＃文字や＄文字で区切られていないため、“ＳＥＴ”が使用される。＃ｍｎ＃が“ｗ３ｓｖｃ／１”と置き換えられる。＃文字や＄文字で区切られていないため、“／”が使用される。＃ｍｐ＠１＃が“ＡｃｃｅｓｓＦｌａｇｓ”と置き換えられる。そして、＃１＃が、インデックス１のパラメータの値、すなわち３と置き換えられる。
【００９９】
【表１５】
0004718804.tif 000016
【０１００】
次の例は、表１２の例示的コマンドラインが引き出される、構成ファイル２１８の例示的な構文を示す。
【０１０１】
【表１６】
0004718804.tif 000017
【０１０２】
パラメータ“Ｓｃｏｐｅ１”、“ＳｅｔＦｌａｇｓ”が、ＥｘｅｃｕｔｅＭｅｔｈｏｄに渡される。パラメータ“３”がＰａｒａｍｅｔｅｒｓに渡される。このコマンドラインがどのように構築されるかについての次の説明を理解するために、構成ファイルの構文を参照されたい。メソッドのＣｍｄＬｉｎｅ属性の値は“ＳＥＴ  ＄ｍｎ＄  ＃ｍｐ＠１＃  ＃１＃”になる。委託管理２０２は、２つの＃文字または＄文字で区切られた最初のシーケンス、この例では＄ｍｎ＄を見て、Ｎａｍｅ＝“ｍｎ”という属性を持つＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓのサブノードを見つけようとする。委託管理２０２は、それが参照するＡｔｔｒｉｂｕｔｅＮａｍｅ、すなわちＭｅｔａｂａｓｅＮｏｄｅ、およびこの属性が定義されているとみなされるＮｏｄｅ、すなわちＩＩＳＤＡＳｃｏｐｅを見つけ、“Ｓｃｏｐｅ１”がＥｘｅｃｕｔｅＭｅｔｈｏｄの発呼者によって指定されたスコープであるため、＄ｍｎ＄シーケンスを“Ｓｃｏｐｅ１”スコープ中に定義されているＭｅｔａｂａｓｅＮｏｄｅ属性の名前と置き換える。委託管理２０２は、２つの＃文字または＄文字で区切られた次のシーケンス、この例では＃ｍｐ＠１＃を見て、Ｎａｍｅ＝“ｍｐ”という属性を持つＩＩＳＤＡＣｍｄＬｉｎｅＫｅｙｓのサブノードを突き止めることを試みる。委託管理２０２は、それが参照するＡｔｔｒｉｂｕｔｅＮａｍｅ、すなわちＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ、およびこの属性が定義されているとみなされるＮｏｄｅ、すなわちＰａｒａｍｅｔｅｒを突き止める。トークン中に“＠１”が存在するため、ツールは、トークン＄ｍｐ＠１＄を、インデックス１のパラメータに定義されているＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ属性の値、この例では“ＡｃｃｅｓｓＦｌａｇｓ”と置き換える。
【０１０３】
要約すると、このコマンドラインを生成するために次のアクションが行われる。すなわち、＃文字や＄文字で区切られていないため、“ＳＥＴ”が使用される。＄ｍｎ＄が“ＭｅｔａｂａｓｅＮｏｄｅ”と置き換えられる。＃ｍｐ＠１＃が“ＡｃｃｅｓｓＦｌａｇｓ”と置き換えられる。そして、＃１＃が、インデックス１のパラメータの値、すなわち３と置きかえられる。
【０１０４】
【表１７】
0004718804.tif 000018
【０１０５】
次の例は、表１２のコマンドラインが引き出される、構成ファイルの構文を示す。
【０１０６】
【表１８】
0004718804.tif 000019
【０１０７】
“Ｓｃｏｐｅ１”、“ＳｅｔＦｌａｇｓ”というパラメータがＥｘｅｃｕｔｅＭｅｔｈｏｄに渡される。次のパラメータがＰａｒａｍｅｔｅｒｓに渡される。すなわち、“１”、“１”、“１”というストリングを含む配列。このコマンドラインがどのように構築されるかについての次の説明を理解するために、構成ファイルの構文を参照されたい。メソッドのＣｍｄＬｉｎｅ属性の値は“ＳＥＴ  ＃１＃  ＃２＃  ＃３＃”になる。ツールは、２つの＃文字または＄文字で区切られた最初のシーケンス、この例では＃１＃を見る。２つの＃文字の間に数字があるため、ツールはこのトークンを最初のパラメータの値と置き換える。ツールは、次の２つのトークン、＃２＃と＃３＃についても同じ手順を実施する。
【０１０８】
【表１９】
0004718804.tif 000020
【０１０９】
次の例は、誤った数のパラメータをＰａｒａｍｅｔｅｒｓメソッドに供給したためにエラーが発生するコマンドラインを示す。表１４のコマンドラインが引き出される構成ファイルの構文は次の通りである。
【０１１０】
【表２０】
0004718804.tif 000021
【０１１１】
“Ｓｃｏｐｅ１”、“ＳｅｔＦｌａｇｓ”というパラメータがＥｘｅｃｕｔｅＭｅｔｈｏｄに渡される。次のパラメータがＰａｒａｍｅｔｅｒｓに渡される。すなわち、“１”、“１”、“１”というストリングを含む配列。
【０１１２】
この例では、コマンドラインがインデックス４のパラメータを参照するため（ＣｍｄＬｉｎｅ属性中で＃４＃を指定することにより）、委託管理モジュール２０２はエラーを返す。しかし、Ｐａｒａｍｅｔｅｒｓは、３つだけパラメータを受け取る。したがって、コマンドラインは構築されない。
【０１１３】
（例示的構成ファイル）
次の構成ファイル２１８は、“ＳｅｔＰｒｏｐｅｒｔｙ”メソッドおよび関連するマッピング、すなわち、ユーザの“ｗｗｗ．ｆａｂｒｉｋａｍ．ｃｏｍ”という名前のスコープ、ログファイルフォーマット、およびコマンドラインのトークンのテンプレートを定義する。
【０１１４】
【表２１】
0004718804.tif 000022
【０１１５】
（ＳｅｔＰｒｏｐｅｒｔｙメソッド）
表１５の例において、このメソッドは、認可ポリシーストア２１４中のＯｐｅｒａｔｉｏｎＩＤ＝１のメソッドに対応する。要求されたアクションを実行する実行ファイルまたはコマンドライン２１０のパスは“Ｃ：＼Ａｄｓｕｔｉｌ．ｅｘｅ”である。このメソッドのコマンドラインテンプレートは“ＳＥＴ  ＃ｍｎ＃  ＃１＃”である。このメソッドが実行されるためのタイムアウトは１０秒間である。分離文字や説明は何も定義されない。このメソッドは、“Ｆｌａｇｓ”という名前のパラメータを１つだけ有する。これは、ＩＩＳメタベース中の“ＡｃｃｅｓｓＦｌａｇｓ”プロパティに対応する。このメソッドは、“ＭｙＯｂｊｅｃｔ”というオブジェクト名（“Ｓｃｒｉｐｔｉｎｇ．ＦｉｌｅＳｙｓｔｅｍＯｂｊｅｃｔ”オブジェクトのインスタンスに対応）を、認可ポリシーストア中のＩＤ１の動作を参照するタスクに関連付けられた、ＢｉｚＲｕｌｅが使用できるものとして定義する。
【０１１６】
表１５の例では、“ｗｗｗ．ｆａｂｒｉｋａｍ．ｃｏｍ”として定義されているスコープは、“Ｃ：＼Ｓｔｏｒｅ．ｘｍｌ”に位置付けられているストア中の、“Ｓｃｏｐｅ１”という名前のスコープに対応する。このストア内のこのスコープは、“ＳｅｃｕｒｉｔｙＡｐｐｌｉｃａｔｉｏｎ”アプリケーションの下で定義される。このスコープへアクセスすると、ＥｖｅｎＬｏｇ中のそのエントリを識別するために“Ｓｃｏｐｅ１”という名前を使う監査が生成される。
【０１１７】
（コマンドラインのトークンのフォーマット）
このテンプレートは、“ＳｅｔＰｒｏｐｅｒｔｙ”メソッドのＣｍｄＬｉｎｅ属性が“ｍｎ”キーを含むトークンのみを（パラメータ値の“ｋｅｙｗｏｒｄｓ”および＃Ｄ＃トークンの他に）使用できることを定め、名前によって（＄ｍｎ＄を使って）、または値によって（＃ｍｎ＃を使って）“ＩＩＳＤＡＳｃｏｐｅ”の下で定義される、“ＭｅｔａｂａｓｅＮｏｄｅ”という名前の属性を識別し、ＥｘｅｃｕｔｅＭｅｔｈｏｄにパラメータとして指定されるスコープに対応する。
【０１１８】
（例示的シナリオ：ＥｘｅｃｕｔｅＭｅｔｈｏｄはどのように動作するか）
このシナリオでＥｘｅｃｕｔｅＭｅｔｈｏｄがどのように動作するかを理解するために、以下の簡略化した構成および認可マネージャファイルを参照されたい。構成ファイル２１８は次の通りである。
【０１１９】
【表２２】
0004718804.tif 000023
【０１２０】
例示的認可ポリシーストア２１４は次の通りである。
【０１２１】
【表２３】
0004718804.tif 000024
【０１２２】
この例示的シナリオでは、以下を前提とする。すなわち、レジストリエントリ、ＨＫＬＭ＼Ｓｏｆｔｗａｒｅ＼Ｍｉｃｒｏｓｏｆｔ＼ＩＩＳＤｅｌＡｄｍｉｎ＼ＤｅｌｅｇＡｄｍｉｎＭａｐｐｉｎｇＰａｔｈ（ＲＥＧ＿ＳＺ）が定義されて、“Ｃ：＼ＤｅｌｅｇＡｄｍｉｎ＼Ｃｏｎｆｉｇ＼Ｃｏｎｆｉｇ．ｘｍｌ”というストリングが含まれる。これは構成ファイル２１８である。Ｄｅｌｅｇａｄｍ．ｄｌｌオブジェクトは、アイデンティティがこのレジストリエントリへの読取りアクセスを有するＣＯＭ＋アプリケーション（すなわち認可プロセス２１０）の内部で実行する。
【０１２３】
ユーザ、例えば、“ｕｓｅｒｌ”は、グループＡｐｐｌｉｃａｔｉｏｎＡｃｃｅｓｓＧｒｏｕｐの下の次のＳＩＤによって、ストア中で識別される。
【０１２４】
<Member>S-1-5-21-3131233723-616130271-937215924-1032</Member>
このユーザは、“ＳｅｔＡｃｃｅｓｓＰｒｏｐｅｒｔｙ”メソッドを実行するためのアプリケーション（例えば、リモートクライアントウェブサイト管理アプリケーション２０６）への要求を行う。この要求において、スコープは、“ＳｃｏｐｅＵｓｅｒ１”、メソッドは“ＳｅｔＡｃｃｅｓｓＰｒｏｐｅｒｔｙ”、およびそのメソッドのパラメータは“１”である。この要求に基づいて、次の簡略化されたコードが．ａｓｐページで実行される。
【０１２５】
【表２４】
0004718804.tif 000025
【０１２６】
このコードは、ｕｓｅｒ１が、“ＳｅｔＡｃｃｅｓｓＰｒｏｐｅｒｔｙ”メソッドを呼び出し、認可マネージャＡＰＩを使うことによって、“ＳｃｏｐｅＵｓｅｒ１”に対応するサイトについてＡｃｃｅｓｓＦｌａｇｓプロパティを１に設定できるようにすることを試みる。
【０１２７】
（例示的ＥｘｅｃｕｔｅＭｅｔｈｏｄ処理）
このタスクを実行するために、ＥｘｅｃｕｔｅＭｅｔｈｏｄ内で次のステップが実行される。すなわち、指定されたパラメータの妥当性が検査される。“Ｐａｒａｍｅｔｅｒｓ”メソッドの構文のところで述べたように、Ｐａｒａｍｅｔｅｒｓメソッドのパラメータは、ストリングまたはストリングの配列のいずれかであり得る。この例では、パラメータがストリングであるため、受け付けられる。パラメータが拒絶された場合、対応するエラーコードがログされる。このオブジェクトは、レジストリエントリ、ＨＫＬＭ＿Ｓｏｆｔｗａｒｅ＿Ｍｉｃｒｏｓｏｆｔ＿ＩＩＳＤｅｌＡｄｍｉｎ＿ＤｅｌｅｇＡｄｍｉｎＭａｐｐｉｎｇＰａｔｈの値を得ることを試みる。この例では、その値がＣ：＼ＤｅｌｅｇＡｄｍｉｎ＼Ｃｏｎｆｉｇ＼Ｃｏｎｆｉｇ．ｘｍｌとして定義されている。ＣＯＭ＋アプリケーションのアイデンティティは、この値に対するアクセス権を持っている。アプリケーションは、レジストリエントリの値を読み取れない場合はエラーをログする。
【０１２８】
動作が実行されなかったので、ログファイル中のＣＭＤＬｉｎｅフィールドは、ＳｅｔＡｃｃｅｓｓＰｒｏｐｅｒｔｙメソッドに対応するＩＩＳＤＡＭｅｔｈｏｄノードの、ＣｍｄＬｉｎｅ属性の値を含む。
【０１２９】
アプリケーションは、構成ファイルへのアクセス権を得た後、構成ファイルをサーチして、パラメータとして指定されているスコープ“ＳｃｏｐｅＵｓｅｒ１”を探す。そのスコープが見つからなかった場合、エラーがログされる。“ｗｗｗ．ｆａｂｒｉｋａｍ．ｃｏｍ”という値を有するＰｕｂｌｉｃＮａｍｅ属性を含む“ＩＩＳＤＡＳｃｏｐｅ”ノードがあっても、このノードが利用される属性の全てを備えていない場合にはエラーが生じる。
【０１３０】
スコープが見つかった後、対応するＩＩＳＤＡＳｃｏｐｅノードが読み取られて、アプリケーションは、“ＳｃｏｐｅＵｓｅｒ１”が、ＡＺＳｔｏｒｅＰａｔｈ属性、この例では“Ｃ：＼ＤｅｌｅｇＡｄｍｉｎ＼Ｓｔｏｒｅｓ＼Ｕｓｅｒ１．ｘｍｌ”において定義されている認可ポリシーストア内の、“Ｓｃｏｐｅ１”という名前のスコープにマップされることを知る。アプリケーションはまた、ＡＺＡｐｐｌｉｃａｔｉｏｎＮａｍｅ属性の値、この例では“ＳｉｔｅＡｄｍｉｎＡｐｐ”を通して、“Ｓｃｏｐｅ１”スコープが定義されるストア内で、アプリケーション名を得る。
【０１３１】
公開スコープ名の妥当性が検査された後、メソッド名の妥当性が検査される。アプリケーションは、構成ファイル２１８中で指定されたメソッド名、この例では“ＳｅｔＡｃｃｅｓｓＰｒｏｐｅｒｔｙ”を探す。メソッドが見つからなかった場合、該当するエラーコードがログされる。“ＳｅｒＡｃｃｅｓｓＰｒｏｐｅｒｔｙ”という値を有するＰｕｂｌｉｃＮａｍｅを含む“ＩＩＳＤＡＭｅｔｈｏｄ”ノードがあっても、このノードが利用される属性の全てを含んでいない場合には、エラーが生じる。
【０１３２】
メソッド名が見つかった後、対応するＩＩＳＤＡＭｅｔｈｏｄノードが読み取られる。ツールは、次いで、ＡＺＳｔｏｒｅＩＤ属性、この例では“１”で定義されている動作に、“ＳｅｔＡｃｃｅｓｓＰｒｏｐｅｒｔｙ”メソッドをマップする。ポリシーファイルの構文のところで説明しているように、認可ポリシーストア中の１つのタスクのみがこのメソッドを参照することができる。認可ポリシーストア中の２つ以上のタスクがこのメソッドを参照した場合、ＡｃｃｅｓｓＣｈｅｃｋがスコープへのアクセスを拒否する場合がある。これは、タスクの１つに対するビジネスルールがスコープへのアクセスを拒否したために生じる。
【０１３３】
メソッドのパラメータ、および、動作（この例では、ＩＤ“１”の動作）を参照するタスクのビジネスルールで使用されるインタフェースに関する情報を検索するために、属性と共に、ＩＩＳＤＡＭｅｔｈｏｄノードのサブノードが読み取られる。妥当性検査プロセスでエラーが生じた場合、対応するエラーコードがログされる。エラーは、ＰａｒａｍｅｔｅｒｓまたはＩｎｔｅｒｆａｃｅサブノード内の利用される属性がＩＩＳＤＡＭｅｔｈｏｄノードの定義からなくなっているために生じる。構成ファイル中に定義されているパラメータの数は、ＥｘｅｃｕｔｅＭｅｔｈｏｄが呼び出される（Ｐａｒａｍｅｔｅｒｓメソッドを使って）前に設定されているパラメータの数に合致する。合致しない場合、特定のエラーコードがログされる。
【０１３４】
アプリケーションは、ストアパス、この例では“Ｃ：＼ＤｅｌｅｇＡｄｍｉｎ＼Ｓｔｏｒｅｓ＼Ｕｓｅｒ１．ｘｍｌ”を使って、Ａｕｔｈｏｒｉｚａｔｉｏｎ  Ｓｔｏｒｅオブジェクトを初期化することを試み、および、このストア内の対応するアプリケーション、この例では“ＳｉｔｅＡｄｍｉｎＡｐｐ”を開くことを試みる。それらの動作のうち１つが失敗すると、例外が捕捉され、その結果がログされる。
【０１３５】
アプリケーションは、発呼者（この例ではｕｓｅｒ１）に関する情報を収集して、ＡｃｃｅｓｓＣｈｅｃｋのパラメータを構築する。次の表１７では、この例で使用されているＡｃｃｅｓｓＣｈｅｃｋパラメータを説明している。
【０１３６】
【表２５】
0004718804.tif 000026
【０１３７】
ＡｃｃｅｓｓＣｈｅｃｋのパラメータを構築するプロセスが成功した場合、この関数が呼び出されて、その結果がチェックされる。この例では、パラメータおよび定義されている２つのＸＭＬファイルに基づいて、ｕｓｅｒ１が“Ｓｃｏｐｅ１”へのアクセスを許可される。この関数に障害が生じた場合、例外が生成される。ＡｃｃｅｓｓＣｈｅｃｋがユーザに対してアクセスを拒否した場合、特定のエラーコードがログされる。
【０１３８】
この関数が、“Ｓｃｏｐｅ１”へのアクセスをユーザに許可した場合、実行可能なモジュールのコマンドライン２１０が構築され（すなわち、ＰｒｏｃｅｓｓＴｙｐｅ属性の値がこの例では“ＣＭＤ”であるため）、新しく構築されたコマンドラインを使って実行モジュールが呼び出される。この例では、次のようにコマンドラインが構築される。すなわち、＃Ｐａｔｈ＃が、見つかったスコープに対応するノードＩＩＳＤＡＳｃｏｐｅの下に定義されているＭｅｔａｂａｓｅＮｏｄｅ属性の値、すなわちＩＩＳ：／／Ｌｏｃａｌｈｏｓｔ／Ｗ３ｓｖｃ／１と置き換えられる。＃Ｆｌａｇ＠１＃が、インデックス１のＰａｒａｍｅｔｅｒ値に定義されているＭｅｔａｂａｓｅＰｒｏｐｅｒｔｙ属性の値、この例ではＡｃｃｅｓｓＦｌａｇｓと置き換えられる。＃１＃が、最初のパラメータの値、この例では１と置き換えられる。これは、実行可能モジュールのコマンドラインが“ＳＥＴ  ＩＩＳ：／／Ｗ３ｓｖｃ／１／Ｒｏｏｔ／ＡｃｃｅｓｓＦｌaｇｓ  １”であることを意味する。次の例は、実行されるフルコマンドラインを示す。すなわちＣ：＼ａｄｓｕｔｉｌ．ｅｘｅ  ＳＥＴ  ＩＩＳ：／／ｗ３ｓｖｃ／１／Ｒｏｏｔ／ＡｃｃｅｓｓＦｌｇａｓ  １。
【０１３９】
一般に、コマンドラインを構築している間にエラーが発生した場合（例えば、キーを＃ＫＥＹ＄と定義するなど、無効なシーケンスが使用された場合、あるいは、定義されていないキーが使用された場合）、アプリケーションはエラーをログする。
【０１４０】
（結論）
記載のシステムおよび方法は、イメージアテンション分析（ｉｍａｇｅ  ａｔｔｅｎｔｉｏｎ  ａｎａｌｙｓｉｓ）のためのコントラストに基づいたｓａｌｉｅｎｃｙ  ｍａｐを生成するためのものである。これらのシステムおよび方法を、構造上の特徴および方法論的な動作に特有の言い方で記載してきたが、特許請求の範囲に定義してある主題は、必ずしも記載された特定の特徴または動作に限定されない。そうではなく、特定の特徴および動作は、特許請求の範囲に記載の主題を実装する例示的形態として開示したものである。
【図面の簡単な説明】
【０１４１】
【図１】ホスティングするリソースの管理を委託するためのシステムおよび方法を実装することができる、例示的コンピューティング環境を示す図である。
【図２】ホスティングするリソースの管理を委託するためのアプリケーションプログラムおよびプログラムデータを含む、図１のシステムメモリのさらなる例示的態様を示す図である。
【図３】ホスティングするリソースの管理を委託するための例示的手順を示す図である。
【符号の説明】
【０１４２】
１２０  コンピューティング環境
１３０  コンピュータ
１４４  ハードディスクドライブ
１４６  磁気ディスクドライブ
１５０  光ディスクドライブ
１８０  インターネット
１８２  リモートコンピュータ
【図１】
0004718804.tif 000027
【図２】
0004718804.tif 000028
【図３】
0004718804.tif 000029