"ユーザにアプリケーションを提供する方法であって、チャネルを介してクライアント機器のユーザを認証するオペレーションであって、該認証するオペレーションは、ディレクトリサービスを使用して実行される、前記認証するオペレーションと、前記クライアント機器により表示されるグラフィカルユーザインタフェースGUIにおいて、複数のアプリケーションを提示するオペレーションであって、該複数のアプリケーションは、少なくとも部分的に、前記認証、前記クライアント機器、および前記チャネルによって決まり、該複数のアプリケーションは、シンアプリケーションと、サービス型ソフトウェアSaaSアプリケーションとを含む、前記提示するオペレーションと、アプリケーションに関する選択を前記ユーザから受け取るオペレーションと、前記選択がSaaSアプリケーションについてのものである場合に、該SaaSアプリケーションのプロビジョニングを実施するオペレーションであって、該プロビジョニングは、シングルサインオンプロトコルを用いて、該SaaSアプリケーションのプロバイダのアカウントに前記ユーザを自動的にログオンさせること、前記ユーザが該SaaSアプリケーションとやり取りできるように前記ユーザを前記アカウントに接続させることを含む、前記プロビジョニングを実施するオペレーションと、前記選択がシンアプリケーションについてのものである場合に、該シンアプリケーションを起動させるオペレーションとを含み、該方法の各オペレーションは、1つまたは複数のプロセッサにより実行される、方法。前記シンアプリケーションは、サンドボックスアプリケーションである、請求項1に記載の方法。前記複数のアプリケーションは、さらに、リモートアプリケーションを含む、請求項1に記載の方法。前記リモートアプリケーションは、デスクトップ仮想化アプリケーションである、請求項3に記載の方法。前記SaaSアプリケーションは、ウェブアプリケーションである、請求項1に記載の方法。前記ユーザに表示される複数のアプリケーションは、少なくとも部分的に、前記ユーザのジオロケーションによって決まる、請求項1に記載の方法。前記ユーザに表示される前記複数のアプリケーションの使用、および該使用のジオロケーションに関する統計を収集するオペレーションをさらに含む、請求項6に記載の方法。前記プロビジョニングするオペレーションは、ジャストインタイムJITで実行される、請求項1に記載の方法。前記ディレクトリサービスは、アクティブディレクトリADサービスである、請求項1に記載の方法。プログラムを格納している非一時的なコンピュータ読み取り可能な記憶媒体であって、該プログラムは、実行されることで、1つまたは複数のプロセッサに、チャネルを介してクライアント機器のユーザを認証するオペレーションであって、該認証するオペレーションは、ディレクトリサービスを使用して実行される、前記認証するオペレーションと、前記クライアント機器により表示されるグラフィカルユーザインタフェースGUIにおいて、複数のアプリケーションを提示するオペレーションであって、該複数のアプリケーションは、少なくとも部分的に、前記認証、前記クライアント機器、および前記チャネルによって決まり、該複数のアプリケーションは、シンアプリケーションと、サービス型ソフトウェアSaaSアプリケーションとを含む、前記提示するオペレーションと、アプリケーションに関する選択を前記ユーザから受け取るオペレーションと、前記選択がSaaSアプリケーションについてのものである場合に、該SaaSアプリケーションのプロビジョニングを実施するオペレーションであって、該プロビジョニングは、シングルサインオンを使用して、該SaaSアプリケーションのプロバイダのアカウントに前記ユーザを自動的にログオンさせること、前記ユーザが該SaaSアプリケーションとやり取りできるように前記ユーザを前記アカウントに接続させることを含む、前記プロビジョニングを実施するオペレーションと、前記選択がシンアプリケーションについてのものである場合に、該シンアプリケーションを起動させるオペレーションとを実行するように命令する、コンピュータ読み取り可能な記憶媒体。前記シンアプリケーションは、サンドボックスアプリケーションである、請求項10に記載のコンピュータ読み取り可能な記憶媒体。前記複数のアプリケーションは、さらに、リモートアプリケーションを含む、請求項10に記載のコンピュータ読み取り可能な記憶媒体。前記リモートアプリケーションは、デスクトップ仮想化アプリケーションである、請求項12に記載のコンピュータ読み取り可能な記憶媒体。前記SaaSアプリケーションは、ウェブアプリケーションである、請求項10に記載のコンピュータ読み取り可能な記憶媒体。前記ユーザに表示される複数のアプリケーションは、少なくとも部分的に、前記ユーザのジオロケーションによって決まる、請求項10に記載のコンピュータ読み取り可能な記憶媒体。前記ユーザに表示される前記複数のアプリケーションの使用、および該使用のジオロケーションに関する統計を収集するオペレーションをさらに含む、請求項15に記載のコンピュータ読み取り可能な記憶媒体。前記プロビジョニングするオペレーションは、ジャストインタイムJITで実行される、請求項10に記載のコンピュータ読み取り可能な記憶媒体。前記ディレクトリサービスは、アクティブディレクトリADサービスである、請求項10に記載のコンピュータ読み取り可能な記憶媒体。ユーザにアプリケーションを提供する方法であって、チャネルを介してクライアント機器のユーザを認証するオペレーションであって、該認証するオペレーションは、ディレクトリサービスを使用して実行される、前記認証するオペレーションと、前記クライアント機器により表示されるグラフィカルユーザインタフェースGUIにおいて、複数のアプリケーションを提示するオペレーションであって、該複数のアプリケーションは、少なくとも部分的に、前記ユーザの認証、前記クライアント機器、および前記クライアント機器のジオロケーションによって決まり、該複数のアプリケーションは、サンドボックスアプリケーションと、サービス型ソフトウェアSaaSアプリケーションとを含む、前記提示するオペレーションと、アプリケーションに関する選択を前記ユーザから受け取るオペレーションと、前記選択がSaaSアプリケーションについてのものである場合に、該SaaSアプリケーションのプロビジョニングを実施するオペレーションであって、該プロビジョニングは、シングルサインオンを使用して、該SaaSアプリケーションのプロバイダのアカウントに前記ユーザを自動的にログオンさせること、前記ユーザが該SaaSアプリケーションとやり取りできるように前記ユーザを前記アカウントに接続させることを含む、前記プロビジョニングを実施するオペレーションと、前記選択がサンドボックスアプリケーションについてのものである場合に、該サンドボックスアプリケーションを起動させるオペレーションとを含み、該方法の各オペレーションは、1つまたは複数のプロセッサにより実行される、方法。前記ユーザに表示される複数のアプリケーションは、さらに、仮想化されたデスクトップアプリケーションを含む、請求項19に記載の方法。例示的な態様において、ユーザにアプリケーションを提供するため、プロセッサにより実行される方法について記載する。この方法によれば、アプリケーション管理ソフトウェアにより、チャネルを介してクライアント機器のユーザを認証する。この認証オペレーションは、ディレクトリサービスを使用して実行される。アプリケーション管理ソフトウェアにより、クライアント機器で表示されるグラフィカルユーザインタフェースGUI内に、複数のアプリケーションを提示する。これら複数のアプリケーションは、少なくとも部分的に、認証、クライアント機器、およびチャネルによって決まる。また、これら複数のアプリケーションには、シンアプリケーションとサービス型ソフトウェアSaaSアプリケーションとが含まれる。アプリケーション管理ソフトウェアにより、アプリケーションに関する選択をユーザから受け取る。その選択がSaaSアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのSaaSアプリケーションのプロビジョニングを実施する。このプロビジョニングには、シングルサインオンを使用して、そのSaaSアプリケーションのプロバイダのアカウントにユーザを自動的にログオンさせること、ユーザがSaaSアプリケーションとやり取りできるようにユーザをアカウントに接続させることが含まれる。選択がシンアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのシンアプリケーションを起動する。他の例示的な態様では、装置について、すなわち、ユーザにアプリケーションを提供するためのプログラムを永続的に記憶するコンピュータ読み取り可能な記憶媒体について記載する。そのプログラムにより、チャネルを介してクライアント機器のユーザを認証する。この認証オペレーションは、ディレクトリサービスを使用して実行される。プログラムにより、クライアント機器で表示されるGUI内に、複数のアプリケーションを提示する。これら複数のアプリケーションは、少なくとも部分的に、認証、クライアント機器、およびチャネルによって決まる。また、これら複数のアプリケーションには、シンアプリケーションとサービス型ソフトウェアSaaSアプリケーションとが含まれる。プログラムにより、アプリケーションに関する選択をユーザから受け取る。その選択がSaaSアプリケーションについてのものである場合は、プログラムにより、そのSaaSアプリケーションのプロビジョニングを実施する。このプロビジョニングには、シングルサインオンを使用して、そのSaaSアプリケーションのプロバイダのアカウントにユーザを自動的にログオンさせること、ユーザがSaaSアプリケーションとやり取りできるようにユーザをアカウントに接続させることが含まれる。選択がシンアプリケーションについてのものである場合は、プログラムにより、そのシンアプリケーションを起動する。他の例示的な態様は、同じく、ユーザにアプリケーションを提供するため、プロセッサにより実行される方法に関するものである。この方法によれば、アプリケーション管理ソフトウェアにより、チャネルを介してクライアント機器のユーザを認証する。この認証オペレーションは、ディレクトリサービスを使用して実行される。アプリケーション管理ソフトウェアにより、クライアント機器で表示されるGUI内に、複数のアプリケーションを提示する。これら複数のアプリケーションは、少なくとも部分的に、認証、クライアント機器、およびクライアント機器のジオロケーションによって決まる。また、これら複数のアプリケーションには、サンドボックスアプリケーションとサービス型ソフトウェアSaaSアプリケーションとが含まれる。アプリケーション管理ソフトウェアにより、アプリケーションに関する選択をユーザから受け取る。その選択がSaaSアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのSaaSアプリケーションのプロビジョニングを実施する。このプロビジョニングには、シングルサインオンを使用して、そのSaaSアプリケーションのプロバイダのアカウントにユーザを自動的にログオンさせること、ユーザがSaaSアプリケーションとやり取りできるようにユーザをアカウントに接続させることが含まれる。選択がサンドボックスアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのサンドボックスアプリケーションを起動する。本発明の他の態様および効果は、発明の原理を例によって示す添付の図面を併用して行われる以下の詳細な説明から、明らかになるであろう。以下の説明では、例示的な実施形態についての完全な理解を与えるため、様々な具体的詳細について記載している。しかし、本明細書に記載の例示的な実施形態は、それら特定の詳細の一部を省いても実施することができることに留意すべきである。また、既に周知のプロセスの運用および実装の細部については詳細に記載していない。全体として、本明細書で記載する例示的な実施形態は、ローカルとリモートの両方のデスクトップアプリケーション、サービス型ソフトウェアSaaSアプリケーション、およびデータのための統合ワークスペースを提供するものである。エンドユーザには、アプリケーションにアクセスする種々のクライアント機器にわたって機能する単一のワークスペースが提供される一方、管理者には、アプリケーションのエンタイトルメントとプロビジョニングを管理するための単一の場所が提供される。図1は、例示的な一実施形態により、認証、エンタイトルメント、およびプロビジョニングを管理するシステム100のアーキテクチャを示すシステム概略図である。この図に示すように、システムは、アプリケーションマネージャ101を備え、これは、数ある中でも特に、1管理者が、ユーザ、アプリケーション、およびアカウントを管理するための接続を例えば、管理者ポータルを通して行うことと、2エンドユーザが、a比較的シームレスにアプリケーションを起動すること、またはb自身がエンタイトルメントを付与されているアプリケーションを有効/無効にすること、およびcクライアント機器を用いてユーザ/デバイスごとのアプリケーションエンタイトルメントのリストを取得するための接続をRESTフルなAPIによって行うこと、が可能な場所に、例えば、ユーザポータルを通して接続することと、を可能にするものである。言うまでもなく、RESTは、REpresentationalStateTransferの頭字語であり、APIは、ApplicationProgrammingInterfaceの頭字語である。また、言うまでもなく、RESTフルなAPIは、通常、インターネットメディアタイプ例えば、JSONJavaScriptObjectNotation:ジャバスクリプトによるオブジェクト記法、XMLeXtensibleMarkupLanguage:拡張マークアップ言語、またはYAMLでの、HTTPHyperTextTransferProtocol:ハイパーテキスト転送プロトコル操作例えば、POST、GET、PUT、またはDELETEをサポートしている。図1に示すように、アプリケーションマネージャ101は、システムでサポートされるSaaSアプリケーションプロバイダSalesforce.com:セールスフォースドットコム、Google:グーグルなどであるサードパーティSaaS102と、例えば、インターネットまたは他のWANを含み得るネットワークを介して通信する。アプリケーションマネージャ101は、サードパーティSaaS102の新規のユーザアカウントのプロビジョニングを実施し、シングルサインオンSSO:SingleSign‐Onを提供することが可能である。例示的な一実施形態では、サードパーティSaaS102は、プロビジョニングAPIを有していることがあり、さらに/またはSAMLSecurityAssertionMarkupLanguage:セキュリティアサーションマークアップ言語をサポートしていることがある。SAMLは、SSO認証を可能にするための周知の規格である。SAMLをサポートしていないか、またはプロビジョニングAPIを持たないサードパーティSaaS102プロバイダには、アプリケーションマネージャ101は、新規のユーザアカウントのプロビジョニングを可能にするための下位レベルのスクリーンスクレイピングscreenscrapingAPIを提供する場合がある。さらに図1に示すように、アプリケーションマネージャ101は、サポートされているクライアント機器と、例えば、その全体または一部がワイヤレスであり得るインターネットまたは他のWANを介して通信し、それらのクライアント機器には、限定するものではない例として、1Windowsクライアント103a例えば、MicrosoftWindows登録商標オペレーティングシステムを実行するインテルIntelx86系マイクロプロセッサを含むプラットフォームを有するものと、2Macクライアント103b例えば、MacOS登録商標オペレーティングシステムを実行するインテルx86系マイクロプロセッサを含むプラットフォームを有するものと、3iPad登録商標クライアント103c例えば、iOS登録商標オペレーティングシステムを実行するARMマイクロプロセッサを含むプラットフォームを有するものと、が含まれる。例示的な一実施形態では、この通信は、サポートされているクライアント機器上のネイティブエージェントによる上記RESTフルなAPIへの呼び出しによって行われる。例えば、ネイティブエージェントは、周期的に、RESTフルなAPIを用いて、aクライアント機器のオペレーティングシステムおよびパッチと、bウイルス防止/ファイアウォール/アンチスパイウェアがインストールされているかどうかと、cクライアント機器が接続されているドメインと、d自動更新がインストールされているかどうかと、に関するデバイス構成情報を送信する場合がある。レスポンスで、ネイティブエージェントは、アプリケーションマネージャ101からエンタイトルメントのリストを受け取ることになる。そして、ネイティブエージェントは、それらのエンタイトルメントを、現在インストールされているものと比較し、適当なインストール、アップグレード、および/またはアンインストール処理を実行する。シンアプリケーションとネイティブアプリケーションの場合には、インストールは、MSIWindowsインストーラをインストールすることを伴うことがある。リモートアプリケーションの場合には、インストールは、RDPRemoteDesktopProtocol:リモートデスクトッププロトコルの設定を伴うことがある。SaaSアプリケーションの場合には、インストールは、アプリケーションへのURLショートカットの設定を伴うことがある。ショートカットは、ユーザのデスクトップにインストールすることができ、そしてアイコンとして表示されて、これをダブルクリックによって起動させることが可能である。このショートカットのURLUniformResourceLocator:ユニフォームリソースロケータは、SaaSアプリケーションのURLのリダイレクト部分によって、アプリケーションマネージャ101にアクセスするために、ユーザのブラウザを起動させるものである。より具体的には、SaaSショートカットをユーザがクリックすると、ショートカットのURLは、SSO接続を開始するために、アプリケーションマネージャ101に誘導する。SSOセッションが作成された後に、アプリケーションマネージャ101は、SAMLIdP開始SSOプロファイルで規定される適切な認証情報によって、ユーザのブラウザをサードパーティSaaS102にリダイレクトする。さらに図1に示すように、アプリケーションマネージャ101は、ウェブブラウザ103d例えば、HTML5、AdobeFlashアドビフラッシュなどをサポートしているブラウザと通信することもできる。例示的な一実施形態では、システムは、ネイティブエージェントによってではなく、システムプラグインを持つウェブブラウザで直接アクセスすることができるユーザポータルを提供する。そのようなシステムプラグインに含まれる機能は、例えば、1SAMLまたは他のIDプロトコルの規格をサポートしていない下位レベルのSaaSアプリケーションへのSSOを可能にし得る、さらに2SaaSアプリケーションの使用についてのメトリクスをシステムに提供し、さらに/または管理者に報告するためのジオロケーション地理的位置を提供し得るものである。ここで、言うまでもなく、ジオロケーション情報は、例示的な一実施形態において、ウェブブラウザでW3CジオロケーションAPIまたは類似のAPIを用いて、クライアント機器から得ることができる。さらに、図1は、アプリケーションマネージャ101が、ファイアウォール104を介してエンタープライズコネクタ105と通信することを示している。例示的な一実施形態において、エンタープライズコネクタ105は、アプリケーションマネージャ101がエンタープライズコネクタ105にコマンドを送信することができるように、アプリケーションマネージャ101へのセキュア接続を開始する場合がある。また、エンタープライズコネクタ105は、例示的な一実施形態において、仮想アプライアンスとすることができる。エンタープライズコネクタ105は、既存のコーポレートプロセスおよびディレクトリと統合するための、エンタープライズへのブリッジを提供する。カンパニーがファイアウォールに穴を開けざるを得なくなることを防ぐため、エンタープライズコネクタ105は、ファイアウォール104の背後にインストールされて、アプリケーションマネージャ101に接続され、このとき、例えば、セキュア接続が使用されるか、またはローカルエリアネットワークLANもしくは広域ネットワークWANが使用され、その全体または一部はワイヤレスであり得るが、ただし、識別情報を保証するためのセキュリティ対策が採用される。そのようなセキュリティ対策の一例は、アプリケーションマネージャ101がエンタープライズコネクタ105の身元を確認することができるように、エンタープライズコネクタ105にインストールされ、アプリケーションマネージャ101に登録された証明書である。例示的な一実施形態において、エンタープライズコネクタ105は、SSOのためのアイデンティティプロバイダIdPとして機能することがある。このような立場で、エンタープライズコネクタ105は、アクティブディレクトリAD:ActiveDirectoryサーバ106のような内部LDAPLightweightDirectoryAccessProtocol:ライトウェイトディレクトリアクセスプロトコルサーバに対する認証を、パスワードを公開することなく提供することがある。このような実施形態では、言うまでもなく、ADサーバ106は、コーポレートユーザ識別情報の真実の情報源sourceoftruthであり、よって、コーポレートユーザ識別情報の更新を受け取るとともに、レポートする。エンタープライズコネクタ105が存在しない別の例示的実施形態では、アプリケーションマネージャ101は、認証、およびユーザ更新を伴う処理を実行するときに、セキュア接続またはセキュリティ対策を採用している接続を使用して、ADサーバ106に直接接続する場合がある。さらに、エンタープライズコネクタ105は、ファイアウォール104の背後で、既存のワークフローおよびライセンシングプロセスと統合するためのステージング領域として機能することがある。このような立場で、エンタープライズコネクタ105は、例えば、WS‐BPELWebServicesBusinessProcessExecutionLanguage:ウェブサービスビジネスプロセス実行言語で構築されたカスタムワークフロー、または管理ツールに組み込まれたカスタムワークフローを用いて、既存の管理ツールおよびプロセス107へのプロビジョニングコールアウトを行うことがある。このようなプロビジョニングコールアウトを行うときには、エンタープライズコネクタ105は、既存のライセンス追跡システム、資産管理システムなどからの情報を利用する。同様に、エンタープライズコネクタ105は、ファイアウォール104の内側で、SAML、またはIT実行SaaS108により公開されるプロビジョニングAPIを用いて、SaaSプロビジョニングを実行することがある。IT実行SaaS108には、OracleApps、OutlookWebAppOWAなどのSaaSアプリケーションが含まれる場合がある。例示的な一実施形態において、これらの内部SaaSアプリケーションの一部またはすべてが、ADサーバ106に対してはプロビジョニングされないことがある。エンタープライズコネクタ105は、追加のアプリケーションをサポートするためのシステム100の拡張を可能にするものであってもよい。例えば、システム100のユーザは、豪州シドニーのアトラシアン社AtlassianPtyLtd.から入手できる課題およびプロジェクト追跡アプリケーションであるJira登録商標を使用したいことがあるが、システム100は、そのような使用をサポートするドライバを提供していない。このような場合、ユーザは、エンタープライズコネクタ105において、自身のドライバを作成し、それらを例えばプラグインまたは拡張機能としてインストールすることができる。その後、ドライバは、Jiraにかかわるプロビジョニング処理の一部として実行される。例示的な一実施形態において、図1に示すシステムは、分散コンピューティングソフトウェアApache’sHadoopアパッチのハドゥープ、またはMap‐Reduceマップリデュースおよび/もしくはGoogleFileSystemグーグルファイルシステムに基づく他のソフトウェアを含むを実行し得るクラスタまたは他の分散システムで、相互にネットワーク例えば、LANまたはWANで接続された複数のサーバ上で、仮想化ソフトウェア例えば、VMwareヴイエムウェア社、Citrixシトリックス社、Microsoftマイクロソフト社などにより提供されるようなもの、負荷分散ソフトウェア、データベースソフトウェア例えば、SQL、NoSQLなど、ウェブサーバソフトウェアなどを実行する場合がある。そして、その分散システムは、認証、エンタイトルメント、およびプロビジョニングに関するデータを例えば、データベースまたは他のファイルに記憶する永続ストレージに、例えば、ストレージエリアネットワークSAN:StorageAreaNetworkによって接続されることがある。それらのサーバ自体は、11つまたは複数のマイクロプロセッサ例えば、x86系のもの、揮発性ストレージ例えば、RAM、および永続ストレージ例えば、ハードディスクまたはソリッドステートドライブから構成されるハードウェアと、2そのハードウェア上で実行されるオペレーティングシステム例えば、Linux、WindowsServer、MacOSServerなどと、を含み得る。図2は、例示的な一実施形態により、認証、エンタイトルメント、およびプロビジョニングを管理するシステム200における機能モジュールの図である。この図に示すように、機能モジュールのうち2つはクライアント機器上にあり、それらは、1ウェブブラウザ103dとインタフェースして、上記のように、システムによるロギングおよびレポーティングのために使用状況をRESTフルなAPI203に報告するブラウザプラグインまたはエージェント103eと、2同じく上記のように、x86プラットフォーム例えば、WindowsもしくはMacのラップトップもしくはデスクトップまたはARMプラットフォーム例えば、iPhone、iPad、Androidスマートフォン、Androidタブレットなどを持つクライアント機器にインストールされたネイティブエージェントまたはクライアント103である。図2に示すように、システムのサーバ側モジュールには、クライアント側モジュールとインタフェースする4つのモジュールが含まれる。これらのモジュールのうち1つは、管理用ウェブUIユーザインタフェース201であり、これにアクセスすることによって、管理者は、数ある中でも特に、1アプリケーションおよびアプリケーション群例えば、この場合、群とは、1つのアプリケーションのいくつかの異なるバージョンからなる群ではなく、一まとまりのものとして管理することができるアプリケーションの任意のグループであると、2エンドユーザと、3クライアント機器およびクライアント機器に関連するポリシーと、4エンタイトルメントと、を管理することができる。また、管理者は、例示的な一実施形態において、使用状況および/またはジオロケーションに関するレポートを管理用ウェブUI201で閲覧できる場合もある。本開示の他の部分では、管理用ウェブUI201は、管理者ウェブポータルと呼ばれる。さらに、図2に示すように、システムのサーバ側モジュールには、ユーザウェブUI202が含まれており、これにアクセスすることによって、ユーザは、比較的シームレスにアプリケーションを起動することができ、また、エンタイトルメントを持つアプリケーションで無効化されているものを有効にすることができる。さらに、システムのサーバ側モジュールには、RESTフルAPI203が含まれており、これは、APIのセットを含むことができ、また、システムがどのように実装および/または構成されているのかに応じて、システムの機能の一部またはすべてへのアクセスを提供する。別の例示的実施形態では、システムの機能へのアクセスには、全体的または部分的に、SOAPSimpleObjectAccessProtocol:簡易オブジェクトアクセスプロトコルプロトコル、またはプロセス間通信のための他の何らかのプロトコルが使用され得る。本開示の他の部分では、ユーザウェブUI202は、ユーザウェブポータルと呼ばれる。さらに図2に示すように、システムのサーバ側モジュールには、SAMLフロントエンド204が含まれており、これは、SAMLを解釈し、また、SSO認証に関する実際の処理の多くを実行するため、SSOサービス211を使用してSAMLセッションを作成する。クライアント側モジュールとインタフェースしている4つのサーバ側モジュールの下には、サーバ側モジュール201~204が通信のためとバックエンド機能を提供するサーバ側モジュールへのアクセスのために使用する内部JavaAPI205がある。内部JavaAPI205は、例示的な一実施形態において、そのすべてのAPIコールのログをロギング/解析ストア215に記録することがある。そして、この情報は、使用状況および/またはジオロケーションについてのレポートを作成するために用いられる場合がある。バックエンド機能を提供するサーバ側モジュールには、システムの購入者がシステムを配給しているエンティティすなわち、VMwareと対話するためのAPIを提供するアカウント管理用のモジュール206が含まれる。バックエンド機能を提供するサーバ側モジュールには、さらに、アプリケーションエンタイトルメントストアAES:ApplicationEntitlementStoreオブジェクトストア214のオブジェクトを検索するための検索インタフェースを提供する検索モジュール207が含まれる。例示的な一実施形態において、AESオブジェクトストア214のオブジェクトは、検索に備えて、Solrソーラインデックスでインデックス化される場合がある。Solrは、ApacheのLuceneルシーンプロジェクトからのオープンソースのエンタープライズ検索プラットフォームである。バックエンド機能を提供する他のサーバ側モジュールは、ユーザレポート用のモジュール208である。このモジュール208は、管理者のためのレポートを作成する。例示的な一実施形態において、モジュール208は、数ある中でも特にロギング/解析ストア215とAESオブジェクトストア214から、レポートのためのデータを取得する。レポートは、ライセンス、アプリケーションの使用状況、アクセス場所例えば、ジオロケーション、ユーザおよび/またはタイプおよび/または構成ごとのデバイス、などを対象として含んでいる場合がある。例示的な一実施形態において、ロギング/解析ストア215からのレポートは、ApacheのHadoop例えば、Hadoopジョブを使用して作成されることがある。さらに、例示的な一実施形態において、レポートは、OLAPOnLineAnalyticalProcessing:オンライン分析処理キューブのようなキューブを生成することがあり、この場合、キューブは、数ある中でも特に、aユーザ、bグループ/タグ、cアプリケーション、d日付/時刻、およびeデバイスタイプについての次元を持ち得る。これらの次元の各々は、当然のことながら、同じレポートで同じキューブに生成されないことがある。例示的な一実施形態において、ユーザレポートは、さらに、アプリケーションプロビジョニング数、使用時間、ある場所での使用時間、ログインの数、などに関するメトリクスを含むことがある。バックエンド機能を提供するサーバ側モジュールには、プロビジョニング用のモジュール209が含まれる。例示的な一実施形態において、モジュール209は、様々なタイプのアプリケーションのためのカスタムロジックまたは、プロビジョニングドライバを有する場合がある。例えば、SaaSアプリケーション220について、プロビジョニングドライバは、表1で規定するプロセスに従って動作し得る。例えば、SalesforceのSaaSは、JITプロビジョニングを採用しているので、ユーザがSalesforceのSaaSアプリケーションにアクセスしようとすると、Salesforceは、即時プロビジョニング決定のために、システムとコンタクトをとる。フォーム記入は、SaaSプロバイダがSAMLまたは他のSSOスキームをサポートしていない場合に、SaaSアプリケーション220に対する認証のために用いられる。つまり、モジュール209は、プロビジョニングの際にパスワードを設定する。例示的な一実施形態において、シングルパスワードを洩らすことでシステムを危険にさらすことがないように、パスワードはランダムに生成されることがある。ユーザがパスワードにアクセスすることを防ぐことができる。ユーザにパスワードを提供しないことによって、システムは、ユーザがシステムエージェントを使用することなくSaaSアプリケーションにアクセスすることを防いでいる。シンアプリケーションおよび/またはネイティブアプリケーションの場合には、プロビジョニングドライバは、1何らかのライセンシングアカウンティングを実施することがあり、さらに2そのアプリケーションをダウンロードできるようにすることがある。リモートアプリケーションの場合には、プロビジョニングドライバは、1何らかのライセンシングアカウンティングを実施することがあり、さらに2例えば、リモートデスクトッププロトコルRDPファイル、VMwareView登録商標ファイルなど、関連するファイルを取得することがある。別の例示的実施形態では、これらの処理の一部またはすべてが、例えば、上記のようなプロビジョニングコールアウトに応答して既存のワークフローおよびライセンシングプロセスによって実行される場合がある。言うまでもなく、例示的な一実施形態において、シンアプリケーションは、例えば、アプリケーションによってレジストリおよび/またはファイルシステムに加えられる実行時の変更を保持するためのサンドボックスを提供するVMwareThinApp登録商標などにより、仮想化されたアプリケーションであり得る。また、言うまでもなく、そのようなサンドボックスは、数ある中でも特に、DLLDynamicallyLinkedLibraries:ダイナミックリンクライブラリの上書きを防ぐのに有用である。同様に、例示的な一実施形態において、リモートアプリケーションは、リモートサーバ上の仮想化層例えば、ハイパーバイザによって提供される仮想マシン上のゲストオペレーティングシステムの上で実行されるVMwareViewアプリケーションのような、デスクトップ仮想化アプリケーションであり得る。さらに、例示的な一実施形態において、アプリケーションのためのプロビジョニングドライバは、次のような操作をサポートしている場合がある:1ユーザを追加/削除する、2ユーザステータスを取得する。一般に、追加/削除操作は、ユーザごとに一度実行される。アプリケーションがSaaSアプリケーションである場合には、プロビジョニングドライバは、ユーザの追加を、管理者がSaaSプロバイダから既に取得したアカウントにそのユーザの認証情報を関連付けることによって行う場合がある。アプリケーションがシンアプリケーションまたはリモートアプリケーションである場合は、プロビジョニングドライバは、何らかのライセンシングアカウンティングを実施することにより、ユーザを追加する場合がある。言うまでもなく、取得されたユーザステータスは、SaaSアプリケーションのユーザの期待されるプロビジョニング状態と実際のプロビジョニング状態との差異を特定するために用いられることがある。さらに図2に示すように、バックエンド機能を提供するサーバ側モジュールには、エンタイトルメント用のモジュール210が含まれる。例示的な一実施形態において、このモジュールは、エンタイトルメントに基づいて、システムのアプリケーションへのアクセスを制御する。例示的な一実施形態において、エンタイトルメントは、<ユーザ,デバイス,アプリケーション,ユーザタグのセット,デバイス構成,認証タイプ>などの要素を持つタプルとして表されることがある。エンタイトルメントは、数ある中でも特に、ネイティブクライアント103により表示されるGUIデスクトップ上に、どのアプリケーションのショートカット例えば、アイコンで表されるようなものを提示するのかを定める。同様に、これらのエンタイトルメントをチェックすることで、ユーザウェブUI202により表示されるGUIに、どのアプリケーションのショートカット例えば、アイコンで表されるようなものを提示するのかが決定される。また、アプリケーションに対するSSO処理のたびに、モジュール210は、エンタイトルメントをチェックすることで、SSOを進めることができるか確認し、セッションタイムアウトを設定する。エンタイトルメントが変更されると、モジュール210は、何らかのプロビジョニング/デプロビジョニング処理を実行すべきかどうか、さらには、いずれかのSSOセッションを終了させるべきかどうか判断する。バックエンド機能を提供する別のサーバ側モジュールは、SSO用のモジュール211である。例示的な一実施形態において、モジュール211は、異なるアプリケーションの間で共有される認証セッションを追跡する。当然のことながら、セッションの開始は、ユーザ認証を伴う。例示的な一実施形態において、ユーザがファイアウォール104の内側にいる場合には、認証は、エンタープライズコネクタ105を通してアクセスすることにより、ADサーバ106または他のディレクトリサービスに対して行われることがある。ユーザがファイアウォール104の外側にいる場合は、認証は、アプリケーションマネージャ101とエンタープライズコネクタ105の両方を通してアクセスすることにより、ADサーバ106または他のディレクトリサービスに対して行われることがある。あるいは、ホステッドアイデンティティを提供するSaaSプロバイダ例えば、GoogleAppsまたは他のプロバイダ例えば、Yahooであって、SAMLまたはOAuthOpenAuthorization:オープン認証を用いてアクセスされるプロバイダに、システムは認証を委任することがある。他の例では、認証は、ディレクトリとかかわらない場合がある。つまり、認証は、SAMLによって行われることがある。あるいは、下位レベルのアプリケーションの場合、認証は、上記のようにフォーム記入によって処理されることがあり、それは、ウェブブラウザ103dでGUIによって、ユーザからのユーザ名および/またはパスワードを要求するものであり得る。バックエンド機能を提供するサーバ側モジュールには、さらに、ユーザ更新用のモジュール212が含まれる。このモジュールは、例えば、1管理者ウェブUI201を通して行われた操作の結果としての変化、2RESTフルAPI203に由来する変化、または3例えばAD更新ツール、Yahoo更新ツール、Google更新ツールなどの同期ツールによってディレクトリストア219から伝えられた変化に基づいて、ユーザデータを更新する。バックエンド機能を提供する他のサーバ側モジュールは、課金サービス213であり、これは、システムによりプロビジョニングされたアプリケーションのライセンス料金/支払いの会計、および会計の確認を行う自動化されたサードパーティサービスであり得る。例示的な一実施形態において、システムは、APIを用いて課金サービス213にアクセスする場合がある。バックエンド機能を提供するサーバ側モジュールには、さらに、AESオブジェクトストア214が含まれる。例示的な一実施形態において、AESオブジェクトストア214は、システムのオブジェクト例えば、ユーザ、アプリケーション、グループ、アプリケーション群、エンタイトルメント、アカウントの有効化などに関するものをデータベースに記憶するスケーラブルオブジェクトストアである。言うまでもなく、システムの他の部分は、トランザクションセマンティクスを用いて、これらのオブジェクトの様々なバージョンで動作する。例示的な一実施形態において、AESオブジェクトストア214は、オプティミスティック同時実行制御およびアトミック操作を提供する。また、例示的な一実施形態において、AESオブジェクトストア214は、エンタープライズ組織構造に基づき、いくつかのデータベースに分散される場合がある。バックエンド機能を提供する他のサーバ側モジュールは、ロギング/解析ストア215である。例示的な一実施形態において、ロギング/解析ストア215は、1APIコール、2プロビジョニング処理、3アプリケーション使用状況のデータ例えば、ネイティブクライアントまたはブラウザプラグインから受け取る、のためのスケーラブルな永続ストレージを例えば、ログの形で提供するものであり得る。ロギング/解析ストア215は、さらにジョブインタフェースを提供し、これは、ユーザレポート208がログの解析を実行して、レポートおよびキューブを作成することを可能にするものである。バックエンド機能を提供するサーバ側モジュールには、さらに、BLOBBinaryLargeOBject:バイナリラージオブジェクトストア216、キーチェーンストア217、およびユーザキーストア218が含まれる。BLOBストア216は、ネイティブアプリケーション、シンアプリケーションなどのための画像を記憶する。図2に示すように、BLOBストア216は、サードパーティによって提供されたものであり得る。例示的な一実施形態において、システムは、APIを用いてBLOBストア216にアクセスする場合がある。キーチェーンストア217は、下位の認証で使用される暗号化されたパスワードを記憶する。そして、ユーザキーストア218は、キーチェーンストア217の中の暗号化されたパスワードを解読するのに使用されるユーザごとのキーを記憶する。言うまでもなく、例示的な一実施形態において、上記のサーバ側モジュールは、上記のアプリケーションマネージャ101の一部であり得る。これに代えて、別の例示的実施形態では、上記のサーバ側モジュールのうちの一部は、エンタープライズコネクタ105がインストールされているのであれば、その一部であり得る。あるいは、サーバ側モジュールの機能は、クライアント側モジュールに移転される場合があり、またその逆もあり得る。すなわち、上記のモジュールは、いずれかの適当な方法でシステム全体に分散させることが可能である。表2は、例示的な実施形態によるSSOのいくつかのシナリオを示している。当然のことながら、これらのシナリオは、限定するものではなく、例示的なものである。1型エンタープライズの列かつモダンSaaSアプリケーションの行に示す第1のシナリオでは、ユーザはファイアウォールの内側にいるが、2つのセキュアトークンサービスSTSがあり、例えば、アプリケーションマネージャサーバは、ファイアウォールの内側へのセキュア接続を持たない。このようなシナリオを図3Aに示しており、この場合、STS302はオンサイトにあって例えば、DMZにあるアクティブディレクトリ連携サービスADFS:ActiveDirectoryFederationService、ADサーバに対してユーザを認証して、SAMLトークンを生成することが可能である。これを、図3Aで、クライアント機器301とSTS302との間に、オペレーション303として示している。もう一方のSTSであるSTS304は、オープンセッションに基づき、STS302により生成されたSAMLトークンを使用して、SAMLトークンを生成することができる。これを、図3Aで、クライアント機器301とアプリケーションポータル306例えば、上記のユーザウェブポータルとの間に、オペレーション305で示している。そして、この図でオペレーション307に示すように、クライアント機器301は、STS304により生成されたSAMLトークンを使用して、モダンSAML対応SaaSアプリケーションサーバ308に接続し、SaaSアプリケーションへのアクセスを得る。表2の1型エンタープライズの列かつレガシSaaSアプリケーションの行に示す第2のシナリオでは、STSは1つのみである。例えば、アプリケーションマネージャサーバは、ファイアウォールの内側へのセキュア接続を持ち得る。STSは、アプリケーションマネージャサーバ上にあって、これは、ADサーバに対してユーザを認証することが可能であり、また、HTTP連携HTTPFederationを使用して、クライアント機器とレガシSaaSアプリケーションサーバとの間の接続をプロキシする。この場合、言うまでもなく、アプリケーションマネージャサーバは、ユーザの代わりに、従来のユーザ名とパスワードの組み合わせを使用して、認証を行う。別の例示的実施形態において、システムは、上記の表に示すシナリオのいずれかで、SAML対応のSaaSアプリケーションサーバとの接続に、同じくHTTP連携を使用し得る。表2の1型変形例の列かつモダンSaaSアプリケーションの行に示す第3のシナリオでは、ユーザがファイアウォールの外側にいて、STSは1つのみであり、例えば、アプリケーションマネージャサーバは、ファイアウォールの内側へのセキュア接続を持つ。このようなシナリオを図3Bに示しており、この場合、アプリケーションマネージャサーバは、STS304を含み、これは、上記のエンタープライズコネクタ105のようなディレクトリコネクタ310例えば、DMZにあるADコネクタの使用によって、ADサーバ309に対してユーザを認証して、SAMLトークンを生成することが可能である。これを、クライアント機器301とアプリケーションポータル306例えば、上記のユーザウェブポータルとの間にオペレーション305で、さらに、STS304とディレクトリコネクタ310との間にオペレーション311で、示している。そして、この図にオペレーション307で示すように、クライアント機器は、そのSAMLトークンを使用して、SAML対応のSaaSアプリケーションサーバ308に接続し、SaaSアプリケーションへのアクセスを得る。表2の1型変形例の列かつレガシSaaSアプリケーションの行に示す第4のシナリオでは、STSはなく、アプリケーションマネージャに対してネイティブ認証が行われる。そして、認証マネージャは、オンプレミスのアイデンティティストアに対してユーザを認証することが可能であり、これが、HTTP連携HTTPFedを使用して、クライアント機器とレガシSaaSアプリケーションサーバとの間の接続をプロキシする。上記の表に示すように、この同じシナリオが、2型エンタープライズの列かつレガシSaaSアプリケーションの行のセル6で発生する。表2の2型エンタープライズの列かつモダンSaaSアプリケーションの行に示す第5のシナリオでは、ファイアウォールはなく、STSは1つである。このようなシナリオを図3Cに示しており、この場合、アプリケーションマネージャサーバは、STS304を含み、これは、アイデンティティストアに対してユーザを認証し、そして、独自のコネクタを使用してアクセスされる例えば、GoogleまたはSalesforceのホステッドアイデンティティストアにより生成されたSAMLトークンからSAMLトークンを生成することが可能である。これを、クライアント機器301とアプリケーションポータル306例えば、上記のユーザウェブポータルとの間にオペレーション305で、さらに、アプリケーションマネージャ312とホステッドアイデンティティマネージャ313との間にオペレーション314で、示している。そして、オペレーション307で、クライアント機器301は、そのSAMLトークンを使用して、SAML対応のSaaSアプリケーションサーバ308に接続し、SaaSアプリケーションへのアクセスを得る。図4は、例示的な一実施形態による、新規のSaaSアカウントのエンタイトルメントおよびプロビジョニングのプロセスを示すシーケンス図である。エンタイトルメントは、特定のユーザまたはユーザグループを、特定のアプリケーションまたはアプリケーション群に関連付ける許可であることが想起されよう。エンタイトルメントがSaaSアプリケーションについてのものである場合には、それがサードパーティによりホストされているものであるか、エンタープライズ独自のネットワーク内のものであるかにかかわらず、エンタイトルメントが作成されるときに、ユーザごとに、そのSaaSプロバイダのアカウントが作成される。図示のように、例示的な一実施形態において、このプロセスは、図2に示すモジュールのうちいくつかによって実行され得る。プロセスのオペレーション401で、システムは、例えば管理者からのGUIコマンドの結果として、SaaSアプリケーションへのエンタイトルメントをユーザまたはユーザグループ用に追加するためのコールを、管理者ウェブポータル管理者UIから受け取る。このコールは、システムのエンタイトルメントモジュールに送られる。このコールは、内部JavaAPIを利用する他のコールと同様に、ロギング/解析ストアに記録される。そして、オペレーション402で、エンタイトルメントモジュールは、関係するユーザのAESオブジェクトストアのオブジェクトに、エンタイトルメントおよび期待されるプロビジョニング状態を追加する。オペレーション403で、エンタイトルメントモジュールは、プロビジョニングを要するアカウントのプロビジョニングを実施するため、例えば、内部JavaAPIを通してプロビジョニングモジュールをコールする。さらに、オペレーション404で、プロビジョニングモジュールは、ユーザまたはユーザグループのSaaSアカウントのプロビジョニングを実施するため、例えば、プロビジョニングAPIを通してサードパーティSaaSプロバイダまたはベンダにコールする。オペレーション405で、プロビジョニングモジュールは、AESオブジェクトストアの中の関係するオブジェクトを、プロビジョニングの状態で更新し、また、必要であれば、SaaSアプリケーションのライセンス数を変更する。そして、オペレーション406で、プロビジョニングモジュールは、ロギング/解析ストアを、プロビジョニングの進行状況または失敗で更新する。オペレーション407で、ユーザウェブポータルユーザウェブUIは、例えばユーザまたはユーザグループのユーザのうちの一人からのGUIコマンドの結果として、ユーザの新規のエンタイトルメントがあるかどうか特定するため、例えば、内部JavaAPIを通してエンタイトルメントモジュールをコールする。そして、エンタイトルメントモジュールは、追加されたエンタイトルメントをユーザウェブポータルに表示させる。あるいは、オペレーション408で、ネイティブクライアント例えば、iPadなどのデバイス上で実行されるものが、例えばユーザまたはユーザグループのユーザのうちの一人からのGUIコマンドの結果として、そのユーザの新規のエンタイトルメントがあるかどうかを特定するため、例えば、内部JavaAPIを通してエンタイトルメントモジュールをコールする。そして、エンタイトルメントモジュールは、追加されたエンタイトルメントをネイティブクライアントに表示させる。図5は、例示的な一実施形態により、プロビジョニングタスクを保存するプロセスを示すフローチャートである。例示的な一実施形態において、このプロセスの処理は、システムのエンタイトルメントモジュールによって実行され得る。プロセスは、オペレーション501で、アプリケーション例えば、シンアプリケーション、リモートアプリケーション、またはSaaSアプリケーションへのエンタイトルメントをユーザまたはユーザグループ用に作成する処理によって、開始する。オペレーション502で、エンタイトルメントモジュールは、例えばライセンス数を変更することなど、どのプロビジョニングタスクまたは処理が実行されるべきか決定する。そして、オペレーション503で、エンタイトルメントモジュールは、1そのエンタイトルメントと、2そのプロビジョニングタスクとを、AESオブジェクトストアまたは他のデータベースに追加する。オペレーション504で、エンタイトルメントモジュールは、その新規のプロビジョニングタスクについて、例えば内部JavaAPIを通してプロビジョニングモジュールに通知する。図6は、例示的な一実施形態により、プロビジョニングタスクを決定するプロセスを示すフローチャートである。例示的な一実施形態において、このプロセスの処理は、システムのエンタイトルメントモジュールによって実行され得る。プロセスは、オペレーション601で、例えば<アプリケーションまたはアプリケーション群,ユーザ/グループ/表現式,デバイスポリシー>であるタプルを受け取ることによって、開始する。表現式によって、管理者は、ユーザまたはユーザグループをポリシーの適用から除外すること、および複数のグループまたは一部のグループにポリシーを適用すること、が可能である。オペレーション602で、エンタイトルメントモジュールは、エンタイトルメントが何についてのものであるのか判断する。エンタイトルメントがアプリケーションについてのものである場合、エンタイトルメントモジュールは、オペレーション603で、そのアプリケーションをその中に含むアプリケーションリストを作成する。エンタイトルメントがアプリケーション群についてのものである場合、エンタイトルメントモジュールは、オペレーション604で、アプリケーション群のアプリケーションの閉包または数学的閉包でアプリケーションリストを作成する。オペレーション605で、エンタイトルメントモジュールは、エンタイトルメントが誰に対するものであるのか判断する。エンタイトルメントがシングルユーザに対するものである場合、エンタイトルメントモジュールは、オペレーション606で、シングルユーザでユーザリストを作成する。エンタイトルメントがグループまたは表現式に対するものである場合、エンタイトルメントモジュールは、オペレーション607で、タプル要素であるユーザ/グループ/表現式の全員の閉包または数学的閉包でユーザリストを作成する。そして、オペレーション608で、エンタイトルメントモジュールは、アプリケーションリストとユーザリストのクロス積から、プロビジョニングタスクまたは処理を生成する。本例では、すべてのプロビジョニングタスクまたは処理は、同じデバイスポリシーを持つ。オペレーション609で、エンタイトルメントモジュールは、例えば<ユーザ,アプリケーション,デバイスポリシー>のタプルの形で、プロビジョニングタスクまたは処理のリストを返す。図7は、例示的な一実施形態により、アプリケーションのプロビジョニングを実施するプロセスを示すフローチャートである。例示的な一実施形態において、このプロセスの処理は、システムのプロビジョニングモジュールによって実行され得る。オペレーション701で、プロビジョニングモジュールは、例えばエンタイトルメントモジュールによりプロビジョニングタスクが保存されたデータベースまたはAESオブジェクトストア713において、処理するプロビジョニングタスクまたは処理があるかどうか特定する。そのようなタスクがない場合には、プロビジョニングモジュールは、そのようなタスクを待って、ビジーループにとどまる。処理するプロビジョニングタスクがある場合は、プロビジョニングモジュールは、オペレーション702で、そのプロビジョニングタスクに示されているアプリケーションタイプ例えば、シンアプリケーション、リモートアプリケーション、SaaSアプリケーションなどに基づいて、どのプロビジョニングドライバを使用するか決定する。そして、オペレーション703で、プロビジョニングモジュールは、コールアウトフラグが設定されているかどうか、例えば、そのプロビジョニングタスクが例えば既存のワークフローおよびライセンシングプロセスと統合するプロビジョニングコールアウトを使用するかどうか、判断する。コールアウトフラグが設定されている場合、プロビジョニングモジュールは、オペレーション704で、エンタープライズコネクタがインストールまたはセットアップされているかどうか判断する。エンタープライズコネクタがインストールされている場合には、プロビジョニングモジュールは、オペレーション705で、エンタープライズコネクタを通してプロビジョニングコールアウトを発する。エンタープライズコネクタがインストールされていない場合には、プロビジョニングモジュールは、オペレーション706で、プロビジョニングコールアウトを自身で発する。オペレーション707で、プロビジョニングモジュールは、例えば既存のワークフローおよびライセンシングプロセスによって、プロビジョニングコールアウトが正常に完了されたかどうか判断する。正常に完了されなかった場合は、プロビジョニングモジュールは、オペレーション708でエラーをログに記録し、プロセスの最初のオペレーション701に戻る。プロビジョニングコールアウトに成功した場合、またはプロビジョニングコールアウトが使用されなかった場合は、プロビジョニングモジュールは、オペレーション709で、プロビジョニングタスクデータを用いて適当なプロビジョニングドライバをコールする。そして、オペレーション710で、プロビジョニングモジュールは、コールまたはプロビジョニングに成功したかどうか判断する。成功していない場合は、プロビジョニングモジュールは、オペレーション711で、その失敗を示すように、AESオブジェクトストア713の中のプロビジョニングオブジェクトを更新して、そのエラーをログに記録し、オペレーション701に戻る。プロビジョニングドライバのコールに成功した場合は、プロビジョニングモジュールは、オペレーション712で、完了を示すように、AESオブジェクトストア713の中のプロビジョニングオブジェクトを更新して、オペレーション701に戻る。図8は、例示的な一実施形態により、SAMLをサポートしていないアプリケーションのプロビジョニングのために、プロビジョニングドライバにより実行されるプロセスを示すフローチャートである。本例のアプリケーションは、ウェブブラウザではなくローカルクライアントを介してアクセスおよび使用することが可能である。このSaaSアプリケーションはSAMLをサポートしていないので、システムは、オペレーション801で、ランダムなパスワードを生成して、暗号化し、それを保存する。その後、このパスワードは、ユーザの目に触れることはないが、アプリケーションへのSSOに使用することができる。また、これによって、このパスワードが他のいずれのパスワードとも相関しないものとされることで、このパスワードが破られても、その特定のユーザのアカウントの特定のSaaSアプリケーション以外のものへのアクセスは可能にはならない。オペレーション802で、プロビジョニングドライバは、例えば、APIを介してSaaSアプリケーションを呼び出して、ユーザのアカウントを作成する。プロビジョニングドライバは、オペレーション803で、Mozyアカウント用のSaaSアカウントをAESオブジェクトストア808内に作成する。そして、オペレーション804で、プロビジョニングドライバは、<ユーザ名,パスワード,SaaSアプリケーション名>のようなタプルで、例えば、内部JavaAPIを使用したコールによってSSOサービスを更新し、この場合、ユーザ名は、そのSaaSアプリケーションアカウントでのユーザ名であり、パスワードは、そのSaaSアプリケーションアカウントでのパスワード、例えばランダムなパスワードである。オペレーション805で、SSOサービスは、そのパスワードで、キーチェーンストアを更新する。プロビジョニングドライバは、オペレーション806で、そのSaaSアプリケーションに対するユーザのプロビジョニングを、デフォルトグループで実施する。そして、オペレーション807で、プロビジョニングドライバは、そのプロビジョニングの結果として得られる新規のプロビジョニングキーで、AESオブジェクトストア内にSaaSアカウントを作成する。図9Aおよび9Bは、例示的な一実施形態により、セッションからSaaSアプリケーションに対しユーザを認証するプロセスを示すフローチャートである。ユーザが、SaaSアプリケーションへのアクセスとその使用のためのSSOセッションを開始させるために、システムにアクセスすると、システムは、まず最初に、既存のセッションに基づいて、SaaSアプリケーション用のトークンを作成しようとする。このため、システムは、図9Aのオペレーション901で、セッションをルックアップし、オペレーション902で、セッションが有効であるかどうか判断する。セッションが有効でない場合は、システムは、エラーメッセージで、リダイレクトによってSaaSサービス例えば、アプリケーションマネージャに誘導する。セッションが有効である場合、システムは、オペレーション903で、セッションが生きているかどうか判断する。生きていない場合は、システムは、オペレーション904で、最初のSSO要求のデバイス情報によってセッションオブジェクトを作成し、オペレーション905で、ユーザ名とパスワードによる認証ログインのため、リダイレクトによってログインページに誘導する。セッションが生きている場合には、システムは、オペレーション906で、そのSaaSアプリケーションに対するユーザのエンタイトルメントをルックアップして、オペレーション907で、デバイスポリシーまたはアプリケーションポリシーをエンタイトルメントから確認する。オペレーション908で、システムは、現在のセッションがそれらのポリシーを満たすかどうか判断する。満たさない場合は、システムは、エラーメッセージで、リダイレクトによってSaaSサービス例えば、アプリケーションマネージャに誘導する。現在のセッションがポリシーを満たしている場合は、図9Aのオペレーション910で、システムは、有効なセッショントークンで、リダイレクトによってSaaSサービス例えば、アプリケーションマネージャに誘導する。前述のように、セッションが生きていない場合には、オペレーション904で、システムは、リダイレクトによりログインページに誘導する。例示的な一実施形態において、このリダイレクトは、リダイレクトバインディングによるSAMLSPServiceProvider:サービスプロバイダ開始SSOプロファイルによって発生し得る。エンタープライズコネクタがシステムにインストールされている場合には、リダイレクトによってエンタープライズコネクタに誘導し、そしてこれが、内部LDAPストア例えば、ADに対するIdPとして機能する。クライアント機器上のブラウザは、認証プロトコル例えば、ケルベロスKerberosをネゴシエートして、ユーザを認証する。その後、エンタープライズコネクタは、認証されたユーザを、リダイレクトバインディングによるSAMLSP開始SSOプロファイルの応答部分で、アプリケーションマネージャに戻すようにリダイレクトする。そして、アプリケーションマネージャは、SaaSアプリケーション用のSSOセッションを作成する。図9Bは、オペレーション911で、IdPアイデンティティプロバイダから認証応答を受け取るシステムを取り上げている。オペレーション912で、システムは、認証応答に関して、ユーザ/デバイスセッションをルックアップする。認証に失敗した場合、システムは、オペレーション913で、その失敗をセッションに追加し、そしてオペレーション914で、エラーメッセージによって、開始SaaSサービス例えば、アプリケーションマネージャにリダイレクトする。認証に成功した場合、システムは、オペレーション915で、SAMLSSO応答からのセッション有効期限データを、セッションに追加する。そして、オペレーション916で、システムは、SAMLSSO応答からのアサーションを、セッションに追加する。さらに、オペレーション917で、システムは、SAMLSSO応答からの属性を、セッションに追加する。オペレーション918で、システムは、セッションからの、SaaSアプリケーションプロバイダに対するユーザの認証を完了させる。図10は、例示的な一実施形態により、管理者ウェブポータルで表示されるダッシュボードタブのGUIビューを示している。この図に示すように、管理者ポータルのGUIビューは、例えば、ダッシュボード、ユーザ、グループ、アプリケーション、ライセンス、およびポリシーの、複数のタブで構成され得る。ダッシュボードタブ1001は、数ある中でも特に、管理されているユーザ、管理されているSaaSアプリケーション、管理されているデスクトップアプリケーション、および使用ストレージのGBについてのカウント数を表示する。例示的な一実施形態において、デスクトップアプリケーションは、VMwareThinApp登録商標を用いて仮想化されたアプリケーションのようなシンアプリケーションと、VMwareView登録商標によってアクセスされるリモートアプリケーションと、を含み得ることが想起されよう。ダッシュボードタブは、さらに、システムにより作成されたレポートのリスト1002を表示し、1最もアクティブなアプリケーション、2経時的なアプリケーション使用状況、3最もアクティブなユーザ、4最もアクティブな場所例えば、ジオロケーション、5最近の場所例えば、ジオロケーション、6システム利用率、7使用中のライセンスの料金、8オーバサブスクリプションのライセンスの料金、9ライセンスの料金テーブル、10ライセンスの料金チャート、のレポートを含んでいる。図11は、例示的な一実施形態により、管理者ウェブポータルで表示されるユーザタブのGUIビューを示している。ユーザタブ1101は、数ある中でも特に、システムにより管理されるユーザに関するデータのテーブルを表示する。テーブルの列として、1名前、2ユーザ名、3グループ、4役割、が含まれる。ユーザタブ1101は、さらに、ユーザに関連するレポート1102を表示し、また、管理者がユーザを追加することを可能にするGUIコントロール例えば、ボタン1103を含んでいる。図12は、例示的な一実施形態により、管理者ウェブポータルで表示されるユーザ編集ダイアログのGUIビューを示している。例示的な一実施形態において、このダイアログは、例えば管理者がユーザタブ1101でユーザ名をクリックすると、ユーザタブ1101に表示されることがある。ユーザ編集ダイアログ1201は、ユーザの姓と名の編集を可能にする編集ボックス1202と、ユーザを管理者にすることを可能にするチェックボックス1203と、を含んでいる。ユーザ編集ダイアログ1201は、さらに、ユーザをSalesおよびFinanceなどのグループの一員にすることを可能にするチェックボックス1204を含んでいる。また、例示的な一実施形態において、ユーザ編集ダイアログ1201は、ユーザがエンタイトルメントを付与されているアプリケーションを、テーブル1205にリストアップする。テーブル1205は、列として、アプリケーション名、デバイス例えば、クライアント機器ポリシー、およびデプロイメント、を含んでいる。この場合、例えば、名前がRegisGormanであるユーザは、Salesforceアプリケーションをすべてのデバイスで使用するエンタイトルメントを付与されており、そのデプロイメントは自動である。ユーザ編集ダイアログ1201は、さらに、エンタイトルメントを追加するためのGUIコントロール例えば、ボタン1206と、エンタイトルメントを拒否するためのGUIコントロール例えば、ボタン1207と、を含んでいる。さらに、ユーザ編集ダイアログ1201は、あるアプリケーションに対するエンタイトルメントを削除するためのGUIコントロール例えば、ボタン1208と、編集による変更を保存するためのGUIコントロール例えば、ボタン1209と、を含んでいる。図13は、例示的な一実施形態により、管理者ウェブポータルで表示されるグループタブのGUIビューを示している。グループタブ1301は、数ある中でも特に、システムにより管理されるグループに関するデータのテーブルを表示する。テーブルの列として、1名前、2ユーザ数、3アプリケーションエンタイトルメント数、が含まれる。グループタブ1301は、さらに、グループに関連するレポート1302例えば、最もアクティブなユーザ、最もアクティブな場所、最近の場所を表示し、また、管理者がグループを追加することを可能にするGUIコントロール例えば、ボタン1303を含んでいる。図14は、例示的な一実施形態により、管理者ウェブポータルで表示されるグループ編集ダイアログのGUIビューを示している。例示的な一実施形態において、このダイアログは、例えば管理者がグループタブ1301でグループ名をクリックすると、グループタブ1301に表示されることがある。グループ編集ダイアログ1401は、グループ名の編集を可能にする編集ボックス1402を含んでいる。グループ編集ダイアログ1401は、さらに、グループにユーザを追加することを可能にするGUIコントロール例えば、ボタン1403と、ユーザをグループから外すことを可能にするGUIコントロール例えば、ボタン1404と、を含んでいる。また、例示的な一実施形態において、グループ編集ダイアログ1401は、グループがエンタイトルメントを付与されているアプリケーションを、テーブル1405にリストアップする。テーブル1405は、列として、アプリケーション名、デバイス例えば、クライアント機器ポリシー、およびデプロイメント、を含んでいる。この場合、例えば、名前がComapnyXであるグループは、Salesforceアプリケーションをすべてのデバイスで使用するエンタイトルメントを付与されており、そのデプロイメントは自動である。グループ編集ダイアログ1401は、さらに、例えばアプリケーションのアイコンをクリックすることで、グループにエンタイトルメントを追加するための、スクロールバー1407を備えたGUIコントロール例えば、ツリービュー1406を含んでいる。さらに、グループ編集ダイアログ1401は、グループのエンタイトルメントの編集を可能にするGUIコントロール1408と、グループのエンタイトルメントの削除を可能にするGUIコントロール例えば、ボタン1409と、を含んでいる。グループ編集ダイアログ1401は、編集による変更を保存するためのGUIコントロール例えば、ボタン1410を含んでいる。図15は、例示的な一実施形態により、管理者ウェブポータルで表示されるエンタイトルメント編集ダイアログのGUIビューを示している。例示的な一実施形態において、このダイアログは、管理者がグループ編集ダイアログ1401でGUIコントロール例えば、GUIコントロール1408をクリックすると、表示されることがある。このエンタイトルメント編集ダイアログ1501は、アプリケーションBox.netに対するComapnyXグループのエンタイトルメントの編集を可能にするものである。編集ダイアログ1501は、エンタイトルメントに含まれるデバイス例えば、クライアント機器の変更を可能にするドロップダウンリスト1502と、エンタイトルメントのデプロイメントの変更を可能にするドロップダウンリスト1503と、を含んでいる。さらに、エンタイトルメント編集ダイアログ1501は、編集による変更を保存するためのGUIコントロール例えば、ボタン1504を含んでいる。図16は、例示的な一実施形態により、管理者ウェブポータルで表示されるアプリケーションタブのGUIビューを示している。アプリケーションタブ1601は、数ある中でも特に、システムにより管理されるアプリケーションに関するデータのテーブルを表示する。テーブルの列として、1名前と説明、2タイプ例えば、リモートアプリケーション、ネイティブ、GoogleAppsなど、3ライセンス要件および/または使用、が含まれる。アプリケーションタブ1601は、さらに、アプリケーションに関連するレポート1602を表示し、また、管理者がアプリケーションを追加すること可能にするGUIコントロール例えば、ボタン1603を含んでいる。アプリケーションタブ1601は、さらに、ユーザへのヒントを表示するテキストフィールド1604を含んでいる。図17は、例示的な一実施形態により、アプリケーションを追加するためのダイアログのGUIビューを示している。例示的な一実施形態において、このダイアログは、例えば管理者がアプリケーションを追加するためのGUIコントロール例えば、ボタン1603をクリックすると、管理者ウェブポータルのアプリケーションタブ1601に表示されることがある。ダイアログ1701は、アプリケーションの名前の編集ボックス1702と、アプリケーションの説明の編集ボックス1703と、を含んでいる。ダイアログ1701は、さらに、ライセンスが必要かどうかを示すためのチェックボックス1704を含んでいる。また、ダイアログ1701は、アプリケーションのアプリケーションタイプを特定するラジオボタンのリスト1705を含んでおり、それらのアプリケーションタイプは、1電子メールおよびデータ同期サービスを含む、事前設定されたアプリケーション、2VMwareThinAppで仮想化されたアプリケーションまたはネイティブMSIWindowsインストーラアプリケーションを含む、Windowsデスクトップアプリケーション、3WorkdayまたはSalesforceのようなウェブベースのアプリケーションであるSaaSアプリケーション、および4MicrosoftターミナルサービスRDSアプリケーションまたはCitrixXenAppアプリケーションのような公開またはリモートアプリケーション、である。図17に示す例では、リスト1705の一番上のラジオボタンがチェックされていることが分かるであろう。その結果として、システムにより管理されている4つの事前設定されたアプリケーションである、AVMwareView、BMozy、CGoogleApps、DBox.net、およびESalesforce、を表すアイコン1706がダイアログ1701に表示される。ダイアログ1701は、さらに、編集による変更を保存するためのGUIコントロール例えば、ボタン1707を含んでいる。図18は、例示的な一実施形態により、Windowsデスクトップアプリケーションを編集するための編集ダイアログのGUIビューを示している。例示的な一実施形態において、このダイアログは、例えばユーザがダイアログ1701のラジオボタンのリスト1705でWindowsデスクトップアプリケーションのラジオボタンを選択したときに表示されるアプリケーションのアイコンを管理者がクリックすると、管理者ウェブポータルのアプリケーションタブ1601に表示されることがある。編集ダイアログ1801は、Windowsデスクトップアプリケーションの名前の編集を可能にする編集ボックス1802と、Windowsデスクトップアプリケーションの説明の編集を可能にする編集ボックス1803と、を含んでいる。編集ダイアログ1801は、さらに、ライセンスが必要かどうかを示すためのチェックボックス1804を含んでいる。さらに、編集ダイアログ1801は、アプリケーション群にWindowsデスクトップアプリケーションを追加するためのGUIコントロール例えば、ボタン1805と、アプリケーションタイプを編集するためのGUIコントロール例えば、ボタン1806と、を含んでいる。また、編集ダイアログ1801は、例えばWindowsデスクトップアプリケーションを使用するエンタイトルメントを付与されたユーザのホストコンピュータであるローカルホストコンピュータによりアップロードされるファイルを、管理者が選択することを可能にするGUIコントロール例えば、ボタン1807を含んでいる。GUIコントロール1807をクリックすると、ポップアップダイアログ1808が表示され、これによって、管理者は、マウスおよび/またはキーボードを用いて、ディレクトリのファイルのリスト1809からファイルを選択することが可能である。ポップアップダイアログ1808によって、さらに、管理者は、マウスおよび/またはキーボードを用いて、場所例えば、デバイス、共有、およびプレースのリスト1810から場所を選択することが可能である。さらに、ポップアップダイアログ1808は、ファイル選択操作のキャンセルを可能にするGUIコントロール例えば、ボタンを含んでいる。図19は、例示的な一実施形態により、公開またはリモートアプリケーションを編集するための編集ダイアログのGUIビューを示している。例示的な一実施形態において、このダイアログは、例えばダイアログ1701のラジオボタンのリスト1705でユーザが公開アプリケーションのラジオボタンを選択したときに表示されるアプリケーションのアイコンを管理者がクリックすると、管理者ウェブポータルのアプリケーションタブ1601に表示されることがある。編集ダイアログ1901は、公開アプリケーションの名前の編集を可能にする編集ボックス1902と、公開アプリケーションの説明の編集を可能にする編集ボックス1903と、を含んでいる。編集ダイアログ1901は、さらに、ライセンスが必要かどうかを示すためのチェックボックス1904を含んでいる。さらに、編集ダイアログ1901は、アプリケーション群に公開アプリケーションを追加するためのGUIコントロール例えば、ボタン1905と、アプリケーションタイプを編集するためのGUIコントロール例えば、ボタン1906と、を含んでいる。また、編集ダイアログ1901は、プログラム名の編集ボックス1907と、サーバ識別子の編集ボックス1908と、サーバポートの編集ボックス1909と、を含んでいる。図20は、例示的な一実施形態により、管理者ウェブポータルで表示されるライセンスタブのGUIビューを示している。ライセンスタブ2001は、数ある中でも特に、アプリケーション管理システムにより管理されるライセンスに関するデータのテーブルを表示する。テーブルの列として、1ライセンスされたアプリケーション、2ライセンス数、3ライセンスごとの料金、が含まれる。ライセンスタブ2001は、さらに、ライセンスに関連するレポート2002を表示する。図21は、例示的な一実施形態により、管理者ウェブポータルで表示されるポリシータブのGUIビューを示している。ポリシータブ2101は、数ある中でも特に、管理者がクライアント機器に関するポリシーを設定することを可能にするものであり、この設定によって、アプリケーションのエンタイトルメントが決定される。ポリシータブ2101は、3つのチェックボックスと、クライアント機器によるリモートアクセスのポリシーを設定するための編集ボックスと、を表示する。チェックボックス2102は、チェックされた場合、クライアント機器がADドメイン上のコーポレート所有のものでなければならないことを示している。このようなポリシーは、当然のことながら、人事記録または医療記録などの機密記録にアクセスするアプリケーションに適用され得る。関連する編集ボックス2103によって、ADドメインを特定することが可能である。チェックボックス2104は、チェックされた場合、クライアント機器にウイルス防止機能がインストールされていなければならないことを示している。チェックボックス2105は、チェックされた場合、更新が自動的にクライアント機器にインストールされる必要があることを示している例えば、Windowsオペレーティングシステムの更新、ウイルス定義ファイルの更新など。このようなポリシーは、例示的なものであって、限定するものではない。別のデバイスポリシーは、Windowsがインストールされていることを要求するものであり得る。あるいは、デバイスポリシーは、ADドメインへのアクセスに使用されるチャネルまたは接続に関するものである場合があり、例えば、LAN、WAN、名前とパスワードによる保護、セキュアIDによる保護、などである。さらに、デバイスポリシーは、ジオロケーションに関するものである場合もあり、例えば、クライアント機器が特定の政府機関の管轄区域内に位置している場合にのみ、そのクライアント機器でのアプリケーションの使用が可能となる。さらに、ポリシータブ2101は、管理者が新規のポリシーを追加することを可能にするGUIコントロール例えば、ボタン2106と、ユーザへのヒントを表示するテキストフィールド2107と、を含んでいる。さらに、ポリシータブ2101は、編集による変更を保存するためのGUIコントロール例えば、ボタン2108を含んでいる。図22は、例示的な一実施形態により、ユーザウェブポータルで表示されるGUIビューを示している。例示的な一実施形態において、このビューは、ユーザ例えば、RegisGormanがログインした後に、システムによって表示されることがある。このビュー2201は、そのユーザにエンタイトルメントが付与されているアプリケーションのうち、有効化されているアプリケーションのアイコンを、並べて表示する。ユーザがアイコンをクリックすると、アプリケーションは比較的シームレスに起動する。当然のことながら、GUIビュー2201は、限定するものではなく、例示的なものである。クライアント機器がWindowsデバイスである場合、ユーザにシームレスな感覚を与えるため、GUIビュー2201は、さらに、スタートメニューに追加されたアイコンを含むことがあり、また、アプリケーションについての状態通知をステータスバーに含むことがある。言うまでもなく、Appleデバイスに表示される場合も、シームレス化を図るため、同様の性質の強化がGUIビュー2201に施されることがある。図23は、例示的な一実施形態により、ユーザウェブポータルで表示される別のGUIビューを示している。例示的な一実施形態において、このビューは、ユーザ例えば、RegisGormanがログインした後に、アプリケーション管理システムによって表示されることがある。このビュー2301は、例えばSalesforceのように、そのユーザにエンタイトルメントが付与され、かつ有効化されているアプリケーションのアイコンだけではなく、例えばWorkdayのように、そのユーザにエンタイトルメントが付与されているが、有効化されていないアプリケーションのアイコンも、ともに並べて表示する。例示的な一実施形態において、ユーザは、インストールボタンをクリックすることにより、アプリケーションをインストールすることができる。本明細書に記載の、本発明の一部をなすオペレーションは、いずれも有用なマシンオペレーションである。また、本発明は、これらのオペレーションを実行するためのデバイスまたは装置に関するものである。装置は、上記キャリアネットワークのような、所要の目的のために特別に構築されたものとすることができ、あるいはコンピュータに格納されたコンピュータプログラムによって選択的に起動または設定される汎用コンピュータとすることができる。特に、様々な汎用機を、本明細書の教示に従って書かれたコンピュータプログラムと共に用いることができ、あるいは所要のオペレーションを実行するために、より特化した装置を構築するほうが、利便性が高い場合がある。また、本発明は、コンピュータ読み取り可能な媒体上のコンピュータ読み取り可能なコードとして具現化することができる。コンピュータ読み取り可能な媒体は、データを保存することができるデータ記憶装置であって、後にコンピュータシステムによりそのデータを読み出すことが可能なものである。コンピュータ読み取り可能な媒体の例には、ハードドライブ、ネットワーク接続ストレージNAS、読み取り専用メモリ、ランダムアクセスメモリ、CD‐ROM、CD‐R、CD‐RW、DVD、フラッシュ、磁気テープ、および他の光学式および非光学式のデータ記憶装置が含まれる。コンピュータ読み取り可能な媒体は、コンピュータシステムに接続されたネットワーク上に分散させることもでき、これにより、コンピュータ読み取り可能なコードは分散的に記憶および実行される。例示的な実施形態について、明確な理解を目的として、ある程度詳細に記載したが、以下の請求項の範囲内でいくらかの変更および変形を実施することができることは明らかであろう。例えば、本明細書に記載のプロセスは、サービス型ソフトウェアSaaS、シンアプリケーション、リモートアプリケーションなどの他に、サービス型プラットフォームPaaS:PlatformasaServiceまたはサービス型インフラストラクチャIaaS:InfrastructureasaServiceのプロビジョニングに用いることもできる。上記のプロセスオペレーションは、いずれかの適当な方法で、順序付け、モジュール化、および/または分散させることができる。よって、これらの実施形態は例示とみなされるべきであって、限定するものではなく、また、本発明は、本明細書で提示した詳細に限定されるものではなく、以下の請求項の範囲内および均等物の範囲内で変更することができる。以下の請求項において、要素および/または手順は、請求項に明記されない限り、または開示により暗黙的に規定されない限り、特定のオペレーション順序を意味するものではない。"