(57)【要約】アプリケーション管理ソフトウェアは、チャネルを介してクライアント機器のユーザを認証する。認証オペレーションはディレクトリ・サービスを使用して実行される。アプリケーション管理ソフトウェアは、クライアント機器で表示されるグラフィカル・ユーザインタフェース（ＧＵＩ）に複数のアプリケーションを提示する。複数のアプリケーションは、認証、クライアント機器、及びチャネルによって決まり、シンアプリケーションとサービス型ソフトウェア（ＳａａＳ）アプリケーションとを含む。アプリケーション管理ソフトウェアは、アプリケーションに関する選択をユーザから受け取る。アプリケーション管理ソフトウェアは、選択がＳａａＳアプリケーションについてのものである場合、ＳａａＳアプリケーションのプロビジョニングを実施し、選択がシンアプリケーションについてのものである場合、シンアプリケーションを起動する。
2013545152.tif 000002
【特許請求の範囲】
【請求項１】
ユーザにアプリケーションを提供する方法であって、
チャネルを介してクライアント機器のユーザを認証するオペレーションであって、該認証するオペレーションは、ディレクトリ・サービスを使用して実行される、前記認証するオペレーションと、
前記クライアント機器により表示されるグラフィカル・ユーザインタフェース（ＧＵＩ）において、複数のアプリケーションを提示するオペレーションであって、該複数のアプリケーションは、少なくとも部分的に、前記認証、前記クライアント機器、および前記チャネルによって決まり、該複数のアプリケーションは、シンアプリケーションと、サービス型ソフトウェア（ＳａａＳ）アプリケーションとを含む、前記提示するオペレーションと、
アプリケーションに関する選択を前記ユーザから受け取るオペレーションと、
前記選択がＳａａＳアプリケーションについてのものである場合に、該ＳａａＳアプリケーションのプロビジョニングを実施するオペレーションであって、該プロビジョニングは、シングル・サインオン・プロトコルを用いて、該ＳａａＳアプリケーションのプロバイダのアカウントに前記ユーザを自動的にログオンさせること、前記ユーザが該ＳａａＳアプリケーションとやり取りできるように前記ユーザを前記アカウントに接続させることを含む、前記プロビジョニングを実施するオペレーションと、
前記選択がシンアプリケーションについてのものである場合に、該シンアプリケーションを起動させるオペレーションと
を含み、該方法の各オペレーションは、１つまたは複数のプロセッサにより実行される、方法。
【請求項２】
前記シンアプリケーションは、サンドボックス・アプリケーションである、請求項１に記載の方法。
【請求項３】
前記複数のアプリケーションは、さらに、リモートアプリケーションを含む、請求項１に記載の方法。
【請求項４】
前記リモートアプリケーションは、デスクトップ仮想化アプリケーションである、請求項３に記載の方法。
【請求項５】
前記ＳａａＳアプリケーションは、ウェブアプリケーションである、請求項１に記載の方法。
【請求項６】
前記ユーザに表示される複数のアプリケーションは、少なくとも部分的に、前記ユーザのジオロケーションによって決まる、請求項１に記載の方法。
【請求項７】
前記ユーザに表示される前記複数のアプリケーションの使用、および該使用のジオロケーションに関する統計を収集するオペレーションをさらに含む、請求項６に記載の方法。
【請求項８】
前記プロビジョニングするオペレーションは、ジャストインタイム（ＪＩＴ）で実行される、請求項１に記載の方法。
【請求項９】
前記ディレクトリ・サービスは、アクティブディレクトリ（ＡＤ）サービスである、請求項１に記載の方法。
【請求項１０】
プログラムを格納している非一時的なコンピュータ読み取り可能な記憶媒体であって、該プログラムは、実行されることで、１つまたは複数のプロセッサに、
チャネルを介してクライアント機器のユーザを認証するオペレーションであって、該認証するオペレーションは、ディレクトリ・サービスを使用して実行される、前記認証するオペレーションと、
前記クライアント機器により表示されるグラフィカル・ユーザインタフェース（ＧＵＩ）において、複数のアプリケーションを提示するオペレーションであって、該複数のアプリケーションは、少なくとも部分的に、前記認証、前記クライアント機器、および前記チャネルによって決まり、該複数のアプリケーションは、シンアプリケーションと、サービス型ソフトウェア（ＳａａＳ）アプリケーションとを含む、前記提示するオペレーションと、
アプリケーションに関する選択を前記ユーザから受け取るオペレーションと、
前記選択がＳａａＳアプリケーションについてのものである場合に、該ＳａａＳアプリケーションのプロビジョニングを実施するオペレーションであって、該プロビジョニングは、シングル・サインオンを使用して、該ＳａａＳアプリケーションのプロバイダのアカウントに前記ユーザを自動的にログオンさせること、前記ユーザが該ＳａａＳアプリケーションとやり取りできるように前記ユーザを前記アカウントに接続させることを含む、前記プロビジョニングを実施するオペレーションと、
前記選択がシンアプリケーションについてのものである場合に、該シンアプリケーションを起動させるオペレーションと
を実行するように命令する、コンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記シンアプリケーションは、サンドボックス・アプリケーションである、請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記複数のアプリケーションは、さらに、リモートアプリケーションを含む、請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
前記リモートアプリケーションは、デスクトップ仮想化アプリケーションである、請求項１２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１４】
前記ＳａａＳアプリケーションは、ウェブアプリケーションである、請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１５】
前記ユーザに表示される複数のアプリケーションは、少なくとも部分的に、前記ユーザのジオロケーションによって決まる、請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１６】
前記ユーザに表示される前記複数のアプリケーションの使用、および該使用のジオロケーションに関する統計を収集するオペレーションをさらに含む、請求項１５に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１７】
前記プロビジョニングするオペレーションは、ジャストインタイム（ＪＩＴ）で実行される、請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１８】
前記ディレクトリ・サービスは、アクティブディレクトリ（ＡＤ）サービスである、請求項１０に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１９】
ユーザにアプリケーションを提供する方法であって、
チャネルを介してクライアント機器のユーザを認証するオペレーションであって、該認証するオペレーションは、ディレクトリ・サービスを使用して実行される、前記認証するオペレーションと、
前記クライアント機器により表示されるグラフィカル・ユーザインタフェース（ＧＵＩ）において、複数のアプリケーションを提示するオペレーションであって、該複数のアプリケーションは、少なくとも部分的に、前記ユーザの認証、前記クライアント機器、および前記クライアント機器のジオロケーションによって決まり、該複数のアプリケーションは、サンドボックス・アプリケーションと、サービス型ソフトウェア（ＳａａＳ）アプリケーションとを含む、前記提示するオペレーションと、
アプリケーションに関する選択を前記ユーザから受け取るオペレーションと、
前記選択がＳａａＳアプリケーションについてのものである場合に、該ＳａａＳアプリケーションのプロビジョニングを実施するオペレーションであって、該プロビジョニングは、シングル・サインオンを使用して、該ＳａａＳアプリケーションのプロバイダのアカウントに前記ユーザを自動的にログオンさせること、前記ユーザが該ＳａａＳアプリケーションとやり取りできるように前記ユーザを前記アカウントに接続させることを含む、前記プロビジョニングを実施するオペレーションと、
前記選択がサンドボックス・アプリケーションについてのものである場合に、該サンドボックス・アプリケーションを起動させるオペレーションと
を含み、該方法の各オペレーションは、１つまたは複数のプロセッサにより実行される、方法。
【請求項２０】
前記ユーザに表示される複数のアプリケーションは、さらに、仮想化されたデスクトップアプリケーションを含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、シンアプリケーション、リモートアプリケーション、およびＳａａＳアプリケーションのための統合ワークスペースに関する。
【背景技術】
【０００２】
エンタープライズ・レベルでソフトウェア・アプリケーションをデプロイするコンテキストにおいて、「エンタイトルメント」という用語は、ユーザによるアプリケーションへのアクセスを許可するかどうかを、例えばライセンス契約またはカンパニーポリシーに従って決定するプロセスを指している。「プロビジョニング」という用語は、実際にユーザにアプリケーションを提供するか、またはユーザによるアクセスを可能にするプロセスを指している。プロビジョニングは、一般に、エンタイトルメントが決定した後にのみ発生する。
【０００３】
従来、デスクトップアプリケーションのエンタイトルメントおよびプロビジョニングは、アプリケーションを使用するライセンス／権限を持つユーザに関連付けられたコンピューティング・システム（例えば、プラットフォームソフトウェアを備えるハードウェアデバイス）にアプリケーションをインストールするためのインストーラプログラムまたはスクリプトを実行することにより行われていた。多くの場合、そのようなインストールは自動化することができる。
【０００４】
本明細書で「シンアプリケーション」と呼ぶ、ある種のアプリケーションは、ユーザのコンピューティング・システムでの本格的なインストール（例えば、レジストリ設定を含む）を必要とすることなく、ユーザのディスクに単にコピーするだけでよい簡単な実行可能ファイルから実行することができる。例えば、シンアプリケーションには、カリフォルニア州パロアルトのヴイエムウェア社（ＶＭｗａｒｅ，Ｉｎｃ．）から入手可能なＴｈｉｎＡｐｐ（登録商標）を使用して仮想化されたものなど、多くの仮想化されたアプリケーションが含まれる。同様に、他のアプリケーションとして、ネットワークを介してリモートからアクセスできるものであって、ユーザのデバイスのカスタマイズは必要であるとしても極めて少ないものがある。例えば、リモート仮想マシンからデスクトップへのリモート処理を行うシステムであって、ユーザにより直接アクセスされるシンクライアントを含むデスクトップ・リモーティング・システム、ＶＭｗａｒｅ Ｖｉｅｗ（登録商標）などの仮想デスクトップ・インフラストラクチャ（ＶＤＩ：Ｖｉｒｔｕａｌ Ｄｅｓｋｔｏｐ Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）ソリューションなどを使用して、アプリケーションにリモートからアクセスすることができる。別の例では、ブラウザまたは他のシンクライアントを使用して、ターミナルサーバホスティング・ユーザアプリケーションにアクセスすることができる。
【０００５】
同様に、その性質上、クラウド型アプリケーションである、サービス型ソフトウェア（ＳａａＳ：Ｓｏｆｔｗａｒｅ ａｓ ａ Ｓｅｒｖｉｃｅ）アプリケーションは、一般に、ユーザのシステムまたはデバイスのインストールまたは変更を必要としない。ＳａａＳアプリケーションは、一般に、ウェブベースのものであり、例えばウェブブラウザを通してアクセスおよび使用される。これによって、プロビジョニングは簡単になるが、認証およびエンタイトルメントの実施は複雑になることがある。ＳａａＳアプリケーションの場合、通常、ユーザが、例えばユーザ識別子とパスワードの組み合わせを提供することにより、ＳａａＳプロバイダによる認証を受けた後に、ＳａａＳは、ユーザをそのアカウントに接続し、特定のアプリケーションへのアクセスを許可する。
【０００６】
ソフトウェア開発が、従来のアプリケーションから、仮想化されたアプリケーション、リモートアプリケーション、およびＳａａＳアプリケーションに移行するにつれて、増加する多くのアクセスチャネルを用いるますます多くのクライアント機器（例えば、Ｗｉ‐Ｆｉネットワークを用いるスマートフォンなどのモバイル機器）について、そのようなアプリケーションのエンタイトルメントおよびプロビジョニングを管理するための集中型アプローチが必要となる。
【発明の概要】
【課題を解決するための手段】
【０００７】
例示的な態様において、ユーザにアプリケーションを提供するため、プロセッサにより実行される方法について記載する。この方法によれば、アプリケーション管理ソフトウェアにより、チャネルを介してクライアント機器のユーザを認証する。この認証オペレーションは、ディレクトリ・サービスを使用して実行される。アプリケーション管理ソフトウェアにより、クライアント機器で表示されるグラフィカル・ユーザインタフェース（ＧＵＩ）内に、複数のアプリケーションを提示する。これら複数のアプリケーションは、少なくとも部分的に、認証、クライアント機器、およびチャネルによって決まる。また、これら複数のアプリケーションには、シンアプリケーションとサービス型ソフトウェア（ＳａａＳ）アプリケーションとが含まれる。アプリケーション管理ソフトウェアにより、アプリケーションに関する選択をユーザから受け取る。その選択がＳａａＳアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのＳａａＳアプリケーションのプロビジョニングを実施する。このプロビジョニングには、シングル・サインオンを使用して、そのＳａａＳアプリケーションのプロバイダのアカウントにユーザを自動的にログオンさせること、ユーザがＳａａＳアプリケーションとやり取りできるようにユーザをアカウントに接続させることが含まれる。選択がシンアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのシンアプリケーションを起動する。
【０００８】
他の例示的な態様では、装置について、すなわち、ユーザにアプリケーションを提供するためのプログラムを永続的に記憶するコンピュータ読み取り可能な記憶媒体について記載する。そのプログラムにより、チャネルを介してクライアント機器のユーザを認証する。この認証オペレーションは、ディレクトリ・サービスを使用して実行される。プログラムにより、クライアント機器で表示されるＧＵＩ内に、複数のアプリケーションを提示する。これら複数のアプリケーションは、少なくとも部分的に、認証、クライアント機器、およびチャネルによって決まる。また、これら複数のアプリケーションには、シンアプリケーションとサービス型ソフトウェア（ＳａａＳ）アプリケーションとが含まれる。プログラムにより、アプリケーションに関する選択をユーザから受け取る。その選択がＳａａＳアプリケーションについてのものである場合は、プログラムにより、そのＳａａＳアプリケーションのプロビジョニングを実施する。このプロビジョニングには、シングル・サインオンを使用して、そのＳａａＳアプリケーションのプロバイダのアカウントにユーザを自動的にログオンさせること、ユーザがＳａａＳアプリケーションとやり取りできるようにユーザをアカウントに接続させることが含まれる。選択がシンアプリケーションについてのものである場合は、プログラムにより、そのシンアプリケーションを起動する。
【０００９】
他の例示的な態様は、同じく、ユーザにアプリケーションを提供するため、プロセッサにより実行される方法に関するものである。この方法によれば、アプリケーション管理ソフトウェアにより、チャネルを介してクライアント機器のユーザを認証する。この認証オペレーションは、ディレクトリ・サービスを使用して実行される。アプリケーション管理ソフトウェアにより、クライアント機器で表示されるＧＵＩ内に、複数のアプリケーションを提示する。これら複数のアプリケーションは、少なくとも部分的に、認証、クライアント機器、およびクライアント機器のジオロケーションによって決まる。また、これら複数のアプリケーションには、サンドボックス・アプリケーションとサービス型ソフトウェア（ＳａａＳ）アプリケーションとが含まれる。アプリケーション管理ソフトウェアにより、アプリケーションに関する選択をユーザから受け取る。その選択がＳａａＳアプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのＳａａＳアプリケーションのプロビジョニングを実施する。このプロビジョニングには、シングル・サインオンを使用して、そのＳａａＳアプリケーションのプロバイダのアカウントにユーザを自動的にログオンさせること、ユーザがＳａａＳアプリケーションとやり取りできるようにユーザをアカウントに接続させることが含まれる。選択がサンドボックス・アプリケーションについてのものである場合は、アプリケーション管理ソフトウェアにより、そのサンドボックス・アプリケーションを起動する。
【００１０】
本発明の他の態様および効果は、発明の原理を例によって示す添付の図面を併用して行われる以下の詳細な説明から、明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】例示的な一実施形態により、認証、エンタイトルメント、およびプロビジョニングを管理するシステムのアーキテクチャを示すシステム概略図である。
【図２】例示的な一実施形態により、認証、エンタイトルメント、およびプロビジョニングを管理するシステムにおける機能モジュールの図である。
【図３Ａ】例示的な一実施形態によるＳＳＯのシナリオを示すシーケンス図である。
【図３Ｂ】例示的な一実施形態によるＳＳＯの別のシナリオを示すシーケンス図である。
【図３Ｃ】例示的な一実施形態によるＳＳＯの別のシナリオを示すシーケンス図である。
【図４】例示的な一実施形態による、新規のＳａａＳアカウントのエンタイトルメントおよびプロビジョニングのプロセスを示すシーケンス図である。
【図５】例示的な一実施形態により、プロビジョニング・タスクを保存するプロセスを示すフローチャートである。
【図６】例示的な一実施形態により、プロビジョニング・タスクを決定するプロセスを示すフローチャートである。
【図７】例示的な一実施形態により、アプリケーションのプロビジョニングを実施するプロセスを示すフローチャートである。
【図８】例示的な一実施形態により、Ｍｏｚｙアプリケーションのプロビジョニングを実施するプロセスを示すフローチャートである。
【図９Ａ】例示的な一実施形態により、セッションで、ＳａａＳアプリケーションに対しユーザを認証するプロセスを示すフローチャートである。
【図９Ｂ】例示的な一実施形態により、セッションで、ＳａａＳアプリケーションに対しユーザを認証するプロセスを示すフローチャートである。
【図１０】例示的な一実施形態により、管理者ウェブポータルで表示されるダッシュボード・タブのＧＵＩビューを示している。
【図１１】例示的な一実施形態により、管理者ウェブポータルで表示されるユーザ・タブのＧＵＩビューを示している。
【図１２】例示的な一実施形態により、管理者ウェブポータルで表示されるユーザ編集ダイアログのＧＵＩビューを示している。
【図１３】例示的な一実施形態により、管理者ウェブポータルで表示されるグループ・タブのＧＵＩビューを示している。
【図１４】例示的な一実施形態により、管理者ウェブポータルで表示されるグループ編集ダイアログのＧＵＩビューを示している。
【図１５】例示的な一実施形態により、管理者ウェブポータルで表示されるエンタイトルメント編集ダイアログのＧＵＩビューを示している。
【図１６】例示的な一実施形態により、管理者ウェブポータルで表示されるアプリケーション・タブのＧＵＩビューを示している。
【図１７】例示的な一実施形態により、アプリケーションを追加するためのダイアログのＧＵＩビューを示している。
【図１８】例示的な一実施形態により、Ｗｉｎｄｏｗｓデスクトップアプリケーションを編集するための編集ダイアログのＧＵＩビューを示している。
【図１９】例示的な一実施形態により、公開（またはリモート）アプリケーションを編集するための編集ダイアログのＧＵＩビューを示している。
【図２０】例示的な一実施形態により、管理者ウェブポータルで表示されるライセンス・タブのＧＵＩビューを示している。
【図２１】例示的な一実施形態により、管理者ウェブポータルで表示されるポリシー・タブのＧＵＩビューを示している。
【図２２】例示的な一実施形態により、ユーザウェブポータルで表示されるＧＵＩビューを示している。
【図２３】例示的な一実施形態により、ユーザウェブポータルで表示される別のＧＵＩビューを示している。
【発明を実施するための形態】
【００１２】
以下の説明では、例示的な実施形態についての完全な理解を与えるため、様々な具体的詳細について記載している。しかし、本明細書に記載の例示的な実施形態は、それら特定の詳細の一部を省いても実施することができることに留意すべきである。また、既に周知のプロセスの運用および実装の細部については詳細に記載していない。
【００１３】
全体として、本明細書で記載する例示的な実施形態は、（ローカルとリモートの両方の）デスクトップアプリケーション、サービス型ソフトウェア（ＳａａＳ）アプリケーション、およびデータのための統合ワークスペースを提供するものである。エンドユーザには、アプリケーションにアクセスする種々のクライアント機器にわたって機能する単一のワークスペースが提供される一方、管理者には、アプリケーションのエンタイトルメントとプロビジョニングを管理するための単一の場所が提供される。
【００１４】
図１は、例示的な一実施形態により、認証、エンタイトルメント、およびプロビジョニングを管理するシステム１００のアーキテクチャを示すシステム概略図である。この図に示すように、システムは、アプリケーション・マネージャ１０１を備え、これは、数ある中でも特に、（１）管理者が、ユーザ、アプリケーション、およびアカウントを管理するための接続を（例えば、管理者ポータルを通して）行うことと、（２）エンドユーザが、（ａ）比較的シームレスにアプリケーションを起動すること、または（ｂ）自身がエンタイトルメントを付与されているアプリケーションを有効／無効にすること、および（ｃ）クライアント機器を用いてユーザ／デバイスごとのアプリケーション・エンタイトルメントのリストを取得するための接続をＲＥＳＴフルなＡＰＩによって行うこと、が可能な場所に、（例えば、ユーザポータルを通して）接続することと、を可能にするものである。言うまでもなく、“ＲＥＳＴ”は、“ＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ Ｓｔａｔｅ Ｔｒａｎｓｆｅｒ”の頭字語であり、“ＡＰＩ”は、“Ａｐｐｌｉｃａｔｉｏｎ Ｐｒｏｇｒａｍｍｉｎｇ Ｉｎｔｅｒｆａｃｅ”の頭字語である。また、言うまでもなく、ＲＥＳＴフルなＡＰＩは、通常、インターネットメディアタイプ（例えば、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ Ｏｂｊｅｃｔ Ｎｏｔａｔｉｏｎ：ジャバスクリプトによるオブジェクト記法）、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ：拡張マークアップ言語）、またはＹＡＭＬ）での、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ Ｔｒａｎｓｆｅｒ Ｐｒｏｔｏｃｏｌ：ハイパーテキスト転送プロトコル）操作（例えば、ＰＯＳＴ、ＧＥＴ、ＰＵＴ、またはＤＥＬＥＴＥ）をサポートしている。
【００１５】
図１に示すように、アプリケーション・マネージャ１０１は、システムでサポートされるＳａａＳアプリケーション・プロバイダ（Ｓａｌｅｓｆｏｒｃｅ．ｃｏｍ：セールスフォース・ドットコム、Ｇｏｏｇｌｅ：グーグルなど）であるサードパーティＳａａＳ １０２と、（例えば、インターネットまたは他のＷＡＮを含み得るネットワークを介して）通信する。アプリケーション・マネージャ１０１は、サードパーティＳａａＳ １０２の新規のユーザアカウントのプロビジョニングを実施し、シングル・サインオン（ＳＳＯ：Ｓｉｎｇｌｅ Ｓｉｇｎ‐Ｏｎ）を提供することが可能である。例示的な一実施形態では、サードパーティＳａａＳ １０２は、プロビジョニングＡＰＩを有していることがあり、さらに／またはＳＡＭＬ（Ｓｅｃｕｒｉｔｙ Ａｓｓｅｒｔｉｏｎ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ：セキュリティ・アサーション・マークアップ言語）をサポートしていることがある。ＳＡＭＬは、ＳＳＯ認証を可能にするための周知の規格である。ＳＡＭＬをサポートしていないか、またはプロビジョニングＡＰＩを持たないサードパーティＳａａＳ １０２プロバイダには、アプリケーション・マネージャ１０１は、新規のユーザアカウントのプロビジョニングを可能にするための下位レベルのスクリーンスクレイピング（ｓｃｒｅｅｎ ｓｃｒａｐｉｎｇ）ＡＰＩを提供する場合がある。
【００１６】
さらに図１に示すように、アプリケーション・マネージャ１０１は、サポートされているクライアント機器と、（例えば、その全体または一部がワイヤレスであり得るインターネットまたは他のＷＡＮを介して）通信し、それらのクライアント機器には、限定するものではない例として、（１）Ｗｉｎｄｏｗｓクライアント１０３ａ（例えば、Ｍｉｃｒｏｓｏｆｔ Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムを実行するインテル（Ｉｎｔｅｌ）ｘ８６系マイクロプロセッサを含むプラットフォームを有するもの）と、（２）Ｍａｃクライアント１０３ｂ（例えば、ＭａｃＯＳ（登録商標）オペレーティングシステムを実行するインテルｘ８６系マイクロプロセッサを含むプラットフォームを有するもの）と、（３）ｉＰａｄ（登録商標）クライアント１０３ｃ（例えば、ｉＯＳ（登録商標）オペレーティングシステムを実行するＡＲＭマイクロプロセッサを含むプラットフォームを有するもの）と、が含まれる。例示的な一実施形態では、この通信は、サポートされているクライアント機器上のネイティブ・エージェントによる上記ＲＥＳＴフルなＡＰＩへの呼び出しによって行われる。例えば、ネイティブ・エージェントは、周期的に、ＲＥＳＴフルなＡＰＩを用いて、（ａ）クライアント機器のオペレーティングシステム（およびパッチ）と、（ｂ）ウイルス防止／ファイアウォール／アンチスパイウェアがインストールされているかどうかと、（ｃ）クライアント機器が接続されているドメインと、（ｄ）自動更新がインストールされているかどうかと、に関するデバイス構成情報を送信する場合がある。レスポンスで、ネイティブ・エージェントは、アプリケーション・マネージャ１０１からエンタイトルメントのリストを受け取ることになる。そして、ネイティブ・エージェントは、それらのエンタイトルメントを、現在インストールされているものと比較し、適当なインストール、アップグレード、および／またはアンインストール処理を実行する。
【００１７】
シンアプリケーションとネイティブアプリケーションの場合には、インストールは、ＭＳＩ（Ｗｉｎｄｏｗｓインストーラ）をインストールすることを伴うことがある。リモートアプリケーションの場合には、インストールは、ＲＤＰ（Ｒｅｍｏｔｅ Ｄｅｓｋｔｏｐ Ｐｒｏｔｏｃｏｌ：リモートデスクトップ・プロトコル）の設定を伴うことがある。ＳａａＳアプリケーションの場合には、インストールは、アプリケーションへのＵＲＬショートカットの設定を伴うことがある。ショートカットは、ユーザのデスクトップにインストールすることができ、そしてアイコンとして表示されて、これをダブルクリックによって起動させることが可能である。このショートカットのＵＲＬ（Ｕｎｉｆｏｒｍ Ｒｅｓｏｕｒｃｅ Ｌｏｃａｔｏｒ：ユニフォームリソースロケータ）は、ＳａａＳアプリケーションのＵＲＬのリダイレクト部分によって、アプリケーション・マネージャ１０１にアクセスするために、ユーザのブラウザを起動させるものである。より具体的には、ＳａａＳショートカットをユーザがクリックすると、ショートカットのＵＲＬは、ＳＳＯ接続を開始するために、アプリケーション・マネージャ１０１に誘導する。ＳＳＯセッションが作成された後に、アプリケーション・マネージャ１０１は、ＳＡＭＬ ＩｄＰ開始ＳＳＯプロファイルで規定される適切な認証情報によって、ユーザのブラウザをサードパーティＳａａＳ １０２にリダイレクトする。
【００１８】
さらに図１に示すように、アプリケーション・マネージャ１０１は、ウェブブラウザ１０３ｄ（例えば、ＨＴＭＬ５、Ａｄｏｂｅ Ｆｌａｓｈ（アドビ・フラッシュ）などをサポートしているブラウザ）と通信することもできる。例示的な一実施形態では、システムは、ネイティブ・エージェントによってではなく、システムプラグインを持つウェブブラウザで直接アクセスすることができるユーザポータルを提供する。そのようなシステムプラグインに含まれる機能は、例えば、（１）ＳＡＭＬ（または他のＩＤプロトコルの規格）をサポートしていない下位レベルのＳａａＳアプリケーションへのＳＳＯを可能にし得る、さらに（２）ＳａａＳアプリケーションの使用についてのメトリクスをシステムに提供し、さらに／または管理者に報告するためのジオロケーション（地理的位置）を提供し得るものである。ここで、言うまでもなく、ジオロケーション情報は、例示的な一実施形態において、ウェブブラウザでＷ３ＣジオロケーションＡＰＩまたは類似のＡＰＩを用いて、クライアント機器から得ることができる。
【００１９】
さらに、図１は、アプリケーション・マネージャ１０１が、ファイアウォール１０４を介してエンタープライズ・コネクタ１０５と通信することを示している。例示的な一実施形態において、エンタープライズ・コネクタ１０５は、アプリケーション・マネージャ１０１がエンタープライズ・コネクタ１０５にコマンドを送信することができるように、アプリケーション・マネージャ１０１へのセキュア接続を開始する場合がある。また、エンタープライズ・コネクタ１０５は、例示的な一実施形態において、仮想アプライアンスとすることができる。エンタープライズ・コネクタ１０５は、既存のコーポレートプロセスおよびディレクトリと統合するための、エンタープライズへのブリッジを提供する。カンパニーがファイアウォールに穴を開けざるを得なくなることを防ぐため、エンタープライズ・コネクタ１０５は、ファイアウォール１０４の背後にインストールされて、アプリケーション・マネージャ１０１に接続され、このとき、例えば、セキュア接続が使用されるか、またはローカルエリアネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）が使用され、その全体または一部はワイヤレスであり得るが、ただし、識別情報を保証するためのセキュリティ対策が採用される。そのようなセキュリティ対策の一例は、アプリケーション・マネージャ１０１がエンタープライズ・コネクタ１０５の身元を確認することができるように、エンタープライズ・コネクタ１０５にインストールされ、アプリケーション・マネージャ１０１に登録された証明書である。
【００２０】
例示的な一実施形態において、エンタープライズ・コネクタ１０５は、ＳＳＯのためのアイデンティティ・プロバイダ（ＩｄＰ）として機能することがある。このような立場で、エンタープライズ・コネクタ１０５は、アクティブディレクトリ（“ＡＤ”：Ａｃｔｉｖｅ Ｄｉｒｅｃｔｏｒｙ）サーバ１０６のような内部ＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ Ｄｉｒｅｃｔｏｒｙ Ａｃｃｅｓｓ Ｐｒｏｔｏｃｏｌ：ライトウェイト・ディレクトリアクセス・プロトコル）サーバに対する認証を、パスワードを公開することなく提供することがある。このような実施形態では、言うまでもなく、ＡＤサーバ１０６は、コーポレートユーザ識別情報の「真実の情報源（ｓｏｕｒｃｅ ｏｆ ｔｒｕｔｈ）」であり、よって、コーポレートユーザ識別情報の更新を受け取るとともに、レポートする。エンタープライズ・コネクタ１０５が存在しない別の例示的実施形態では、アプリケーション・マネージャ１０１は、認証、およびユーザ更新を伴う処理を実行するときに、セキュア接続またはセキュリティ対策を採用している接続を使用して、ＡＤサーバ１０６に直接接続する場合がある。
【００２１】
さらに、エンタープライズ・コネクタ１０５は、ファイアウォール１０４の背後で、既存のワークフローおよびライセンシング・プロセスと統合するためのステージング領域として機能することがある。このような立場で、エンタープライズ・コネクタ１０５は、例えば、ＷＳ‐ＢＰＥＬ（Ｗｅｂ Ｓｅｒｖｉｃｅｓ Ｂｕｓｉｎｅｓｓ Ｐｒｏｃｅｓｓ Ｅｘｅｃｕｔｉｏｎ Ｌａｎｇｕａｇｅ：ウェブサービス・ビジネスプロセス実行言語）で構築されたカスタムワークフロー、または管理ツールに組み込まれたカスタムワークフローを用いて、既存の管理ツールおよびプロセス１０７へのプロビジョニング・コールアウトを行うことがある。このようなプロビジョニング・コールアウトを行うときには、エンタープライズ・コネクタ１０５は、既存のライセンス追跡システム、資産管理システムなどからの情報を利用する。
【００２２】
同様に、エンタープライズ・コネクタ１０５は、ファイアウォール１０４の内側で、ＳＡＭＬ、またはＩＴ実行ＳａａＳ １０８により公開されるプロビジョニングＡＰＩを用いて、ＳａａＳプロビジョニングを実行することがある。ＩＴ実行ＳａａＳ １０８には、Ｏｒａｃｌｅ Ａｐｐｓ、Ｏｕｔｌｏｏｋ Ｗｅｂ Ａｐｐ（ＯＷＡ）などのＳａａＳアプリケーションが含まれる場合がある。例示的な一実施形態において、これらの内部ＳａａＳアプリケーションの一部またはすべてが、ＡＤサーバ１０６に対してはプロビジョニングされないことがある。
【００２３】
エンタープライズ・コネクタ１０５は、追加のアプリケーションをサポートするためのシステム１００の拡張を可能にするものであってもよい。例えば、システム１００のユーザは、豪州シドニーのアトラシアン社（Ａｔｌａｓｓｉａｎ Ｐｔｙ Ｌｔｄ．）から入手できる課題およびプロジェクト追跡アプリケーションであるＪｉｒａ（登録商標）を使用したいことがあるが、システム１００は、そのような使用をサポートするドライバを提供していない。このような場合、ユーザは、エンタープライズ・コネクタ１０５において、自身のドライバを作成し、それらを例えばプラグインまたは拡張機能としてインストールすることができる。その後、ドライバは、Ｊｉｒａにかかわるプロビジョニング処理の一部として実行される。
【００２４】
例示的な一実施形態において、図１に示すシステムは、分散コンピューティング・ソフトウェア（Ａｐａｃｈｅ’ｓ Ｈａｄｏｏｐ（アパッチのハドゥープ）、またはＭａｐ‐Ｒｅｄｕｃｅ（マップリデュース）および／もしくはＧｏｏｇｌｅ Ｆｉｌｅ Ｓｙｓｔｅｍ（グーグル・ファイルシステム）に基づく他のソフトウェアを含む）を実行し得るクラスタまたは他の分散システムで、相互にネットワーク（例えば、ＬＡＮまたはＷＡＮ）で接続された複数のサーバ上で、仮想化ソフトウェア（例えば、ＶＭｗａｒｅ（ヴイエムウェア社）、Ｃｉｔｒｉｘ（シトリックス社）、Ｍｉｃｒｏｓｏｆｔ（マイクロソフト社）などにより提供されるようなもの）、負荷分散ソフトウェア、データベース・ソフトウェア（例えば、ＳＱＬ、ＮｏＳＱＬなど）、ウェブサーバ・ソフトウェアなどを実行する場合がある。そして、その分散システムは、認証、エンタイトルメント、およびプロビジョニングに関するデータを（例えば、データベースまたは他のファイルに）記憶する永続ストレージに、（例えば、ストレージエリア・ネットワーク（ＳＡＮ：Ｓｔｏｒａｇｅ Ａｒｅａ Ｎｅｔｗｏｒｋ）によって）接続されることがある。それらのサーバ自体は、（１）１つまたは複数のマイクロプロセッサ（例えば、ｘ８６系のもの）、揮発性ストレージ（例えば、ＲＡＭ）、および永続ストレージ（例えば、ハードディスクまたはソリッドステート・ドライブ）から構成されるハードウェアと、（２）そのハードウェア上で実行されるオペレーティングシステム（例えば、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ Ｓｅｒｖｅｒ、Ｍａｃ ＯＳ Ｓｅｒｖｅｒなど）と、を含み得る。
【００２５】
図２は、例示的な一実施形態により、認証、エンタイトルメント、およびプロビジョニングを管理するシステム２００における機能モジュールの図である。この図に示すように、機能モジュールのうち２つはクライアント機器上にあり、それらは、（１）ウェブブラウザ１０３ｄとインタフェースして、上記のように、システムによるロギングおよびレポーティングのために使用状況をＲＥＳＴフルなＡＰＩ ２０３に報告するブラウザ・プラグイン（またはエージェント）１０３ｅと、（２）同じく上記のように、ｘ８６プラットフォーム（例えば、ＷｉｎｄｏｗｓもしくはＭａｃのラップトップもしくはデスクトップ）またはＡＲＭプラットフォーム（例えば、ｉＰｈｏｎｅ、ｉＰａｄ、Ａｎｄｒｏｉｄスマートフォン、Ａｎｄｒｏｉｄタブレットなど）を持つクライアント機器にインストールされたネイティブ・エージェント（またはクライアント）１０３である。
【００２６】
図２に示すように、システムのサーバ側モジュールには、クライアント側モジュールとインタフェースする４つのモジュールが含まれる。これらのモジュールのうち１つは、管理用ウェブＵＩ（ユーザインタフェース）２０１であり、これにアクセスすることによって、管理者は、数ある中でも特に、（１）アプリケーションおよびアプリケーション群（例えば、この場合、「群」とは、１つのアプリケーションのいくつかの異なるバージョンからなる群ではなく、一まとまりのものとして管理することができるアプリケーションの任意のグループである）と、（２）エンドユーザと、（３）クライアント機器およびクライアント機器に関連するポリシーと、（４）エンタイトルメントと、を管理することができる。また、管理者は、例示的な一実施形態において、使用状況および／またはジオロケーションに関するレポートを管理用ウェブＵＩ ２０１で閲覧できる場合もある。本開示の他の部分では、管理用ウェブＵＩ ２０１は、「管理者ウェブポータル」と呼ばれる。
【００２７】
さらに、図２に示すように、システムのサーバ側モジュールには、ユーザウェブＵＩ ２０２が含まれており、これにアクセスすることによって、ユーザは、比較的シームレスにアプリケーションを起動することができ、また、エンタイトルメントを持つアプリケーションで無効化されているものを有効にすることができる。さらに、システムのサーバ側モジュールには、ＲＥＳＴフルＡＰＩ ２０３が含まれており、これは、ＡＰＩのセットを含むことができ、また、システムがどのように実装および／または構成されているのかに応じて、システムの機能の一部またはすべてへのアクセスを提供する。別の例示的実施形態では、システムの機能へのアクセスには、全体的または部分的に、ＳＯＡＰ（Ｓｉｍｐｌｅ Ｏｂｊｅｃｔ Ａｃｃｅｓｓ Ｐｒｏｔｏｃｏｌ：簡易オブジェクト・アクセス・プロトコル）プロトコル、またはプロセス間通信のための他の何らかのプロトコルが使用され得る。本開示の他の部分では、ユーザウェブＵＩ ２０２は、「ユーザウェブポータル」と呼ばれる。
【００２８】
さらに図２に示すように、システムのサーバ側モジュールには、ＳＡＭＬフロントエンド２０４が含まれており、これは、ＳＡＭＬを解釈し、また、ＳＳＯ認証に関する実際の処理の多くを実行するため、ＳＳＯサービス２１１を使用してＳＡＭＬセッションを作成する。
【００２９】
クライアント側モジュールとインタフェースしている４つのサーバ側モジュールの下には、サーバ側モジュール２０１〜２０４が通信のためとバックエンド機能を提供するサーバ側モジュールへのアクセスのために使用する内部Ｊａｖａ ＡＰＩ ２０５がある。内部Ｊａｖａ ＡＰＩ ２０５は、例示的な一実施形態において、そのすべてのＡＰＩコールのログをロギング／解析ストア２１５に記録することがある。そして、この情報は、使用状況および／またはジオロケーションについてのレポートを作成するために用いられる場合がある。
【００３０】
バックエンド機能を提供するサーバ側モジュールには、システムの購入者がシステムを配給しているエンティティ（すなわち、ＶＭｗａｒｅ）と対話するためのＡＰＩを提供するアカウント管理用のモジュール２０６が含まれる。バックエンド機能を提供するサーバ側モジュールには、さらに、アプリケーション・エンタイトルメント・ストア（ＡＥＳ：Ａｐｐｌｉｃａｔｉｏｎ Ｅｎｔｉｔｌｅｍｅｎｔ Ｓｔｏｒｅ）オブジェクトストア２１４のオブジェクトを検索するための検索インタフェースを提供する検索モジュール２０７が含まれる。例示的な一実施形態において、ＡＥＳオブジェクトストア２１４のオブジェクトは、検索に備えて、Ｓｏｌｒ（ソーラ）インデックスでインデックス化される場合がある。Ｓｏｌｒは、ＡｐａｃｈｅのＬｕｃｅｎｅ（ルシーン）プロジェクトからのオープンソースのエンタープライズ検索プラットフォームである。
【００３１】
バックエンド機能を提供する他のサーバ側モジュールは、ユーザレポート用のモジュール２０８である。このモジュール２０８は、管理者のためのレポートを作成する。例示的な一実施形態において、モジュール２０８は、数ある中でも特にロギング／解析ストア２１５とＡＥＳオブジェクトストア２１４から、レポートのためのデータを取得する。レポートは、ライセンス、アプリケーションの使用状況、アクセス場所（例えば、ジオロケーション）、ユーザおよび／またはタイプおよび／または構成ごとのデバイス、などを対象として含んでいる場合がある。例示的な一実施形態において、ロギング／解析ストア２１５からのレポートは、ＡｐａｃｈｅのＨａｄｏｏｐ（例えば、Ｈａｄｏｏｐジョブ）を使用して作成されることがある。さらに、例示的な一実施形態において、レポートは、ＯＬＡＰ（ＯｎＬｉｎｅ Ａｎａｌｙｔｉｃａｌ Ｐｒｏｃｅｓｓｉｎｇ：オンライン分析処理）キューブのようなキューブを生成することがあり、この場合、キューブは、数ある中でも特に、（ａ）ユーザ、（ｂ）グループ／タグ、（ｃ）アプリケーション、（ｄ）日付／時刻、および（ｅ）デバイスタイプについての次元を持ち得る。これらの次元の各々は、当然のことながら、同じレポートで同じキューブに生成されないことがある。例示的な一実施形態において、ユーザレポートは、さらに、アプリケーション・プロビジョニング数、使用時間、ある場所での使用時間、ログインの数、などに関するメトリクスを含むことがある。
【００３２】
バックエンド機能を提供するサーバ側モジュールには、プロビジョニング用のモジュール２０９が含まれる。例示的な一実施形態において、モジュール２０９は、様々なタイプのアプリケーションのためのカスタムロジック（または、プロビジョニング・ドライバ）を有する場合がある。例えば、ＳａａＳアプリケーション２２０について、プロビジョニング・ドライバは、表１で規定するプロセスに従って動作し得る。
【００３３】
【表１】
2013545152.tif 000003
例えば、ＳａｌｅｓｆｏｒｃｅのＳａａＳは、ＪＩＴプロビジョニングを採用しているので、ユーザがＳａｌｅｓｆｏｒｃｅのＳａａＳアプリケーションにアクセスしようとすると、Ｓａｌｅｓｆｏｒｃｅは、即時プロビジョニング決定のために、システムとコンタクトをとる。
【００３４】
フォーム記入は、ＳａａＳプロバイダがＳＡＭＬ（または他のＳＳＯスキーム）をサポートしていない場合に、ＳａａＳアプリケーション２２０に対する認証のために用いられる。つまり、モジュール２０９は、プロビジョニングの際にパスワードを設定する。例示的な一実施形態において、シングルパスワードを洩らすことでシステムを危険にさらすことがないように、パスワードはランダムに生成されることがある。ユーザがパスワードにアクセスすることを防ぐことができる。ユーザにパスワードを提供しないことによって、システムは、ユーザがシステム・エージェントを使用することなくＳａａＳアプリケーションにアクセスすることを防いでいる。
【００３５】
シンアプリケーションおよび／またはネイティブアプリケーションの場合には、プロビジョニング・ドライバは、（１）何らかのライセンシング・アカウンティングを実施することがあり、さらに（２）そのアプリケーションをダウンロードできるようにすることがある。リモートアプリケーションの場合には、プロビジョニング・ドライバは、（１）何らかのライセンシング・アカウンティングを実施することがあり、さらに（２）例えば、リモートデスクトップ・プロトコル（ＲＤＰ）ファイル、ＶＭｗａｒｅ Ｖｉｅｗ（登録商標）ファイルなど、関連するファイルを取得することがある。別の例示的実施形態では、これらの処理の一部またはすべてが、（例えば、上記のようなプロビジョニング・コールアウトに応答して）既存のワークフローおよびライセンシング・プロセスによって実行される場合がある。
【００３６】
言うまでもなく、例示的な一実施形態において、シンアプリケーションは、例えば、アプリケーションによってレジストリおよび／またはファイルシステムに加えられる実行時の変更を保持するためのサンドボックスを提供するＶＭｗａｒｅ ＴｈｉｎＡｐｐ（登録商標）などにより、仮想化されたアプリケーションであり得る。また、言うまでもなく、そのようなサンドボックスは、数ある中でも特に、ＤＬＬ（Ｄｙｎａｍｉｃａｌｌｙ Ｌｉｎｋｅｄ Ｌｉｂｒａｒｉｅｓ：ダイナミックリンク・ライブラリ）の上書きを防ぐのに有用である。同様に、例示的な一実施形態において、リモートアプリケーションは、リモートサーバ上の仮想化層（例えば、ハイパーバイザ）によって提供される仮想マシン上のゲストオペレーティングシステムの上で実行されるＶＭｗａｒｅ Ｖｉｅｗアプリケーションのような、デスクトップ仮想化アプリケーションであり得る。
【００３７】
さらに、例示的な一実施形態において、アプリケーションのためのプロビジョニング・ドライバは、次のような操作をサポートしている場合がある：（１）ユーザを追加／削除する、（２）ユーザ・ステータスを取得する。一般に、追加／削除操作は、ユーザごとに一度実行される。アプリケーションがＳａａＳアプリケーションである場合には、プロビジョニング・ドライバは、ユーザの追加を、管理者がＳａａＳプロバイダから既に取得したアカウントにそのユーザの認証情報を関連付けることによって行う場合がある。アプリケーションがシンアプリケーションまたはリモートアプリケーションである場合は、プロビジョニング・ドライバは、何らかのライセンシング・アカウンティングを実施することにより、ユーザを追加する場合がある。
【００３８】
言うまでもなく、取得されたユーザ・ステータスは、ＳａａＳアプリケーションのユーザの期待されるプロビジョニング状態と実際のプロビジョニング状態との差異を特定するために用いられることがある。
【００３９】
さらに図２に示すように、バックエンド機能を提供するサーバ側モジュールには、エンタイトルメント用のモジュール２１０が含まれる。例示的な一実施形態において、このモジュールは、エンタイトルメントに基づいて、システムのアプリケーションへのアクセスを制御する。例示的な一実施形態において、エンタイトルメントは、＜ユーザ，デバイス，アプリケーション，ユーザタグのセット，デバイス構成，認証タイプ＞などの要素を持つタプルとして表されることがある。
【００４０】
エンタイトルメントは、数ある中でも特に、ネイティブ・クライアント１０３により表示されるＧＵＩデスクトップ上に、どのアプリケーションのショートカット（例えば、アイコンで表されるようなもの）を提示するのかを定める。同様に、これらのエンタイトルメントをチェックすることで、ユーザウェブＵＩ ２０２により表示されるＧＵＩに、どのアプリケーションのショートカット（例えば、アイコンで表されるようなもの）を提示するのかが決定される。また、アプリケーションに対するＳＳＯ処理のたびに、モジュール２１０は、エンタイトルメントをチェックすることで、ＳＳＯを進めることができるか確認し、セッション・タイムアウトを設定する。エンタイトルメントが変更されると、モジュール２１０は、何らかのプロビジョニング／デプロビジョニング処理を実行すべきかどうか、さらには、いずれかのＳＳＯセッションを終了させるべきかどうか判断する。
【００４１】
バックエンド機能を提供する別のサーバ側モジュールは、ＳＳＯ用のモジュール２１１である。例示的な一実施形態において、モジュール２１１は、異なるアプリケーションの間で共有される認証セッションを追跡する。当然のことながら、セッションの開始は、ユーザ認証を伴う。例示的な一実施形態において、ユーザがファイアウォール１０４の内側にいる場合には、認証は、エンタープライズ・コネクタ１０５を通してアクセスすることにより、ＡＤサーバ１０６（または他のディレクトリ・サービス）に対して行われることがある。ユーザがファイアウォール１０４の外側にいる場合は、認証は、アプリケーション・マネージャ１０１とエンタープライズ・コネクタ１０５の両方を通してアクセスすることにより、ＡＤサーバ１０６（または他のディレクトリ・サービス）に対して行われることがある。あるいは、ホステッド・アイデンティティを提供するＳａａＳプロバイダ（例えば、Ｇｏｏｇｌｅ Ａｐｐｓ）または他のプロバイダ（例えば、Ｙａｈｏｏ！）であって、ＳＡＭＬまたはＯＡｕｔｈ（Ｏｐｅｎ Ａｕｔｈｏｒｉｚａｔｉｏｎ：オープン認証）を用いてアクセスされるプロバイダに、システムは認証を委任することがある。
【００４２】
他の例では、認証は、ディレクトリとかかわらない場合がある。つまり、認証は、ＳＡＭＬによって行われることがある。あるいは、下位レベルのアプリケーションの場合、認証は、上記のようにフォーム記入によって処理されることがあり、それは、ウェブブラウザ１０３ｄでＧＵＩによって、ユーザからのユーザ名および／またはパスワードを要求するものであり得る。
【００４３】
バックエンド機能を提供するサーバ側モジュールには、さらに、ユーザ更新用のモジュール２１２が含まれる。このモジュールは、例えば、（１）管理者ウェブＵＩ ２０１を通して行われた操作の結果としての変化、（２）ＲＥＳＴフルＡＰＩ ２０３に由来する変化、または（３）例えばＡＤ更新ツール、Ｙａｈｏｏ！更新ツール、Ｇｏｏｇｌｅ更新ツールなどの同期ツールによってディレクトリストア２１９から伝えられた変化に基づいて、ユーザデータを更新する。
【００４４】
バックエンド機能を提供する他のサーバ側モジュールは、課金サービス２１３であり、これは、システムによりプロビジョニングされたアプリケーションのライセンス料金／支払いの会計、および会計の確認を行う自動化されたサードパーティ・サービスであり得る。例示的な一実施形態において、システムは、ＡＰＩを用いて課金サービス２１３にアクセスする場合がある。
【００４５】
バックエンド機能を提供するサーバ側モジュールには、さらに、ＡＥＳオブジェクトストア２１４が含まれる。例示的な一実施形態において、ＡＥＳオブジェクトストア２１４は、システムのオブジェクト（例えば、ユーザ、アプリケーション、グループ、アプリケーション群、エンタイトルメント、アカウントの有効化などに関するもの）をデータベースに記憶するスケーラブル・オブジェクトストアである。言うまでもなく、システムの他の部分は、トランザクション・セマンティクスを用いて、これらのオブジェクトの様々なバージョンで動作する。例示的な一実施形態において、ＡＥＳオブジェクトストア２１４は、オプティミスティック同時実行制御およびアトミック操作を提供する。また、例示的な一実施形態において、ＡＥＳオブジェクトストア２１４は、エンタープライズ組織構造に基づき、いくつかのデータベースに分散される場合がある。
【００４６】
バックエンド機能を提供する他のサーバ側モジュールは、ロギング／解析ストア２１５である。例示的な一実施形態において、ロギング／解析ストア２１５は、（１）ＡＰＩコール、（２）プロビジョニング処理、（３）アプリケーション使用状況のデータ（例えば、ネイティブ・クライアントまたはブラウザ・プラグインから受け取る）、のためのスケーラブルな永続ストレージを（例えば、ログの形で）提供するものであり得る。ロギング／解析ストア２１５は、さらにジョブインタフェースを提供し、これは、ユーザレポート２０８がログの解析を実行して、レポートおよびキューブを作成することを可能にするものである。
【００４７】
バックエンド機能を提供するサーバ側モジュールには、さらに、ＢＬＯＢ（Ｂｉｎａｒｙ Ｌａｒｇｅ ＯＢｊｅｃｔ：バイナリ・ラージ・オブジェクト）ストア２１６、キーチェーンストア２１７、およびユーザキーストア２１８が含まれる。ＢＬＯＢストア２１６は、ネイティブアプリケーション、シンアプリケーションなどのための画像を記憶する。図２に示すように、ＢＬＯＢストア２１６は、サードパーティによって提供されたものであり得る。例示的な一実施形態において、システムは、ＡＰＩを用いてＢＬＯＢストア２１６にアクセスする場合がある。キーチェーンストア２１７は、下位の認証で使用される暗号化されたパスワードを記憶する。そして、ユーザキーストア２１８は、キーチェーンストア２１７の中の暗号化されたパスワードを解読するのに使用されるユーザごとのキーを記憶する。
【００４８】
言うまでもなく、例示的な一実施形態において、上記のサーバ側モジュールは、上記のアプリケーション・マネージャ１０１の一部であり得る。これに代えて、別の例示的実施形態では、上記のサーバ側モジュールのうちの一部は、エンタープライズ・コネクタ１０５がインストールされているのであれば、その一部であり得る。あるいは、サーバ側モジュールの機能は、クライアント側モジュールに移転される場合があり、またその逆もあり得る。すなわち、上記のモジュールは、いずれかの適当な方法でシステム全体に分散させることが可能である。
【００４９】
【表２】
2013545152.tif 000004
表２は、例示的な実施形態によるＳＳＯのいくつかのシナリオを示している。当然のことながら、これらのシナリオは、限定するものではなく、例示的なものである。１型エンタープライズの列かつモダンＳａａＳアプリケーションの行に示す第１のシナリオでは、ユーザはファイアウォールの内側にいるが、２つのセキュアトークンサービス（ＳＴＳ）があり、例えば、アプリケーション・マネージャ・サーバは、ファイアウォールの内側へのセキュア接続を持たない。このようなシナリオを図３Ａに示しており、この場合、ＳＴＳ ３０２はオンサイトにあって（例えば、ＤＭＺにあるアクティブディレクトリ連携サービス（ＡＤＦＳ：Ａｃｔｉｖｅ Ｄｉｒｅｃｔｏｒｙ Ｆｅｄｅｒａｔｉｏｎ Ｓｅｒｖｉｃｅ））、ＡＤサーバに対してユーザを認証して、ＳＡＭＬトークンを生成することが可能である。これを、図３Ａで、クライアント機器３０１とＳＴＳ ３０２との間に、オペレーション３０３として示している。もう一方のＳＴＳであるＳＴＳ ３０４は、オープンセッションに基づき、ＳＴＳ ３０２により生成されたＳＡＭＬトークンを使用して、ＳＡＭＬトークンを生成することができる。これを、図３Ａで、クライアント機器３０１とアプリケーションポータル３０６（例えば、上記のユーザウェブポータル）との間に、オペレーション３０５で示している。そして、この図でオペレーション３０７に示すように、クライアント機器３０１は、ＳＴＳ ３０４により生成されたＳＡＭＬトークンを使用して、モダン（ＳＡＭＬ対応）ＳａａＳアプリケーションサーバ３０８に接続し、ＳａａＳアプリケーションへのアクセスを得る。
【００５０】
表２の１型エンタープライズの列かつレガシＳａａＳアプリケーションの行に示す第２のシナリオでは、ＳＴＳは１つのみである。例えば、アプリケーション・マネージャ・サーバは、ファイアウォールの内側へのセキュア接続を持ち得る。ＳＴＳは、アプリケーション・マネージャ・サーバ上にあって、これは、ＡＤサーバに対してユーザを認証することが可能であり、また、ＨＴＴＰ連携（ＨＴＴＰ Ｆｅｄｅｒａｔｉｏｎ）を使用して、クライアント機器とレガシＳａａＳアプリケーションサーバとの間の接続をプロキシする。この場合、言うまでもなく、アプリケーション・マネージャ・サーバは、ユーザの代わりに、従来のユーザ名とパスワードの組み合わせを使用して、認証を行う。別の例示的実施形態において、システムは、上記の表に示すシナリオのいずれかで、ＳＡＭＬ対応のＳａａＳアプリケーションサーバとの接続に、同じくＨＴＴＰ連携を使用し得る。
【００５１】
表２の１型変形例の列かつモダンＳａａＳアプリケーションの行に示す第３のシナリオでは、ユーザがファイアウォールの外側にいて、ＳＴＳは１つのみであり、例えば、アプリケーション・マネージャ・サーバは、ファイアウォールの内側へのセキュア接続を持つ。このようなシナリオを図３Ｂに示しており、この場合、アプリケーション・マネージャ・サーバは、ＳＴＳ ３０４を含み、これは、上記のエンタープライズ・コネクタ１０５のようなディレクトリ・コネクタ３１０（例えば、ＤＭＺにあるＡＤコネクタ）の使用によって、ＡＤサーバ３０９に対してユーザを認証して、ＳＡＭＬトークンを生成することが可能である。これを、クライアント機器３０１とアプリケーションポータル３０６（例えば、上記のユーザウェブポータル）との間にオペレーション３０５で、さらに、ＳＴＳ ３０４とディレクトリ・コネクタ３１０との間にオペレーション３１１で、示している。そして、この図にオペレーション３０７で示すように、クライアント機器は、そのＳＡＭＬトークンを使用して、ＳＡＭＬ対応のＳａａＳアプリケーションサーバ３０８に接続し、ＳａａＳアプリケーションへのアクセスを得る。
【００５２】
表２の１型（変形例）の列かつレガシＳａａＳアプリケーションの行に示す第４のシナリオでは、ＳＴＳはなく、アプリケーション・マネージャに対してネイティブ認証が行われる。そして、認証マネージャは、オンプレミスのアイデンティティ・ストアに対してユーザを認証することが可能であり、これが、ＨＴＴＰ連携（ＨＴＴＰ Ｆｅｄ）を使用して、クライアント機器とレガシＳａａＳアプリケーションサーバとの間の接続をプロキシする。上記の表に示すように、この同じシナリオが、２型エンタープライズの列かつレガシＳａａＳアプリケーションの行のセル６で発生する。
【００５３】
表２の２型エンタープライズの列かつモダンＳａａＳアプリケーションの行に示す第５のシナリオでは、ファイアウォールはなく、ＳＴＳは１つである。このようなシナリオを図３Ｃに示しており、この場合、アプリケーション・マネージャ・サーバは、ＳＴＳ ３０４を含み、これは、アイデンティティ・ストアに対してユーザを認証し、そして、独自のコネクタを使用してアクセスされる（例えば、ＧｏｏｇｌｅまたはＳａｌｅｓｆｏｒｃｅの）ホステッド・アイデンティティ・ストアにより生成されたＳＡＭＬトークンからＳＡＭＬトークンを生成することが可能である。これを、クライアント機器３０１とアプリケーションポータル３０６（例えば、上記のユーザウェブポータル）との間にオペレーション３０５で、さらに、アプリケーション・マネージャ３１２とホステッド・アイデンティティ・マネージャ３１３との間にオペレーション３１４で、示している。そして、オペレーション３０７で、クライアント機器３０１は、そのＳＡＭＬトークンを使用して、ＳＡＭＬ対応のＳａａＳアプリケーションサーバ３０８に接続し、ＳａａＳアプリケーションへのアクセスを得る。
【００５４】
図４は、例示的な一実施形態による、新規のＳａａＳアカウントのエンタイトルメントおよびプロビジョニングのプロセスを示すシーケンス図である。エンタイトルメントは、特定のユーザまたはユーザグループを、特定のアプリケーションまたはアプリケーション群に関連付ける許可であることが想起されよう。エンタイトルメントがＳａａＳアプリケーションについてのものである場合には、それがサードパーティによりホストされているものであるか、エンタープライズ独自のネットワーク内のものであるかにかかわらず、エンタイトルメントが作成されるときに、ユーザごとに、そのＳａａＳプロバイダのアカウントが作成される。図示のように、例示的な一実施形態において、このプロセスは、図２に示すモジュールのうちいくつかによって実行され得る。
【００５５】
プロセスのオペレーション４０１で、システムは、例えば管理者からのＧＵＩコマンドの結果として、ＳａａＳアプリケーションへのエンタイトルメントをユーザまたはユーザグループ用に追加するためのコールを、管理者ウェブポータル（管理者ＵＩ）から受け取る。このコールは、システムのエンタイトルメント・モジュールに送られる。このコールは、内部Ｊａｖａ ＡＰＩを利用する他のコールと同様に、ロギング／解析ストアに記録される。そして、オペレーション４０２で、エンタイトルメント・モジュールは、関係するユーザのＡＥＳオブジェクトストアのオブジェクトに、エンタイトルメントおよび期待されるプロビジョニング状態を追加する。オペレーション４０３で、エンタイトルメント・モジュールは、プロビジョニングを要するアカウントのプロビジョニングを実施するため、（例えば、内部Ｊａｖａ ＡＰＩを通して）プロビジョニング・モジュールをコールする。さらに、オペレーション４０４で、プロビジョニング・モジュールは、ユーザまたはユーザグループのＳａａＳアカウントのプロビジョニングを実施するため、（例えば、プロビジョニングＡＰＩを通して）サードパーティＳａａＳプロバイダ（またはベンダ）にコールする。オペレーション４０５で、プロビジョニング・モジュールは、ＡＥＳオブジェクトストアの中の関係するオブジェクトを、プロビジョニングの状態で更新し、また、必要であれば、ＳａａＳアプリケーションのライセンス数を変更する。そして、オペレーション４０６で、プロビジョニング・モジュールは、ロギング／解析ストアを、プロビジョニングの進行状況（または失敗）で更新する。オペレーション４０７で、ユーザウェブポータル（ユーザウェブＵＩ）は、例えばユーザ（またはユーザグループのユーザのうちの一人）からのＧＵＩコマンドの結果として、ユーザの新規のエンタイトルメントがあるかどうか特定するため、（例えば、内部Ｊａｖａ ＡＰＩを通して）エンタイトルメント・モジュールをコールする。そして、エンタイトルメント・モジュールは、追加されたエンタイトルメントをユーザウェブポータルに表示させる。あるいは、オペレーション４０８で、ネイティブ・クライアント（例えば、ｉＰａｄなどのデバイス上で実行されるもの）が、例えばユーザ（またはユーザグループのユーザのうちの一人）からのＧＵＩコマンドの結果として、そのユーザの新規のエンタイトルメントがあるかどうかを特定するため、（例えば、内部Ｊａｖａ ＡＰＩを通して）エンタイトルメント・モジュールをコールする。そして、エンタイトルメント・モジュールは、追加されたエンタイトルメントをネイティブ・クライアントに表示させる。
【００５６】
図５は、例示的な一実施形態により、プロビジョニング・タスクを保存するプロセスを示すフローチャートである。例示的な一実施形態において、このプロセスの処理は、システムのエンタイトルメント・モジュールによって実行され得る。プロセスは、オペレーション５０１で、アプリケーション（例えば、シンアプリケーション、リモートアプリケーション、またはＳａａＳアプリケーション）へのエンタイトルメントをユーザまたはユーザグループ用に作成する処理によって、開始する。オペレーション５０２で、エンタイトルメント・モジュールは、例えばライセンス数を変更することなど、どのプロビジョニング・タスク（または処理）が実行されるべきか決定する。そして、オペレーション５０３で、エンタイトルメント・モジュールは、（１）そのエンタイトルメントと、（２）そのプロビジョニング・タスクとを、ＡＥＳオブジェクトストアまたは他のデータベースに追加する。オペレーション５０４で、エンタイトルメント・モジュールは、その新規のプロビジョニング・タスクについて、例えば内部Ｊａｖａ ＡＰＩを通してプロビジョニング・モジュールに通知する。
【００５７】
図６は、例示的な一実施形態により、プロビジョニング・タスクを決定するプロセスを示すフローチャートである。例示的な一実施形態において、このプロセスの処理は、システムのエンタイトルメント・モジュールによって実行され得る。プロセスは、オペレーション６０１で、例えば＜アプリケーションまたはアプリケーション群，ユーザ／グループ／表現式，デバイスポリシー＞であるタプルを受け取ることによって、開始する。表現式によって、管理者は、ユーザまたはユーザグループをポリシーの適用から除外すること、および複数のグループまたは一部のグループにポリシーを適用すること、が可能である。オペレーション６０２で、エンタイトルメント・モジュールは、エンタイトルメントが何についてのものであるのか判断する。エンタイトルメントがアプリケーションについてのものである場合、エンタイトルメント・モジュールは、オペレーション６０３で、そのアプリケーションをその中に含むアプリケーションリストを作成する。エンタイトルメントがアプリケーション群についてのものである場合、エンタイトルメント・モジュールは、オペレーション６０４で、アプリケーション群のアプリケーションの閉包（または数学的閉包）でアプリケーションリストを作成する。オペレーション６０５で、エンタイトルメント・モジュールは、エンタイトルメントが誰に対するものであるのか判断する。エンタイトルメントがシングルユーザに対するものである場合、エンタイトルメント・モジュールは、オペレーション６０６で、シングルユーザでユーザリストを作成する。エンタイトルメントがグループまたは表現式に対するものである場合、エンタイトルメント・モジュールは、オペレーション６０７で、タプル要素であるユーザ／グループ／表現式の全員の閉包（または数学的閉包）でユーザリストを作成する。そして、オペレーション６０８で、エンタイトルメント・モジュールは、アプリケーションリストとユーザリストのクロス積から、プロビジョニング・タスク（または処理）を生成する。本例では、すべてのプロビジョニング・タスク（または処理）は、同じデバイスポリシーを持つ。オペレーション６０９で、エンタイトルメント・モジュールは、例えば＜ユーザ，アプリケーション，デバイスポリシー＞のタプルの形で、プロビジョニング・タスク（または処理）のリストを返す。
【００５８】
図７は、例示的な一実施形態により、アプリケーションのプロビジョニングを実施するプロセスを示すフローチャートである。例示的な一実施形態において、このプロセスの処理は、システムのプロビジョニング・モジュールによって実行され得る。オペレーション７０１で、プロビジョニング・モジュールは、例えばエンタイトルメント・モジュールによりプロビジョニング・タスクが保存されたデータベース（またはＡＥＳオブジェクトストア７１３）において、処理するプロビジョニングタスク（または処理）があるかどうか特定する。そのようなタスクがない場合には、プロビジョニング・モジュールは、そのようなタスクを待って、ビジーループにとどまる。処理するプロビジョニング・タスクがある場合は、プロビジョニング・モジュールは、オペレーション７０２で、そのプロビジョニング・タスクに示されているアプリケーション・タイプ（例えば、シンアプリケーション、リモートアプリケーション、ＳａａＳアプリケーションなど）に基づいて、どのプロビジョニング・ドライバを使用するか決定する。そして、オペレーション７０３で、プロビジョニング・モジュールは、コールアウト・フラグが設定されているかどうか、例えば、そのプロビジョニング・タスクが例えば既存のワークフローおよびライセンシング・プロセスと統合するプロビジョニング・コールアウトを使用するかどうか、判断する。コールアウト・フラグが設定されている場合、プロビジョニング・モジュールは、オペレーション７０４で、エンタープライズ・コネクタがインストール（またはセットアップ）されているかどうか判断する。エンタープライズ・コネクタがインストールされている場合には、プロビジョニング・モジュールは、オペレーション７０５で、エンタープライズ・コネクタを通してプロビジョニング・コールアウトを発する。エンタープライズ・コネクタがインストールされていない場合には、プロビジョニング・モジュールは、オペレーション７０６で、プロビジョニング・コールアウトを自身で発する。オペレーション７０７で、プロビジョニング・モジュールは、例えば既存のワークフローおよびライセンシング・プロセスによって、プロビジョニング・コールアウトが正常に完了されたかどうか判断する。正常に完了されなかった場合は、プロビジョニング・モジュールは、オペレーション７０８でエラーをログに記録し、プロセスの最初のオペレーション７０１に戻る。
【００５９】
プロビジョニング・コールアウトに成功した場合、またはプロビジョニング・コールアウトが使用されなかった場合は、プロビジョニング・モジュールは、オペレーション７０９で、プロビジョニング・タスク・データを用いて適当なプロビジョニング・ドライバをコールする。そして、オペレーション７１０で、プロビジョニング・モジュールは、コール（またはプロビジョニング）に成功したかどうか判断する。成功していない場合は、プロビジョニング・モジュールは、オペレーション７１１で、その失敗を示すように、ＡＥＳオブジェクトストア７１３の中のプロビジョニング・オブジェクトを更新して、そのエラーをログに記録し、オペレーション７０１に戻る。プロビジョニング・ドライバのコールに成功した場合は、プロビジョニング・モジュールは、オペレーション７１２で、完了を示すように、ＡＥＳオブジェクトストア７１３の中のプロビジョニング・オブジェクトを更新して、オペレーション７０１に戻る。
【００６０】
図８は、例示的な一実施形態により、ＳＡＭＬをサポートしていないアプリケーションのプロビジョニングのために、プロビジョニング・ドライバにより実行されるプロセスを示すフローチャートである。本例のアプリケーションは、ウェブブラウザではなくローカルクライアントを介してアクセスおよび使用することが可能である。このＳａａＳアプリケーションはＳＡＭＬをサポートしていないので、システムは、オペレーション８０１で、ランダムなパスワードを生成して、暗号化し、それを保存する。その後、このパスワードは、ユーザの目に触れることはないが、アプリケーションへのＳＳＯに使用することができる。また、これによって、このパスワードが他のいずれのパスワードとも相関しないものとされることで、このパスワードが破られても、その特定のユーザのアカウントの特定のＳａａＳアプリケーション以外のものへのアクセスは可能にはならない。
【００６１】
オペレーション８０２で、プロビジョニング・ドライバは、（例えば、ＡＰＩを介して）ＳａａＳアプリケーションを呼び出して、ユーザのアカウントを作成する。プロビジョニング・ドライバは、オペレーション８０３で、Ｍｏｚｙアカウント用のＳａａＳアカウントをＡＥＳオブジェクトストア８０８内に作成する。そして、オペレーション８０４で、プロビジョニング・ドライバは、＜ユーザ名，パスワード，ＳａａＳアプリケーション名＞のようなタプルで、（例えば、内部Ｊａｖａ ＡＰＩを使用したコールによって）ＳＳＯサービスを更新し、この場合、ユーザ名は、そのＳａａＳアプリケーション・アカウントでのユーザ名であり、パスワードは、そのＳａａＳアプリケーション・アカウントでのパスワード、例えばランダムなパスワードである。オペレーション８０５で、ＳＳＯサービスは、そのパスワードで、キーチェーンストアを更新する。プロビジョニング・ドライバは、オペレーション８０６で、そのＳａａＳアプリケーションに対するユーザのプロビジョニングを、デフォルトグループで実施する。そして、オペレーション８０７で、プロビジョニング・ドライバは、そのプロビジョニングの結果として得られる新規のプロビジョニングキーで、ＡＥＳオブジェクトストア内にＳａａＳアカウントを作成する。
【００６２】
図９Ａおよび９Ｂは、例示的な一実施形態により、セッションからＳａａＳアプリケーションに対しユーザを認証するプロセスを示すフローチャートである。ユーザが、ＳａａＳアプリケーションへのアクセスとその使用のためのＳＳＯセッションを開始させるために、システムにアクセスすると、システムは、まず最初に、既存のセッションに基づいて、ＳａａＳアプリケーション用のトークンを作成しようとする。このため、システムは、図９Ａのオペレーション９０１で、セッションをルックアップし、オペレーション９０２で、セッションが有効であるかどうか判断する。セッションが有効でない場合は、システムは、エラーメッセージで、リダイレクトによってＳａａＳサービス（例えば、アプリケーション・マネージャ）に誘導する。セッションが有効である場合、システムは、オペレーション９０３で、セッションが生きているかどうか判断する。生きていない場合は、システムは、オペレーション９０４で、最初のＳＳＯ要求のデバイス情報によってセッション・オブジェクトを作成し、オペレーション９０５で、ユーザ名とパスワードによる認証ログインのため、リダイレクトによってログインページに誘導する。セッションが生きている場合には、システムは、オペレーション９０６で、そのＳａａＳアプリケーションに対するユーザのエンタイトルメントをルックアップして、オペレーション９０７で、デバイスポリシーまたはアプリケーションポリシーをエンタイトルメントから確認する。オペレーション９０８で、システムは、現在のセッションがそれらのポリシーを満たすかどうか判断する。満たさない場合は、システムは、エラーメッセージで、リダイレクトによってＳａａＳサービス（例えば、アプリケーション・マネージャ）に誘導する。現在のセッションがポリシーを満たしている場合は、図９Ａのオペレーション９１０で、システムは、有効なセッショントークンで、リダイレクトによってＳａａＳサービス（例えば、アプリケーション・マネージャ）に誘導する。
【００６３】
前述のように、セッションが生きていない場合には、オペレーション９０４で、システムは、リダイレクトによりログインページに誘導する。例示的な一実施形態において、このリダイレクトは、（リダイレクト・バインディングによる）ＳＡＭＬ ＳＰ（Ｓｅｒｖｉｃｅ Ｐｒｏｖｉｄｅｒ：サービスプロバイダ）開始ＳＳＯプロファイルによって発生し得る。エンタープライズ・コネクタがシステムにインストールされている場合には、リダイレクトによってエンタープライズ・コネクタに誘導し、そしてこれが、内部ＬＤＡＰストア（例えば、ＡＤ）に対するＩｄＰとして機能する。クライアント機器上のブラウザは、認証プロトコル（例えば、ケルベロス（Ｋｅｒｂｅｒｏｓ））をネゴシエートして、ユーザを認証する。その後、エンタープライズ・コネクタは、認証されたユーザを、（リダイレクト・バインディングによる）ＳＡＭＬ ＳＰ開始ＳＳＯプロファイルの応答部分で、アプリケーション・マネージャに戻すようにリダイレクトする。そして、アプリケーション・マネージャは、ＳａａＳアプリケーション用のＳＳＯセッションを作成する。
【００６４】
図９Ｂは、オペレーション９１１で、ＩｄＰ（アイデンティティ・プロバイダ）から認証応答を受け取るシステムを取り上げている。オペレーション９１２で、システムは、認証応答に関して、ユーザ／デバイス・セッションをルックアップする。認証に失敗した場合、システムは、オペレーション９１３で、その失敗をセッションに追加し、そしてオペレーション９１４で、エラーメッセージによって、開始ＳａａＳサービス（例えば、アプリケーション・マネージャ）にリダイレクトする。認証に成功した場合、システムは、オペレーション９１５で、ＳＡＭＬ ＳＳＯ応答からのセッション有効期限データを、セッションに追加する。そして、オペレーション９１６で、システムは、ＳＡＭＬ ＳＳＯ応答からのアサーションを、セッションに追加する。さらに、オペレーション９１７で、システムは、ＳＡＭＬ ＳＳＯ応答からの属性を、セッションに追加する。オペレーション９１８で、システムは、セッションからの、ＳａａＳアプリケーション・プロバイダに対するユーザの認証を完了させる。
【００６５】
図１０は、例示的な一実施形態により、管理者ウェブポータルで表示されるダッシュボード・タブのＧＵＩビューを示している。この図に示すように、管理者ポータルのＧＵＩビューは、例えば、ダッシュボード、ユーザ、グループ、アプリケーション、ライセンス、およびポリシーの、複数のタブで構成され得る。ダッシュボード・タブ１００１は、数ある中でも特に、管理されているユーザ、管理されているＳａａＳアプリケーション、管理されているデスクトップアプリケーション、および使用ストレージのＧＢについてのカウント数を表示する。例示的な一実施形態において、デスクトップアプリケーションは、ＶＭｗａｒｅ ＴｈｉｎＡｐｐ（登録商標）を用いて仮想化されたアプリケーションのようなシンアプリケーションと、ＶＭｗａｒｅ Ｖｉｅｗ（登録商標）によってアクセスされるリモートアプリケーションと、を含み得ることが想起されよう。ダッシュボード・タブは、さらに、システムにより作成されたレポートのリスト１００２を表示し、（１）最もアクティブなアプリケーション、（２）経時的なアプリケーション使用状況、（３）最もアクティブなユーザ、（４）最もアクティブな場所（例えば、ジオロケーション）、（５）最近の場所（例えば、ジオロケーション）、（６）システム利用率、（７）使用中のライセンスの料金、（８）オーバサブスクリプションのライセンスの料金、（９）ライセンスの料金（テーブル）、（１０）ライセンスの料金（チャート）、のレポートを含んでいる。
【００６６】
図１１は、例示的な一実施形態により、管理者ウェブポータルで表示されるユーザ・タブのＧＵＩビューを示している。ユーザ・タブ１１０１は、数ある中でも特に、システムにより管理されるユーザに関するデータのテーブルを表示する。テーブルの列として、（１）名前、（２）ユーザ名、（３）グループ、（４）役割、が含まれる。ユーザ・タブ１１０１は、さらに、ユーザに関連するレポート１１０２を表示し、また、管理者がユーザを追加することを可能にするＧＵＩコントロール（例えば、ボタン）１１０３を含んでいる。
【００６７】
図１２は、例示的な一実施形態により、管理者ウェブポータルで表示されるユーザ編集ダイアログのＧＵＩビューを示している。例示的な一実施形態において、このダイアログは、例えば管理者がユーザ・タブ１１０１でユーザ名をクリックすると、ユーザ・タブ１１０１に表示されることがある。ユーザ編集ダイアログ１２０１は、ユーザの姓と名の編集を可能にする編集ボックス１２０２と、ユーザを管理者にすることを可能にするチェックボックス１２０３と、を含んでいる。ユーザ編集ダイアログ１２０１は、さらに、ユーザをＳａｌｅｓおよびＦｉｎａｎｃｅなどのグループの一員にすることを可能にするチェックボックス１２０４を含んでいる。
【００６８】
また、例示的な一実施形態において、ユーザ編集ダイアログ１２０１は、ユーザがエンタイトルメントを付与されているアプリケーションを、テーブル１２０５にリストアップする。テーブル１２０５は、列として、アプリケーション名、デバイス（例えば、クライアント機器）ポリシー、およびデプロイメント、を含んでいる。この場合、例えば、名前がＲｅｇｉｓ Ｇｏｒｍａｎであるユーザは、Ｓａｌｅｓｆｏｒｃｅアプリケーションをすべてのデバイスで使用するエンタイトルメントを付与されており、そのデプロイメントは自動である。ユーザ編集ダイアログ１２０１は、さらに、エンタイトルメントを追加するためのＧＵＩコントロール（例えば、ボタン）１２０６と、エンタイトルメントを拒否するためのＧＵＩコントロール（例えば、ボタン）１２０７と、を含んでいる。さらに、ユーザ編集ダイアログ１２０１は、あるアプリケーションに対するエンタイトルメントを削除するためのＧＵＩコントロール（例えば、ボタン）１２０８と、編集による変更を保存するためのＧＵＩコントロール（例えば、ボタン）１２０９と、を含んでいる。
【００６９】
図１３は、例示的な一実施形態により、管理者ウェブポータルで表示されるグループ・タブのＧＵＩビューを示している。グループ・タブ１３０１は、数ある中でも特に、システムにより管理されるグループに関するデータのテーブルを表示する。テーブルの列として、（１）名前、（２）ユーザ数、（３）アプリケーション・エンタイトルメント数、が含まれる。グループ・タブ１３０１は、さらに、グループに関連するレポート１３０２（例えば、最もアクティブなユーザ、最もアクティブな場所、最近の場所）を表示し、また、管理者がグループを追加することを可能にするＧＵＩコントロール（例えば、ボタン）１３０３を含んでいる。
【００７０】
図１４は、例示的な一実施形態により、管理者ウェブポータルで表示されるグループ編集ダイアログのＧＵＩビューを示している。例示的な一実施形態において、このダイアログは、例えば管理者がグループ・タブ１３０１でグループ名をクリックすると、グループ・タブ１３０１に表示されることがある。グループ編集ダイアログ１４０１は、グループ名の編集を可能にする編集ボックス１４０２を含んでいる。グループ編集ダイアログ１４０１は、さらに、グループにユーザを追加することを可能にするＧＵＩコントロール（例えば、ボタン）１４０３と、ユーザをグループから外すことを可能にするＧＵＩコントロール（例えば、ボタン）１４０４と、を含んでいる。
【００７１】
また、例示的な一実施形態において、グループ編集ダイアログ１４０１は、グループがエンタイトルメントを付与されているアプリケーションを、テーブル１４０５にリストアップする。テーブル１４０５は、列として、アプリケーション名、デバイス（例えば、クライアント機器）ポリシー、およびデプロイメント、を含んでいる。この場合、例えば、名前がＣｏｍａｐｎｙ Ｘであるグループは、Ｓａｌｅｓｆｏｒｃｅアプリケーションをすべてのデバイスで使用するエンタイトルメントを付与されており、そのデプロイメントは自動である。グループ編集ダイアログ１４０１は、さらに、例えばアプリケーションのアイコンをクリックすることで、グループにエンタイトルメントを追加するための、スクロールバー１４０７を備えたＧＵＩコントロール（例えば、ツリービュー）１４０６を含んでいる。さらに、グループ編集ダイアログ１４０１は、グループのエンタイトルメントの編集を可能にするＧＵＩコントロール１４０８と、グループのエンタイトルメントの削除を可能にするＧＵＩコントロール（例えば、ボタン）１４０９と、を含んでいる。グループ編集ダイアログ１４０１は、編集による変更を保存するためのＧＵＩコントロール（例えば、ボタン）１４１０を含んでいる。
【００７２】
図１５は、例示的な一実施形態により、管理者ウェブポータルで表示されるエンタイトルメント編集ダイアログのＧＵＩビューを示している。例示的な一実施形態において、このダイアログは、管理者がグループ編集ダイアログ１４０１でＧＵＩコントロール（例えば、ＧＵＩコントロール１４０８）をクリックすると、表示されることがある。このエンタイトルメント編集ダイアログ１５０１は、アプリケーションＢｏｘ．ｎｅｔに対する“Ｃｏｍａｐｎｙ Ｘ”グループのエンタイトルメントの編集を可能にするものである。編集ダイアログ１５０１は、エンタイトルメントに含まれるデバイス（例えば、クライアント機器）の変更を可能にするドロップダウンリスト１５０２と、エンタイトルメントのデプロイメントの変更を可能にするドロップダウンリスト１５０３と、を含んでいる。さらに、エンタイトルメント編集ダイアログ１５０１は、編集による変更を保存するためのＧＵＩコントロール（例えば、ボタン）１５０４を含んでいる。
【００７３】
図１６は、例示的な一実施形態により、管理者ウェブポータルで表示されるアプリケーション・タブのＧＵＩビューを示している。アプリケーション・タブ１６０１は、数ある中でも特に、システムにより管理されるアプリケーションに関するデータのテーブルを表示する。テーブルの列として、（１）名前と説明、（２）タイプ（例えば、リモートアプリケーション、ネイティブ、Ｇｏｏｇｌｅ Ａｐｐｓなど）、（３）ライセンス要件および／または使用、が含まれる。アプリケーション・タブ１６０１は、さらに、アプリケーションに関連するレポート１６０２を表示し、また、管理者がアプリケーションを追加すること可能にするＧＵＩコントロール（例えば、ボタン）１６０３を含んでいる。アプリケーション・タブ１６０１は、さらに、ユーザへのヒントを表示するテキストフィールド１６０４を含んでいる。
【００７４】
図１７は、例示的な一実施形態により、アプリケーションを追加するためのダイアログのＧＵＩビューを示している。例示的な一実施形態において、このダイアログは、例えば管理者がアプリケーションを追加するためのＧＵＩコントロール（例えば、ボタン）１６０３をクリックすると、管理者ウェブポータルのアプリケーション・タブ１６０１に表示されることがある。ダイアログ１７０１は、アプリケーションの名前の編集ボックス１７０２と、アプリケーションの説明の編集ボックス１７０３と、を含んでいる。ダイアログ１７０１は、さらに、ライセンスが必要かどうかを示すためのチェックボックス１７０４を含んでいる。
【００７５】
また、ダイアログ１７０１は、アプリケーションのアプリケーション・タイプを特定するラジオボタンのリスト１７０５を含んでおり、それらのアプリケーション・タイプは、（１）電子メールおよびデータ同期サービスを含む、事前設定されたアプリケーション、（２）ＶＭｗａｒｅ ＴｈｉｎＡｐｐで仮想化されたアプリケーションまたはネイティブＭＳＩ（Ｗｉｎｄｏｗｓインストーラ）アプリケーションを含む、Ｗｉｎｄｏｗｓデスクトップアプリケーション、（３）ＷｏｒｋｄａｙまたはＳａｌｅｓｆｏｒｃｅのようなウェブベースのアプリケーションであるＳａａＳアプリケーション、および（４）Ｍｉｃｒｏｓｏｆｔターミナルサービス（ＲＤＳ）アプリケーションまたはＣｉｔｒｉｘ ＸｅｎＡｐｐアプリケーションのような公開（またはリモート）アプリケーション、である。図１７に示す例では、リスト１７０５の一番上のラジオボタンがチェックされていることが分かるであろう。その結果として、システムにより管理されている４つの事前設定されたアプリケーションである、（Ａ）ＶＭｗａｒｅ Ｖｉｅｗ、（Ｂ）Ｍｏｚｙ、（Ｃ）Ｇｏｏｇｌｅ Ａｐｐｓ、（Ｄ）Ｂｏｘ．ｎｅｔ、および（Ｅ）Ｓａｌｅｓｆｏｒｃｅ、を表すアイコン１７０６がダイアログ１７０１に表示される。ダイアログ１７０１は、さらに、編集による変更を保存するためのＧＵＩコントロール（例えば、ボタン）１７０７を含んでいる。
【００７６】
図１８は、例示的な一実施形態により、Ｗｉｎｄｏｗｓデスクトップアプリケーションを編集するための編集ダイアログのＧＵＩビューを示している。例示的な一実施形態において、このダイアログは、例えばユーザがダイアログ１７０１のラジオボタンのリスト１７０５でＷｉｎｄｏｗｓデスクトップアプリケーションのラジオボタンを選択したときに表示されるアプリケーションのアイコンを管理者がクリックすると、管理者ウェブポータルのアプリケーション・タブ１６０１に表示されることがある。編集ダイアログ１８０１は、Ｗｉｎｄｏｗｓデスクトップアプリケーションの名前の編集を可能にする編集ボックス１８０２と、Ｗｉｎｄｏｗｓデスクトップアプリケーションの説明の編集を可能にする編集ボックス１８０３と、を含んでいる。編集ダイアログ１８０１は、さらに、ライセンスが必要かどうかを示すためのチェックボックス１８０４を含んでいる。さらに、編集ダイアログ１８０１は、アプリケーション群にＷｉｎｄｏｗｓデスクトップアプリケーションを追加するためのＧＵＩコントロール（例えば、ボタン）１８０５と、アプリケーション・タイプを編集するためのＧＵＩコントロール（例えば、ボタン）１８０６と、を含んでいる。
【００７７】
また、編集ダイアログ１８０１は、例えばＷｉｎｄｏｗｓデスクトップアプリケーションを使用するエンタイトルメントを付与されたユーザのホストコンピュータであるローカルホストコンピュータによりアップロードされるファイルを、管理者が選択することを可能にするＧＵＩコントロール（例えば、ボタン）１８０７を含んでいる。ＧＵＩコントロール１８０７をクリックすると、ポップアップダイアログ１８０８が表示され、これによって、管理者は、マウスおよび／またはキーボードを用いて、ディレクトリのファイルのリスト１８０９からファイルを選択することが可能である。ポップアップダイアログ１８０８によって、さらに、管理者は、マウスおよび／またはキーボードを用いて、場所（例えば、デバイス、共有、およびプレース）のリスト１８１０から場所を選択することが可能である。さらに、ポップアップダイアログ１８０８は、ファイル選択操作のキャンセルを可能にするＧＵＩコントロール（例えば、ボタン）を含んでいる。
【００７８】
図１９は、例示的な一実施形態により、公開（またはリモート）アプリケーションを編集するための編集ダイアログのＧＵＩビューを示している。例示的な一実施形態において、このダイアログは、例えばダイアログ１７０１のラジオボタンのリスト１７０５でユーザが公開アプリケーションのラジオボタンを選択したときに表示されるアプリケーションのアイコンを管理者がクリックすると、管理者ウェブポータルのアプリケーション・タブ１６０１に表示されることがある。編集ダイアログ１９０１は、公開アプリケーションの名前の編集を可能にする編集ボックス１９０２と、公開アプリケーションの説明の編集を可能にする編集ボックス１９０３と、を含んでいる。編集ダイアログ１９０１は、さらに、ライセンスが必要かどうかを示すためのチェックボックス１９０４を含んでいる。さらに、編集ダイアログ１９０１は、アプリケーション群に公開アプリケーションを追加するためのＧＵＩコントロール（例えば、ボタン）１９０５と、アプリケーション・タイプを編集するためのＧＵＩコントロール（例えば、ボタン）１９０６と、を含んでいる。また、編集ダイアログ１９０１は、プログラム名の編集ボックス１９０７と、サーバ識別子の編集ボックス１９０８と、サーバポートの編集ボックス１９０９と、を含んでいる。
【００７９】
図２０は、例示的な一実施形態により、管理者ウェブポータルで表示されるライセンス・タブのＧＵＩビューを示している。ライセンス・タブ２００１は、数ある中でも特に、アプリケーション管理システムにより管理されるライセンスに関するデータのテーブルを表示する。テーブルの列として、（１）ライセンスされたアプリケーション、（２）ライセンス数、（３）ライセンスごとの料金、が含まれる。ライセンス・タブ２００１は、さらに、ライセンスに関連するレポート２００２を表示する。
【００８０】
図２１は、例示的な一実施形態により、管理者ウェブポータルで表示されるポリシー・タブのＧＵＩビューを示している。ポリシー・タブ２１０１は、数ある中でも特に、管理者がクライアント機器に関するポリシーを設定することを可能にするものであり、この設定によって、アプリケーションのエンタイトルメントが決定される。ポリシー・タブ２１０１は、３つのチェックボックスと、クライアント機器によるリモートアクセスのポリシーを設定するための編集ボックスと、を表示する。チェックボックス２１０２は、チェックされた場合、クライアント機器がＡＤドメイン上のコーポレート所有のものでなければならないことを示している。このようなポリシーは、当然のことながら、人事記録または医療記録などの機密記録にアクセスするアプリケーションに適用され得る。関連する編集ボックス２１０３によって、ＡＤドメインを特定することが可能である。チェックボックス２１０４は、チェックされた場合、クライアント機器にウイルス防止機能がインストールされていなければならないことを示している。チェックボックス２１０５は、チェックされた場合、更新が自動的にクライアント機器にインストールされる必要があることを示している（例えば、Ｗｉｎｄｏｗｓオペレーティングシステムの更新、ウイルス定義ファイルの更新など）。
【００８１】
このようなポリシーは、例示的なものであって、限定するものではない。別のデバイスポリシーは、Ｗｉｎｄｏｗｓがインストールされていることを要求するものであり得る。あるいは、デバイスポリシーは、ＡＤドメインへのアクセスに使用されるチャネル（または接続）に関するものである場合があり、例えば、ＬＡＮ、ＷＡＮ、名前とパスワードによる保護、セキュアＩＤによる保護、などである。さらに、デバイスポリシーは、ジオロケーションに関するものである場合もあり、例えば、クライアント機器が特定の政府機関の管轄区域内に位置している場合にのみ、そのクライアント機器でのアプリケーションの使用が可能となる。
【００８２】
さらに、ポリシー・タブ２１０１は、管理者が新規のポリシーを追加することを可能にするＧＵＩコントロール（例えば、ボタン）２１０６と、ユーザへのヒントを表示するテキストフィールド２１０７と、を含んでいる。さらに、ポリシー・タブ２１０１は、編集による変更を保存するためのＧＵＩコントロール（例えば、ボタン）２１０８を含んでいる。
【００８３】
図２２は、例示的な一実施形態により、ユーザウェブポータルで表示されるＧＵＩビューを示している。例示的な一実施形態において、このビューは、ユーザ（例えば、Ｒｅｇｉｓ Ｇｏｒｍａｎ）がログインした後に、システムによって表示されることがある。このビュー２２０１は、そのユーザにエンタイトルメントが付与されているアプリケーションのうち、有効化されているアプリケーションのアイコンを、並べて表示する。ユーザがアイコンをクリックすると、アプリケーションは比較的シームレスに起動する。
【００８４】
当然のことながら、ＧＵＩビュー２２０１は、限定するものではなく、例示的なものである。クライアント機器がＷｉｎｄｏｗｓデバイスである場合、ユーザにシームレスな感覚を与えるため、ＧＵＩビュー２２０１は、さらに、スタートメニューに追加されたアイコンを含むことがあり、また、アプリケーションについての状態通知をステータスバーに含むことがある。言うまでもなく、Ａｐｐｌｅデバイスに表示される場合も、シームレス化を図るため、同様の性質の強化がＧＵＩビュー２２０１に施されることがある。
【００８５】
図２３は、例示的な一実施形態により、ユーザウェブポータルで表示される別のＧＵＩビューを示している。例示的な一実施形態において、このビューは、ユーザ（例えば、Ｒｅｇｉｓ Ｇｏｒｍａｎ）がログインした後に、アプリケーション管理システムによって表示されることがある。このビュー２３０１は、例えばＳａｌｅｓｆｏｒｃｅのように、そのユーザにエンタイトルメントが付与され、かつ有効化されているアプリケーションのアイコンだけではなく、例えばＷｏｒｋｄａｙのように、そのユーザにエンタイトルメントが付与されているが、有効化されていないアプリケーションのアイコンも、ともに並べて表示する。例示的な一実施形態において、ユーザは、インストール・ボタンをクリックすることにより、アプリケーションをインストールすることができる。
【００８６】
本明細書に記載の、本発明の一部をなすオペレーションは、いずれも有用なマシンオペレーションである。また、本発明は、これらのオペレーションを実行するためのデバイスまたは装置に関するものである。装置は、上記キャリアネットワークのような、所要の目的のために特別に構築されたものとすることができ、あるいはコンピュータに格納されたコンピュータプログラムによって選択的に起動または設定される汎用コンピュータとすることができる。特に、様々な汎用機を、本明細書の教示に従って書かれたコンピュータプログラムと共に用いることができ、あるいは所要のオペレーションを実行するために、より特化した装置を構築するほうが、利便性が高い場合がある。
【００８７】
また、本発明は、コンピュータ読み取り可能な媒体上のコンピュータ読み取り可能なコードとして具現化することができる。コンピュータ読み取り可能な媒体は、データを保存することができるデータ記憶装置であって、後にコンピュータシステムによりそのデータを読み出すことが可能なものである。コンピュータ読み取り可能な媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ‐ＲＯＭ、ＣＤ‐Ｒ、ＣＤ‐ＲＷ、ＤＶＤ、フラッシュ、磁気テープ、および他の光学式および非光学式のデータ記憶装置が含まれる。コンピュータ読み取り可能な媒体は、コンピュータシステムに接続されたネットワーク上に分散させることもでき、これにより、コンピュータ読み取り可能なコードは分散的に記憶および実行される。
【００８８】
例示的な実施形態について、明確な理解を目的として、ある程度詳細に記載したが、以下の請求項の範囲内でいくらかの変更および変形を実施することができることは明らかであろう。例えば、本明細書に記載のプロセスは、サービス型ソフトウェア（ＳａａＳ）、シンアプリケーション、リモートアプリケーションなどの他に、サービス型プラットフォーム（ＰａａＳ：Ｐｌａｔｆｏｒｍ ａｓ ａ Ｓｅｒｖｉｃｅ）またはサービス型インフラストラクチャ（ＩａａＳ：Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ ａｓ ａ Ｓｅｒｖｉｃｅ）のプロビジョニングに用いることもできる。上記のプロセスオペレーションは、いずれかの適当な方法で、順序付け、モジュール化、および／または分散させることができる。
【００８９】
よって、これらの実施形態は例示とみなされるべきであって、限定するものではなく、また、本発明は、本明細書で提示した詳細に限定されるものではなく、以下の請求項の範囲内および均等物の範囲内で変更することができる。以下の請求項において、要素および／または手順は、請求項に明記されない限り、または開示により暗黙的に規定されない限り、特定のオペレーション順序を意味するものではない。
【図１】
2013545152.tif 000005
【図２】
2013545152.tif 000006
【図３Ａ】
2013545152.tif 000007
【図３Ｂ】
2013545152.tif 000008
【図３Ｃ】
2013545152.tif 000009
【図４】
2013545152.tif 000010
【図５】
2013545152.tif 000011
【図６】
2013545152.tif 000012
【図７】
2013545152.tif 000013
【図８】
2013545152.tif 000014
【図９Ａ】
2013545152.tif 000015
【図９Ｂ】
2013545152.tif 000016
【図１０】
2013545152.tif 000017
【図１１】
2013545152.tif 000018
【図１２】
2013545152.tif 000019
【図１３】
2013545152.tif 000020
【図１４】
2013545152.tif 000021
【図１５】
2013545152.tif 000022
【図１６】
2013545152.tif 000023
【図１７】
2013545152.tif 000024
【図１８】
2013545152.tif 000025
【図１９】
2013545152.tif 000026
【図２０】
2013545152.tif 000027
【図２１】
2013545152.tif 000028
【図２２】
2013545152.tif 000029
【図２３】
2013545152.tif 000030
【国際調査報告】
2013545152.tif 000031
2013545152.tif 000032
2013545152.tif 000033