(57)【特許請求の範囲】
【請求項１】
認証コンピューティングデバイスによって、クライアントデバイスから第１ユーザに対応するユーザパスワードまたはトークンを含む第１認証資格情報を受信し、
前記第１認証資格情報に基づいて前記第１ユーザを認証し、
前記第１ユーザの認証後、前記クライアントデバイスからユーザの秘密を受信し、
前記認証コンピューティングデバイスによって、暗号化鍵で暗号化した前記ユーザパスワードまたはトークンを含む第１妥当性検証データを作成および格納し、ここにおいて、前記第１妥当性検証データを作成する段階は、前記暗号化鍵によって、前記第１ユーザを識別する情報と、前記ユーザパスワードまたはトークンと、前記ユーザの秘密とを暗号化することを含み、
前記認証コンピューティングデバイスによって、前記クライアントデバイスおよび前記第１ユーザのうち少なくともいずれかに対応する識別子と、前記ユーザパスワードまたはトークンを前記第１妥当性検証データに暗号化するのに使用された前記暗号化鍵とを含む第１アクセストークンを作成し、
前記認証コンピューティングデバイスによって、前記第１アクセストークンを前記クライアントデバイスに送信し、
前記クライアントデバイスから暗号化鍵を含む第２アクセストークンと、ユーザの秘密とを含むリソースアクセス要求を受信し、
前記第２アクセストークンに含まれる前記暗号化鍵を用いて前記第１妥当性検証データを解読し、
前記第１妥当性検証データの前記ユーザの秘密を前記リソースアクセス要求の前記ユーザの秘密と比較し、
前記第１妥当性検証データの前記ユーザの秘密が前記リソースアクセス要求の前記ユーザの秘密と同じである旨の判定に応答して、前記要求されたリソースへの前記クライアントデバイスのアクセスを許可する、方法。
【請求項２】
前記認証コンピューティングデバイスは、さらに
前記クライアントデバイスから、暗号化鍵を含む第２アクセストークンを有するリソースアクセス要求を受信し、
前記第２アクセストークンに含まれる前記暗号化鍵を用いて前記第１妥当性検証データの解読を試み、
前記第２アクセストークンに含まれる前記暗号化鍵を用いた前記第１妥当性検証データの解読の成功に応答して、前記要求されたリソースへの前記クライアントデバイスのアクセスを許可する、請求項１に記載の方法。
【請求項３】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
前記第１認証資格情報と異なる１つまたは複数の付加的な認証資格情報を読み出すことと、
前記付加的な認証資格情報を企業システムのアクセスゲートウェイに送信することとを含み、前記付加的な認証資格情報が、前記企業システムの１つまたは複数のサービスまたはリソースに対して前記第１ユーザがアクセスするための資格情報に対応する、請求項２に記載の方法。
【請求項４】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
外部認証サービスに対して、前記解読した第１妥当性検証データからの１つまたは複数の認証資格情報を提出することと、
前記提出した認証資格情報が無効または期限切れである旨の指標を前記外部認証サービスから読み出すことと、
前記第１ユーザに対する更新認証資格情報の要求を前記クライアントデバイスに送信することと、
前記第１ユーザに対する更新認証資格情報を前記クライアントデバイスから受信することとを含む、請求項２に記載の方法。
【請求項５】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
前記第２アクセストークンに関連する期限切れ時間データを読み出すことと、
前記第２アクセストークンに関連する前記期限切れ時間データと前記リソースアクセス要求に関連する要求時間との比較に基づいて、前記第２アクセストークンが有効であると判定することとを含む、請求項１に記載の方法。
【請求項６】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
前記リソースアクセス要求に関連する企業システムの第１要求サービスまたはリソースを決定することと、
前記第２アクセストークンに関連する前記企業システムの１つまたは複数のサービスまたはリソースのセットを読み出すことと、
前記第１要求サービスまたはリソースと前記第２アクセストークンに関連する前記サービスまたはリソースのセットとの比較に基づいて、前記第２アクセストークンが有効であると判定することとを含む、請求項１に記載の方法。
【請求項７】
前記クライアントデバイスが、モバイルデバイスであり、前記モバイルデバイスから受信した前記ユーザの秘密が、個人識別番号（ＰＩＮ）、モバイルデバイスジェスチャ、またはユーザバイオメトリックデータ、のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項８】
プロセッサと、
前記プロセッサにより実行された場合に、当該認証デバイスに次の各動作を行わせるコンピュータ実行可能命令を格納したメモリとを備えた、認証デバイス。
クライアントデバイスから第１ユーザに対応するユーザパスワードまたはトークンを含む第１認証資格情報を受信する動作、
前記第１認証資格情報に基づいて前記第１ユーザを認証する動作、
前記第１ユーザの認証後、前記クライアントデバイスからユーザの秘密を受信する動作、
暗号化鍵で暗号化した前記ユーザパスワードまたはトークンを含む第１妥当性検証データを作成および格納する動作、ここにおいて前記第１妥当性検証データを作成する動作が、前記暗号化鍵によって、前記第１ユーザを識別する情報と、前記ユーザパスワードまたはトークンと、前記ユーザの秘密とを暗号化することを含み、
前記クライアントデバイスおよび前記第１ユーザのうち少なくともいずれかに対応する識別子および前記ユーザパスワードまたはトークンを前記第１妥当性検証データに暗号化するのに用いた前記暗号化鍵を含む第１アクセストークンを作成する動作、
前記第１アクセストークンを前記クライアントデバイスに送信する動作、
前記クライアントデバイスから、暗号化鍵を含む第２アクセストークンと、ユーザの秘密とを含むリソースアクセス要求を受信する動作、
前記第２アクセストークンに含まれる前記暗号化鍵を用いて前記第１妥当性検証データを解読する動作、
前記第１妥当性検証データの前記ユーザの秘密を前記リソースアクセス要求の前記ユーザの秘密と比較する動作、ならびに
前記第１妥当性検証データの前記ユーザの秘密が前記リソースアクセス要求の前記ユーザの秘密と同じである旨の判定に応答して、前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することとを当該認証デバイスに行わせる動作。
【請求項９】
前記プロセッサにより実行された場合に、
前記クライアントデバイスから暗号化鍵を含む第２アクセストークンを含むリソースアクセス要求を受信することと、
前記第２アクセストークンに含まれる前記暗号化鍵を用いて前記第１妥当性検証データの解読を試みることと、
前記第２アクセストークンに含まれる前記暗号化鍵を用いた前記第１妥当性検証データの解読の成功に応答して、前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することとを当該認証デバイスに行わせる別のコンピュータ実行可能命令を前記メモリに格納した、請求項８に記載の認証デバイス。
【請求項１０】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
前記第１認証資格情報と異なる１つまたは複数の付加的な認証資格情報を読み出すことであり、前記付加的な認証資格情報が、企業システムの１つまたは複数のサービスまたはリソースに対して前記第１ユーザがアクセスするための資格情報に対応する、ことと、
前記付加的な認証資格情報を前記企業システムのアクセスゲートウェイに送信することとを含む、請求項９に記載の認証デバイス。
【請求項１１】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
前記第２アクセストークンに関連する期限切れ時間データを読み出すことと、
前記第２アクセストークンに関連する前記期限切れ時間データと前記リソースアクセス要求に関連する要求時間との比較に基づいて、前記第２アクセストークンが有効であると判定することとを含む、請求項８に記載の認証デバイス。
【請求項１２】
前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することが、
前記リソースアクセス要求に関連する企業システムの第１要求サービスまたはリソースを決定することと、
前記第２アクセストークンに関連する前記企業システムの１つまたは複数のサービスまたはリソースのセットを読み出すことと、
前記第１要求サービスまたはリソースと前記第２アクセストークンに関連する前記サービスまたはリソースのセットとの比較に基づいて、前記第２アクセストークンが有効であると判定することとを含む、請求項１１に記載の認証デバイス。
【請求項１３】
認証コンピューティングデバイスによって、クライアントデバイスから第１ユーザに対応するユーザパスワードまたはトークンおよびユーザの秘密を含む第１認証資格情報を受信し、
前記認証コンピューティングデバイスによって、暗号化鍵で暗号化した前記ユーザパスワードまたはトークンと、前記ユーザの秘密とを含む第１妥当性検証データを作成および格納し、
前記認証コンピューティングデバイスによって、前記クライアントデバイスおよび前記第１ユーザのうち少なくともいずれかに対応する識別子と、前記ユーザパスワードまたはトークンを前記第１妥当性検証データに暗号化するのに使用された前記暗号化鍵とを含む第１アクセストークンを作成し、
前記認証コンピューティングデバイスによって、前記第１アクセストークンを前記クライアントデバイスに送信し、
前記クライアントデバイスから暗号化鍵を含む第２アクセストークンと、ユーザの秘密とを含むリソースアクセス要求を受信し、
前記第２アクセストークンに含まれる前記暗号化鍵を用いて前記第１妥当性検証データを解読し、
前記第１妥当性検証データの前記ユーザの秘密を前記リソースアクセス要求の前記ユーザの秘密と比較し、
前記第１妥当性検証データの前記ユーザの秘密が前記リソースアクセス要求の前記ユーザの秘密と同じである旨の判定に応答して、前記要求されたリソースへの前記クライアントデバイスのアクセスを許可する、方法。
【請求項１４】
プロセッサと、
前記プロセッサにより実行された場合に、当該認証デバイスに次の各動作を行わせるコンピュータ実行可能命令を格納したメモリとを備えた、認証デバイス。
クライアントデバイスから第１ユーザに対応するユーザパスワードまたはトークンおよびユーザの秘密を含む第１認証資格情報を受信する動作、
暗号化鍵で暗号化した前記ユーザパスワードまたはトークンおよび前記ユーザの秘密を含む第１妥当性検証データを作成および格納する動作、
前記クライアントデバイスおよび前記第１ユーザのうち少なくともいずれかに対応する識別子および前記ユーザパスワードまたはトークンを前記第１妥当性検証データに暗号化するのに用いた前記暗号化鍵を含む第１アクセストークンを作成する動作、
前記第１アクセストークンを前記クライアントデバイスに送信する動作、
前記クライアントデバイスから、暗号化鍵を含む第２アクセストークンと、ユーザの秘密とを含むリソースアクセス要求を受信する動作、
前記第２アクセストークンに含まれる前記暗号化鍵を用いて前記第１妥当性検証データを解読する動作、
前記第１妥当性検証データの前記ユーザの秘密を前記リソースアクセス要求の前記ユーザの秘密と比較する動作、ならびに
前記第１妥当性検証データの前記ユーザの秘密が前記リソースアクセス要求の前記ユーザの秘密と同じである旨の判定に応答して、前記要求されたリソースへの前記クライアントデバイスのアクセスを許可することとを当該認証デバイスに行わせる動作。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の各発明の態様は一般的に、企業システム内のユーザの認証に関する。より詳細に、本発明の特定の態様は、企業システムのさまざまなリソースおよびサービスに対して、モバイルデバイスおよび他のクライアントデバイス上のユーザを安全に認証する手法を提供するものである。
【背景技術】
【０００２】
スマートフォン、個人用デジタル補助装置、タブレットコンピュータ、他のモバイルコンピューティングデバイス等のモバイルデバイスは、ますます人気が出てきている。モバイルデバイスは、多様な目的により、私的な状況およびビジネスの場面で使用されている。また、多くの人々は、１つまたは複数のモバイルデバイス等、複数のコンピューティングデバイスを所有する。ユーザのさまざまなデバイスは、異なる場所に置かれ、物理的なデバイスの機能も異なっている場合がある。たとえば、ユーザは、標準キーボードおよびマウスインターフェースを備えたデスクトップコンピュータ、タッチスクリーンインターフェースおよび音声認識機能を備えたモバイルデバイス、指紋スキャナインターフェースを備えたラップトップコンピュータ等を所有する場合がある。
【０００３】
複数のコンピューティングデバイスを所有するユーザは、そのデバイスのいずれかを用いて同じデータ、アプリケーション、および他の情報にアクセスしたい場合がある。
【０００４】
クライアントデバイスを介してデータおよびアプリケーションにリモートアクセスするため、ユーザはまず、認証サービスならびに／またはデータおよびアプリケーションを提供しているリモートリソースもしくはサービスによる認証を受ける。通常、ユーザは、ユーザ名およびパスワード等の認証資格情報を自身のデバイスに入力することによって、身元の妥当性を検証するとともに企業システムのリモートリソースまたはサービスにアクセスする。ユーザは、たとえば通信セッション中または新たなセッションの開始時に定期的に再認証を求められる場合がある。また、１人のユーザが異なるリモートリソースまたはサービスごとに異なる認証資格情報セットを有する場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術における制約および本明細書を読んで理解することにより明らかとなる他の制約を克服するため、本明細書に記載の態様は、モバイルデバイスおよび他のクライアントデバイス上のユーザのセキュリティ保護された認証と、企業システムのさまざまなリソースおよびサービスへのアクセスを提供することを目的とする。
【課題を解決するための手段】
【０００６】
以下に、本明細書に記載のさまざまな態様の簡単な概要を提示する。本概要は、広範な全体像ではなく、また、重要もしくは重大な要素の特定または特許請求の範囲の正確な記述を意図したものではない。以下の概要は、後述のより詳細な説明の導入として、単にいくつかの概念を簡単な形で提示するに過ぎない。
【０００７】
本発明の特定の態様によれば、認証デバイスは、クライアントデバイスから、パスワード（またはトークン）を含むユーザ認証資格情報を受信するようになっている。ユーザは、認証資格情報により妥当性の検証が行われるようになっていてもよく、認証デバイスは、暗号化ユーザパスワードを含む妥当性検証データと、パスワードを暗号化するのに用いた暗号化鍵を含むアクセストークンとを作成するようにしてもよい。妥当性検証データは、認証デバイスにより格納されるようになっていてもよく、アクセストークンは、クライアントデバイスに送信されるようになっていてもよい。クライアントデバイスからの将来的なリソースアクセス要求のため、クライアントデバイスは、アクセストークンを送信するようにしてもよく、認証デバイスは、クライアントデバイスから受信したアクセストークンを用いることにより、妥当性検証データを読み出して解読するようにしてもよい。
【０００８】
別の態様によれば、ユーザは、クライアントデバイスの入力インターフェースを介して、たとえば個人識別番号、タッチスクリーンジェスチャ、またはバイオメトリックデータ等のユーザの秘密（user secret）を入力するようにしてもよい。ユーザの秘密は、認証デバイスにより格納され、クライアントデバイスからの将来的な要求の妥当性の検証に用いられるようになっていてもよい。たとえば、ユーザは、ユーザの秘密を再入力して将来的な要求を行うようにしてもよく、認証デバイスは、要求におけるユーザの秘密と、同じユーザ、デバイス、ならびに／または要求されたリソースもしくはサービスに対応する以前に格納されたユーザの秘密とを比較するようにしてもよい。
【０００９】
さらに別の態様によれば、第１の認証資格情報セットによりユーザの妥当性を検証した後は、第１のユーザに関して、１つまたは複数の付加的な認証資格情報セットが読み出され、企業システムのアクセスゲートウェイまたは他のストレージに格納されるようになっていてもよい。付加的な認証資格情報セットは、企業システムのさまざまなサービスまたはリソースにアクセスするための同じユーザの異なる資格情報に対応していてもよい。クライアントデバイスからの将来的な要求においては、第１の認証資格情報セットに基づいてユーザの妥当性が検証された後、要求サービスまたはリソースに応じて付加的な認証資格情報セットが読み出され、要求に差し込まれるようになっていてもよい。
【００１０】
上記および別の態様は、以下により詳しく述べる開示によって理解されよう。
【００１１】
本明細書に記載の態様およびその利点は、添付の図面を考慮した以下の説明を参照することによって、より完全な理解が得られる。図面において、同じ参照番号は、同じ特徴を示す。
【図面の簡単な説明】
【００１２】
【図１】本明細書に記載の１つまたは複数の態様に従って使用されるコンピュータシステムのアーキテクチャを示す図である。
【図２】リモートアクセスシステムのアーキテクチャを示す図である。
【図３】企業モビリティ管理システムを示す図である。
【図４】別の企業モビリティ管理システムを示す図である。
【図５】クライアントデバイスと認証デバイスとの間のユーザ認証プロセスの一例を示したフローチャートである。
【図６】クライアントデバイスと企業システムのさまざまなコンポーネントとの間のユーザ認証およびリソースアクセス要求の一例を示したフローチャートである。
【図７Ａ】クライアントデバイスと認証デバイスとの間の認証プロセスにおいて妥当性検証データおよびアクセストークンを作成して使用する技術の一例を示した図である。
【図７Ｂ】クライアントデバイスと認証デバイスとの間の認証プロセスにおいて妥当性検証データおよびアクセストークンを作成して使用する技術の一例を示した図である。
【発明を実施するための形態】
【００１３】
以下、さまざまな実施形態の説明においては、上記特定した本明細書の一部をなす添付の図面を参照するが、当該図面には、本明細書に記載の各態様を実施可能なさまざまな実施形態を例示している。本明細書に記載の範囲から逸脱しなければ、他の実施形態を利用するとともに、構造上および機能上の改良を行ってもよいことが了解されるものとする。さまざまな態様は、他の実施形態が採用可能であり、また、さまざまな異なる方法で実施または実行が可能である。
【００１４】
以下に詳述する発明の概略紹介として、本明細書に記載の各発明態様は、モバイルコンピューティングデバイスの管理対象モバイルアプリケーションを用いて企業システムのリソースへのリモートアクセスを制御することに関する。アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションがそれ自体を正確に識別し、モバイルコンピューティングデバイスへのインストール後に変更されていないか否かを判定する妥当性検証プロセスを行うようにしてもよい。このように、アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションが信頼でき、その企業リソースを保護するためのセキュリティメカニズムをくぐり抜けようとしていないことを保証するようにしてもよい。その結果、この企業に関連する個人は、自身の個人用モバイルデバイスで企業リソースを利用可能となり都合が良い。
【００１５】
本明細書で使用する表現および用語は、説明を目的としており、何ら限定的と見なすべきではないことが了解されるものとする。むしろ、本明細書で使用する表現および用語には、そのもっとも広い解釈および意味が与えられるものとする。「含む」および「備える」ならびにこれらの変形を使用することは、その後に列挙される項目およびその均等物のほか、付加的な項目およびその均等物を包含することを意図している。用途「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および類似の用語を使用することは、直接および間接的な取り付け、接続、連結、位置付け、および係合の両者を含むことを意図している。
【００１６】
〈コンピューティングアーキテクチャ〉
コンピュータソフトウェア、ハードウェア、およびネットワークは、特にスタンドアロン、ネットワーク化、リモートアクセス（別称、リモートデスクトップ）、仮想化、および／またはクラウドベースの環境等、多様な異なるシステム環境で利用されるようになっている。
【００１７】
図１は、本明細書に記載の１つまたは複数の態様をスタンドアロンおよび／またはネットワーク化環境で実装するのに利用可能なシステムアーキテクチャおよびデータ処理装置の一実施例を示している。インターネット等の広域ネットワーク（ＷＡＮ）１０１を介して、さまざまなネットワークノード１０３、１０５、１０７、および１０９が相互接続されている。また、プライベートイントラネット、企業ネットワーク、ＬＡＮ、メトロポリタンエリアネットワーク（ＭＡＮ）、無線ネットワーク、パーソナルネットワーク（ＰＡＮ）等の他のネットワークを併用または代用するようにしてもよい。ネットワーク１０１は、例示を目的としており、より少数または追加のコンピュータネットワークで置き換えてもよい。ローカルエリアネットワーク（ＬＡＮ）は、任意の既知のＬＡＮトポロジのうちの１つまたは複数を有していてもよく、また、イーサーネット等の多様な異なるプロトコルのうちの１つまたは複数を使用するようにしてもよい。デバイス１０３、１０５、１０７、１０９、および他のデバイス（図示せず）は、撚り対線、同軸ケーブル、光ファイバ、電波、または他の通信媒体を介してネットワークのうちの１つまたは複数に接続されていてもよい。
【００１８】
本明細書で使用するとともに図面に示す用語「ネットワーク」は、１つまたは複数の通信経路を介してリモートの記憶装置が互いに連結されたシステムのみならず、場合により当該システムに連結可能な記憶能力を有するスタンドアロンデバイスも表す。そのため、用語「ネットワーク」には、「物理的ネットワーク」のみならず、すべての物理的ネットワークに常駐する（単一のエンティティに帰属し得る）データで構成された「コンテンツネットワーク」も含まれる。
【００１９】
コンポーネントは、データサーバ１０３、ウェブサーバ１０５、およびクライアントコンピュータ１０７、１０９を含んでいてもよい。データサーバ１０３は、本明細書に記載の１つまたは複数の態様を実施するためのデータベースおよび制御ソフトウェアの全体的なアクセス、制御、および管理を提供する。データサーバ１０３は、ウェブサーバ１０５に接続されていてもよく、これによりユーザは、必要に応じてデータと相互作用し、必要なデータを取得する。あるいは、データサーバ１０３は、ウェブサーバ自体として作用するようになっていてもよく、また、インターネットに直接接続されていてもよい。データサーバ１０３は、直接もしくは間接的な接続またはその他何らかのネットワークを介して、ネットワーク１０１（たとえば、インターネット）経由でウェブサーバ１０５に接続されていてもよい。ユーザは、たとえばウェブサーバ１０５がホストする１つまたは複数の外部から見えるウェブサイトを介してデータサーバ１０３に接続するためのウェブブラウザを使用することにより、リモートコンピュータ１０７、１０９を用いてデータサーバ１０３と相互作用するようにしてもよい。クライアントコンピュータ１０７，１０９は、データサーバ１０３とともに使用して、そこに格納されたデータにアクセスするようにしてもよいし、他の目的で使用してもよい。たとえば、ユーザは、クライアントデバイス１０７から、当技術分野において既知のインターネットブラウザを使用するか、またはコンピュータネットワーク（インターネット等）上でウェブサーバ１０５および／またはデータサーバ１０３と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ１０５にアクセスするようにしてもよい。
【００２０】
サーバおよびアプリケーションは、同じ物理マシン上に組み合わせて、別個の仮想アドレスもしくは論理アドレスを保持するようにしてもよいし、別個の物理マシンに常駐していてもよい。
【００２１】
図１は、使用可能なネットワークアーキテクチャのほんの一実施例を示しており、当業者であれば、使用する特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよく、本明細書にて詳細に説明するように、それらが提供する機能の補助的なものであることが認識されよう。たとえば、ウェブサーバ１０５およびデータサーバ１０３が提供するサービスは、単一のサーバ上に組み合わされていてもよい。
【００２２】
各コンポーネント１０３、１０５、１０７、１０９は、如何なる種類の既知のコンピュータ、サーバ、またはデータ処理装置であってもよい。たとえば、データサーバ１０３は、レートサーバ１０３の動作全体を制御するプロセッサ１１１を含んでいてもよい。データサーバ１０３は、ＲＡＭ１１３、ＲＯＭ１１５、ネットワークインターフェース１１７、入出力インターフェース１１９（たとえば、キーボード、マウス、ディスプレイ、プリンタ等）、およびメモリ１２１をさらに含んでいてもよい。Ｉ／Ｏ１１９は、データまたはファイルの読み込み、書き込み、表示、および／または印刷を行う多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ１２１は、データ処理装置１０３、本明細書に記載の態様の実施をデータサーバ１０３に指示する制御ロジック１２５、ならびに本明細書に記載の態様と併せて使用してもしなくてもよい補助、サポート、および／または他の機能を提供する他のアプリケーションソフトウェア１２７の動作全体を制御するオペレーティングシステムソフトウェア１２３をさらに格納していてもよい。本明細書において、制御ロジックは、データサーバソフトウェア１２５とも称される。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を行うユーザにより手動で作成されたルールに基づいて自動的に行われる動作もしくは決定ならびに／またはユーザ入力（たとえば、問い合わせ、データ更新等）に基づく自動処理の組合せを表していてもよい。
【００２３】
また、メモリ１２１は、第１データベース１２９および第２データベース１３１を含め、本明細書に記載の１つまたは複数の態様の実施に用いられるデータを格納していてもよい。いくつかの実施形態において、第１データベースは、（たとえば、別個のテーブル、レポート等として）第２データベースを含んでいてもよい。すなわち、情報は、システム設計に応じて、単一のデータベースに格納することも、別々の論理、仮想、または物理データベースに分けることもできる。デバイス１０５、１０７、１０９は、デバイス１０３に関する説明と同様のアーキテクチャを有していてもよいし、異なるアーキテクチャを有していてもよい。当業者であれば、本明細書に記載のデータ処理装置１０３（または、デバイス１０５、１０７、１０９）の機能を複数のデータ処理装置に分散して、たとえば複数のコンピュータに処理負荷を分散することにより、地理的な場所、ユーザのアクセスレベル、サービスの品質（ＱｏＳ）等に基づいてトランザクションを分けるようにしてもよいことが認識されよう。
【００２４】
１つまたは複数の態様は、１つまたは複数のプログラムモジュール等、本明細書に記載の１つもしくは複数のコンピュータまたは他のデバイスが実行するコンピュータ使用可能もしくは読取可能データおよび／またはコンピュータ実行可能命令にて具現化されていてもよい。一般的に、プログラムモジュールは、コンピュータまたは他のデバイスのプロセッサによって実行された場合に特定のタスクの実行または特定の抽象データ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは、後でコンパイルして実行するソースコードプログラミング言語で記述されていてもよいし、ＨＴＭＬまたはＸＭＬ等（ただし、これらに限定されない）のスクリプト言語で記述されていてもよい。
【００２５】
コンピュータ実行可能命令は、不揮発性記憶装置等のコンピュータ読取可能媒体に格納されていてもよい。また、ハードディスク、ＣＤ−ＲＯＭ、光学記憶装置、磁気記憶装置、および／またはこれらの任意の組み合わせを含め、任意の適当なコンピュータ読取可能記憶媒体を利用するようにしてもよい。さらに、本明細書に記載のデータまたはイベントを表すさまざまな伝送（非記憶）媒体は、金属ワイヤ、光ファイバ、および／または無線伝送媒体（たとえば、空気および／または空間）等、信号伝達媒体を通って移動する電磁波の形態で送信元と宛先との間を移動するようになっていてもよい。本明細書に記載のさまざまな態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現化されていてもよい。そのため、ソフトウェア、ファームウェア、ならびに／またはハードウェア、もしくは集積回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のハードウェア均等物において、さまざまな機能の全部または一部が具現化されていてもよい。本明細書に記載の１つまたは複数の態様をより効果的に実装するため、特定のデータ構造を使用してもよく、当該データ構造は、本明細書に記載のコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内と考えられる。
【００２６】
さらに図２を参照して、本明細書に記載の１つまたは複数の態様は、リモートアクセス環境に実装されていてもよい。図２は、本明細書に記載の１つまたは複数の態様に従って使用できるコンピューティング環境２００の汎用コンピューティングデバイス２０１を含むシステムアーキテクチャの一例を示している。たとえば、汎用コンピューティングデバイス２０１は、クライアントアクセスデバイス用の仮想マシンを提供するように構成された単一サーバまたはマルチサーバのデスクトップ仮想化システム（たとえば、リモートアクセスまたはクラウドシステム）内のサーバ２０６ａとして使用されるようになっていてもよい。汎用コンピューティングデバイス２０１は、ランダムアクセスメモリ（ＲＡＭ）２０５、読取専用メモリ（ＲＯＭ）２０７、入出力（Ｉ／Ｏ）モジュール２０９、およびメモリ２１５を含め、サーバおよびその関連コンポーネントの動作全体を制御するプロセッサ２０３を有していてもよい。
【００２７】
Ｉ／Ｏモジュール２０９は、汎用コンピューティングデバイス２０１のユーザが入力を行うマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および／またはスタイラス（もしくは、他の入力デバイス）を含んでいてもよく、また、音声出力を提供するスピーカと、テキスト、視聴覚、および／またはグラフィカル出力を提供するビデオディスプレイデバイスとのうちの１つまたは複数を含んでいてもよい。ソフトウェアは、メモリ２１５および／または他のストレージ内に格納して、汎用コンピューティングデバイス２０１を専用コンピューティングデバイスに構成して本明細書に記載のさまざまな機能を実行する命令をプロセッサ２０３に与えるようにしてもよい。たとえば、メモリ２１５は、オペレーティングシステム２１７、アプリケーションプログラム２１９、および関連データベース２２１等、コンピューティングデバイス２０１が使用するソフトウェアを格納していてもよい。
【００２８】
コンピューティングデバイス２０１は、端末２４０（クライアントデバイスとも称する）等の１つまたは複数のリモートコンピュータへの接続をサポートするネットワーク化環境で動作するようになっていてもよい。端末２４０は、汎用コンピューティングデバイス１０３または２０１に関して上述した要素の多くまたはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
【００２９】
図２に示すネットワーク接続は、ローカルエリアネットワーク（ＬＡＮ）２２５および広域ネットワーク（ＷＡＮ）２２９を含むが、他のネットワークを含んでいてもよい。コンピューティングデバイス２０１は、ＬＡＮネットワーク環境で使用する場合、ネットワークインターフェースまたはアダプタ２２３経由でＬＡＮ２２５に接続されていてもよい。コンピューティングデバイス２０１は、ＷＡＮネットワーク環境で使用する場合、コンピュータネットワーク２３０（たとえば、インターネット）等、ＷＡＮ２２９上で通信を確立するモデム２２７または他の広域ネットワークインターフェースを含んでいてもよい。当然のことながら、図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用するようにしてもよい。また、コンピューティングデバイス２０１および／または端末２４０は、バッテリ、スピーカ、およびアンテナ（図示せず）等のその他さまざまなコンポーネントを含むモバイル端末（たとえば、携帯電話、スマートフォン、ＰＤＡ、ノートブック等）であってもよい。
【００３０】
また、本明細書に記載の態様は、その他多くの汎用もしくは専用コンピューティングシステム環境または構成と併せて動作可能であってもよい。本明細書に記載の態様との併用に適する他のコンピューティングシステム、環境、および／または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、携帯型またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が挙げられるが、これらに限定されない。
【００３１】
図２に示すように、１つまたは複数のクライアントデバイス２４０は、１つまたは複数のサーバ２０６ａ〜２０６ｎ（本明細書では「サーバ２０６」と総称する）と通信状態であってもよい。一実施形態において、コンピューティング環境２００は、サーバ２０６とクライアントマシン２４０との間にインストールされたネットワークアプライアンスを含んでいてもよい。ネットワークアプライアンスは、クライアント／サーバ接続を管理していてもよく、場合により、複数のバックエンドサーバ２０６間のクライアント接続の負荷分散を行うことができる。
【００３２】
いくつかの実施形態において、クライアントマシン２４０は、単一クライアントマシン２４０または単一クライアントマシン群２４０と称する場合があり、サーバ２０６は、単一サーバ２０６または単一サーバ群２０６と称する場合がある。一実施形態において、単一クライアントマシン２４０は、２つ以上のサーバ２０６と通信する一方、別の実施形態において、単一サーバ２０６は、２つ以上のクライアントマシン２４０と通信する。さらに別の実施形態において、単一クライアントマシン２４０は、単一サーバ２０６と通信する。
【００３３】
クライアントマシン２４０は、いくつかの実施形態では、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノードという非網羅的な用語のうちのいずれか１つにより表すことができる。いくつかの実施形態において、サーバ２０６は、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイスという非網羅的な用語のうちのいずれか１つにより表す場合がある。
【００３４】
一実施形態において、クライアントマシン２４０は、仮想マシンであってもよい。仮想マシンは、あらゆる仮想マシンであってもよいが、いくつかの実施形態において、仮想マシンは、たとえばＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ、ＩＢＭ、ＶＭｗａｒｅにより開発されたハイパーバイザまたはその他任意のハイパーバイザ等、タイプ１またはタイプ２のハイパーバイザにより管理されるあらゆる仮想マシンであってもよい。いくつかの態様において、仮想マシンは、ハイパーバイザにより管理されるようになっていてもよいが、いくつかの態様において、仮想マシンは、サーバ２０６上で実行されるハイパーバイザまたはクライアント２４０上で実行されるハイパーバイザにより管理されるようになっていてもよい。
【００３５】
いくつかの実施形態は、サーバ２０６または遠隔設置された他のマシン上で遠隔実行されるアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス２４０を含む。これらの実施形態において、クライアントデバイス２４０は、仮想マシンの受信機プログラムまたはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示するようにしてもよい。ある実施例として、このアプリケーションはデスクトップであるが、他の実施例において、このアプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび／またはリモートアプリケーションを統合可能なオペレーティングシステムのインスタンスに対してユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム（および、任意選択としてのデスクトップ）のインスタンスがロードされた後に実行されるプログラムである。
【００３６】
いくつかの実施形態において、サーバ２０６は、クライアント上で実行されるシンクライアントまたはリモートディスプレイアプリケーションにデータを送信するリモートプレゼンテーションプロトコルまたは他のプロトコルを使用して、サーバ２０６上で実行されるアプリケーションにより生成されたディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、フロリダ州フォートローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．が開発したインディペンデントコンピューティングアーキテクチャ（ＩＣＡ）プロトコルまたはワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎが製造したリモートデスクトッププロトコル（ＲＤＰ）という非網羅的なプロトコルのうちのいずれか１つとすることができる。
【００３７】
リモートコンピューティング環境は、たとえばクラウドコンピューティング環境のサーバファーム２０６に論理的にグループ化された２つ以上のサーバ２０６ａ〜２０６ｎを含んでいてもよい。サーバファーム２０６は、論理的にグループ化されながらも地理的に分散したサーバ２０６または論理的にグループ化されながらも互いに近接して配置されたサーバ２０６を含んでいてもよい。いくつかの実施形態において、サーバファーム２０６内の地理的に分散したサーバ２０６ａ〜２０６ｎは、ＷＡＮ（広域）、ＭＡＮ（メトロポリタン）、またはＬＡＮ（ローカル）を使用して通信可能であり、異なる地理的地域は、異なる大陸、大陸の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、またはこれら地理的な場所の任意の組合せとして特徴付けることができる。いくつかの実施形態において、サーバファーム２０６は、単一エンティティとして管理されていてもよいが、他の実施形態において、サーバファーム２０６は、複数のサーバファームを含むことができる。
【００３８】
いくつかの実施形態において、サーバファームは、実質的に同じような種類のオペレーティングシステムプラットフォーム（たとえば、ＷＩＮＤＯＷＳ（登録商標）、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）、ｉＯＳ、ＡＮＤＲＯＩＤ（登録商標）、ＳＹＭＢＩＡＮ等）を実行するサーバ２０６を含んでいてもよい。他の実施形態において、サーバファーム２０６は、第１の種類のオペレーティングシステムプラットフォームを実行する１つまたは複数のサーバから成る第１の群と、第２の種類のオペレーティングシステムプラットフォームを実行する１つまたは複数のサーバから成る第２の群とを含んでいてもよい。
【００３９】
サーバ２０６は、必要に応じて、たとえばファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、ＳＳＬ  ＶＰＮサーバ、ファイヤウォール、ウェブサーバ、アプリケーションサーバもしくはマスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイヤウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバ等、任意の種類のサーバとして構成されていてもよい。また、他の種類のサーバを使用するようにしてもよい。
【００４０】
いくつかの実施形態は、クライアントマシン２４０からの要求を受信し、要求を第２サーバ２０６ｂに転送し、第２サーバ２０６ｂからの応答によって、クライアントマシン２４０により生成された要求に応答する第１サーバ２０６ａを含む。第１サーバ２０６ａは、クライアントマシン２４０が利用できるアプリケーションの一覧表およびアプリケーションの一覧表内で特定されたアプリケーションをホストするアプリケーションサーバ２０６に関連するアドレス情報を取得するようにしてもよい。そして、第１サーバ２０６ａは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント２４０と直接通信して、特定されたアプリケーションへのアクセスをクライアント２４０に提供することができる。１つもしくは複数のクライアント２４０ならびに／または１つもしくは複数のサーバ２０６は、たとえばネットワーク１０１等のネットワーク２３０上でデータを伝送するようにしてもよい。
【００４１】
図２は、デスクトップ仮想化システムの高レベルアーキテクチャを示している。図示のように、デスクトップ仮想化システムは、１つまたは複数のクライアントアクセスデバイス２４０に仮想デスクトップおよび／または仮想アプリケーションを提供するように構成された少なくとも１つの仮想化サーバ２０６を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。本明細書で使用するデスクトップとは、１つまたは複数のアプリケーションをホストおよび／または実行可能なグラフィカル環境または空間を表す。デスクトップには、ローカルおよび／またはリモートアプリケーションを統合可能なオペレーティングシステムのインスタンスに対してユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。アプリケーションには、オペレーティングシステムのインスタンス（および、任意選択としてのデスクトップ）をロードした後に実行されるプログラムを含んでいてもよい。オペレーティングシステムの各インスタンスは、物理的（たとえば、デバイス当たり１つのオペレーティングシステム）であってもよいし、仮想的（たとえば、単一デバイス上でＯＳの多くのインスタンスが動作）であってもよい。各アプリケーションは、ローカルデバイス上で実行されるようになっていてもよいし、遠隔設置されたデバイス上で実行（たとえば、遠隔操作）されるようになっていてもよい。
【００４２】
デスクトップ仮想化システムにおける利用の場合、サーバ２０６は、たとえば単一サーバ、マルチサーバ、またはクラウドコンピューティング環境等、仮想化環境の仮想化サーバとして構成されていてもよい。このような環境において、仮想化サーバ２０６は、１つまたは複数の物理的ディスク、物理的デバイス、物理的プロセッサ、および物理的メモリを含むハードウェア層を含んでいてもよい。仮想化サーバ２０６のメモリ２１５は、任意数の仮想マシンを作成して管理するように構成されたファームウェア、オペレーティングシステム、およびハイパーバイザ（たとえば、タイプ１またはタイプ２ハイパーバイザ）を含んでいてもよい。仮想マシンは、プロセッサにより実行された場合に、物理的コンピューティングデバイスと全く同じようにプログラムおよびプロセスを実行できるように物理的コンピュータの動作を模倣する実行可能命令セットである。ハイパーバイザは、各仮想マシンに対して、当該仮想マシンが利用できる物理的ハードウェア、メモリ、プロセッサ、および他のシステムリソースを仮想的に表示するようにしてもよい。
【００４３】
本明細書に記載のいくつかの態様は、クラウドベースの環境にて実装されるようになっていてもよい。このような環境において、クライアントデバイス２４０は、１つまたは複数のクラウド管理サーバ２０６と通信することによって、クラウドシステムのコンピューティングリソース（たとえば、ホストサーバ、ストレージリソース、およびネットワークリソース）にアクセスするようにしてもよい。
【００４４】
クラウド管理サーバ２０６は、クラウドハードウェアおよびソフトウェアリソースを含めて、さまざまなコンピューティングリソースを管理するようにしてもよく、また、クラウドオペレータおよびクラウド顧客がクラウドシステムと相互作用可能なユーザインターフェースを提供するようにしてもよい。たとえば、管理サーバ２０６は、ユーザインターフェースを備えたＡＰＩセットならびに／または１つもしくは複数のクラウドオペレータコンソールアプリケーション（たとえば、ウェブベースまたはスタンドアロンのアプリケーション）を提供することにより、クラウドオペレータによるクラウドリソースの管理、仮想化層の設定、顧客アカウントの管理、および他のクラウド管理タスクを可能にしてもよい。また、管理サーバ２０６は、たとえばクラウド内の仮想マシンの作成、修正、または破棄の要求等、エンドユーザからのクラウドコンピューティング要求をクライアントコンピュータ２４０経由で受信するように構成されたユーザインターフェースを備えたＡＰＩセットならびに／または１つもしくは複数の顧客コンソールアプリケーションを含んでいてもよい。
【００４５】
クライアントコンピュータ２４０は、インターネット等の通信ネットワークを介して管理サーバ２０６に接続されていてもよく、また、管理サーバ２０６が管理するコンピューティングリソースのうちの１つまたは複数へのアクセスを要求するようにしてもよい。クライアント要求に応答して、管理サーバ２０６は、クライアント要求に基づいてクラウドシステムのハードウェア層の物理的リソースを選択および設定するように構成されたリソースマネージャを含んでいてもよい。たとえば、管理サーバ２０６およびクラウドシステムの付加的なコンポーネントは、ネットワーク（たとえば、インターネット）上で、クライアントコンピュータ２４０の顧客用の仮想マシンおよびその動作環境（たとえば、ハイパーバイザ、ストレージリソース、ネットワーク要素が提供するサービス等）を設定、作成、および管理することによって、演算リソース、データストレージサービス、ネットワーク機能、ならびにコンピュータプラットフォームおよびアプリケーションサポートを顧客に提供するように構成されていてもよい。また、クラウドシステムは、セキュリティシステム、開発環境、ユーザインターフェース等を含めて、さまざまな特定サービスを提供するように構成されていてもよい。
【００４６】
また、クラウドコンピューティング環境は、仮想マシンを作成して管理するとともにクラウドの物理的リソースを使用する顧客に他のサービスを提供するように構成された付加的なハードウェアおよび／またはソフトウェアリソースを備えた仮想化層を含んでいてもよい。上述の通り、仮想化層は、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントと併せて、ハイパーバイザを含んでいてもよい。また、仮想化層は、物理的リソース層とは別個の層であってもよいし、同じハードウェアおよび／またはソフトウェアリソースの一部または全部を物理的リソース層と共有していてもよい。
【００４７】
〈企業モビリティ管理アーキテクチャ〉
図３は、ＢＹＯＤ（Bring Your Own Device）環境で使用する企業モビリティ技術アーキテクチャ３００を示している。このアーキテクチャは、モバイルデバイス３０２のユーザがモバイルデバイス３０２から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス３０２を個人的に使用することと、の両者を可能にする。ユーザは、当該ユーザが購入したモバイルデバイス３０２または企業がユーザに支給したモバイルデバイス３０２を使用することによって、当該企業リソース３０４または企業サービス３０８にアクセスするようにしてもよい。また、ユーザは、モバイルデバイス３０２をビジネス専用で利用してもよいし、ビジネスと個人兼用で利用してもよい。モバイルデバイスは、ｉＯＳオペレーティングシステムおよびＡｎｄｒｏｉｄ（登録商標）オペレーティングシステム等を動作させるようにしてもよい。
【００４８】
企業は、モバイルデバイス３０４を管理するポリシーを実装することを選択するようにしてもよい。ポリシーは、ファイヤウォールまたはゲートウェイによって、モバイルデバイスが識別され、保護またはセキュリティの検証がなされ、企業リソースへの選択的または完全なアクセスが可能となるように埋め込まれていてもよい。また、ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、およびデータ管理ポリシーのなんらかの組合せであってもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス３０４は、登録済みデバイスと称する場合がある。
【００４９】
モバイルデバイスのオペレーティングシステムは、管理対象パーティション３１０と非管理対象パーティション３１２とに分離されていてもよい。管理対象パーティション３１０は、当該管理対象パーティション上で動作するアプリケーションおよび当該管理対象パーティションに格納されたデータを保護するためのポリシーが適用されていてもよい。管理対象パーティション上で動作するアプリケーションは、セキュリティ保護されたアプリケーションであってもよい。セキュリティ保護されたアプリケーションは、電子メールアプリケーション、ウェブブラウザアプリケーション、ＳａａＳ（Ｓｏｆｔｗａｒｅ−ａｓ−ａ−Ｓｅｒｖｉｃｅ）アクセスアプリケーション、Ｗｉｎｄｏｗｓ（登録商標）  Ａｐｐｌｉｃａｔｉｏｎアクセスアプリケーション等であってもよい。また、セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション３１４、セキュリティ保護されたアプリケーションランチャ３１８が実行するセキュリティ保護されたリモートアプリケーション３２２、セキュリティ保護されたアプリケーションランチャ３１８が実行する仮想化アプリケーション３２６等であってもよい。セキュリティ保護されたネイティブアプリケーション３１４は、セキュリティ保護されたアプリケーションラッパー３２０によりラッピングされていてもよい。セキュリティ保護されたアプリケーションラッパー３２０は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行された場合に、モバイルデバイス３０２上で実行される統合ポリシーを含んでいてもよい。セキュリティ保護されたアプリケーションラッパー３２０は、セキュリティ保護されたネイティブアプリケーション３１４の実行時に要求されたタスクを完了するように当該セキュリティ保護されたネイティブアプリケーション３１４が求める場合がある企業でホストされたリソースに対して、モバイルデバイス３０２上で動作するセキュリティ保護されたネイティブアプリケーション３１４をあてがうメタデータを含んでいてもよい。
【００５０】
セキュリティ保護されたアプリケーションランチャ３１８が実行するセキュリティ保護されたリモートアプリケーション３２２は、セキュリティ保護されたアプリケーションランチャアプリケーション３１８内で実行されていてもよい。セキュリティ保護されたアプリケーションランチャ３１８が実行する仮想化アプリケーション３２６は、企業リソース３０４等において、モバイルデバイス３０２上のリソースを利用するようにしてもよい。
【００５１】
セキュリティ保護されたアプリケーションランチャ３１８が実行する仮想化アプリケーション３２６によりモバイルデバイス３０２上で使用されるリソースは、ユーザ相互作用リソース、処理リソース等を含んでいてもよい。ユーザ相互作用リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力等を収集して送信するのに用いられるようになっていてもよい。処理リソースは、ユーザインターフェースを提示し、企業リソース３０４等から受信したデータを処理するのに用いられるようになっていてもよい。セキュリティ保護されたアプリケーションランチャ３１８が実行する仮想化アプリケーション３２６により企業リソース３０４で使用されるリソースは、ユーザインターフェース生成リソース、処理リソース等を含んでいてもよい。ユーザインターフェース生成リソースは、ユーザインターフェースの組み立て、ユーザインターフェースの修正、ユーザインターフェースのリフレッシュ等に用いられるようになっていてもよい。処理リソースは、情報の作成、情報の読み取り、情報の更新、情報の消去等に用いられるようになっていてもよい。たとえば、仮想化アプリケーションは、ＧＵＩに関連するユーザ相互作用を記録してサーバアプリケーションに伝えるようにしてもよく、当該サーバアプリケーションは、サーバで動作するアプリケーションへの入力としてユーザ相互作用データを使用する。
【００５２】
この構成において、企業は、サーバ側のアプリケーションのほか、アプリケーションに関連するデータ、ファイル等を維持する選択を行うようにしてもよい。企業は、モバイルデバイス上での展開に向けた保護によって、本明細書の原理に係るいくつかのアプリケーションを「モバイル化」する選択を行うようにしてもよいが、この構成は、特定のアプリケーションに関して選択されるようになっていてもよい。たとえば、いくつかのアプリケーションは、モバイルデバイス上での使用のために保護されている場合があるが、他のアプリケーションは、モバイルデバイス上での展開の準備がなされていないか、または適切でない場合があるため、企業は、仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択を行うようにしてもよい。
【００５３】
別の例として、企業は、大量の複雑なデータセットを含む大型の複雑なアプリケーション（たとえば、資材所要量計画アプリケーション）を有する場合があり、モバイルデバイスに対してアプリケーションをカスタマイズするのは非常に困難あるいは望ましくないため、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択を行うようにしてもよい。さらに別の例として、企業は、保護されたモバイル環境に対しても慎重に扱うべきと見なされる場合がある高セキュリティ保護されたデータ（たとえば、人事データ、顧客データ、エンジニアリングデータ）を保守するアプリケーションを有する場合があるため、仮想化技術の使用を選択することにより、当該アプリケーションおよびデータへのモバイルアクセスを許可するようにしてもよい。
【００５４】
企業は、モバイルデバイス上で完全に保護され、完全に機能するアプリケーションおよび仮想化アプリケーションの両者の提供を選択することによって、サーバ側でより適正に動作すると見なされるアプリケーションへのアクセスを許可するようにしてもよい。一実施形態において、仮想化アプリケーションは、携帯電話上のいくつかのデータ、ファイル等をセキュリティ保護された記憶場所のうちの１つに格納するようにしてもよい。たとえば、企業は、特定情報の電話への格納を可能とする一方、他の情報を許可しない選択を行うようにしてもよい。
【００５５】
本明細書に記載の通り、仮想化アプリケーションに関連して、モバイルデバイスは、ＧＵＩを提示した後にＧＵＩとのユーザ相互作用を記録するように設計された仮想化アプリケーションを有していてもよい。このアプリケーションは、アプリケーションとのユーザ相互作用としてサーバ側アプリケーションが使用するサーバ側とのユーザ相互作用を伝えるようにしてもよい。これに応答して、サーバ側のアプリケーションは、モバイルデバイスに新たなＧＵＩを送り返すようにしてもよい。たとえば、この新たなＧＵＩは、静的ページ、動的ページ、アニメーション等であってもよい。
【００５６】
管理対象パーティション上で動作するアプリケーションは、安定化アプリケーションであってもよい。安定化アプリケーションは、デバイスマネージャ３２４により管理されるようになっていてもよい。デバイスマネージャ３２４は、安定化アプリケーションを監視し、問題の検出および是正に利用しなければ不安定なアプリケーションとなってしまう問題検出・是正技術を用いるようにしてもよい。
【００５７】
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション３１０のセキュリティ保護されたデータコンテナ３２８に格納されたデータにアクセスするようにしてもよい。セキュリティ保護されたデータコンテナに保護されたデータには、セキュリティ保護されたラッピングされたアプリケーション３１４、セキュリティ保護されたアプリケーションランチャ３２２が実行するアプリケーション、セキュリティ保護されたアプリケーションランチャ３２２が実行する仮想化アプリケーション３２６等がアクセスするようになっていてもよい。セキュリティ保護されたデータコンテナ３２８に格納されたデータは、ファイル、データベース等を含んでいてもよい。また、セキュリティ保護されたデータコンテナ３２８に格納されたデータは、セキュリティ保護されたアプリケーション３３２間で共有された特定のセキュリティ保護されたアプリケーション３３０等に制限されたデータを含んでいてもよい。セキュリティ保護されたアプリケーションに制限されたデータは、セキュリティ保護された一般データ３３４および高セキュリティ保護されたデータ３３８を含んでいてもよい。セキュリティ保護された一般データは、ＡＥＳ  １２８ビット暗号化等の強力な暗号化方式を使用するようにしてもよい。一方、高セキュリティ保護されたデータ３３８は、ＡＥＳ  ２５４ビット暗号化等の非常に強力な暗号化方式を使用するようにしてもよい。セキュリティ保護されたデータコンテナ３２８に格納されたデータは、デバイスマネージャ３２４からのコマンドの受信により、デバイスから消去されるようになっていてもよい。
【００５８】
セキュリティ保護されたアプリケーションは、デュアルモードオプション３４０を有していてもよい。デュアルモードオプション３４０は、セキュリティ保護されていないモードでセキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示するようにしてもよい。セキュリティ保護されていないモードにおいて、セキュリティ保護されたアプリケーションは、モバイルデバイス３０２の非管理対象パーティション３１２のセキュリティ保護されていないデータコンテナ３４２に格納されたデータにアクセスするようにしてもよい。セキュリティ保護されていないデータコンテナに格納されたデータは、個人データ３４４であってもよい。また、セキュリティ保護されていないデータコンテナ３４２に格納されたデータには、モバイルデバイス３０２の非管理対象パーティション３１２上で動作しているセキュリティ保護されていないアプリケーション３４８がアクセスするようになっていてもよい。セキュリティ保護されていないデータコンテナ３４２に格納されたデータは、セキュリティ保護されたデータコンテナ３２８に格納されたデータがモバイルデバイス３０２から消去された場合に、モバイルデバイス３０２上に残っていてもよい。企業は、当該企業が所有、ライセンス保持、または管理する選択もしくはすべてのデータ、ファイル、ならびに／またはアプリケーション（企業データ）をモバイルデバイスから消去する一方、ユーザが所有、ライセンス保持、または管理するする個人データ、ファイル、ならびに／またはアプリケーション（個人データ）を保持あるいは維持したい場合がある。この動作は、選択的消去と称する場合がある。企業は、本明細書に記載の態様に従って構成された企業および個人データについて、選択的消去を行うようにしてもよい。
【００５９】
モバイルデバイスは、企業の企業リソース３０４および企業サービス３０８ならびに公衆インターネット３４８等に接続されていてもよい。また、モバイルデバイスは、仮想プライベートネットワーク接続を介して、企業リソース３０４および企業サービス３０８に接続されていてもよい。仮想プライベートネットワーク接続は、モバイルデバイス上の特定のアプリケーション３５０、特定のデバイス、特定のセキュリティ保護された領域等３５２に固有のものであってもよい。たとえば、電話のセキュリティ保護された領域にラッピングされたアプリケーションはそれぞれ、場合によりユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連する属性に基づいてＶＰＮへのアクセスが許可されるように、アプリケーション固有のＶＰＮ経由で企業リソースにアクセスするようにしてもよい。仮想プライベートネットワーク接続は、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅトラフィック、Ｍｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙトラフィック、ＨＴＴＰトラフィック、ＨＴＴＰＳトラフィック、アプリケーション管理トラフィック等を伝送するようにしてもよい。また、仮想プライベートネットワーク接続は、シングルサインオン認証プロセス３５４をサポートし、これを有効にするようにしてもよい。シングルサインオンプロセスは、後で認証サービス３５８により検証される単一の認証資格情報セットをユーザが提供できるようにしてもよい。そして、認証サービス３５８は、個々の企業リソース３０４に認証資格情報を提供するようユーザに求めることなく、ユーザが複数の企業リソース３０４にアクセスすることを許可するようにしてもよい。
【００６０】
仮想プライベートネットワーク接続は、アクセスゲートウェイ３６０により確立され、管理されるようになっていてもよい。アクセスゲートウェイ３６０は、企業リソース３０４のモバイルデバイス３０２への供給を管理、高速化、および改善する性能向上機能を含んでいてもよい。また、アクセスゲートウェイは、モバイルデバイス３０２から公衆インターネット３４８へのトラフィックの経路を変更することにより、公衆インターネット３４８上で動作する公開利用可能かつセキュリティ保護されていないアプリケーションにモバイルデバイス３０２がアクセスできるようにしてもよい。モバイルデバイスは、転送ネットワーク３６２を介してアクセスゲートウェイに接続されていてもよい。転送ネットワーク３６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【００６１】
企業リソース３０４は、電子メールサーバ、ファイル共有サーバ、ＳａａＳアプリケーション、ウェブアプリケーションサーバ、Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバ等を含んでいてもよい。電子メールサーバは、Ｅｘｃｈａｎｇｅサーバ、Ｌｏｔｕｓ  Ｎｏｔｅｓサーバ等を含んでいてもよい。ファイル共有サーバは、ＳｈａｒｅＦｉｌｅサーバ等を含んでいてもよい。ＳａａＳアプリケーションは、Ｓａｌｅｓｆｏｒｃｅ等を含んでいてもよい。Ｗｉｎｄｏｗｓ（登録商標）アプリケーションサーバは、ローカルなＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム上での動作が意図されたアプリケーションを提供するように構築されたあらゆるアプリケーションサーバ等を含んでいてもよい。企業リソース３０４は、根拠ベースのリソース、クラウドベースのリソース等であってもよい。また、企業リソース３０４には、モバイルデバイス３０２が直接またはアクセスゲートウェイ３６０経由でアクセスするようになっていてもよい。企業リソース３０４には、モバイルデバイス３０２が転送ネットワーク３６２を介してアクセスするようになっていてもよい。転送ネットワーク３６２は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【００６２】
企業サービス３０８は、認証サービス３５８、脅威検出サービス３６４、デバイスマネージャサービス３２４、ファイル共有サービス３６８、ポリシーマネージャサービス３７０、ソーシャル統合サービス３７２、アプリケーションコントローラサービス３７４等を含んでいてもよい。認証サービス３５８は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでいてもよい。また、認証サービス３５８では、証明書を使用するようにしてもよい。
【００６３】
証明書は、企業リソース３０４等によって、モバイルデバイス３０２に格納されるようになっていてもよい。モバイルデバイス３０２に格納される証明書は、モバイルデバイスの暗号化された場所に格納さるようになっていてもよく、証明書は、認証時点での使用等のため、モバイルデバイス３０２に一時的に格納されるようになっていてもよい。脅威検出サービス３６４は、侵入検出サービス、不正アクセス試行検出サービス等を含んでいてもよい。不正アクセス試行検出サービスは、デバイス、アプリケーション、データ等への不正アクセスの試行を含んでいてもよい。
【００６４】
デバイス管理サービス３２４は、構成サービス、設定サービス、セキュリティサービス、サポートサービス、監視サービス、レポートサービス、および廃棄サービスを含んでいてもよい。ファイル共有サービス３６８は、ファイル管理サービス、ファイル記憶サービス、ファイル協調サービス等を含んでいてもよい。ポリシーマネージャサービス３７０は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでいてもよい。ソーシャル統合サービス３７２は、連絡先統合サービス、協調サービス、Ｆａｃｅｂｏｏｋ、Ｔｗｉｔｔｅｒ、およびＬｉｎｋｅｄＩｎ等のソーシャルネットワークとの統合等を含んでいてもよい。アプリケーションコントローラサービス３７４は、管理サービス、設定サービス、展開サービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでいてもよい。
【００６５】
企業モビリティ技術アーキテクチャ３００は、アプリケーションストア３７８を含んでいてもよい。アプリケーションストア３７８は、ラッピングされていないアプリケーション３８０、予めラッピングされたアプリケーション３８２等を含んでいてもよい。アプリケーションは、アプリケーションコントローラ３７４からアプリケーションストア３７８に移植されていてもよい。アプリケーションストア３７８には、アクセスゲートウェイ３６０、公衆インターネット３４８等を介してモバイルデバイス３０２がアクセスするようになっていてもよい。アプリケーションストアには、直観的に理解でき、使いやすいユーザインターフェースが備わっていてもよい。アプリケーションストア３７８は、ソフトウェア開発キット３８４へのアクセスを提供するようにしてもよい。ソフトウェア開発キット３８４は、本明細書において上述したアプリケーションのラッピングにより、ユーザが選択したアプリケーションを保護する機能をユーザに提供するようにしてもよい。そして、ソフトウェア開発キット３８４を用いてラッピングされたアプリケーションは、アプリケーションコントローラ３７４を用いてアプリケーションストア３７８に移植することにより、モバイルデバイス３０２が利用できるようにしてもよい。
【００６６】
企業モビリティ技術アーキテクチャ３００は、管理・解析機能を含んでいてもよい。管理・解析機能は、リソースの使用方法、リソースの使用頻度等に関する情報を提供するようにしてもよい。リソースは、デバイス、アプリケーション、データ等を含んでいてもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでいてもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでいてもよい。
【００６７】
図４は、別の企業モビリティ管理システム４００である。図３を参照して上述したモビリティ管理システム３００の構成要素のうちのいくつかは、簡略化のために省略している。図４に示すシステム４００のアーキテクチャは、図３を参照して上述したシステム３００のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでいてもよい。
【００６８】
この場合、左側は受信機４０４を備えた登録済みモバイルデバイス４０２を表しており、これがクラウドゲートウェイ４０６（アクセスゲートウェイおよびアプリケーションコントローラ機能を含む）と相互作用することによって、右側に示すＥｘｃｈａｎｇｅ、Ｓｈａｒｅｐｏｉｎｔ、ＰＫＩリソース、ケルベロスリソース、証明書発行サービス等のさまざまな企業リソース４０８およびサービス４０９にアクセスする。具体的には図示していないが、モバイルデバイス４０２は、アプリケーションの選択およびダウンロードのために、企業アプリケーションストア（たとえば、ＳｔｏｒｅＦｒｏｎｔ）と相互作用するようにしてもよい。
【００６９】
受信機４０４は、ＨＤＸ／ＩＣＡ表示リモーティングプロトコルを用いてアクセスされる企業データセンターにてホストされたＷｉｎｄｏｗｓ（登録商標）アプリ／デスクトップのＵＩ（ユーザインターフェース）媒介装置として作用する。また、受信機４０４は、ネイティブｉＯＳまたはＡｎｄｒｏｉｄ（登録商標）アプリケーション等、モバイルデバイス４０２上のネイティブアプリケーションのインストールおよび管理をサポートする。たとえば、上記図４に示す管理対象アプリケーション４１０（メール、ブラウザ、ラッピングされたアプリケーション）は、デバイス上でローカルに実行されるすべてのネイティブアプリケーションである。このアーキテクチャの受信機４０４およびＭＤＸ（モバイルエクスペリエンス技術）は、企業リソース／サービス４０８との接続性およびＳＳＯ（シングルサインオン）等、ポリシーによる管理の機能および機構を提供するように作用する。受信機４０４は、企業、通常は他のゲートウェイサーバコンポーネントへのＳＳＯを伴うアクセスゲートウェイ（ＡＧ）に対する１次ユーザ認証を扱う。受信機４０４は、クラウドゲートウェイ４０６からポリシーを取得することによって、モバイルデバイス４０２上のＭＤＸ管理対象アプリケーション４１０の挙動を制御する。
【００７０】
ネイティブアプリケーション４１０と受信機４０４との間のセキュリティ保護されたＩＰＣリンク４１２は、管理チャネルを表し、これによって、受信機は、各アプリケーションを「ラッピング」するＭＤＸフレームワーク４１４により強制されるポリシーを供給することができる。また、ＩＰＣチャネル４１２によって、受信機４０４は、企業リソース４０８との接続性およびＳＳＯを有効にする資格情報および認証情報を供給することができる。最後に、ＩＰＣチャネル４１２によって、ＭＤＸフレームワーク４１４は、オンラインおよびオフライン認証等、受信機４０４が実装するユーザインターフェース機能を呼び出すことができる。
【００７１】
受信機４０４とクラウドゲートウェイ４０６との間の通信は本質的に、各ネイティブ管理対象アプリケーション４１０をラッピングするＭＤＸフレームワーク４１４からの管理チャネルの拡張である。ＭＤＸフレームワーク４１４は、受信機４０４からポリシー情報を要求し、受信機４０４は、クラウドゲートウェイ４０６からポリシー情報を要求する。ＭＤＸフレームワーク４１４は、認証を要求し、受信機４０４は、クラウドゲートウェイ４０６のゲートウェイサービス部（ＮｅｔＳｃａｌｅｒ  Ａｃｃｅｓｓ  Ｇａｔｅｗａｙとしても既知）にログインする。また、受信機４０４は、クラウドゲートウェイ４０６上のサポートサービスを呼び出すようにしてもよく、これによって、以下により詳しく説明するように、ローカルデータボルト４１６の暗号鍵を導出するための入力成分の生成または直接認証を可能にするクライアント証明書のＰＫＩ保護リソースへの提供を行うようにしてもよい。
【００７２】
より詳細に、ＭＤＸフレームワーク４１４は、各管理対象アプリケーション４１０を「ラッピング」する。これは、明確な構築ステップまたは構築後処理ステップを介して組み込まれていてもよい。ＭＤＸフレームワーク４１４は、アプリケーション４１０の最初の起動時に受信機４０４と「ペア」にすることにより、セキュアＩＰＣチャンネルを初期化して、そのアプリケーションのポリシーを取得するようにしてもよい。ＭＤＸフレームワーク４１４は、受信機のログインディペンデンシ―およびローカルＯＳサービスの使用方法またはアプリケーション４１０との相互作用方法を制限する閉じ込めポリシーのうちの一部等、ローカルに適用されるポリシーの該当部分を強制するようにしてもよい。
【００７３】
ＭＤＸフレームワーク４１４は、セキュアＩＰＣチャネル４１２上で受信機４０４が提供するサービスを使用することにより、認証および内部ネットワークアクセスを容易化するようにしてもよい。また、プライベート・共有データボルト（vaults）４１６（コンテナ）の鍵管理についても、管理対象アプリケーション４１０と受信機４０４との間の適当な相互作用により管理されるようになっていてもよい。ボルト４１６は、オンライン認証後にのみ利用可能であってもよいし、ポリシーが許可する場合には、オフライン認証後に利用可能となってもよい。ボルト４１６の初めての使用には、オンライン認証が必要であってもよく、オフラインアクセスは、最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限されていてもよい。
【００７４】
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション４１０からアクセスゲートウェイ４０６を介して直接行うようにしてもよい。ＭＤＸフレームワーク４１４は、各アプリケーション４１０の代わりとして、ネットワークアクセスのオーケストレーションを担う。受信機４０４は、オンライン認証後に取得された適当な時間制限付きの２次資格情報を提供することによって、これらのネットワーク接続を容易化するようにしてもよい。また、リバースウェブプロキシ接続およびエンドツーエンドＶＰＮ型トンネル４１８等、ネットワーク接続の複数のモードを使用するようにしてもよい。
【００７５】
メール・ブラウザ管理対象アプリケーション４１０は、特別なステータスを有しており、任意にラッピングされたアプリケーションが一般に利用できない場合があるファシリティを利用するようにしてもよい。たとえば、メールアプリケーションは、完全なＡＤログオンを求めることなく、長時間にわたってＥｘｃｈａｎｇｅへのアクセスを可能にする特別なバックグラウンドネットワークアクセスメカニズムを使用するようにしてもよい。ブラウザアプリケーションは、複数のプライベートデータボルトを用いることにより、異なる種類のデータを分けるようにしてもよい。
【００７６】
このアーキテクチャは、その他さまざまなセキュリティ特徴の組み込みをサポートする。たとえば、場合により、クラウドゲートウェイ４０６（そのゲートウェイサービスを含む）は、ＡＤパスワードの妥当性を検証する必要がない。いくつかの状況において、ＡＤパスワードを一部のユーザの認証因子として使用するか否かは、企業の裁量に任すことができる。ユーザがオンラインまたはオフラインである（つまり、ネットワークに接続されている場合または接続されていない場合）は、異なる認証方法を使用するようにしてもよい。
【００７７】
ステップアップ認証は、強力な認証が必要な極秘データへのアクセスが認められた管理対象ネイティブアプリケーション４１０をクラウドゲートウェイ４０６が識別し、先行するより弱いレベルのログイン後にユーザによる再認証が必要になるとしても、適当な認証を行った後にのみこれらのアプリケーションへのアクセスが許可されるようにする特徴である。
【００７８】
この解決手段の別のセキュリティ特徴は、モバイルデバイス４０２上でのデータボルト４１６（コンテナ）の暗号化である。ボルト４１６は、ファイル、データベース、および構成を含むすべてのオンデバイスデータが保護されるように暗号化されていてもよい。オンラインボルトの場合、鍵はサーバ（クラウドゲートウェイ４０６）に格納されていてもよく、オフラインボルトの場合、鍵のローカルコピーはユーザパスワードにより保護されていてもよい。セキュリティ保護されたコンテナ４１６においてデータがデバイス４０２にローカルに格納された場合は、最低でもＡＥＳ２５６暗号化アルゴリズムを利用するのが好ましい。
【００７９】
また、他のセキュリティ保護されたコンテナの特徴を実装するようにしてもよい。たとえば、ロギング特徴が備わっていてもよく、アプリケーション４１０内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション４１０が改ざんを検出した場合等は、データ消去がサポートされていてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連する暗号鍵をランダムなデータで上書きするようにしてもよい。スクリーンショットの保護は、別の特徴であり、アプリケーションは、データをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウィンドウの隠しプロパティをＹＥＳに設定するようにしてもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常は任意のコンテンツが常駐するスクリーンショットがブランクになる。
【００８０】
たとえば、データを外部のアプリケーションにコピーまたは送信する等により、任意のデータのアプリケーションコンテナ外へのローカルな転送の防止等によって、ローカルなデータ転送が防止されるようになっていてもよい。キーボードのキャッシュ特徴は、慎重に扱うべきテキストフィールドのオートコレクト機能を無効にするように動作してもよい。また、ＳＳＬ証明書の妥当性検証を動作させてもよいため、キーチェーンへの格納の代わりにサーバＳＳＬ証明書の詳細な妥当性検証をアプリケーションが行う。ユーザが供給するパスフレーズを用いることによって、デバイス上のデータの暗号化に用いられる鍵が生成されるように（オフラインアクセスが必要な場合）、暗号鍵生成特徴を使用するようにしてもよい。オフラインアクセスが不要な場合は、サーバ側でランダムに生成されて格納された別の鍵によるＸＯＲをとってもよい。鍵導出関数は、ユーザパスワードから生成された鍵がその暗号学的ハッシュを作成するのではなく、ＫＤＦ（鍵導出関数、特にＰＢＫＤＦ２）を使用するように動作してもよい。前者では、総当たり攻撃または辞書攻撃を鍵が受けやすくなる。
【００８１】
さらに、暗号化方法において、１つまたは複数の初期化ベクトルを使用するようにしてもよい。初期化ベクトルによれば、同じ暗号化データの複数のコピーが異なる暗号文出力を生じるため、再生および暗号解読攻撃の両者が防止されることになる。また、これにより、データの暗号化に用いられた特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、攻撃者によるあらゆるデータの解読も防止されることになる。さらに、認証とその後の解読とを行うようにしてもよく、この場合は、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。
【００８２】
別の特徴は、メモリ内で慎重に扱うべきデータに関連していてもよく、このデータは、必要な場合にのみメモリ（ディスクではない）に保持されていてもよい。たとえば、ログイン資格情報は、ログイン後にメモリから消去されるようになっていてもよく、オブジェクティブＣインスタンス変数内の暗号鍵および他のデータは、簡単に参照される可能性があるため格納されない。その代わり、これらのためにメモリが手動で割り当てられるようになっていてもよい。
【００８３】
ポリシー規定の非活動期間の経過後にユーザのセッションが終了となる非活動タイムアウトが実装されていてもよい。
【００８４】
ＭＤＸフレームワーク６１４からのデータ漏えいは、他の方法で防止するようにしてもよい。たとえば、アプリケーション６１０がバックグラウンドに移る場合は、所定の（設定可能な）期間後にメモリがクリアされるようになっていてもよい。バックグラウンドに移る際は、アプリケーションの最後に表示されたスクリーンのスナップショットを取得することによって、フォアグラウンドに移すプロセスを迅速化するようにしてもよい。スクリーンショットは、機密データを含む場合があるため、消去されるべきである。
【００８５】
別のセキュリティ特徴は、ＡＤ（アクティブディレクトリ）４２２のパスワードを使用せず、ＯＴＰ（ワンタイムパスワード）４２０を使用することによって、１つまたは複数のアプリケーションにアクセスすることに関する。場合により、一部のユーザは、自身のＡＤパスワードを把握していない（または、把握することを許可されていない）ため、ＳｅｃｕｒＩＤといったハードウェアＯＴＰシステムの使用等により、ＯＴＰ４２０を用いて認証を行うようにしてもよい（ＯＴＰは、エントラストまたはジェムアルト等の異なるベンダにより提供されたものであってもよい）。場合により、ユーザがユーザＩＤを用いて認証を行った後は、ＯＴＰ４２０によってユーザにテキストが送信される。場合により、これは、オンライン使用の場合にのみ実施するようにしてもよく、プロンプトは単一フィールドである。
【００８６】
企業ポリシーによるオフライン使用が許可されたアプリケーション４１０については、オフライン認証のためにオフラインパスワードが実装されていてもよい。たとえば、企業は、この方法で企業アプリケーションストアにアクセスしてもらいたい場合がある。この場合、受信機４０４は、カスタムオフラインパスワードの設定をユーザに要求するようにしてもよく、ＡＤパスワードは使用されない。クラウドゲートウェイ４０６は、標準的なＷｉｎｄｏｗｓ（登録商標）  Ｓｅｒｖｅｒパスワードの複雑性要件による記述等、パスワードの最小長、文字種の組合せ、および有効期限に関するパスワード標準の管理および強制を行うポリシーを提供するようにしてもよい。ただし、これらの要件は、修正されるようになっていてもよい。
【００８７】
別の特徴は、２次資格情報としての特定のアプリケーション４１０のクライアント側証明書の有効化に関する（ＭＤＸマイクロＶＰＮ特徴を介したＰＫＩ保護ウェブリソースへのアクセスを目的とする）。たとえば、＠ＷｏｒｋＭａｉｌ等のアプリケーションは、このような証明書を利用する場合がある。この場合は、ＡｃｔｉｖｅＳｙｎｃプロトコルを用いた証明書に基づく認証がサポートされていてもよく、受信機４０４からの証明書は、クラウドゲートウェイ４０６により読み出され、キーチェーンで使用されるようになっていてもよい。各管理対象アプリケーションは、クラウドゲートウェイ４０６に規定されたラベルによって識別される関連のクライアント証明書を１つ有していてもよい。
【００８８】
クラウドゲートウェイ４０６は、企業専用ウェブサービスと相互作用することにより、クライアント証明書の発行をサポートして、内部ＰＫＩ保護リソースに対する該当の管理対象アプリケーションの認証を可能にするようにしてもよい。
【００８９】
受信機４０４およびＭＤＸフレームワーク４１４は、内部ＰＫＩ保護ネットワークリソースに対する認証のためのクライアント証明書の取得および使用をサポートするように強化されていてもよい。また、さまざまなレベルのセキュリティおよび／または分離の要件への適合等のため、２つ以上の証明書がサポートされていてもよい。証明書は、メール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションにより使用されるようになっていてもよい（ただし、ＭＤＸフレームワークがＨＴＴＰＳ要求を仲介するのが合理的な場合、これらのアプリケーションは、ウェブサービス型の通信パターンを使用する）。
【００９０】
ｉＯＳに関するＭＤＸクライアント証明書のサポートは、各使用期間中、各管理対象アプリケーションのｉＯＳキーチェーンへのＰＫＣＳ  １２  ＢＬＯＢ（バイナリラージオブジェクト）のインポートに依拠していてもよい。ＭＤＸクライアント証明書のサポートでは、プライベートメモリ内キーストレージとともにＨＴＴＰＳ実装を使用するようにしてもよい。クライアント証明書は、ｉＯＳキーチェーンに絶対に存在することはなく、強力に保護された「オンライン限定の」データ値を潜在的に除き、将来的な可能性はある。
【００９１】
また、相互ＳＳＬを実装することにより、企業に対するモバイルデバイス４０２の認証およびその逆を要求することによって、追加のセキュリティを提供するようにしてもよい。また、クラウドゲートウェイ４０６に対する認証用の仮想スマートカードを実装するようにしてもよい。
【００９２】
限定的なケルベロスサポートおよび完全なケルベロスサポートの両者が付加的な特徴であってもよい。完全サポート特徴は、ＡＤパスワードまたは信頼できるクライアント証明書を用いたＡＤ４２２への完全なケルベロスログインを行い、ケルベロスサービスチケットを取得してＨＴＴＰ  Ｎｅｇｏｔｉａｔｅ認証チャレンジに応答する能力に関する。限定的サポート特徴は、ＡＦＥＥでの制約付き委任に関し、ＡＦＥＥはケルベロスプロトコル遷移の呼び出しをサポートするため、ＨＴＴＰ  Ｎｅｇｏｔｉａｔｅ認証チャレンジに応答してケルベロスサービスチケット（制約付き委任を条件とする）を取得して使用することができる。このメカニズムは、リバースウェブプロキシ（別名ＣＶＰＮ）モードにおいて、ＨＴＴＰ（ＨＴＴＰＳではない）接続がＶＰＮおよびマイクロＶＰＮモードでプロキシされる場合に機能する。
【００９３】
別の特徴は、アプリケーションコンテナのロックおよび消去に関し、これはジェイルブレイクまたはルーティング検出時に自動的に行われ、管理コンソールからのプッシュコマンドとして行われるようになっていてもよく、アプリケーション４１０が動作していない場合であっても、遠隔消去機能を含んでいてもよい。
【００９４】
障害の場合に、複数の異なる場所のうちの１つからユーザがサービスを受けられる企業アプリケーションストアおよびアプリケーションコントローラのマルチサイトアーキテクチャまたは構成がサポートされていてもよい。
【００９５】
場合により、管理対象アプリケーション４１０は、ＡＰＩ（たとえば、ＯｐｅｎＳＳＬ）を介して証明書および秘密鍵にアクセス可能であってもよい。企業の信頼できる管理対象アプリケーション４１０は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵動作を実行可能であってもよい。アプリケーションがブラウザのように挙動して証明書アクセスが不要な場合、アプリケーションが「ｗｈｏ  ａｍ  Ｉ」の証明書を読み取る場合、アプリケーションが証明書を使用してセキュリティ保護されたセッショントークンを構築する場合、およびアプリケーションが秘密鍵を使用して重要なデータ（たとえば、トランザクションログ）のデジタル署名または一時的なデータ暗号化を行う場合等、さまざまな使用のケースが識別され、それに応じた処理がなされるようになっていてもよい。
【００９６】
〈企業システムにおけるユーザおよびデバイス認証〉
図５および図６は、企業システムにおいてクライアントデバイスを認証する特徴および方法のさまざまな実施例を示したフローチャートである。図５および図６を参照して後述する特徴および方法は、図１および図２に示すさまざまなコンピューティングデバイスおよびシステム等のコンピューティングデバイスまたはデバイスの組み合わせにより実行されるようになっていてもよく、図３および図４に示すモビリティ管理システムまたはその他任意の企業システム（すなわち、リソースへのアクセス提供時に認証を要する任意のコンピューティングデバイス）等のさまざまな異なる種類の企業システムにおいて実装されていてもよい。
【００９７】
図５および図６は、リモートクライアントデバイスを介してシステムにアクセスするユーザに対する企業システムによる認証およびリソースアクセス制御に関する。たとえば、モバイルデバイス３０２または４０２のユーザは、アクセスゲートウェイ３６０または４０６経由で企業システムと通信し、認証資格情報を提供してユーザの身元の妥当性を検証した後、企業システムのさまざまなリソースおよびサービスを要求してアクセスするようにしてもよい。
【００９８】
図５および図６を参照して説明する種々の実施形態および実施例には、企業システムのユーザに対する認証およびリソースアクセス制御のための複数の特徴および潜在的利点を含む場合がある。以下により詳しく説明する通り、特定の実施形態によれば、ユーザが自身のデバイスに認証資格情報を入力する頻度を低くすることができ、場合によっては、ユーザの完全な認証資格情報（たとえば、ユーザ名／パスワード）の代わりに簡単なユーザの秘密を入力するようにしてもよく、これによりデバイスユーザ、特にモバイルデバイスユーザに利便性がもたらされ、時間の節約が可能になる場合がある。
【００９９】
また、ユーザ認証およびリソースアクセス制御機能の柔軟性が向上する可能性があるため、特定の認証資格情報および／または認証要求が特定の企業サービスおよびリソースならびに／または特定の期間と関連付けられていてもよい。また、種々の実施形態および実施例において企業システムのセキュリティが強化される場合があり、ユーザパスワード等のセキュリティ保護された資格情報をユーザが入力する頻度が低下し（または不要となり）、クライアントデバイスに格納する必要がないため、クライアントデバイスまたは通信ネットワークへの不正アクセスの場合にユーザおよびシステムが保護される。
【０１００】
ここで、図５には、クライアントデバイス（たとえば、モバイルデバイス３０２および／または４０２）と認証デバイス（たとえば、認証サービス３５８および／またはクラウドゲートウェイ４０６）とが通信することにより企業システムのユーザを認証（妥当性検証）し、妥当性検証したユーザが企業システムのリソースおよびサービスにアクセス可能となる方法の一例を示している。
【０１０１】
ステップ５０１においては、モバイルデバイス３０２または４０２等のクライアントデバイスが第１認証要求を開始する。第１認証要求は、たとえばコンソールアプリケーション、モバイルアプリケーション、またはウェブブラウザもしくは他のウェブベースのアプリケーション等、クライアントデバイス３０２上で動作するセキュアまたはセキュリティ保護されていないアプリケーションを用いたクライアントデバイス３０２による企業システムへのログイン試行であってもよい。クライアントデバイス３０２のユーザは、当該クライアントデバイス３０２の入力インターフェースおよび／または入力デバイスを用いて認証資格情報を入力するようにしてもよい。たとえば、ユーザは、キーボードまたはタッチスクリーンを用いることにより、安全な暗号化および／または企業システムのアクセスゲートウェイ３６０への送信が可能なユーザ識別子およびパスワードをクライアントデバイス３０２に入力するようにしてもよい。アクセスゲートウェイ３６０は、セキュリティ保護されたサーバであってもよく、（図３および図４に示すように）１つまたは複数の独立したコンピューティングデバイスとして実装されていてもよいし、あるいはリソースまたはサービスを提供するサーバまたは他のコンピューティングデバイス（たとえば、電子メールサーバ、ウェブアプリケーションサーバ等）内に実装されていてもよい。また、アクセスゲートウェイ３６０は、パスワードベース、トークンベース（たとえば、スマートカード、磁気ストリップカード）、バイトメトリクス（たとえば、指紋、声紋、虹彩、または網膜スキャン）等の種々の付加的な認証技術をサポートしていてもよい。ステップ５０１の認証は、単因性または多因性であってもよく、複数の認証ステップ（たとえば、チャレンジ質問）および相互認証技術を含んでいてもよい。
【０１０２】
ステップ５０２において、認証デバイス３５８は、クライアントデバイス３０２から認証要求を受信して、ユーザの認証資格情報の妥当性を検証することにより、ユーザが企業システムの１つまたは複数のリソースまたはサービスにアクセスすることを許可された正当なシステムユーザであることを確認する。この例において、認証デバイス３５８は、認証サービス３５８が実行されるコンピューティングデバイスを表していてもよい。
【０１０３】
図３に示すように、アクセスゲートウェイ３６０は、モバイルデバイス３０２からログイン要求を受信するとともに、ユーザの認証資格情報を検証してユーザが権利付与された企業リソースまたはサービスセットへのユーザのアクセスを許可する認証サービス３５８にログイン要求を転送するようにしてもよい。認証サービス３５８は、１つまたは複数の専用コンピューティングデバイス３５８、他の企業サービス３０８および／またはリソース３０４をサポートする共有コンピューティングデバイス３５８に実装されていてもよいし、アクセスゲートウェイ３６０内に実装されていてもよい。これらの例において、認証デバイス３５８は、ユーザの資格情報の正確性／有効性を判定可能なアクティブディレクトリ４２２等の認証サービスに対してユーザが入力した資格情報を提示することにより、ユーザの妥当性検証（すなわち、認証）を行うように構成されていてもよい。
【０１０４】
ステップ５０２においてユーザの資格情報の妥当性検証に成功した後、ユーザは、企業システムにログインするようにしてもよく、また、企業システム内のリソース３０４またはサービス３０８へのアクセスが許可されるようになっていてもよい。ステップ５０２におけるユーザの妥当性検証は、企業システムの設計に応じて、任意選択であってもよい。また、特定の例において、ユーザには、一部のリソース３０４およびサービス３０８へのアクセスの権利が付与されていてもよいが、企業システムのさまざまなリソース３０４およびサービス３０８に関するユーザの許可によってはそれ以外へのアクセスの権利は付与されない場合がある。
【０１０５】
この実施例において、ステップ５０２でのユーザの妥当性検証の後、ユーザは、ステップ５０３において、将来的なリソースアクセス要求に用いられる「ユーザの秘密」のクライアントデバイス３０２への入力を指示されるようになっていてもよい。他の実施例において、ユーザは、ステップ５０１の第１認証要求およびステップ５０２の妥当性検証の前、後、または最中にユーザの秘密の入力を指示されるようになっていてもよい。「ユーザの秘密」は、個人識別番号（ＰＩＮ）、タッチスクリーンジェスチャ、バイオメトリックデータ、発話フレーズもしくは視覚映像、またはユーザがクライアントデバイス３０２に入力した他のデータであってもよい。
【０１０６】
ステップ５０３において、ユーザは、入力前にユーザの秘密の種類（たとえば、テキスト、ＰＩＮ、ジェスチャ、パスワード、発話フレーズ、バイオメトリック等）を選択可能であってもよい。他の実施例において、ユーザの秘密の種類は、クライアントデバイス３０２の物理的機能に基づいて自動的に選択されるようになっていてもよく、ユーザは、選択された種類のユーザの秘密の入力を指示されるようになっていてもよい。たとえば、クライアントデバイス３０２がタッチスクリーンを備えた携帯電話、ＰＤＡ、またはタブレットコンピュータである場合、ユーザは、ユーザの秘密としてタッチスクリーンジェスチャの入力を指示されるようになっていてもよい。クライアントデバイス３０２がマイクおよび音声処理ソフトウェアを具備する場合、ユーザは、ユーザの秘密として単語またはフレーズの発話を指示されるようになっていてもよい。同様に、クライアントデバイス３０２がカメラを具備する場合、ユーザの秘密は、ユーザの顔、ユーザの住居もしくはオフィスにある物品、またはユーザが選択した別の物体の画像であってもよい。ユーザの秘密の他の例としては、キーボードに入力されたテキストパスワード、キーボードもしくは数字キーパッドに入力されたＰＩＮ、および／またはさまざまなバイオメトリックデータ（たとえば、指紋、虹彩スキャン等）もしくは視覚映像から導出されたもの等が挙げられる。
【０１０７】
いくつかの実施例において、ユーザの秘密は、企業システムへのログインにユーザが必要とする認証資格情報（たとえば、ユーザ名およびパスワード）とは異なるものおよび／または前記資格情報より簡単なものであってもよい。多くのシステムでは、最小長、複雑性、および／または予測不可能性を有するパスワード等の強力なユーザパスワードを必要とする。このようなパスワードは、特に従来のキーボードを持たない携帯電話、ＰＤＡ、およびタブレットコンピュータ等のデバイスにおいて、ユーザの入力が面倒となる可能性がある。これとは対照的に、いくつかの実施形態において、ユーザの秘密は、パスワードよりも短くて簡単であることが認められ、クライアントデバイス３０２への入力が迅速に行えるものであってもよい。また、ステップ５０１において入力したユーザのパスワードと異なるユーザの秘密をユーザが選択することが任意選択であってもよいし、必要でさえあってもよい。したがって、ユーザの秘密が（たとえば、クライアントデバイス３０２におけるマルウェアにより）不正アクセスされた場合であっても、ユーザのパスワードを保護し続けるとともに、企業システムのセキュリティ全体を強化可能である。
【０１０８】
ステップ５０３において、クライアントデバイス３０２内のソフトウェアおよび／または企業システムのソフトウェアは、クライアントデバイス３０２のユーザにユーザの秘密の入力を指示する機能を開始するようにしてもよい。たとえば、認証デバイス３５８は、ステップ５０２におけるユーザの資格情報の妥当性検証の成功に応答して、ユーザにシークレットの入力を指示する機能を開始するようにしてもよい。この実施例において、認証デバイス３５８は、以前にユーザの秘密がクライアントデバイス３０２に設定されたか否かをまず判定し、設定されていない場合は、ユーザにユーザの秘密の入力を指示するようにしてもよい。また、クライアントデバイス３０２は、ユーザにユーザの秘密の入力を指示する機能を開始するようにしてもよい。たとえば、受信機アプリケーション４０４（または、他のクライアントベースのアプリケーション４１０）は、企業システムに対する将来的なリソースアクセス要求を簡素化するためにユーザがユーザの秘密を入力することを提案するようにしてもよい。受信機４０４または他のクライアントアプリケーション４１０は、ユーザにユーザの秘密の入力を指示する前に、ユーザが以前にユーザの秘密を入力したか否かの判定および／またはクライアントデバイス３０２が共有デバイスではないことのユーザへの確認をまず行うようにしてもよい。いくつかの実施例において、ユーザの秘密は、第１認証要求と同時に受信および送信が行われるようになっていてもよい。したがって、ステップ５０１およびステップ５０３が単一のステップに組み合わされ、同様に、ステップ５０２およびステップ５０４が単一のステップに組み合わされていてもよい。また、以下により詳しく論じる通り、いくつかの実施形態において、ユーザの秘密は任意選択としてサポートの必要がなくてもよく、このため、いくつかの実施例においては、ステップ５０３およびステップ５０４を実行する必要がない。
【０１０９】
ステップ５０４において、企業システムの認証デバイス３５８は、クライアントデバイス３０２からユーザの秘密を受信するようにしてもよく、また、クライアントデバイス３０２からの将来的なリソースアクセス要求に用いられる妥当性検証データおよびアクセストークンを作成するようにしてもよい。いくつかの例において、クライアントデバイス３０２は、認証サービス３５８の呼び出しを開始し、ステップ５０３において入力されたユーザの秘密を認証サービスに挿入するようにしてもよい。また、クライアントデバイス３０２は、セッションクッキーまたはトークン等、クライアントデバイス３０２が現時点で企業システムにログインしていることを確認できる付加的なデータを認証サービス３５８に挿入するようにしてもよい。
【０１１０】
そして、認証デバイス３５８は、企業システムが（たとえば、認証デバイス３５８、アクセスゲートウェイ３６０、または企業システムのどこかに）格納する妥当性検証データを作成するようにしてもよく、また、ステップ５０５においてクライアントデバイス３０２に送信するアクセストークンを作成するようにしてもよい。後述の通り、アクセストークンおよび妥当性検証データは、クライアントデバイス３０２から企業システムへの将来的な要求に用いるようにしてもよい。いくつかの実施形態において、アクセストークンは、認証デバイス３５８による生成または鍵生成器からの受信に基づく暗号化鍵（たとえば、暗号または解読鍵）を含んでいてもよく、妥当性検証データは、暗号化鍵を用いてユーザおよび／もしくはクライアントデバイスに対応する鍵識別子、ユーザの現在のパスワードもしくは他の認証資格情報、ならびにステップ５０３において入力されたユーザの秘密のうちの１つまたは複数を暗号化する認証デバイス３５８により作成されるようになっていてもよい。鍵識別子は、ユーザ識別子（たとえば、ユーザ名またはログイン）であってもよいし、正しい妥当性検証データの検索に用いられるテーブルインデックス等の独立した識別子であってもよい。
【０１１１】
図７Ａには、ステップ５０４の認証デバイス３５８による妥当性検証データ７１０およびアクセストークン７０５の作成の一実施例を示している。この実施例において、認証デバイスは、鍵識別子７０１（たとえば、ユーザの妥当性検証データに対応するユーザ名またはテーブルインデックス）、ユーザのパスワード７０２、およびステップ５０３においてユーザが入力したユーザの秘密７０３を収集する。ユーザのパスワード７０２は、パスワード、トークン（たとえば、セキュリティアサーションマークアップ言語（ＳＡＭＬ）トークン）、またはユーザ資格情報データを含んでいてもよい。認証デバイス３５８は、当該認証デバイス３５８による生成または企業システム内の暗号鍵生成器からの受信が可能な暗号化鍵７０５を用いてこのデータを暗号化する。
【０１１２】
得られる暗号化データが妥当性検証データ７１０であり、ステップ５０５において企業システム内に格納されていてもよく、また、ユーザからの将来的な要求の認証に用いられるようになっていてもよい。また、この実施例における認証デバイス３５８は、妥当性検証データ７１０の暗号化に用いられる鍵識別子７０１および暗号化鍵７０５を含むアクセストークン７１５を作成する。ステップ５０５において、アクセストークン７１５は、認証デバイス３５８によってクライアントデバイス３０２に送信されるようになっていてもよい。
【０１１３】
図７Ａに示すように、妥当性検証データ７１０は、鍵識別子７０１、パスワード７０２、およびユーザの秘密７０３の暗号化によって生成されるようになっていてもよい。ただし、他の実施例においては、３つのデータすべてを使用する必要はなく、妥当性検証データ７１０は、これらデータのうちの１つまたは２つのみを暗号化することにより生成されるようになっていてもよい。また、妥当性検証データ７１０は、暗号化データおよび非暗号化データの組み合わせを含んでいてもよいし、いくつかの実施例においては、全体が非暗号化データとして格納されていてもよい。たとえば、いくつかの実施形態において、妥当性検証データ７１０は、暗号化パスワード７０２を非暗号化鍵識別子７０１に付加することにより生成されるようになっていてもよい。
【０１１４】
同様に、アクセストークン７１５は、図７Ａに示すように、暗号化鍵７０５およびユーザ鍵７０１を含んでいてもよいし、あるいは暗号化鍵７０５のみを含んでいてもよい。また、アクセストークン７１５は、当該アクセストークン７１５に関連する複数のユーザを識別するデータ、当該アクセストークン７１５に関連する１つまたは複数のクライアントアプリケーション、当該アクセストークン７１５に関連する企業リソースおよび／もしくはサービスセット、ならびに当該アクセストークン７１５に関連するアクセス期間または有効期限等の付加的な情報を含んでいてもよい。
【０１１５】
ステップ５０６において、クライアントデバイス３０２は、ステップ５０５において認証デバイス３５８が送信したアクセストークン７１５を受信して格納する。上述の通り、アクセストークン７１５は、ユーザのパスワード７０２またはシークレット７０３の暗号化または非暗号化コピーを含むことなく、暗号／解読鍵７０５を含んでいてもよい。このため、アクセストークン７１５は、クライアントデバイス３０２内のセキュアまたはセキュリティ保護されていないメモリに格納されていてもよい。
【０１１６】
ステップ５０７において、ユーザは、企業システムに対する第２認証要求を開始する。第１認証要求と同様に、第２認証要求は、企業システムに対するログイン試行ならびに／または企業システムのリソース３０４もしくはサービス３０８へのアクセス要求であってもよい。第２認証要求は、第１認証要求の実行と同じクライアントアプリケーションにより行われるようになっていてもよいし、異なるクライアントアプリケーションにより行われるようになっていてもよい。たとえば、第１認証要求は、受信機アプリケーション４０４を用いて行われるログイン試行であってもよく、第２認証要求は、別個のクライアントアプリケーション４０１（たとえば、電子メールクライアント４１０、ウェブブラウザ４１０等）により行われて、特定の企業リソースまたはサービスにアクセスするようになっていてもよい。また、第２認証要求は、第１認証要求の直後に（たとえば、同じネットワーク通信セッション内で）行われるようになっていてもよいし、第１認証要求のしばらく後に（たとえば、任意の過去セッションのクッキーまたはトークンの期限切れ後に）行われるようになっていてもよい。
【０１１７】
第２認証要求の場合、クライアントデバイス３０２は、ユーザのパスワード（または、他の認証資格情報）ではなくユーザの秘密の入力をユーザに指示するようにしてもよい。上述の通り、ユーザの秘密は、ユーザのパスワードより短くて簡単であってもよいため、ユーザが容易に思い出してクライアントデバイス３０２に迅速に入力可能である。また、ユーザの秘密は、従来のキーボードを介して入力されるテキスト文字列である必要はなく、クライアントデバイス３０２の機能およびユーザの好み（たとえば、タッチスクリーンジェスチャ、ＰＩＮ、発話フレーズ、またはバイオメトリックデータ等）に応じて、別の入力インターフェースにより入力されるようになっていてもよい。
【０１１８】
ステップ５０８において、クライアントデバイス３０２は、デバイスメモリに以前格納されたアクセストークンを読み出し、当該アクセストークンおよびステップ５０７においてユーザが入力したユーザの秘密と併せて、第２認証要求を認証デバイス３５８に送信する。ユーザの秘密を使用しない実施形態の場合、第２認証要求は、デバイスメモリから読み出されたアクセストークンを含むものの、ユーザの秘密は含んでいなくてもよい。したがって、ステップ５０７は、たとえばクライアントアプリケーション４０４または４１０の起動等、何らかのユーザ操作を伴う可能性があるものの、特定の実施形態においては、ユーザに対するユーザの秘密の入力の指示を伴う必要がない。このような例において、アクセストークンは、ユーザによる明確な操作なく、ユーザが把握していなくても、読み出されて認証デバイス３５８に提出されるようになっていてもよい。
【０１１９】
ステップ５０９において、認証デバイス３５８は、クライアントデバイス３０２から第２認証要求を受信する。認証デバイス３５８は、第２認証要求の受信後、ステップ５０４において格納済みのクライアントデバイス３０２の対応する妥当性検証データを読み出すようにしてもよい。たとえば、第２認証要求が鍵識別子７０１を含む場合、認証デバイス３５８は、鍵識別子７０１を用いることにより、ユーザおよび／またはクライアントデバイス３０２に対応する妥当性検証データ７１０を探索して読み出すようにしてもよい。鍵識別子７０１は、特定の企業ユーザ／ログイン、特定のクライアントデバイス３０２、またはユーザおよびデバイスの組み合わせと関連付けられていてもよい。たとえば、企業システムの単一のユーザが複数のクライアントデバイス（たとえば、デスクトップコンピュータ、ラップトップコンピュータ、および１つまたは複数のモバイルデバイス）を有する場合、各クライアントデバイスは、独立した鍵識別子７０１および／または独立したアクセストークン７１５を有していてもよい。
【０１２０】
また、ユーザの秘密の入力型がクライアントデバイスの機能（たとえば、タッチスクリーンジェスチャ、音声認識、バイオメトリック入力）に基づく場合があるため、一部のユーザは、異なるデバイスに対して異なるユーザの秘密を確立するのが好ましい場合がある。これらの実施例において、認証デバイス３５８は、鍵識別子７０１および／またはユーザの秘密７０３を用いることにより、第２認証要求を受信したユーザおよび／またはクライアントデバイス３０２に対応する適当な妥当性検証データ７１０を探索して読み出すようにしてもよい。
【０１２１】
ステップ５１０において、認証デバイスは、第２認証要求で受信したアクセストークン７１５を用いて妥当性検証データ７１０の解読を試みる。上述の通り、妥当性検証データ７１０の解読に利用可能な暗号化鍵７０５は、ステップ５０４において、アクセストークン７１５内でクライアントデバイス３０２に送信済みである。このため、ステップ５０８において同じアクセストークン７１５がクライアントデバイスから返された場合、認証デバイス３５８は、鍵７０５を抽出して、妥当性検証データの解読を成功させるようにしてもよい。
【０１２２】
図７Ｂには、クライアントデバイス３０２から受信したユーザの秘密７０３およびアクセストークン７１５を用いた認証デバイス３５８による認証要求の妥当性検証の一実施例を示している。この実施例において、認証デバイス３５８は、クライアントデバイス３０２から第２認証要求を受信した後、鍵識別子７０１を用いてユーザを識別するとともに、企業システムのメモリから対応する適当な妥当性検証データ７１０を読み出すようにしてもよい。そして、認証デバイス３５８は、認証要求から鍵７０５を抽出し、この鍵７０５を用いて妥当性検証データ７１０を解読するようにしてもよい。
【０１２３】
解読に成功した場合、認証デバイス３５８は、解読した妥当性検証データからのユーザの秘密７０３と、要求とともにクライアントデバイス３０２から受信したユーザの秘密７０３とを比較するようにしてもよい。ユーザの秘密が一致する場合、認証デバイス３５８は、ユーザの秘密７０３およびアクセストークン７１５が有効であり、第２認証要求について、ステップ５０２において妥当性検証に成功した同じユーザからの有効な要求であると結論付けるようにしてもよい。ユーザの秘密７０３を使用しない実施形態において、認証デバイス３５８は、ユーザの秘密７０３の妥当性検証を行うことなく、アクセストークン７１５を用いた解読の妥当性検証に基づいて、第２認証要求が有効であると結論付けるようにしてもよい。
【０１２４】
図７Ａおよび図７Ｂに示す例において、ユーザの秘密７０３は、妥当性検証データ７１０に格納されている。ただし、他の実施例において、ユーザの秘密は、妥当性検証データ７１０に格納されている必要はない。たとえば、妥当性検証データ７１０を用いてアクセストークン７１５（または、アクセストークン７１５の一部）を構成するようにしてもよい。
【０１２５】
特定の実施形態においては、鍵識別子７０１、ユーザ識別子、ならびに／またはユーザパスワードもしくはトークン７０２を暗号化鍵７０５で暗号化することにより、妥当性検証データ７１０を作成するようにしてもよい。そして、アクセストークン７１５は、鍵識別子７０１と、鍵７０５およびユーザの秘密７０３で行われる混合関数（たとえば、排他的ＯＲ機能）の出力とを用いて作成するようにしてもよい。このような例において、認証要求の妥当性検証を行う場合（ステップ５１０および図７Ｂに対応）、認証デバイス３５８は、企業システム内のストレージからユーザの秘密を読み出すようにしてもよく、また、このユーザの秘密を用いて、暗号化鍵７０５を返すことができる逆混合関数をアクセストークン７１５に行うようにしてもよい。そして、認証デバイス３５８は、鍵識別子７０１を用いることにより、ストレージから対応する妥当性検証データ７１０を読み出すようにしてもよく、また、鍵７０５を用いて妥当性検証データ７１０を解読することにより、ユーザ識別子ならびに／またはユーザパスワードもしくはトークン７０２を提供するようにしてもよい。
【０１２６】
クライアントデバイス３０２から受信したユーザの秘密７０３およびアクセストークン７１５が有効であっても、認証デバイス３５８は、ユーザのパスワード７０２が変更または期限切れとなっている場合、要求されたリソースへのユーザのアクセスを許可しない場合がある。たとえば、クライアントデバイス３０２から受信したユーザの秘密７０３およびアクセストークン７１５の有効性を確認した後、認証デバイス３５８は、ドメインコントローラ、アクティブディレクトリ、または他のサービスと通信して、妥当性検証データ７１０におけるユーザのパスワード７０２が依然として最新かつ有効であることを確認するように構成されていてもよい。
【０１２７】
ユーザのパスワード７０２が期限切れとなっている場合、認証デバイス３５８は、企業システムに対する新たなパスワードの入力をユーザに指示する機能を開始した後、システム内のユーザのパスワードを更新するとともに、新たなパスワード７０２で新たな妥当性検証データ７１０を作成するようにしてもよい。また、認証デバイス３５８は、ユーザのシステムパスワード７０２を変更した後、ユーザに新たなユーザの秘密７０３の作成を求めるようにしてもよいし、あるいはユーザが同じユーザの秘密７０３を保持できるようにしてもよい。
【０１２８】
また、認証デバイス３５８は、たとえばユーザが最近、異なるクライアントデバイスを用いて企業システムにログインし、自身のパスワード７０２を変更したため、ユーザのパスワード７０２がもはや有効ではないと判定するようにしてもよい。この場合、パスワード７０２が有効でないことではなく、ユーザの秘密７０３およびアクセストークン７１５が有効であることを確認した後、認証デバイス３５８は、ユーザの現在のパスワードによるクライアントデバイス３０２上での再認証をユーザに求めるようにしてもよい。認証デバイス３５８は、ユーザの再認証後、新たなパスワード７０２で新たな妥当性検証データ７１０を作成するようにしてもよい。任意選択として、認証デバイス３５８は、ユーザに新たなシークレット７０３の入力を求めるようにしてもよく、また、新たなアクセストークン７１５を作成してクライアントデバイス３０２に送信するようにしてもよい。
【０１２９】
上述の通り、ユーザの秘密は、いくつかの実施形態において任意選択であってもよい。このような場合、認証デバイス３５８が暗号化した妥当性検証データは、ステップ５０２において認証したユーザの鍵識別子および／またはパスワードのみを含んでいてもよい。このように、ユーザは、第２認証要求の送信前に、ステップ５０３またはステップ５０７においてユーザの秘密を入力する必要がない。ユーザの秘密を使用しない場合、アクセストークンは、認証デバイス３５８により自動的に作成された後、第１認証要求の成功後、クライアントデバイス３０２に送信されるようになっていてもよい。そして、アクセストークンは、クライアントデバイス３０２に格納され、ユーザによる明確な操作なく（場合により、アクセストークンが使用されていることをユーザが把握することもなく）、後続の認証要求において読み出され、企業システムに送り返されるようになっていてもよい。
【０１３０】
また、特定の実施形態において、ユーザの秘密は、（たとえば、ステップ５０３および／またはステップ５０７において）ユーザが入力するようになっていてもよいが、要求されたリソースおよびサービスに応じて、認証デバイス３５８が使用してもよいし、使用しなくてもよい。ステップ５０３においては、ユーザがユーザの秘密を確立するようにしてもよいが、認証デバイス３５８は、ステップ５０７においてユーザの秘密の再入力をユーザに求めることにより、特定のリソースへのアクセスおよび／または特定の操作の実行のみを行い、それ以外には行わないようにする場合がある。たとえば、ユーザが電子メールを読んだり特定のセキュリティ保護された文書にアクセスしたりするのにユーザの秘密を必要としない場合があるものの、電子メールの送信またはセキュリティ保護された文書の修正には必要となる場合がある。
【０１３１】
場合によって、アクセストークンおよび／またはユーザの秘密は、企業システム内に格納可能な関連する期間または期限を有していてもよい。このような場合、認証デバイス３５８は、アクセストークンを含む認証要求を受信した後に、当該関連する期間または期限を読み出すようにしてもよい。アクセストークンが有効で期限切れとなっていない場合、ユーザは、企業システムの要求したリソースまたはサービスへのアクセスを許可されていてもよい。ただし、クライアントデバイス３０２から受信したアクセストークンが期限切れまたは無効となっている場合、認証デバイス３５８は、ユーザの完全な認証資格情報（たとえば、ユーザ名およびパスワード）の再入力をユーザに求めるようにしてもよく、その際、アクセストークンが追加期間にわたってリセットされるようになっていてもよい。
【０１３２】
いくつかの実施形態において、ユーザは、以前のアクセストークンの期限切れ後、新たな異なるユーザの秘密をクライアントデバイス３０２に入力する必要があってもよい。また、アクセストークンは、認証デバイス３５８および／またはクライアントデバイス３０２によって明確に無効化されるようになっていてもよい。たとえば、アクセストークンは、関連する妥当性検証データのエントリの削除（または無効化マーキング）によって、認証デバイス３５８により無効化されるようになっていてもよい。また、企業システムには、このアクセス方法を許可しないユーザまたはデバイスの一覧が格納されていてもよい。
【０１３３】
また、特定のアクセストークンおよび／またはユーザの秘密は、企業システム内の特定のリソースまたはサービスと関連付けられていてもよい。たとえば、クライアントデバイス３０２に格納されたアクセストークンは、第１企業リソース３０４へのアクセスをユーザが要求した場合に妥当性検証が成功するようになっていてもよいが、異なる企業リソース３０４へのアクセスをユーザが要求した場合には、同じアクセストークンが拒絶されるようになっていてもよい。この実施例において、認証デバイス３５８は、各アクセストークン／妥当性検証データ対に対応する企業リソースまたはサービスの一覧を格納するようにしてもよい。認証デバイス３５８は、アクセストークンによる企業リソースまたはサービスの要求を受信した場合、当該アクセストークンに関連する企業リソースの一覧を読み出すようにしてもよく、また、これに応じて要求を許可または拒否するようにしてもよい。
【０１３４】
このため、いくつかの実施例においては、単一のクライアントデバイス３０２に対して複数の異なるアクセストークンが作成され、格納されるようになっていてもよい。たとえば、特定の企業リソース３０４またはサービス３０８の要求に対して第１アクセストークンが有効であり、他の企業リソース３０４またはサービス３０８の要求に対して第２アクセストークンが有効であってもよく、以下同様である。
【０１３５】
この実施例において、クライアントアプリケーション（たとえば、受信機４０４またはアプリケーション４１０）は、要求リソースに応じて、クライアントデバイス３０２のメモリから正しいアクセストークンを読み出して送信するようにしてもよい。ウェブブラウザ４１０または電子メールクライアント４１０等の一部のクライアントアプリケーションが特定の企業リソースと関連付けられている場合があることから、これらのクライアントアプリケーション４１０は、すべての要求に対して特定のアクセストークンを読み出し、送信するように構成されていてもよい。その他の場合、クライアントアプリケーションは、ユーザが要求している特定のリソース３０４またはサービス３０８を識別するようにしてもよく、その後、デバイスメモリから正しいアクセストークンが読み出されるようになっていてもよい。さらに、単一のクライアントデバイス（たとえば、デスクトップコンピュータまたはモバイルデバイス）を複数のユーザで共有している場合は、クライアントデバイス３０２のメモリに複数のアクセストークン（または、複数のアクセストークンセット）が格納されていてもよい。これらの例において、クライアントアプリケーション（たとえば、受信機４０４またはアプリケーション４１０）は、デバイスの現在のユーザに関連するアクセストークンを読み出して送信するように構成されていてもよい。
【０１３６】
ここで、図６には、クライアントデバイス（たとえば、モバイルデバイス３０２および／または４０２）、アクセスゲートウェイ（たとえば、アクセスゲートウェイ３６０および／またはクラウドゲートウェイ４０６）、認証サービス３５８、および企業リソースまたはサービス（たとえば、リソース３０４および／またはサービス３０８もしくは４０８）が相互作用することにより、第２認証資格情報セットを受け入れる企業リソース３０４またはサービス３０８に対して、第１認証資格情報セットを有するユーザの妥当性を検証可能な方法の一例を示している。
【０１３７】
ステップ６０１において、クライアントデバイス３０２のユーザは、第１認証資格情報セットを含む企業システムに対するログイン要求を開始する。ステップ６０１のログイン要求は、図５において上述した第１認証要求（ステップ５０１）と類似であってもよい。上述の通り、ログイン要求は、クライアントデバイス３０２から、受信機４０４または他のアプリケーション４１０等のクライアントアプリケーション（たとえば、電子メールクライアント、ウェブブラウザ等）を介して送信されるようになっていてもよい。ステップ６０１のログイン要求は、たとえばユーザ名およびパスワード、スマートカードからのデータ、バイオメトリックデータ、または他の種類ユーザ認証データ等の第１認証資格情報セットを含んでいてもよい。また、第１認証資格情報セットは、たとえばユーザの秘密７０３および／またはアクセストークン７１５を含む、図５のステップ５０８において送信された認証資格情報と類似であってもよい。
【０１３８】
ステップ６０２においては、アクセスゲートウェイ３６０によりログイン要求が受信されるようになっていてもよい。アクセスゲートウェイ３６０は、この要求がクライアントデバイス３０２からの新たな要求であると判定するようにしてもよく、たとえば、この要求が企業リソース３０４またはサービス３０８との既存の通信セッションの一部ではないと判定するようにしてもよい。アクセスゲートウェイ３６０は、この要求がログイン要求であると判定した後、ログイン要求および認証資格情報を認証サービス３５８に対してルーティングすることにより、資格情報の妥当性を検証するとともに、企業システムにログインする権利がユーザに付与されているか否かを判定するようにしてもよい。この実施例の認証は、アクセスゲートウェイ３６０を介して行われるようになっていてもよいが、他の実施例においては、認証がゲートウェイ３６０を介して行われる必要はない。
【０１３９】
ステップ６０３において、認証サービス３５８は、第１認証資格情報セットを受信して妥当性の検証を行うことにより、ユーザが正当なユーザであって企業システムにログインする権利を付与されていることを確認する。ステップ６０３の妥当性検証は、図５において上述した第１認証要求（ステップ５０２）の妥当性検証と類似であってもよい。ステップ６０３においてユーザの妥当性を検証するため、認証サービス３５８は、アクティブディレクトリまたはドメインコントローラ等、企業システム内のセキュリティ保護されたデータストレージまたはサービスにアクセスすることにより、第１ユーザ認証資格情報セットを検証するように構成されていてもよい。ステップ６０３において第１資格情報セットによるユーザの妥当性検証に成功した後、ユーザは、企業システムにログインするようにしてもよく、また、企業システムのさまざまなリソース３０４またはサービス３０８へのアクセスが許可されるようになっていてもよい。
【０１４０】
また、ステップ６０３において第１資格情報セットによるユーザの妥当性検証を行った後、認証サービス３５８は、ステップ６０４において、同じユーザの１つまたは複数の付加的な資格情報セットを読み出すように構成されていてもよい。企業システムにおいては、異なる企業リソース３０４およびサービス３０８に対応する複数の異なる認証資格情報を単一のユーザが有していてもよい。たとえば、ユーザは、企業システムにログインするための第１資格情報セット（たとえば、ユーザ名およびパスワード）、ユーザの電子メールサーバ３０４にログインするための第２資格情報セット、ウェブアプリケーションサーバ３０４上のウェブベースのアプリケーションにアクセスするための第３資格情報セット、ファイル共有サービス３６８を呼び出すための第４資格情報セットを有していてもよく、以下同様である。
【０１４１】
このように、ステップ６０４において、認証サービス３５８は、アクティブディレクトリ、ドメインコントローラサービス、および／またはユーザ資格情報データベース等のさまざまな企業サービスおよびリソースにアクセスするようにしてもよい。また、認証サービス３５８は、個々の企業サービス３０８およびリソース３０４（たとえば、Ｅｘｃｈａｎｇｅ、Ｓｈａｒｅｐｏｉｎｔ、ＰＫＩリソース、ケルベロスリソース、証明書発行等）との通信を開始することにより、これら個々のサービスおよびリソースに対する同じユーザの認証資格情報を読み出すようにしてもよい。
【０１４２】
ステップ６０４においてユーザの付加的な資格情報セットを読み出した後、認証サービス３５８は、当該付加的な資格情報セットをアクセスゲートウェイ３６０に送信するようにしてもよい。ステップ６０５において、アクセスゲートウェイ３６０は、ユーザの付加的な資格情報セットを受信し、ゲートウェイ３６０内のメモリまたはゲートウェイ３６０がアクセス可能な他のストレージに格納するようにしてもよい。いくつかの実施形態において、ユーザの付加的な資格情報セットは、ゲートウェイ３６０内での安全な格納および／またはゲートウェイ３６０外部での格納によって、ゲートウェイ３６０への不正アクセスの場合に企業システムのセキュリティが別途提供されるようになっていてもよい。
【０１４３】
図６に示す例において、ステップ６０４およびステップ６０５は、ステップ６０３におけるユーザの妥当性検証の成功に応答して実行されるようになっていてもよい。他の例において、ステップ６０４およびステップ６０５における付加的な資格情報の読み出しおよび格納は、しばらく経ってから実行されるようになっていてもよい。たとえば、ステップ４０４およびステップ４０５は、アクセスゲートウェイ３６０による認証サーバ３５８への２次資格情報の要求に応答して、ステップ６０６の後に実行されるようになっていてもよい。
【０１４４】
また、６０５において格納された付加的なユーザ資格情報セットは、たとえば図５を参照して上述した妥当性検証データ７１０の形態に暗号化されていてもよい。このような例においては、異なるユーザの認証資格情報セットが異なる暗号化鍵７０５を用いて暗号化されるようになっていてもよい。上述の通り、これらの異なる鍵７０５は、アクセストークン７１５において、異なるユーザのクライアントデバイス３０２に送信されるようになっていてもよい。したがって、ゲートウェイ３６０に格納された認証資格情報へのアクセスによりユーザの鍵７０５が悪意ある者の不正アクセスを受けている場合であって、この悪意ある者は、当該ユーザのパスワード／資格情報のみを解読でき、異なる鍵７０５で暗号化された他のユーザのパスワード／資格情報の解読はできない。
【０１４５】
ステップ６０６において、クライアントデバイス３０２のユーザは、ステップ６０１におけるログイン要求に用いたのと同じ第１資格情報セットを用いて、企業システム内の企業リソース３０４またはサービス３０８に対する要求を開始する。ステップ６０６の要求は、別のログイン要求ならびに／またはたとえば電子メールサーバ３０４、ファイル共有サーバ３０４、ウェブアプリケーションサーバサーバ３０４、デバイスマネージャサービス３２４、ファイル供給サービス３６８、ソーシャル統合サービス３７２、または企業システムが提供するその他任意のリソースもしくはサービス等、企業システムのリソース３０４またはサービス３０８からのデータまたはサービスに対する要求であってもよい。
【０１４６】
ステップ６０７において、アクセスゲートウェイ３６０は、ユーザの第１資格情報セットを受信して妥当性の検証を行った後、適当なリソース３０４またはサービス３０８への要求のルーティングの前に、異なる第２資格情報セットを要求に差し込むようにしてもよい。アクセスゲートウェイ３６０は、クライアントデバイス３０２から要求を受信した後、ユーザの第１資格情報セットの妥当性を検証することによって、ユーザが要求したリソース３０４またはサービス３０８にアクセスすることを許可された正当なシステムユーザであることを確認するようにしてもよい。
【０１４７】
ステップ６０７におけるユーザの妥当性検証は、ステップ６０３、ステップ５０２、および／またはステップ５１０のいずれかにおいて上述した認証サービス３５８による妥当性検証と類似であってもよい。たとえば、アクセスゲートウェイ３６０は、ステップ６０５において当該ゲートウェイ３６０に格納したユーザ資格情報またはアクティブディレクトリもしくはドメインコントローラ等の企業システム内のセキュリティ保護されたデータストレージもしくはサービス内のユーザ資格情報との比較によって、ユーザの認証資格情報を検証するようにしてもよい。
【０１４８】
その他の場合、ステップ６０７におけるユーザの妥当性検証は、第１資格情報の妥当性検証によってではなく、トークン／クッキーを用いて行われるようになっていてもよい。たとえば、ステップ６０１〜ステップ６０３におけるユーザ資格情報の最初の妥当性検証の後、アクセスゲートウェイ３６０は、セッショントークンまたはクッキーをクライアントデバイス３０２に返すようにしてもよい。
【０１４９】
ステップ６０６において、クライアントデバイス３０２は、第１資格情報の代わりにセッショントークンまたはクッキーを使用するようにしてもよく、ステップ６０７において、アクセスゲートウェイは、受信したトークンまたはクッキーが当該ゲートウェイ３６０の発行したものであり、依然として最新であることを確認するようにしてもよい。
【０１５０】
要求されたリソース３０４またはサービス３０８にアクセスする権利がユーザに付与されていることを検証した後、アクセスゲートウェイ３６０は、ステップ６０６においてユーザが入力した第１認証資格情報セットを要求されたリソース３０４またはサービス３０８が受け入れるか否かを判定する。上述の通り、企業システムの異なるリソース３０４およびサービス３０８に対する複数の異なる認証資格情報を単一のユーザが有していてもよい。ユーザの第１認証資格情報セットを要求されたリソース３０４またはサービス３０８が受け入れない場合、アクセスゲートウェイ３６０は、適当な認証資格情報セットを読み出して、要求に差し込むようにしてもよい。
【０１５１】
たとえば、ユーザの第１認証資格情報セットがユーザの企業システムユーザ名およびパスワードまたはアクセストークン７１５および過去入力のユーザの秘密７０３である場合、要求されたリソース３０４またはサービス３０８（たとえば、電子メールサーバ、ウェブアプリケーションサーバ等）は、これらのユーザ認証資格情報を受け入れない場合がある。このため、ステップ６０７において、アクセスゲートウェイ３６０は、ステップ６０５において格納した認証資格情報から第２有効ユーザ資格情報セットを読み出すようにしてもよく、また、リソース３０４またはサービス３０８への要求の転送の前に、第２資格情報セットを要求に差し込むようにしてもよい。
【０１５２】
ステップ６０８において、要求された企業リソース３０４またはサービス３０８は、アクセスゲートウェイ３６０から要求を受信して妥当性を検証する。アクセスゲートウェイ３６０が第２有効ユーザ資格情報セットを要求に差し込んだことにより、リソース３０４またはサービス３０８は、クライアントデバイス３０２のユーザが資格情報を直接入力したかのように、第２資格情報セットを用いたユーザの検証に成功することができる。ステップ６０８の妥当性検証には、複数の認証ステップおよび／または１つもしくは複数のチャレンジ応答検証を伴っていてもよい。ただし、クライアントデバイス３０２からの要求およびユーザがリソース３０４またはサービス３０８にアクセスするための適正な認証資格情報をアクセスゲートウェイ３６０が有していることから、ゲートウェイ３６０は、ユーザまたはクライアントデバイス３０２の関与なく、すべての認証チャレンジを扱うようにしてもよい。
【０１５３】
リソース３０４またはサービス３０８は、ステップ６０８において第２資格情報セットによりユーザの妥当性を検証した後、ステップ６０９において、要求されたデータおよび／またはサービスを妥当性検証したユーザに提供するようにしてもよい。ステップ６１０において、アクセスゲートウェイ３６０は、要求されたデータおよび／またはサービスを企業リソースまたはサービスから受信し、データをクライアントデバイス３０２に転送する。ステップ６１１において、クライアントデバイス３０２は、要求したデータおよび／またはサービスを受信してユーザに提供する。
【０１５４】
したがって、この実施例においては、クライアントデバイス３０２と要求されたリソース３０４またはサービス３０８との間のプロキシサーバとしてアクセスゲートウェイ３６０が作用するようになっていてもよい。すなわち、アクセスゲートウェイ３６０が第１ユーザ資格情報セットの妥当性を検証した後、第２ユーザ資格情報セットを読み出して要求に差し込むことから、クライアントデバイス３０２には、第１資格情報セットがリソース３０４またはサービス３０８に提出されていることが明らかであり、リソース３０４またはサービス３０８には、クライアントデバイス３０２のユーザにより正しい第２資格情報セットが提供されたことが明らかである。
【０１５５】
このように、クライアントデバイス３０２のユーザは、単一の認証資格情報セットを用いることによって、異なる資格情報セットを必要とする複数の異なるリソース３０４およびサービス３０８へのログインに成功するようにしてもよい。この機能は、ユーザに対して透過的であってもよいため、ユーザは、多くの異なるリソース３０４およびサービス３０８の正しい認証資格情報を把握する必要はないが、それでもなお、単一の認証資格情報セットを用いたシングルサインオンによって、これらの異なるリソース３０４およびサービス３０８にアクセスするようにしてもよい。さらに、ユーザが単一の認証資格情報セットのみを把握しており、クライアントデバイス３０２が格納および送信を行っている場合、この単一の資格情報セットは、セキュリティ保護されたパスワードまたはその他任意の企業システム認証データを含んでいない場合がある。たとえば、上述の通り、第１認証資格情報セットは、ユーザの１つまたは複数の暗号化パスワードの解読に利用可能な鍵７０５を含むユーザの秘密７０３および／またはアクセストークン７１５であってもよい。
【０１５６】
以上、構造的な特徴および／または方法論的な作用に特有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の具体的な特徴または作用に限定されないことが了解されるものとする。むしろ、上述の具体的な特徴および作用は、以下の特許請求の範囲の例示的な実施態様として説明している。
【０１５７】
本願は、２０１３年５月３日に出願された米国特許出願第１３／８８６，５１８号の優先権を主張し、同じ発明の名称を有する。
【図１】
0006335280.tif 000002
【図２】
0006335280.tif 000003
【図３】
0006335280.tif 000004
【図４】
0006335280.tif 000005
【図５】
0006335280.tif 000006
【図６】
0006335280.tif 000007
【図７Ａ】
0006335280.tif 000008
【図７Ｂ】
0006335280.tif 000009