(58)【調査した分野】(Int.Cl.,DB名)
前記クライアントデバイスが、モバイルデバイスであり、前記モバイルデバイスから受信した前記ユーザの秘密が、個人識別番号(PIN)、モバイルデバイスジェスチャ、またはユーザバイオメトリックデータ、のうちの少なくとも1つを含む、請求項1に記載の方法。
【発明を実施するための形態】
【0013】
以下、さまざまな実施形態の説明においては、上記特定した本明細書の一部をなす添付の図面を参照するが、当該図面には、本明細書に記載の各態様を実施可能なさまざまな実施形態を例示している。本明細書に記載の範囲から逸脱しなければ、他の実施形態を利用するとともに、構造上および機能上の改良を行ってもよいことが了解されるものとする。さまざまな態様は、他の実施形態が採用可能であり、また、さまざまな異なる方法で実施または実行が可能である。
【0014】
以下に詳述する発明の概略紹介として、本明細書に記載の各発明態様は、モバイルコンピューティングデバイスの管理対象モバイルアプリケーションを用いて企業システムのリソースへのリモートアクセスを制御することに関する。アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションがそれ自体を正確に識別し、モバイルコンピューティングデバイスへのインストール後に変更されていないか否かを判定する妥当性検証プロセスを行うようにしてもよい。このように、アクセスマネージャは、企業リソースへのアクセスを要求するモバイルアプリケーションが信頼でき、その企業リソースを保護するためのセキュリティメカニズムをくぐり抜けようとしていないことを保証するようにしてもよい。その結果、この企業に関連する個人は、自身の個人用モバイルデバイスで企業リソースを利用可能となり都合が良い。
【0015】
本明細書で使用する表現および用語は、説明を目的としており、何ら限定的と見なすべきではないことが了解されるものとする。むしろ、本明細書で使用する表現および用語には、そのもっとも広い解釈および意味が与えられるものとする。「含む」および「備える」ならびにこれらの変形を使用することは、その後に列挙される項目およびその均等物のほか、付加的な項目およびその均等物を包含することを意図している。用途「取り付けられている」、「接続されている」、「連結されている」、「位置付けられている」、「係合されている」および類似の用語を使用することは、直接および間接的な取り付け、接続、連結、位置付け、および係合の両者を含むことを意図している。
【0016】
〈コンピューティングアーキテクチャ〉
コンピュータソフトウェア、ハードウェア、およびネットワークは、特にスタンドアロン、ネットワーク化、リモートアクセス(別称、リモートデスクトップ)、仮想化、および/またはクラウドベースの環境等、多様な異なるシステム環境で利用されるようになっている。
【0017】
図1は、本明細書に記載の1つまたは複数の態様をスタンドアロンおよび/またはネットワーク化環境で実装するのに利用可能なシステムアーキテクチャおよびデータ処理装置の一実施例を示している。インターネット等の広域ネットワーク(WAN)101を介して、さまざまなネットワークノード103、105、107、および109が相互接続されている。また、プライベートイントラネット、企業ネットワーク、LAN、メトロポリタンエリアネットワーク(MAN)、無線ネットワーク、パーソナルネットワーク(PAN)等の他のネットワークを併用または代用するようにしてもよい。ネットワーク101は、例示を目的としており、より少数または追加のコンピュータネットワークで置き換えてもよい。ローカルエリアネットワーク(LAN)は、任意の既知のLANトポロジのうちの1つまたは複数を有していてもよく、また、イーサーネット等の多様な異なるプロトコルのうちの1つまたは複数を使用するようにしてもよい。デバイス103、105、107、109、および他のデバイス(図示せず)は、撚り対線、同軸ケーブル、光ファイバ、電波、または他の通信媒体を介してネットワークのうちの1つまたは複数に接続されていてもよい。
【0018】
本明細書で使用するとともに図面に示す用語「ネットワーク」は、1つまたは複数の通信経路を介してリモートの記憶装置が互いに連結されたシステムのみならず、場合により当該システムに連結可能な記憶能力を有するスタンドアロンデバイスも表す。そのため、用語「ネットワーク」には、「物理的ネットワーク」のみならず、すべての物理的ネットワークに常駐する(単一のエンティティに帰属し得る)データで構成された「コンテンツネットワーク」も含まれる。
【0019】
コンポーネントは、データサーバ103、ウェブサーバ105、およびクライアントコンピュータ107、109を含んでいてもよい。データサーバ103は、本明細書に記載の1つまたは複数の態様を実施するためのデータベースおよび制御ソフトウェアの全体的なアクセス、制御、および管理を提供する。データサーバ103は、ウェブサーバ105に接続されていてもよく、これによりユーザは、必要に応じてデータと相互作用し、必要なデータを取得する。あるいは、データサーバ103は、ウェブサーバ自体として作用するようになっていてもよく、また、インターネットに直接接続されていてもよい。データサーバ103は、直接もしくは間接的な接続またはその他何らかのネットワークを介して、ネットワーク101(たとえば、インターネット)経由でウェブサーバ105に接続されていてもよい。ユーザは、たとえばウェブサーバ105がホストする1つまたは複数の外部から見えるウェブサイトを介してデータサーバ103に接続するためのウェブブラウザを使用することにより、リモートコンピュータ107、109を用いてデータサーバ103と相互作用するようにしてもよい。クライアントコンピュータ107,109は、データサーバ103とともに使用して、そこに格納されたデータにアクセスするようにしてもよいし、他の目的で使用してもよい。たとえば、ユーザは、クライアントデバイス107から、当技術分野において既知のインターネットブラウザを使用するか、またはコンピュータネットワーク(インターネット等)上でウェブサーバ105および/またはデータサーバ103と通信するソフトウェアアプリケーションを実行することによって、ウェブサーバ105にアクセスするようにしてもよい。
【0020】
サーバおよびアプリケーションは、同じ物理マシン上に組み合わせて、別個の仮想アドレスもしくは論理アドレスを保持するようにしてもよいし、別個の物理マシンに常駐していてもよい。
【0021】
図1は、使用可能なネットワークアーキテクチャのほんの一実施例を示しており、当業者であれば、使用する特定のネットワークアーキテクチャおよびデータ処理装置を変更してもよく、本明細書にて詳細に説明するように、それらが提供する機能の補助的なものであることが認識されよう。たとえば、ウェブサーバ105およびデータサーバ103が提供するサービスは、単一のサーバ上に組み合わされていてもよい。
【0022】
各コンポーネント103、105、107、109は、如何なる種類の既知のコンピュータ、サーバ、またはデータ処理装置であってもよい。たとえば、データサーバ103は、レートサーバ103の動作全体を制御するプロセッサ111を含んでいてもよい。データサーバ103は、RAM113、ROM115、ネットワークインターフェース117、入出力インターフェース119(たとえば、キーボード、マウス、ディスプレイ、プリンタ等)、およびメモリ121をさらに含んでいてもよい。I/O119は、データまたはファイルの読み込み、書き込み、表示、および/または印刷を行う多様なインターフェースユニットおよびドライブを含んでいてもよい。メモリ121は、データ処理装置103、本明細書に記載の態様の実施をデータサーバ103に指示する制御ロジック125、ならびに本明細書に記載の態様と併せて使用してもしなくてもよい補助、サポート、および/または他の機能を提供する他のアプリケーションソフトウェア127の動作全体を制御するオペレーティングシステムソフトウェア123をさらに格納していてもよい。本明細書において、制御ロジックは、データサーバソフトウェア125とも称される。データサーバソフトウェアの機能は、制御ロジックに符号化され、システムに入力を行うユーザにより手動で作成されたルールに基づいて自動的に行われる動作もしくは決定ならびに/またはユーザ入力(たとえば、問い合わせ、データ更新等)に基づく自動処理の組合せを表していてもよい。
【0023】
また、メモリ121は、第1データベース129および第2データベース131を含め、本明細書に記載の1つまたは複数の態様の実施に用いられるデータを格納していてもよい。いくつかの実施形態において、第1データベースは、(たとえば、別個のテーブル、レポート等として)第2データベースを含んでいてもよい。すなわち、情報は、システム設計に応じて、単一のデータベースに格納することも、別々の論理、仮想、または物理データベースに分けることもできる。デバイス105、107、109は、デバイス103に関する説明と同様のアーキテクチャを有していてもよいし、異なるアーキテクチャを有していてもよい。当業者であれば、本明細書に記載のデータ処理装置103(または、デバイス105、107、109)の機能を複数のデータ処理装置に分散して、たとえば複数のコンピュータに処理負荷を分散することにより、地理的な場所、ユーザのアクセスレベル、サービスの品質(QoS)等に基づいてトランザクションを分けるようにしてもよいことが認識されよう。
【0024】
1つまたは複数の態様は、1つまたは複数のプログラムモジュール等、本明細書に記載の1つもしくは複数のコンピュータまたは他のデバイスが実行するコンピュータ使用可能もしくは読取可能データおよび/またはコンピュータ実行可能命令にて具現化されていてもよい。一般的に、プログラムモジュールは、コンピュータまたは他のデバイスのプロセッサによって実行された場合に特定のタスクの実行または特定の抽象データ型の実装を行うルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。モジュールは、後でコンパイルして実行するソースコードプログラミング言語で記述されていてもよいし、HTMLまたはXML等(ただし、これらに限定されない)のスクリプト言語で記述されていてもよい。
【0025】
コンピュータ実行可能命令は、不揮発性記憶装置等のコンピュータ読取可能媒体に格納されていてもよい。また、ハードディスク、CD−ROM、光学記憶装置、磁気記憶装置、および/またはこれらの任意の組み合わせを含め、任意の適当なコンピュータ読取可能記憶媒体を利用するようにしてもよい。さらに、本明細書に記載のデータまたはイベントを表すさまざまな伝送(非記憶)媒体は、金属ワイヤ、光ファイバ、および/または無線伝送媒体(たとえば、空気および/または空間)等、信号伝達媒体を通って移動する電磁波の形態で送信元と宛先との間を移動するようになっていてもよい。本明細書に記載のさまざまな態様は、方法、データ処理システム、またはコンピュータプログラム製品として具現化されていてもよい。そのため、ソフトウェア、ファームウェア、ならびに/またはハードウェア、もしくは集積回路、フィールドプログラマブルゲートアレイ(FPGA)等のハードウェア均等物において、さまざまな機能の全部または一部が具現化されていてもよい。本明細書に記載の1つまたは複数の態様をより効果的に実装するため、特定のデータ構造を使用してもよく、当該データ構造は、本明細書に記載のコンピュータ実行可能命令およびコンピュータ使用可能データの範囲内と考えられる。
【0026】
さらに
図2を参照して、本明細書に記載の1つまたは複数の態様は、リモートアクセス環境に実装されていてもよい。
図2は、本明細書に記載の1つまたは複数の態様に従って使用できるコンピューティング環境200の汎用コンピューティングデバイス201を含むシステムアーキテクチャの一例を示している。たとえば、汎用コンピューティングデバイス201は、クライアントアクセスデバイス用の仮想マシンを提供するように構成された単一サーバまたはマルチサーバのデスクトップ仮想化システム(たとえば、リモートアクセスまたはクラウドシステム)内のサーバ206aとして使用されるようになっていてもよい。汎用コンピューティングデバイス201は、ランダムアクセスメモリ(RAM)205、読取専用メモリ(ROM)207、入出力(I/O)モジュール209、およびメモリ215を含め、サーバおよびその関連コンポーネントの動作全体を制御するプロセッサ203を有していてもよい。
【0027】
I/Oモジュール209は、汎用コンピューティングデバイス201のユーザが入力を行うマウス、キーパッド、タッチスクリーン、スキャナ、光学リーダ、および/またはスタイラス(もしくは、他の入力デバイス)を含んでいてもよく、また、音声出力を提供するスピーカと、テキスト、視聴覚、および/またはグラフィカル出力を提供するビデオディスプレイデバイスとのうちの1つまたは複数を含んでいてもよい。ソフトウェアは、メモリ215および/または他のストレージ内に格納して、汎用コンピューティングデバイス201を専用コンピューティングデバイスに構成して本明細書に記載のさまざまな機能を実行する命令をプロセッサ203に与えるようにしてもよい。たとえば、メモリ215は、オペレーティングシステム217、アプリケーションプログラム219、および関連データベース221等、コンピューティングデバイス201が使用するソフトウェアを格納していてもよい。
【0028】
コンピューティングデバイス201は、端末240(クライアントデバイスとも称する)等の1つまたは複数のリモートコンピュータへの接続をサポートするネットワーク化環境で動作するようになっていてもよい。端末240は、汎用コンピューティングデバイス103または201に関して上述した要素の多くまたはすべてを含むパーソナルコンピュータ、モバイルデバイス、ラップトップコンピュータ、タブレット、またはサーバであってもよい。
【0029】
図2に示すネットワーク接続は、ローカルエリアネットワーク(LAN)225および広域ネットワーク(WAN)229を含むが、他のネットワークを含んでいてもよい。コンピューティングデバイス201は、LANネットワーク環境で使用する場合、ネットワークインターフェースまたはアダプタ223経由でLAN225に接続されていてもよい。コンピューティングデバイス201は、WANネットワーク環境で使用する場合、コンピュータネットワーク230(たとえば、インターネット)等、WAN229上で通信を確立するモデム227または他の広域ネットワークインターフェースを含んでいてもよい。当然のことながら、図示のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用するようにしてもよい。また、コンピューティングデバイス201および/または端末240は、バッテリ、スピーカ、およびアンテナ(図示せず)等のその他さまざまなコンポーネントを含むモバイル端末(たとえば、携帯電話、スマートフォン、PDA、ノートブック等)であってもよい。
【0030】
また、本明細書に記載の態様は、その他多くの汎用もしくは専用コンピューティングシステム環境または構成と併せて動作可能であってもよい。本明細書に記載の態様との併用に適する他のコンピューティングシステム、環境、および/または構成の例としては、パーソナルコンピュータ、サーバコンピュータ、携帯型またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上述のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が挙げられるが、これらに限定されない。
【0031】
図2に示すように、1つまたは複数のクライアントデバイス240は、1つまたは複数のサーバ206a〜206n(本明細書では「サーバ206」と総称する)と通信状態であってもよい。一実施形態において、コンピューティング環境200は、サーバ206とクライアントマシン240との間にインストールされたネットワークアプライアンスを含んでいてもよい。ネットワークアプライアンスは、クライアント/サーバ接続を管理していてもよく、場合により、複数のバックエンドサーバ206間のクライアント接続の負荷分散を行うことができる。
【0032】
いくつかの実施形態において、クライアントマシン240は、単一クライアントマシン240または単一クライアントマシン群240と称する場合があり、サーバ206は、単一サーバ206または単一サーバ群206と称する場合がある。一実施形態において、単一クライアントマシン240は、2つ以上のサーバ206と通信する一方、別の実施形態において、単一サーバ206は、2つ以上のクライアントマシン240と通信する。さらに別の実施形態において、単一クライアントマシン240は、単一サーバ206と通信する。
【0033】
クライアントマシン240は、いくつかの実施形態では、クライアントマシン、クライアント、クライアントコンピュータ、クライアントデバイス、クライアントコンピューティングデバイス、ローカルマシン、リモートマシン、クライアントノード、エンドポイント、またはエンドポイントノードという非網羅的な用語のうちのいずれか1つにより表すことができる。いくつかの実施形態において、サーバ206は、サーバ、ローカルマシン、リモートマシン、サーバファーム、またはホストコンピューティングデバイスという非網羅的な用語のうちのいずれか1つにより表す場合がある。
【0034】
一実施形態において、クライアントマシン240は、仮想マシンであってもよい。仮想マシンは、あらゆる仮想マシンであってもよいが、いくつかの実施形態において、仮想マシンは、たとえばCitrix Systems、IBM、VMwareにより開発されたハイパーバイザまたはその他任意のハイパーバイザ等、タイプ1またはタイプ2のハイパーバイザにより管理されるあらゆる仮想マシンであってもよい。いくつかの態様において、仮想マシンは、ハイパーバイザにより管理されるようになっていてもよいが、いくつかの態様において、仮想マシンは、サーバ206上で実行されるハイパーバイザまたはクライアント240上で実行されるハイパーバイザにより管理されるようになっていてもよい。
【0035】
いくつかの実施形態は、サーバ206または遠隔設置された他のマシン上で遠隔実行されるアプリケーションによって生成されるアプリケーション出力を表示するクライアントデバイス240を含む。これらの実施形態において、クライアントデバイス240は、仮想マシンの受信機プログラムまたはアプリケーションを実行して、アプリケーションウィンドウ、ブラウザ、または他の出力ウィンドウに出力を表示するようにしてもよい。ある実施例として、このアプリケーションはデスクトップであるが、他の実施例において、このアプリケーションは、デスクトップを生成または提示するアプリケーションである。デスクトップは、ローカルおよび/またはリモートアプリケーションを統合可能なオペレーティングシステムのインスタンスに対してユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。本明細書で使用するアプリケーションとは、オペレーティングシステム(および、任意選択としてのデスクトップ)のインスタンスがロードされた後に実行されるプログラムである。
【0036】
いくつかの実施形態において、サーバ206は、クライアント上で実行されるシンクライアントまたはリモートディスプレイアプリケーションにデータを送信するリモートプレゼンテーションプロトコルまたは他のプロトコルを使用して、サーバ206上で実行されるアプリケーションにより生成されたディスプレイ出力を提示する。シンクライアントまたはリモートディスプレイプロトコルは、フロリダ州フォートローダーデールのCitrix Systems,Inc.が開発したインディペンデントコンピューティングアーキテクチャ(ICA)プロトコルまたはワシントン州レドモンドのMicrosoft Corporationが製造したリモートデスクトッププロトコル(RDP)という非網羅的なプロトコルのうちのいずれか1つとすることができる。
【0037】
リモートコンピューティング環境は、たとえばクラウドコンピューティング環境のサーバファーム206に論理的にグループ化された2つ以上のサーバ206a〜206nを含んでいてもよい。サーバファーム206は、論理的にグループ化されながらも地理的に分散したサーバ206または論理的にグループ化されながらも互いに近接して配置されたサーバ206を含んでいてもよい。いくつかの実施形態において、サーバファーム206内の地理的に分散したサーバ206a〜206nは、WAN(広域)、MAN(メトロポリタン)、またはLAN(ローカル)を使用して通信可能であり、異なる地理的地域は、異なる大陸、大陸の異なる地域、異なる国、異なる州、異なる都市、異なる大学、異なる部屋、またはこれら地理的な場所の任意の組合せとして特徴付けることができる。いくつかの実施形態において、サーバファーム206は、単一エンティティとして管理されていてもよいが、他の実施形態において、サーバファーム206は、複数のサーバファームを含むことができる。
【0038】
いくつかの実施形態において、サーバファームは、実質的に同じような種類のオペレーティングシステムプラットフォーム(たとえば、WINDOWS(登録商標)、UNIX(登録商標)、LINUX(登録商標)、iOS、ANDROID(登録商標)、SYMBIAN等)を実行するサーバ206を含んでいてもよい。他の実施形態において、サーバファーム206は、第1の種類のオペレーティングシステムプラットフォームを実行する1つまたは複数のサーバから成る第1の群と、第2の種類のオペレーティングシステムプラットフォームを実行する1つまたは複数のサーバから成る第2の群とを含んでいてもよい。
【0039】
サーバ206は、必要に応じて、たとえばファイルサーバ、アプリケーションサーバ、ウェブサーバ、プロキシサーバ、アプライアンス、ネットワークアプライアンス、ゲートウェイ、アプリケーションゲートウェイ、ゲートウェイサーバ、仮想化サーバ、デプロイメントサーバ、SSL VPNサーバ、ファイヤウォール、ウェブサーバ、アプリケーションサーバもしくはマスターアプリケーションサーバ、アクティブディレクトリを実行するサーバ、またはファイヤウォール機能、アプリケーション機能、もしくは負荷分散機能を提供するアプリケーション高速化プログラムを実行するサーバ等、任意の種類のサーバとして構成されていてもよい。また、他の種類のサーバを使用するようにしてもよい。
【0040】
いくつかの実施形態は、クライアントマシン240からの要求を受信し、要求を第2サーバ206bに転送し、第2サーバ206bからの応答によって、クライアントマシン240により生成された要求に応答する第1サーバ206aを含む。第1サーバ206aは、クライアントマシン240が利用できるアプリケーションの一覧表およびアプリケーションの一覧表内で特定されたアプリケーションをホストするアプリケーションサーバ206に関連するアドレス情報を取得するようにしてもよい。そして、第1サーバ206aは、ウェブインターフェースを使用してクライアントの要求に対する応答を提示し、クライアント240と直接通信して、特定されたアプリケーションへのアクセスをクライアント240に提供することができる。1つもしくは複数のクライアント240ならびに/または1つもしくは複数のサーバ206は、たとえばネットワーク101等のネットワーク230上でデータを伝送するようにしてもよい。
【0041】
図2は、デスクトップ仮想化システムの高レベルアーキテクチャを示している。図示のように、デスクトップ仮想化システムは、1つまたは複数のクライアントアクセスデバイス240に仮想デスクトップおよび/または仮想アプリケーションを提供するように構成された少なくとも1つの仮想化サーバ206を含め、単一サーバもしくはマルチサーバシステムまたはクラウドシステムであってもよい。本明細書で使用するデスクトップとは、1つまたは複数のアプリケーションをホストおよび/または実行可能なグラフィカル環境または空間を表す。デスクトップには、ローカルおよび/またはリモートアプリケーションを統合可能なオペレーティングシステムのインスタンスに対してユーザインターフェースを提供するグラフィカルシェルを含んでいてもよい。アプリケーションには、オペレーティングシステムのインスタンス(および、任意選択としてのデスクトップ)をロードした後に実行されるプログラムを含んでいてもよい。オペレーティングシステムの各インスタンスは、物理的(たとえば、デバイス当たり1つのオペレーティングシステム)であってもよいし、仮想的(たとえば、単一デバイス上でOSの多くのインスタンスが動作)であってもよい。各アプリケーションは、ローカルデバイス上で実行されるようになっていてもよいし、遠隔設置されたデバイス上で実行(たとえば、遠隔操作)されるようになっていてもよい。
【0042】
デスクトップ仮想化システムにおける利用の場合、サーバ206は、たとえば単一サーバ、マルチサーバ、またはクラウドコンピューティング環境等、仮想化環境の仮想化サーバとして構成されていてもよい。このような環境において、仮想化サーバ206は、1つまたは複数の物理的ディスク、物理的デバイス、物理的プロセッサ、および物理的メモリを含むハードウェア層を含んでいてもよい。仮想化サーバ206のメモリ215は、任意数の仮想マシンを作成して管理するように構成されたファームウェア、オペレーティングシステム、およびハイパーバイザ(たとえば、タイプ1またはタイプ2ハイパーバイザ)を含んでいてもよい。仮想マシンは、プロセッサにより実行された場合に、物理的コンピューティングデバイスと全く同じようにプログラムおよびプロセスを実行できるように物理的コンピュータの動作を模倣する実行可能命令セットである。ハイパーバイザは、各仮想マシンに対して、当該仮想マシンが利用できる物理的ハードウェア、メモリ、プロセッサ、および他のシステムリソースを仮想的に表示するようにしてもよい。
【0043】
本明細書に記載のいくつかの態様は、クラウドベースの環境にて実装されるようになっていてもよい。このような環境において、クライアントデバイス240は、1つまたは複数のクラウド管理サーバ206と通信することによって、クラウドシステムのコンピューティングリソース(たとえば、ホストサーバ、ストレージリソース、およびネットワークリソース)にアクセスするようにしてもよい。
【0044】
クラウド管理サーバ206は、クラウドハードウェアおよびソフトウェアリソースを含めて、さまざまなコンピューティングリソースを管理するようにしてもよく、また、クラウドオペレータおよびクラウド顧客がクラウドシステムと相互作用可能なユーザインターフェースを提供するようにしてもよい。たとえば、管理サーバ206は、ユーザインターフェースを備えたAPIセットならびに/または1つもしくは複数のクラウドオペレータコンソールアプリケーション(たとえば、ウェブベースまたはスタンドアロンのアプリケーション)を提供することにより、クラウドオペレータによるクラウドリソースの管理、仮想化層の設定、顧客アカウントの管理、および他のクラウド管理タスクを可能にしてもよい。また、管理サーバ206は、たとえばクラウド内の仮想マシンの作成、修正、または破棄の要求等、エンドユーザからのクラウドコンピューティング要求をクライアントコンピュータ240経由で受信するように構成されたユーザインターフェースを備えたAPIセットならびに/または1つもしくは複数の顧客コンソールアプリケーションを含んでいてもよい。
【0045】
クライアントコンピュータ240は、インターネット等の通信ネットワークを介して管理サーバ206に接続されていてもよく、また、管理サーバ206が管理するコンピューティングリソースのうちの1つまたは複数へのアクセスを要求するようにしてもよい。クライアント要求に応答して、管理サーバ206は、クライアント要求に基づいてクラウドシステムのハードウェア層の物理的リソースを選択および設定するように構成されたリソースマネージャを含んでいてもよい。たとえば、管理サーバ206およびクラウドシステムの付加的なコンポーネントは、ネットワーク(たとえば、インターネット)上で、クライアントコンピュータ240の顧客用の仮想マシンおよびその動作環境(たとえば、ハイパーバイザ、ストレージリソース、ネットワーク要素が提供するサービス等)を設定、作成、および管理することによって、演算リソース、データストレージサービス、ネットワーク機能、ならびにコンピュータプラットフォームおよびアプリケーションサポートを顧客に提供するように構成されていてもよい。また、クラウドシステムは、セキュリティシステム、開発環境、ユーザインターフェース等を含めて、さまざまな特定サービスを提供するように構成されていてもよい。
【0046】
また、クラウドコンピューティング環境は、仮想マシンを作成して管理するとともにクラウドの物理的リソースを使用する顧客に他のサービスを提供するように構成された付加的なハードウェアおよび/またはソフトウェアリソースを備えた仮想化層を含んでいてもよい。上述の通り、仮想化層は、ネットワーク仮想化、ストレージ仮想化等を提供する他のコンポーネントと併せて、ハイパーバイザを含んでいてもよい。また、仮想化層は、物理的リソース層とは別個の層であってもよいし、同じハードウェアおよび/またはソフトウェアリソースの一部または全部を物理的リソース層と共有していてもよい。
【0047】
〈企業モビリティ管理アーキテクチャ〉
図3は、BYOD(Bring Your Own Device)環境で使用する企業モビリティ技術アーキテクチャ300を示している。このアーキテクチャは、モバイルデバイス302のユーザがモバイルデバイス302から企業リソースまたは個人リソースにアクセスすることと、モバイルデバイス302を個人的に使用することと、の両者を可能にする。ユーザは、当該ユーザが購入したモバイルデバイス302または企業がユーザに支給したモバイルデバイス302を使用することによって、当該企業リソース304または企業サービス308にアクセスするようにしてもよい。また、ユーザは、モバイルデバイス302をビジネス専用で利用してもよいし、ビジネスと個人兼用で利用してもよい。モバイルデバイスは、iOSオペレーティングシステムおよびAndroid(登録商標)オペレーティングシステム等を動作させるようにしてもよい。
【0048】
企業は、モバイルデバイス304を管理するポリシーを実装することを選択するようにしてもよい。ポリシーは、ファイヤウォールまたはゲートウェイによって、モバイルデバイスが識別され、保護またはセキュリティの検証がなされ、企業リソースへの選択的または完全なアクセスが可能となるように埋め込まれていてもよい。また、ポリシーは、モバイルデバイス管理ポリシー、モバイルアプリケーション管理ポリシー、モバイルデータ管理ポリシー、またはモバイルデバイス、アプリケーション、およびデータ管理ポリシーのなんらかの組合せであってもよい。モバイルデバイス管理ポリシーの適用により管理されるモバイルデバイス304は、登録済みデバイスと称する場合がある。
【0049】
モバイルデバイスのオペレーティングシステムは、管理対象パーティション310と非管理対象パーティション312とに分離されていてもよい。管理対象パーティション310は、当該管理対象パーティション上で動作するアプリケーションおよび当該管理対象パーティションに格納されたデータを保護するためのポリシーが適用されていてもよい。管理対象パーティション上で動作するアプリケーションは、セキュリティ保護されたアプリケーションであってもよい。セキュリティ保護されたアプリケーションは、電子メールアプリケーション、ウェブブラウザアプリケーション、SaaS(Software−as−a−Service)アクセスアプリケーション、Windows(登録商標) Applicationアクセスアプリケーション等であってもよい。また、セキュリティ保護されたアプリケーションは、セキュリティ保護されたネイティブアプリケーション314、セキュリティ保護されたアプリケーションランチャ318が実行するセキュリティ保護されたリモートアプリケーション322、セキュリティ保護されたアプリケーションランチャ318が実行する仮想化アプリケーション326等であってもよい。セキュリティ保護されたネイティブアプリケーション314は、セキュリティ保護されたアプリケーションラッパー320によりラッピングされていてもよい。セキュリティ保護されたアプリケーションラッパー320は、セキュリティ保護されたネイティブアプリケーションがデバイス上で実行された場合に、モバイルデバイス302上で実行される統合ポリシーを含んでいてもよい。セキュリティ保護されたアプリケーションラッパー320は、セキュリティ保護されたネイティブアプリケーション314の実行時に要求されたタスクを完了するように当該セキュリティ保護されたネイティブアプリケーション314が求める場合がある企業でホストされたリソースに対して、モバイルデバイス302上で動作するセキュリティ保護されたネイティブアプリケーション314をあてがうメタデータを含んでいてもよい。
【0050】
セキュリティ保護されたアプリケーションランチャ318が実行するセキュリティ保護されたリモートアプリケーション322は、セキュリティ保護されたアプリケーションランチャアプリケーション318内で実行されていてもよい。セキュリティ保護されたアプリケーションランチャ318が実行する仮想化アプリケーション326は、企業リソース304等において、モバイルデバイス302上のリソースを利用するようにしてもよい。
【0051】
セキュリティ保護されたアプリケーションランチャ318が実行する仮想化アプリケーション326によりモバイルデバイス302上で使用されるリソースは、ユーザ相互作用リソース、処理リソース等を含んでいてもよい。ユーザ相互作用リソースは、キーボード入力、マウス入力、カメラ入力、触覚入力、音声入力、視覚入力、ジェスチャ入力等を収集して送信するのに用いられるようになっていてもよい。処理リソースは、ユーザインターフェースを提示し、企業リソース304等から受信したデータを処理するのに用いられるようになっていてもよい。セキュリティ保護されたアプリケーションランチャ318が実行する仮想化アプリケーション326により企業リソース304で使用されるリソースは、ユーザインターフェース生成リソース、処理リソース等を含んでいてもよい。ユーザインターフェース生成リソースは、ユーザインターフェースの組み立て、ユーザインターフェースの修正、ユーザインターフェースのリフレッシュ等に用いられるようになっていてもよい。処理リソースは、情報の作成、情報の読み取り、情報の更新、情報の消去等に用いられるようになっていてもよい。たとえば、仮想化アプリケーションは、GUIに関連するユーザ相互作用を記録してサーバアプリケーションに伝えるようにしてもよく、当該サーバアプリケーションは、サーバで動作するアプリケーションへの入力としてユーザ相互作用データを使用する。
【0052】
この構成において、企業は、サーバ側のアプリケーションのほか、アプリケーションに関連するデータ、ファイル等を維持する選択を行うようにしてもよい。企業は、モバイルデバイス上での展開に向けた保護によって、本明細書の原理に係るいくつかのアプリケーションを「モバイル化」する選択を行うようにしてもよいが、この構成は、特定のアプリケーションに関して選択されるようになっていてもよい。たとえば、いくつかのアプリケーションは、モバイルデバイス上での使用のために保護されている場合があるが、他のアプリケーションは、モバイルデバイス上での展開の準備がなされていないか、または適切でない場合があるため、企業は、仮想化技術により準備されていないアプリケーションへのアクセスをモバイルユーザに提供する選択を行うようにしてもよい。
【0053】
別の例として、企業は、大量の複雑なデータセットを含む大型の複雑なアプリケーション(たとえば、資材所要量計画アプリケーション)を有する場合があり、モバイルデバイスに対してアプリケーションをカスタマイズするのは非常に困難あるいは望ましくないため、企業は仮想化技術によりアプリケーションへのアクセスを提供する選択を行うようにしてもよい。さらに別の例として、企業は、保護されたモバイル環境に対しても慎重に扱うべきと見なされる場合がある高セキュリティ保護されたデータ(たとえば、人事データ、顧客データ、エンジニアリングデータ)を保守するアプリケーションを有する場合があるため、仮想化技術の使用を選択することにより、当該アプリケーションおよびデータへのモバイルアクセスを許可するようにしてもよい。
【0054】
企業は、モバイルデバイス上で完全に保護され、完全に機能するアプリケーションおよび仮想化アプリケーションの両者の提供を選択することによって、サーバ側でより適正に動作すると見なされるアプリケーションへのアクセスを許可するようにしてもよい。一実施形態において、仮想化アプリケーションは、携帯電話上のいくつかのデータ、ファイル等をセキュリティ保護された記憶場所のうちの1つに格納するようにしてもよい。たとえば、企業は、特定情報の電話への格納を可能とする一方、他の情報を許可しない選択を行うようにしてもよい。
【0055】
本明細書に記載の通り、仮想化アプリケーションに関連して、モバイルデバイスは、GUIを提示した後にGUIとのユーザ相互作用を記録するように設計された仮想化アプリケーションを有していてもよい。このアプリケーションは、アプリケーションとのユーザ相互作用としてサーバ側アプリケーションが使用するサーバ側とのユーザ相互作用を伝えるようにしてもよい。これに応答して、サーバ側のアプリケーションは、モバイルデバイスに新たなGUIを送り返すようにしてもよい。たとえば、この新たなGUIは、静的ページ、動的ページ、アニメーション等であってもよい。
【0056】
管理対象パーティション上で動作するアプリケーションは、安定化アプリケーションであってもよい。安定化アプリケーションは、デバイスマネージャ324により管理されるようになっていてもよい。デバイスマネージャ324は、安定化アプリケーションを監視し、問題の検出および是正に利用しなければ不安定なアプリケーションとなってしまう問題検出・是正技術を用いるようにしてもよい。
【0057】
セキュリティ保護されたアプリケーションは、モバイルデバイスの管理対象パーティション310のセキュリティ保護されたデータコンテナ328に格納されたデータにアクセスするようにしてもよい。セキュリティ保護されたデータコンテナに保護されたデータには、セキュリティ保護されたラッピングされたアプリケーション314、セキュリティ保護されたアプリケーションランチャ322が実行するアプリケーション、セキュリティ保護されたアプリケーションランチャ322が実行する仮想化アプリケーション326等がアクセスするようになっていてもよい。セキュリティ保護されたデータコンテナ328に格納されたデータは、ファイル、データベース等を含んでいてもよい。また、セキュリティ保護されたデータコンテナ328に格納されたデータは、セキュリティ保護されたアプリケーション332間で共有された特定のセキュリティ保護されたアプリケーション330等に制限されたデータを含んでいてもよい。セキュリティ保護されたアプリケーションに制限されたデータは、セキュリティ保護された一般データ334および高セキュリティ保護されたデータ338を含んでいてもよい。セキュリティ保護された一般データは、AES 128ビット暗号化等の強力な暗号化方式を使用するようにしてもよい。一方、高セキュリティ保護されたデータ338は、AES 254ビット暗号化等の非常に強力な暗号化方式を使用するようにしてもよい。セキュリティ保護されたデータコンテナ328に格納されたデータは、デバイスマネージャ324からのコマンドの受信により、デバイスから消去されるようになっていてもよい。
【0058】
セキュリティ保護されたアプリケーションは、デュアルモードオプション340を有していてもよい。デュアルモードオプション340は、セキュリティ保護されていないモードでセキュリティ保護されたアプリケーションを動作させるオプションをユーザに提示するようにしてもよい。セキュリティ保護されていないモードにおいて、セキュリティ保護されたアプリケーションは、モバイルデバイス302の非管理対象パーティション312のセキュリティ保護されていないデータコンテナ342に格納されたデータにアクセスするようにしてもよい。セキュリティ保護されていないデータコンテナに格納されたデータは、個人データ344であってもよい。また、セキュリティ保護されていないデータコンテナ342に格納されたデータには、モバイルデバイス302の非管理対象パーティション312上で動作しているセキュリティ保護されていないアプリケーション348がアクセスするようになっていてもよい。セキュリティ保護されていないデータコンテナ342に格納されたデータは、セキュリティ保護されたデータコンテナ328に格納されたデータがモバイルデバイス302から消去された場合に、モバイルデバイス302上に残っていてもよい。企業は、当該企業が所有、ライセンス保持、または管理する選択もしくはすべてのデータ、ファイル、ならびに/またはアプリケーション(企業データ)をモバイルデバイスから消去する一方、ユーザが所有、ライセンス保持、または管理するする個人データ、ファイル、ならびに/またはアプリケーション(個人データ)を保持あるいは維持したい場合がある。この動作は、選択的消去と称する場合がある。企業は、本明細書に記載の態様に従って構成された企業および個人データについて、選択的消去を行うようにしてもよい。
【0059】
モバイルデバイスは、企業の企業リソース304および企業サービス308ならびに公衆インターネット348等に接続されていてもよい。また、モバイルデバイスは、仮想プライベートネットワーク接続を介して、企業リソース304および企業サービス308に接続されていてもよい。仮想プライベートネットワーク接続は、モバイルデバイス上の特定のアプリケーション350、特定のデバイス、特定のセキュリティ保護された領域等352に固有のものであってもよい。たとえば、電話のセキュリティ保護された領域にラッピングされたアプリケーションはそれぞれ、場合によりユーザまたはデバイスの属性情報と合わせて、アプリケーションに関連する属性に基づいてVPNへのアクセスが許可されるように、アプリケーション固有のVPN経由で企業リソースにアクセスするようにしてもよい。仮想プライベートネットワーク接続は、Microsoft Exchangeトラフィック、Microsoft Active Directoryトラフィック、HTTPトラフィック、HTTPSトラフィック、アプリケーション管理トラフィック等を伝送するようにしてもよい。また、仮想プライベートネットワーク接続は、シングルサインオン認証プロセス354をサポートし、これを有効にするようにしてもよい。シングルサインオンプロセスは、後で認証サービス358により検証される単一の認証資格情報セットをユーザが提供できるようにしてもよい。そして、認証サービス358は、個々の企業リソース304に認証資格情報を提供するようユーザに求めることなく、ユーザが複数の企業リソース304にアクセスすることを許可するようにしてもよい。
【0060】
仮想プライベートネットワーク接続は、アクセスゲートウェイ360により確立され、管理されるようになっていてもよい。アクセスゲートウェイ360は、企業リソース304のモバイルデバイス302への供給を管理、高速化、および改善する性能向上機能を含んでいてもよい。また、アクセスゲートウェイは、モバイルデバイス302から公衆インターネット348へのトラフィックの経路を変更することにより、公衆インターネット348上で動作する公開利用可能かつセキュリティ保護されていないアプリケーションにモバイルデバイス302がアクセスできるようにしてもよい。モバイルデバイスは、転送ネットワーク362を介してアクセスゲートウェイに接続されていてもよい。転送ネットワーク362は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【0061】
企業リソース304は、電子メールサーバ、ファイル共有サーバ、SaaSアプリケーション、ウェブアプリケーションサーバ、Windows(登録商標)アプリケーションサーバ等を含んでいてもよい。電子メールサーバは、Exchangeサーバ、Lotus Notesサーバ等を含んでいてもよい。ファイル共有サーバは、ShareFileサーバ等を含んでいてもよい。SaaSアプリケーションは、Salesforce等を含んでいてもよい。Windows(登録商標)アプリケーションサーバは、ローカルなWindows(登録商標)オペレーティングシステム上での動作が意図されたアプリケーションを提供するように構築されたあらゆるアプリケーションサーバ等を含んでいてもよい。企業リソース304は、根拠ベースのリソース、クラウドベースのリソース等であってもよい。また、企業リソース304には、モバイルデバイス302が直接またはアクセスゲートウェイ360経由でアクセスするようになっていてもよい。企業リソース304には、モバイルデバイス302が転送ネットワーク362を介してアクセスするようになっていてもよい。転送ネットワーク362は、有線ネットワーク、無線ネットワーク、クラウドネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワーク、広域ネットワーク、パブリックネットワーク、プライベートネットワーク等であってもよい。
【0062】
企業サービス308は、認証サービス358、脅威検出サービス364、デバイスマネージャサービス324、ファイル共有サービス368、ポリシーマネージャサービス370、ソーシャル統合サービス372、アプリケーションコントローラサービス374等を含んでいてもよい。認証サービス358は、ユーザ認証サービス、デバイス認証サービス、アプリケーション認証サービス、データ認証サービス等を含んでいてもよい。また、認証サービス358では、証明書を使用するようにしてもよい。
【0063】
証明書は、企業リソース304等によって、モバイルデバイス302に格納されるようになっていてもよい。モバイルデバイス302に格納される証明書は、モバイルデバイスの暗号化された場所に格納さるようになっていてもよく、証明書は、認証時点での使用等のため、モバイルデバイス302に一時的に格納されるようになっていてもよい。脅威検出サービス364は、侵入検出サービス、不正アクセス試行検出サービス等を含んでいてもよい。不正アクセス試行検出サービスは、デバイス、アプリケーション、データ等への不正アクセスの試行を含んでいてもよい。
【0064】
デバイス管理サービス324は、構成サービス、設定サービス、セキュリティサービス、サポートサービス、監視サービス、レポートサービス、および廃棄サービスを含んでいてもよい。ファイル共有サービス368は、ファイル管理サービス、ファイル記憶サービス、ファイル協調サービス等を含んでいてもよい。ポリシーマネージャサービス370は、デバイスポリシーマネージャサービス、アプリケーションポリシーマネージャサービス、データポリシーマネージャサービス等を含んでいてもよい。ソーシャル統合サービス372は、連絡先統合サービス、協調サービス、Facebook、Twitter、およびLinkedIn等のソーシャルネットワークとの統合等を含んでいてもよい。アプリケーションコントローラサービス374は、管理サービス、設定サービス、展開サービス、割り当てサービス、失効サービス、ラッピングサービス等を含んでいてもよい。
【0065】
企業モビリティ技術アーキテクチャ300は、アプリケーションストア378を含んでいてもよい。アプリケーションストア378は、ラッピングされていないアプリケーション380、予めラッピングされたアプリケーション382等を含んでいてもよい。アプリケーションは、アプリケーションコントローラ374からアプリケーションストア378に移植されていてもよい。アプリケーションストア378には、アクセスゲートウェイ360、公衆インターネット348等を介してモバイルデバイス302がアクセスするようになっていてもよい。アプリケーションストアには、直観的に理解でき、使いやすいユーザインターフェースが備わっていてもよい。アプリケーションストア378は、ソフトウェア開発キット384へのアクセスを提供するようにしてもよい。ソフトウェア開発キット384は、本明細書において上述したアプリケーションのラッピングにより、ユーザが選択したアプリケーションを保護する機能をユーザに提供するようにしてもよい。そして、ソフトウェア開発キット384を用いてラッピングされたアプリケーションは、アプリケーションコントローラ374を用いてアプリケーションストア378に移植することにより、モバイルデバイス302が利用できるようにしてもよい。
【0066】
企業モビリティ技術アーキテクチャ300は、管理・解析機能を含んでいてもよい。管理・解析機能は、リソースの使用方法、リソースの使用頻度等に関する情報を提供するようにしてもよい。リソースは、デバイス、アプリケーション、データ等を含んでいてもよい。リソースの使用方法は、どのデバイスがどのアプリケーションをダウンロードするか、どのアプリケーションがどのデータにアクセスするか等を含んでいてもよい。リソースの使用頻度は、アプリケーションがダウンロードされた頻度、アプリケーションが特定のデータセットにアクセスした回数等を含んでいてもよい。
【0067】
図4は、別の企業モビリティ管理システム400である。
図3を参照して上述したモビリティ管理システム300の構成要素のうちのいくつかは、簡略化のために省略している。
図4に示すシステム400のアーキテクチャは、
図3を参照して上述したシステム300のアーキテクチャと多くの点で類似しており、上述していない追加の特徴を含んでいてもよい。
【0068】
この場合、左側は受信機404を備えた登録済みモバイルデバイス402を表しており、これがクラウドゲートウェイ406(アクセスゲートウェイおよびアプリケーションコントローラ機能を含む)と相互作用することによって、右側に示すExchange、Sharepoint、PKIリソース、ケルベロスリソース、証明書発行サービス等のさまざまな企業リソース408およびサービス409にアクセスする。具体的には図示していないが、モバイルデバイス402は、アプリケーションの選択およびダウンロードのために、企業アプリケーションストア(たとえば、StoreFront)と相互作用するようにしてもよい。
【0069】
受信機404は、HDX/ICA表示リモーティングプロトコルを用いてアクセスされる企業データセンターにてホストされたWindows(登録商標)アプリ/デスクトップのUI(ユーザインターフェース)媒介装置として作用する。また、受信機404は、ネイティブiOSまたはAndroid(登録商標)アプリケーション等、モバイルデバイス402上のネイティブアプリケーションのインストールおよび管理をサポートする。たとえば、上記
図4に示す管理対象アプリケーション410(メール、ブラウザ、ラッピングされたアプリケーション)は、デバイス上でローカルに実行されるすべてのネイティブアプリケーションである。このアーキテクチャの受信機404およびMDX(モバイルエクスペリエンス技術)は、企業リソース/サービス408との接続性およびSSO(シングルサインオン)等、ポリシーによる管理の機能および機構を提供するように作用する。受信機404は、企業、通常は他のゲートウェイサーバコンポーネントへのSSOを伴うアクセスゲートウェイ(AG)に対する1次ユーザ認証を扱う。受信機404は、クラウドゲートウェイ406からポリシーを取得することによって、モバイルデバイス402上のMDX管理対象アプリケーション410の挙動を制御する。
【0070】
ネイティブアプリケーション410と受信機404との間のセキュリティ保護されたIPCリンク412は、管理チャネルを表し、これによって、受信機は、各アプリケーションを「ラッピング」するMDXフレームワーク414により強制されるポリシーを供給することができる。また、IPCチャネル412によって、受信機404は、企業リソース408との接続性およびSSOを有効にする資格情報および認証情報を供給することができる。最後に、IPCチャネル412によって、MDXフレームワーク414は、オンラインおよびオフライン認証等、受信機404が実装するユーザインターフェース機能を呼び出すことができる。
【0071】
受信機404とクラウドゲートウェイ406との間の通信は本質的に、各ネイティブ管理対象アプリケーション410をラッピングするMDXフレームワーク414からの管理チャネルの拡張である。MDXフレームワーク414は、受信機404からポリシー情報を要求し、受信機404は、クラウドゲートウェイ406からポリシー情報を要求する。MDXフレームワーク414は、認証を要求し、受信機404は、クラウドゲートウェイ406のゲートウェイサービス部(NetScaler Access Gatewayとしても既知)にログインする。また、受信機404は、クラウドゲートウェイ406上のサポートサービスを呼び出すようにしてもよく、これによって、以下により詳しく説明するように、ローカルデータボルト416の暗号鍵を導出するための入力成分の生成または直接認証を可能にするクライアント証明書のPKI保護リソースへの提供を行うようにしてもよい。
【0072】
より詳細に、MDXフレームワーク414は、各管理対象アプリケーション410を「ラッピング」する。これは、明確な構築ステップまたは構築後処理ステップを介して組み込まれていてもよい。MDXフレームワーク414は、アプリケーション410の最初の起動時に受信機404と「ペア」にすることにより、セキュアIPCチャンネルを初期化して、そのアプリケーションのポリシーを取得するようにしてもよい。MDXフレームワーク414は、受信機のログインディペンデンシ―およびローカルOSサービスの使用方法またはアプリケーション410との相互作用方法を制限する閉じ込めポリシーのうちの一部等、ローカルに適用されるポリシーの該当部分を強制するようにしてもよい。
【0073】
MDXフレームワーク414は、セキュアIPCチャネル412上で受信機404が提供するサービスを使用することにより、認証および内部ネットワークアクセスを容易化するようにしてもよい。また、プライベート・共有データボルト(vaults)416(コンテナ)の鍵管理についても、管理対象アプリケーション410と受信機404との間の適当な相互作用により管理されるようになっていてもよい。ボルト416は、オンライン認証後にのみ利用可能であってもよいし、ポリシーが許可する場合には、オフライン認証後に利用可能となってもよい。ボルト416の初めての使用には、オンライン認証が必要であってもよく、オフラインアクセスは、最大でもオンライン認証が再び要求される前のポリシーリフレッシュ期間に制限されていてもよい。
【0074】
内部リソースへのネットワークアクセスは、個々の管理対象アプリケーション410からアクセスゲートウェイ406を介して直接行うようにしてもよい。MDXフレームワーク414は、各アプリケーション410の代わりとして、ネットワークアクセスのオーケストレーションを担う。受信機404は、オンライン認証後に取得された適当な時間制限付きの2次資格情報を提供することによって、これらのネットワーク接続を容易化するようにしてもよい。また、リバースウェブプロキシ接続およびエンドツーエンドVPN型トンネル418等、ネットワーク接続の複数のモードを使用するようにしてもよい。
【0075】
メール・ブラウザ管理対象アプリケーション410は、特別なステータスを有しており、任意にラッピングされたアプリケーションが一般に利用できない場合があるファシリティを利用するようにしてもよい。たとえば、メールアプリケーションは、完全なADログオンを求めることなく、長時間にわたってExchangeへのアクセスを可能にする特別なバックグラウンドネットワークアクセスメカニズムを使用するようにしてもよい。ブラウザアプリケーションは、複数のプライベートデータボルトを用いることにより、異なる種類のデータを分けるようにしてもよい。
【0076】
このアーキテクチャは、その他さまざまなセキュリティ特徴の組み込みをサポートする。たとえば、場合により、クラウドゲートウェイ406(そのゲートウェイサービスを含む)は、ADパスワードの妥当性を検証する必要がない。いくつかの状況において、ADパスワードを一部のユーザの認証因子として使用するか否かは、企業の裁量に任すことができる。ユーザがオンラインまたはオフラインである(つまり、ネットワークに接続されている場合または接続されていない場合)は、異なる認証方法を使用するようにしてもよい。
【0077】
ステップアップ認証は、強力な認証が必要な極秘データへのアクセスが認められた管理対象ネイティブアプリケーション410をクラウドゲートウェイ406が識別し、先行するより弱いレベルのログイン後にユーザによる再認証が必要になるとしても、適当な認証を行った後にのみこれらのアプリケーションへのアクセスが許可されるようにする特徴である。
【0078】
この解決手段の別のセキュリティ特徴は、モバイルデバイス402上でのデータボルト416(コンテナ)の暗号化である。ボルト416は、ファイル、データベース、および構成を含むすべてのオンデバイスデータが保護されるように暗号化されていてもよい。オンラインボルトの場合、鍵はサーバ(クラウドゲートウェイ406)に格納されていてもよく、オフラインボルトの場合、鍵のローカルコピーはユーザパスワードにより保護されていてもよい。セキュリティ保護されたコンテナ416においてデータがデバイス402にローカルに格納された場合は、最低でもAES256暗号化アルゴリズムを利用するのが好ましい。
【0079】
また、他のセキュリティ保護されたコンテナの特徴を実装するようにしてもよい。たとえば、ロギング特徴が備わっていてもよく、アプリケーション410内で起こるすべてのセキュリティイベントを記録して、バックエンドに報告する。アプリケーション410が改ざんを検出した場合等は、データ消去がサポートされていてもよく、ユーザデータが破棄されたことの手がかりをファイルシステムに残さずに、関連する暗号鍵をランダムなデータで上書きするようにしてもよい。スクリーンショットの保護は、別の特徴であり、アプリケーションは、データをスクリーンショットに格納させないようにしてもよい。たとえば、鍵ウィンドウの隠しプロパティをYESに設定するようにしてもよい。これにより、どのようなコンテンツが現在スクリーンに表示されていてもそれを隠せるので、通常は任意のコンテンツが常駐するスクリーンショットがブランクになる。
【0080】
たとえば、データを外部のアプリケーションにコピーまたは送信する等により、任意のデータのアプリケーションコンテナ外へのローカルな転送の防止等によって、ローカルなデータ転送が防止されるようになっていてもよい。キーボードのキャッシュ特徴は、慎重に扱うべきテキストフィールドのオートコレクト機能を無効にするように動作してもよい。また、SSL証明書の妥当性検証を動作させてもよいため、キーチェーンへの格納の代わりにサーバSSL証明書の詳細な妥当性検証をアプリケーションが行う。ユーザが供給するパスフレーズを用いることによって、デバイス上のデータの暗号化に用いられる鍵が生成されるように(オフラインアクセスが必要な場合)、暗号鍵生成特徴を使用するようにしてもよい。オフラインアクセスが不要な場合は、サーバ側でランダムに生成されて格納された別の鍵によるXORをとってもよい。鍵導出関数は、ユーザパスワードから生成された鍵がその暗号学的ハッシュを作成するのではなく、KDF(鍵導出関数、特にPBKDF2)を使用するように動作してもよい。前者では、総当たり攻撃または辞書攻撃を鍵が受けやすくなる。
【0081】
さらに、暗号化方法において、1つまたは複数の初期化ベクトルを使用するようにしてもよい。初期化ベクトルによれば、同じ暗号化データの複数のコピーが異なる暗号文出力を生じるため、再生および暗号解読攻撃の両者が防止されることになる。また、これにより、データの暗号化に用いられた特定の初期化ベクトルが不明な場合に盗んだ暗号鍵を用いた場合であっても、攻撃者によるあらゆるデータの解読も防止されることになる。さらに、認証とその後の解読とを行うようにしてもよく、この場合は、ユーザがアプリケーション内で認証された後でしかアプリケーションデータは解読されない。
【0082】
別の特徴は、メモリ内で慎重に扱うべきデータに関連していてもよく、このデータは、必要な場合にのみメモリ(ディスクではない)に保持されていてもよい。たとえば、ログイン資格情報は、ログイン後にメモリから消去されるようになっていてもよく、オブジェクティブCインスタンス変数内の暗号鍵および他のデータは、簡単に参照される可能性があるため格納されない。その代わり、これらのためにメモリが手動で割り当てられるようになっていてもよい。
【0083】
ポリシー規定の非活動期間の経過後にユーザのセッションが終了となる非活動タイムアウトが実装されていてもよい。
【0084】
MDXフレームワーク614からのデータ漏えいは、他の方法で防止するようにしてもよい。たとえば、アプリケーション610がバックグラウンドに移る場合は、所定の(設定可能な)期間後にメモリがクリアされるようになっていてもよい。バックグラウンドに移る際は、アプリケーションの最後に表示されたスクリーンのスナップショットを取得することによって、フォアグラウンドに移すプロセスを迅速化するようにしてもよい。スクリーンショットは、機密データを含む場合があるため、消去されるべきである。
【0085】
別のセキュリティ特徴は、AD(アクティブディレクトリ)422のパスワードを使用せず、OTP(ワンタイムパスワード)420を使用することによって、1つまたは複数のアプリケーションにアクセスすることに関する。場合により、一部のユーザは、自身のADパスワードを把握していない(または、把握することを許可されていない)ため、SecurIDといったハードウェアOTPシステムの使用等により、OTP420を用いて認証を行うようにしてもよい(OTPは、エントラストまたはジェムアルト等の異なるベンダにより提供されたものであってもよい)。場合により、ユーザがユーザIDを用いて認証を行った後は、OTP420によってユーザにテキストが送信される。場合により、これは、オンライン使用の場合にのみ実施するようにしてもよく、プロンプトは単一フィールドである。
【0086】
企業ポリシーによるオフライン使用が許可されたアプリケーション410については、オフライン認証のためにオフラインパスワードが実装されていてもよい。たとえば、企業は、この方法で企業アプリケーションストアにアクセスしてもらいたい場合がある。この場合、受信機404は、カスタムオフラインパスワードの設定をユーザに要求するようにしてもよく、ADパスワードは使用されない。クラウドゲートウェイ406は、標準的なWindows(登録商標) Serverパスワードの複雑性要件による記述等、パスワードの最小長、文字種の組合せ、および有効期限に関するパスワード標準の管理および強制を行うポリシーを提供するようにしてもよい。ただし、これらの要件は、修正されるようになっていてもよい。
【0087】
別の特徴は、2次資格情報としての特定のアプリケーション410のクライアント側証明書の有効化に関する(MDXマイクロVPN特徴を介したPKI保護ウェブリソースへのアクセスを目的とする)。たとえば、@WorkMail等のアプリケーションは、このような証明書を利用する場合がある。この場合は、ActiveSyncプロトコルを用いた証明書に基づく認証がサポートされていてもよく、受信機404からの証明書は、クラウドゲートウェイ406により読み出され、キーチェーンで使用されるようになっていてもよい。各管理対象アプリケーションは、クラウドゲートウェイ406に規定されたラベルによって識別される関連のクライアント証明書を1つ有していてもよい。
【0088】
クラウドゲートウェイ406は、企業専用ウェブサービスと相互作用することにより、クライアント証明書の発行をサポートして、内部PKI保護リソースに対する該当の管理対象アプリケーションの認証を可能にするようにしてもよい。
【0089】
受信機404およびMDXフレームワーク414は、内部PKI保護ネットワークリソースに対する認証のためのクライアント証明書の取得および使用をサポートするように強化されていてもよい。また、さまざまなレベルのセキュリティおよび/または分離の要件への適合等のため、2つ以上の証明書がサポートされていてもよい。証明書は、メール・ブラウザ管理対象アプリケーション、および最終的には任意にラッピングされたアプリケーションにより使用されるようになっていてもよい(ただし、MDXフレームワークがHTTPS要求を仲介するのが合理的な場合、これらのアプリケーションは、ウェブサービス型の通信パターンを使用する)。
【0090】
iOSに関するMDXクライアント証明書のサポートは、各使用期間中、各管理対象アプリケーションのiOSキーチェーンへのPKCS 12 BLOB(バイナリラージオブジェクト)のインポートに依拠していてもよい。MDXクライアント証明書のサポートでは、プライベートメモリ内キーストレージとともにHTTPS実装を使用するようにしてもよい。クライアント証明書は、iOSキーチェーンに絶対に存在することはなく、強力に保護された「オンライン限定の」データ値を潜在的に除き、将来的な可能性はある。
【0091】
また、相互SSLを実装することにより、企業に対するモバイルデバイス402の認証およびその逆を要求することによって、追加のセキュリティを提供するようにしてもよい。また、クラウドゲートウェイ406に対する認証用の仮想スマートカードを実装するようにしてもよい。
【0092】
限定的なケルベロスサポートおよび完全なケルベロスサポートの両者が付加的な特徴であってもよい。完全サポート特徴は、ADパスワードまたは信頼できるクライアント証明書を用いたAD422への完全なケルベロスログインを行い、ケルベロスサービスチケットを取得してHTTP Negotiate認証チャレンジに応答する能力に関する。限定的サポート特徴は、AFEEでの制約付き委任に関し、AFEEはケルベロスプロトコル遷移の呼び出しをサポートするため、HTTP Negotiate認証チャレンジに応答してケルベロスサービスチケット(制約付き委任を条件とする)を取得して使用することができる。このメカニズムは、リバースウェブプロキシ(別名CVPN)モードにおいて、HTTP(HTTPSではない)接続がVPNおよびマイクロVPNモードでプロキシされる場合に機能する。
【0093】
別の特徴は、アプリケーションコンテナのロックおよび消去に関し、これはジェイルブレイクまたはルーティング検出時に自動的に行われ、管理コンソールからのプッシュコマンドとして行われるようになっていてもよく、アプリケーション410が動作していない場合であっても、遠隔消去機能を含んでいてもよい。
【0094】
障害の場合に、複数の異なる場所のうちの1つからユーザがサービスを受けられる企業アプリケーションストアおよびアプリケーションコントローラのマルチサイトアーキテクチャまたは構成がサポートされていてもよい。
【0095】
場合により、管理対象アプリケーション410は、API(たとえば、OpenSSL)を介して証明書および秘密鍵にアクセス可能であってもよい。企業の信頼できる管理対象アプリケーション410は、アプリケーションのクライアント証明書および秘密鍵を用いて、特定の公開鍵動作を実行可能であってもよい。アプリケーションがブラウザのように挙動して証明書アクセスが不要な場合、アプリケーションが「who am I」の証明書を読み取る場合、アプリケーションが証明書を使用してセキュリティ保護されたセッショントークンを構築する場合、およびアプリケーションが秘密鍵を使用して重要なデータ(たとえば、トランザクションログ)のデジタル署名または一時的なデータ暗号化を行う場合等、さまざまな使用のケースが識別され、それに応じた処理がなされるようになっていてもよい。
【0096】
〈企業システムにおけるユーザおよびデバイス認証〉
図5および
図6は、企業システムにおいてクライアントデバイスを認証する特徴および方法のさまざまな実施例を示したフローチャートである。
図5および
図6を参照して後述する特徴および方法は、
図1および
図2に示すさまざまなコンピューティングデバイスおよびシステム等のコンピューティングデバイスまたはデバイスの組み合わせにより実行されるようになっていてもよく、
図3および
図4に示すモビリティ管理システムまたはその他任意の企業システム(すなわち、リソースへのアクセス提供時に認証を要する任意のコンピューティングデバイス)等のさまざまな異なる種類の企業システムにおいて実装されていてもよい。
【0097】
図5および
図6は、リモートクライアントデバイスを介してシステムにアクセスするユーザに対する企業システムによる認証およびリソースアクセス制御に関する。たとえば、モバイルデバイス302または402のユーザは、アクセスゲートウェイ360または406経由で企業システムと通信し、認証資格情報を提供してユーザの身元の妥当性を検証した後、企業システムのさまざまなリソースおよびサービスを要求してアクセスするようにしてもよい。
【0098】
図5および
図6を参照して説明する種々の実施形態および実施例には、企業システムのユーザに対する認証およびリソースアクセス制御のための複数の特徴および潜在的利点を含む場合がある。以下により詳しく説明する通り、特定の実施形態によれば、ユーザが自身のデバイスに認証資格情報を入力する頻度を低くすることができ、場合によっては、ユーザの完全な認証資格情報(たとえば、ユーザ名/パスワード)の代わりに簡単なユーザの秘密を入力するようにしてもよく、これによりデバイスユーザ、特にモバイルデバイスユーザに利便性がもたらされ、時間の節約が可能になる場合がある。
【0099】
また、ユーザ認証およびリソースアクセス制御機能の柔軟性が向上する可能性があるため、特定の認証資格情報および/または認証要求が特定の企業サービスおよびリソースならびに/または特定の期間と関連付けられていてもよい。また、種々の実施形態および実施例において企業システムのセキュリティが強化される場合があり、ユーザパスワード等のセキュリティ保護された資格情報をユーザが入力する頻度が低下し(または不要となり)、クライアントデバイスに格納する必要がないため、クライアントデバイスまたは通信ネットワークへの不正アクセスの場合にユーザおよびシステムが保護される。
【0100】
ここで、
図5には、クライアントデバイス(たとえば、モバイルデバイス302および/または402)と認証デバイス(たとえば、認証サービス358および/またはクラウドゲートウェイ406)とが通信することにより企業システムのユーザを認証(妥当性検証)し、妥当性検証したユーザが企業システムのリソースおよびサービスにアクセス可能となる方法の一例を示している。
【0101】
ステップ501においては、モバイルデバイス302または402等のクライアントデバイスが第1認証要求を開始する。第1認証要求は、たとえばコンソールアプリケーション、モバイルアプリケーション、またはウェブブラウザもしくは他のウェブベースのアプリケーション等、クライアントデバイス302上で動作するセキュアまたはセキュリティ保護されていないアプリケーションを用いたクライアントデバイス302による企業システムへのログイン試行であってもよい。クライアントデバイス302のユーザは、当該クライアントデバイス302の入力インターフェースおよび/または入力デバイスを用いて認証資格情報を入力するようにしてもよい。たとえば、ユーザは、キーボードまたはタッチスクリーンを用いることにより、安全な暗号化および/または企業システムのアクセスゲートウェイ360への送信が可能なユーザ識別子およびパスワードをクライアントデバイス302に入力するようにしてもよい。アクセスゲートウェイ360は、セキュリティ保護されたサーバであってもよく、(
図3および
図4に示すように)1つまたは複数の独立したコンピューティングデバイスとして実装されていてもよいし、あるいはリソースまたはサービスを提供するサーバまたは他のコンピューティングデバイス(たとえば、電子メールサーバ、ウェブアプリケーションサーバ等)内に実装されていてもよい。また、アクセスゲートウェイ360は、パスワードベース、トークンベース(たとえば、スマートカード、磁気ストリップカード)、バイトメトリクス(たとえば、指紋、声紋、虹彩、または網膜スキャン)等の種々の付加的な認証技術をサポートしていてもよい。ステップ501の認証は、単因性または多因性であってもよく、複数の認証ステップ(たとえば、チャレンジ質問)および相互認証技術を含んでいてもよい。
【0102】
ステップ502において、認証デバイス358は、クライアントデバイス302から認証要求を受信して、ユーザの認証資格情報の妥当性を検証することにより、ユーザが企業システムの1つまたは複数のリソースまたはサービスにアクセスすることを許可された正当なシステムユーザであることを確認する。この例において、認証デバイス358は、認証サービス358が実行されるコンピューティングデバイスを表していてもよい。
【0103】
図3に示すように、アクセスゲートウェイ360は、モバイルデバイス302からログイン要求を受信するとともに、ユーザの認証資格情報を検証してユーザが権利付与された企業リソースまたはサービスセットへのユーザのアクセスを許可する認証サービス358にログイン要求を転送するようにしてもよい。認証サービス358は、1つまたは複数の専用コンピューティングデバイス358、他の企業サービス308および/またはリソース304をサポートする共有コンピューティングデバイス358に実装されていてもよいし、アクセスゲートウェイ360内に実装されていてもよい。これらの例において、認証デバイス358は、ユーザの資格情報の正確性/有効性を判定可能なアクティブディレクトリ422等の認証サービスに対してユーザが入力した資格情報を提示することにより、ユーザの妥当性検証(すなわち、認証)を行うように構成されていてもよい。
【0104】
ステップ502においてユーザの資格情報の妥当性検証に成功した後、ユーザは、企業システムにログインするようにしてもよく、また、企業システム内のリソース304またはサービス308へのアクセスが許可されるようになっていてもよい。ステップ502におけるユーザの妥当性検証は、企業システムの設計に応じて、任意選択であってもよい。また、特定の例において、ユーザには、一部のリソース304およびサービス308へのアクセスの権利が付与されていてもよいが、企業システムのさまざまなリソース304およびサービス308に関するユーザの許可によってはそれ以外へのアクセスの権利は付与されない場合がある。
【0105】
この実施例において、ステップ502でのユーザの妥当性検証の後、ユーザは、ステップ503において、将来的なリソースアクセス要求に用いられる「ユーザの秘密」のクライアントデバイス302への入力を指示されるようになっていてもよい。他の実施例において、ユーザは、ステップ501の第1認証要求およびステップ502の妥当性検証の前、後、または最中にユーザの秘密の入力を指示されるようになっていてもよい。「ユーザの秘密」は、個人識別番号(PIN)、タッチスクリーンジェスチャ、バイオメトリックデータ、発話フレーズもしくは視覚映像、またはユーザがクライアントデバイス302に入力した他のデータであってもよい。
【0106】
ステップ503において、ユーザは、入力前にユーザの秘密の種類(たとえば、テキスト、PIN、ジェスチャ、パスワード、発話フレーズ、バイオメトリック等)を選択可能であってもよい。他の実施例において、ユーザの秘密の種類は、クライアントデバイス302の物理的機能に基づいて自動的に選択されるようになっていてもよく、ユーザは、選択された種類のユーザの秘密の入力を指示されるようになっていてもよい。たとえば、クライアントデバイス302がタッチスクリーンを備えた携帯電話、PDA、またはタブレットコンピュータである場合、ユーザは、ユーザの秘密としてタッチスクリーンジェスチャの入力を指示されるようになっていてもよい。クライアントデバイス302がマイクおよび音声処理ソフトウェアを具備する場合、ユーザは、ユーザの秘密として単語またはフレーズの発話を指示されるようになっていてもよい。同様に、クライアントデバイス302がカメラを具備する場合、ユーザの秘密は、ユーザの顔、ユーザの住居もしくはオフィスにある物品、またはユーザが選択した別の物体の画像であってもよい。ユーザの秘密の他の例としては、キーボードに入力されたテキストパスワード、キーボードもしくは数字キーパッドに入力されたPIN、および/またはさまざまなバイオメトリックデータ(たとえば、指紋、虹彩スキャン等)もしくは視覚映像から導出されたもの等が挙げられる。
【0107】
いくつかの実施例において、ユーザの秘密は、企業システムへのログインにユーザが必要とする認証資格情報(たとえば、ユーザ名およびパスワード)とは異なるものおよび/または前記資格情報より簡単なものであってもよい。多くのシステムでは、最小長、複雑性、および/または予測不可能性を有するパスワード等の強力なユーザパスワードを必要とする。このようなパスワードは、特に従来のキーボードを持たない携帯電話、PDA、およびタブレットコンピュータ等のデバイスにおいて、ユーザの入力が面倒となる可能性がある。これとは対照的に、いくつかの実施形態において、ユーザの秘密は、パスワードよりも短くて簡単であることが認められ、クライアントデバイス302への入力が迅速に行えるものであってもよい。また、ステップ501において入力したユーザのパスワードと異なるユーザの秘密をユーザが選択することが任意選択であってもよいし、必要でさえあってもよい。したがって、ユーザの秘密が(たとえば、クライアントデバイス302におけるマルウェアにより)不正アクセスされた場合であっても、ユーザのパスワードを保護し続けるとともに、企業システムのセキュリティ全体を強化可能である。
【0108】
ステップ503において、クライアントデバイス302内のソフトウェアおよび/または企業システムのソフトウェアは、クライアントデバイス302のユーザにユーザの秘密の入力を指示する機能を開始するようにしてもよい。たとえば、認証デバイス358は、ステップ502におけるユーザの資格情報の妥当性検証の成功に応答して、ユーザにシークレットの入力を指示する機能を開始するようにしてもよい。この実施例において、認証デバイス358は、以前にユーザの秘密がクライアントデバイス302に設定されたか否かをまず判定し、設定されていない場合は、ユーザにユーザの秘密の入力を指示するようにしてもよい。また、クライアントデバイス302は、ユーザにユーザの秘密の入力を指示する機能を開始するようにしてもよい。たとえば、受信機アプリケーション404(または、他のクライアントベースのアプリケーション410)は、企業システムに対する将来的なリソースアクセス要求を簡素化するためにユーザがユーザの秘密を入力することを提案するようにしてもよい。受信機404または他のクライアントアプリケーション410は、ユーザにユーザの秘密の入力を指示する前に、ユーザが以前にユーザの秘密を入力したか否かの判定および/またはクライアントデバイス302が共有デバイスではないことのユーザへの確認をまず行うようにしてもよい。いくつかの実施例において、ユーザの秘密は、第1認証要求と同時に受信および送信が行われるようになっていてもよい。したがって、ステップ501およびステップ503が単一のステップに組み合わされ、同様に、ステップ502およびステップ504が単一のステップに組み合わされていてもよい。また、以下により詳しく論じる通り、いくつかの実施形態において、ユーザの秘密は任意選択としてサポートの必要がなくてもよく、このため、いくつかの実施例においては、ステップ503およびステップ504を実行する必要がない。
【0109】
ステップ504において、企業システムの認証デバイス358は、クライアントデバイス302からユーザの秘密を受信するようにしてもよく、また、クライアントデバイス302からの将来的なリソースアクセス要求に用いられる妥当性検証データおよびアクセストークンを作成するようにしてもよい。いくつかの例において、クライアントデバイス302は、認証サービス358の呼び出しを開始し、ステップ503において入力されたユーザの秘密を認証サービスに挿入するようにしてもよい。また、クライアントデバイス302は、セッションクッキーまたはトークン等、クライアントデバイス302が現時点で企業システムにログインしていることを確認できる付加的なデータを認証サービス358に挿入するようにしてもよい。
【0110】
そして、認証デバイス358は、企業システムが(たとえば、認証デバイス358、アクセスゲートウェイ360、または企業システムのどこかに)格納する妥当性検証データを作成するようにしてもよく、また、ステップ505においてクライアントデバイス302に送信するアクセストークンを作成するようにしてもよい。後述の通り、アクセストークンおよび妥当性検証データは、クライアントデバイス302から企業システムへの将来的な要求に用いるようにしてもよい。いくつかの実施形態において、アクセストークンは、認証デバイス358による生成または鍵生成器からの受信に基づく暗号化鍵(たとえば、暗号または解読鍵)を含んでいてもよく、妥当性検証データは、暗号化鍵を用いてユーザおよび/もしくはクライアントデバイスに対応する鍵識別子、ユーザの現在のパスワードもしくは他の認証資格情報、ならびにステップ503において入力されたユーザの秘密のうちの1つまたは複数を暗号化する認証デバイス358により作成されるようになっていてもよい。鍵識別子は、ユーザ識別子(たとえば、ユーザ名またはログイン)であってもよいし、正しい妥当性検証データの検索に用いられるテーブルインデックス等の独立した識別子であってもよい。
【0111】
図7Aには、ステップ504の認証デバイス358による妥当性検証データ710およびアクセストークン705の作成の一実施例を示している。この実施例において、認証デバイスは、鍵識別子701(たとえば、ユーザの妥当性検証データに対応するユーザ名またはテーブルインデックス)、ユーザのパスワード702、およびステップ503においてユーザが入力したユーザの秘密703を収集する。ユーザのパスワード702は、パスワード、トークン(たとえば、セキュリティアサーションマークアップ言語(SAML)トークン)、またはユーザ資格情報データを含んでいてもよい。認証デバイス358は、当該認証デバイス358による生成または企業システム内の暗号鍵生成器からの受信が可能な暗号化鍵705を用いてこのデータを暗号化する。
【0112】
得られる暗号化データが妥当性検証データ710であり、ステップ505において企業システム内に格納されていてもよく、また、ユーザからの将来的な要求の認証に用いられるようになっていてもよい。また、この実施例における認証デバイス358は、妥当性検証データ710の暗号化に用いられる鍵識別子701および暗号化鍵705を含むアクセストークン715を作成する。ステップ505において、アクセストークン715は、認証デバイス358によってクライアントデバイス302に送信されるようになっていてもよい。
【0113】
図7Aに示すように、妥当性検証データ710は、鍵識別子701、パスワード702、およびユーザの秘密703の暗号化によって生成されるようになっていてもよい。ただし、他の実施例においては、3つのデータすべてを使用する必要はなく、妥当性検証データ710は、これらデータのうちの1つまたは2つのみを暗号化することにより生成されるようになっていてもよい。また、妥当性検証データ710は、暗号化データおよび非暗号化データの組み合わせを含んでいてもよいし、いくつかの実施例においては、全体が非暗号化データとして格納されていてもよい。たとえば、いくつかの実施形態において、妥当性検証データ710は、暗号化パスワード702を非暗号化鍵識別子701に付加することにより生成されるようになっていてもよい。
【0114】
同様に、アクセストークン715は、
図7Aに示すように、暗号化鍵705およびユーザ鍵701を含んでいてもよいし、あるいは暗号化鍵705のみを含んでいてもよい。また、アクセストークン715は、当該アクセストークン715に関連する複数のユーザを識別するデータ、当該アクセストークン715に関連する1つまたは複数のクライアントアプリケーション、当該アクセストークン715に関連する企業リソースおよび/もしくはサービスセット、ならびに当該アクセストークン715に関連するアクセス期間または有効期限等の付加的な情報を含んでいてもよい。
【0115】
ステップ506において、クライアントデバイス302は、ステップ505において認証デバイス358が送信したアクセストークン715を受信して格納する。上述の通り、アクセストークン715は、ユーザのパスワード702またはシークレット703の暗号化または非暗号化コピーを含むことなく、暗号/解読鍵705を含んでいてもよい。このため、アクセストークン715は、クライアントデバイス302内のセキュアまたはセキュリティ保護されていないメモリに格納されていてもよい。
【0116】
ステップ507において、ユーザは、企業システムに対する第2認証要求を開始する。第1認証要求と同様に、第2認証要求は、企業システムに対するログイン試行ならびに/または企業システムのリソース304もしくはサービス308へのアクセス要求であってもよい。第2認証要求は、第1認証要求の実行と同じクライアントアプリケーションにより行われるようになっていてもよいし、異なるクライアントアプリケーションにより行われるようになっていてもよい。たとえば、第1認証要求は、受信機アプリケーション404を用いて行われるログイン試行であってもよく、第2認証要求は、別個のクライアントアプリケーション401(たとえば、電子メールクライアント410、ウェブブラウザ410等)により行われて、特定の企業リソースまたはサービスにアクセスするようになっていてもよい。また、第2認証要求は、第1認証要求の直後に(たとえば、同じネットワーク通信セッション内で)行われるようになっていてもよいし、第1認証要求のしばらく後に(たとえば、任意の過去セッションのクッキーまたはトークンの期限切れ後に)行われるようになっていてもよい。
【0117】
第2認証要求の場合、クライアントデバイス302は、ユーザのパスワード(または、他の認証資格情報)ではなくユーザの秘密の入力をユーザに指示するようにしてもよい。上述の通り、ユーザの秘密は、ユーザのパスワードより短くて簡単であってもよいため、ユーザが容易に思い出してクライアントデバイス302に迅速に入力可能である。また、ユーザの秘密は、従来のキーボードを介して入力されるテキスト文字列である必要はなく、クライアントデバイス302の機能およびユーザの好み(たとえば、タッチスクリーンジェスチャ、PIN、発話フレーズ、またはバイオメトリックデータ等)に応じて、別の入力インターフェースにより入力されるようになっていてもよい。
【0118】
ステップ508において、クライアントデバイス302は、デバイスメモリに以前格納されたアクセストークンを読み出し、当該アクセストークンおよびステップ507においてユーザが入力したユーザの秘密と併せて、第2認証要求を認証デバイス358に送信する。ユーザの秘密を使用しない実施形態の場合、第2認証要求は、デバイスメモリから読み出されたアクセストークンを含むものの、ユーザの秘密は含んでいなくてもよい。したがって、ステップ507は、たとえばクライアントアプリケーション404または410の起動等、何らかのユーザ操作を伴う可能性があるものの、特定の実施形態においては、ユーザに対するユーザの秘密の入力の指示を伴う必要がない。このような例において、アクセストークンは、ユーザによる明確な操作なく、ユーザが把握していなくても、読み出されて認証デバイス358に提出されるようになっていてもよい。
【0119】
ステップ509において、認証デバイス358は、クライアントデバイス302から第2認証要求を受信する。認証デバイス358は、第2認証要求の受信後、ステップ504において格納済みのクライアントデバイス302の対応する妥当性検証データを読み出すようにしてもよい。たとえば、第2認証要求が鍵識別子701を含む場合、認証デバイス358は、鍵識別子701を用いることにより、ユーザおよび/またはクライアントデバイス302に対応する妥当性検証データ710を探索して読み出すようにしてもよい。鍵識別子701は、特定の企業ユーザ/ログイン、特定のクライアントデバイス302、またはユーザおよびデバイスの組み合わせと関連付けられていてもよい。たとえば、企業システムの単一のユーザが複数のクライアントデバイス(たとえば、デスクトップコンピュータ、ラップトップコンピュータ、および1つまたは複数のモバイルデバイス)を有する場合、各クライアントデバイスは、独立した鍵識別子701および/または独立したアクセストークン715を有していてもよい。
【0120】
また、ユーザの秘密の入力型がクライアントデバイスの機能(たとえば、タッチスクリーンジェスチャ、音声認識、バイオメトリック入力)に基づく場合があるため、一部のユーザは、異なるデバイスに対して異なるユーザの秘密を確立するのが好ましい場合がある。これらの実施例において、認証デバイス358は、鍵識別子701および/またはユーザの秘密703を用いることにより、第2認証要求を受信したユーザおよび/またはクライアントデバイス302に対応する適当な妥当性検証データ710を探索して読み出すようにしてもよい。
【0121】
ステップ510において、認証デバイスは、第2認証要求で受信したアクセストークン715を用いて妥当性検証データ710の解読を試みる。上述の通り、妥当性検証データ710の解読に利用可能な暗号化鍵705は、ステップ504において、アクセストークン715内でクライアントデバイス302に送信済みである。このため、ステップ508において同じアクセストークン715がクライアントデバイスから返された場合、認証デバイス358は、鍵705を抽出して、妥当性検証データの解読を成功させるようにしてもよい。
【0122】
図7Bには、クライアントデバイス302から受信したユーザの秘密703およびアクセストークン715を用いた認証デバイス358による認証要求の妥当性検証の一実施例を示している。この実施例において、認証デバイス358は、クライアントデバイス302から第2認証要求を受信した後、鍵識別子701を用いてユーザを識別するとともに、企業システムのメモリから対応する適当な妥当性検証データ710を読み出すようにしてもよい。そして、認証デバイス358は、認証要求から鍵705を抽出し、この鍵705を用いて妥当性検証データ710を解読するようにしてもよい。
【0123】
解読に成功した場合、認証デバイス358は、解読した妥当性検証データからのユーザの秘密703と、要求とともにクライアントデバイス302から受信したユーザの秘密703とを比較するようにしてもよい。ユーザの秘密が一致する場合、認証デバイス358は、ユーザの秘密703およびアクセストークン715が有効であり、第2認証要求について、ステップ502において妥当性検証に成功した同じユーザからの有効な要求であると結論付けるようにしてもよい。ユーザの秘密703を使用しない実施形態において、認証デバイス358は、ユーザの秘密703の妥当性検証を行うことなく、アクセストークン715を用いた解読の妥当性検証に基づいて、第2認証要求が有効であると結論付けるようにしてもよい。
【0124】
図7Aおよび
図7Bに示す例において、ユーザの秘密703は、妥当性検証データ710に格納されている。ただし、他の実施例において、ユーザの秘密は、妥当性検証データ710に格納されている必要はない。たとえば、妥当性検証データ710を用いてアクセストークン715(または、アクセストークン715の一部)を構成するようにしてもよい。
【0125】
特定の実施形態においては、鍵識別子701、ユーザ識別子、ならびに/またはユーザパスワードもしくはトークン702を暗号化鍵705で暗号化することにより、妥当性検証データ710を作成するようにしてもよい。そして、アクセストークン715は、鍵識別子701と、鍵705およびユーザの秘密703で行われる混合関数(たとえば、排他的OR機能)の出力とを用いて作成するようにしてもよい。このような例において、認証要求の妥当性検証を行う場合(ステップ510および
図7Bに対応)、認証デバイス358は、企業システム内のストレージからユーザの秘密を読み出すようにしてもよく、また、このユーザの秘密を用いて、暗号化鍵705を返すことができる逆混合関数をアクセストークン715に行うようにしてもよい。そして、認証デバイス358は、鍵識別子701を用いることにより、ストレージから対応する妥当性検証データ710を読み出すようにしてもよく、また、鍵705を用いて妥当性検証データ710を解読することにより、ユーザ識別子ならびに/またはユーザパスワードもしくはトークン702を提供するようにしてもよい。
【0126】
クライアントデバイス302から受信したユーザの秘密703およびアクセストークン715が有効であっても、認証デバイス358は、ユーザのパスワード702が変更または期限切れとなっている場合、要求されたリソースへのユーザのアクセスを許可しない場合がある。たとえば、クライアントデバイス302から受信したユーザの秘密703およびアクセストークン715の有効性を確認した後、認証デバイス358は、ドメインコントローラ、アクティブディレクトリ、または他のサービスと通信して、妥当性検証データ710におけるユーザのパスワード702が依然として最新かつ有効であることを確認するように構成されていてもよい。
【0127】
ユーザのパスワード702が期限切れとなっている場合、認証デバイス358は、企業システムに対する新たなパスワードの入力をユーザに指示する機能を開始した後、システム内のユーザのパスワードを更新するとともに、新たなパスワード702で新たな妥当性検証データ710を作成するようにしてもよい。また、認証デバイス358は、ユーザのシステムパスワード702を変更した後、ユーザに新たなユーザの秘密703の作成を求めるようにしてもよいし、あるいはユーザが同じユーザの秘密703を保持できるようにしてもよい。
【0128】
また、認証デバイス358は、たとえばユーザが最近、異なるクライアントデバイスを用いて企業システムにログインし、自身のパスワード702を変更したため、ユーザのパスワード702がもはや有効ではないと判定するようにしてもよい。この場合、パスワード702が有効でないことではなく、ユーザの秘密703およびアクセストークン715が有効であることを確認した後、認証デバイス358は、ユーザの現在のパスワードによるクライアントデバイス302上での再認証をユーザに求めるようにしてもよい。認証デバイス358は、ユーザの再認証後、新たなパスワード702で新たな妥当性検証データ710を作成するようにしてもよい。任意選択として、認証デバイス358は、ユーザに新たなシークレット703の入力を求めるようにしてもよく、また、新たなアクセストークン715を作成してクライアントデバイス302に送信するようにしてもよい。
【0129】
上述の通り、ユーザの秘密は、いくつかの実施形態において任意選択であってもよい。このような場合、認証デバイス358が暗号化した妥当性検証データは、ステップ502において認証したユーザの鍵識別子および/またはパスワードのみを含んでいてもよい。このように、ユーザは、第2認証要求の送信前に、ステップ503またはステップ507においてユーザの秘密を入力する必要がない。ユーザの秘密を使用しない場合、アクセストークンは、認証デバイス358により自動的に作成された後、第1認証要求の成功後、クライアントデバイス302に送信されるようになっていてもよい。そして、アクセストークンは、クライアントデバイス302に格納され、ユーザによる明確な操作なく(場合により、アクセストークンが使用されていることをユーザが把握することもなく)、後続の認証要求において読み出され、企業システムに送り返されるようになっていてもよい。
【0130】
また、特定の実施形態において、ユーザの秘密は、(たとえば、ステップ503および/またはステップ507において)ユーザが入力するようになっていてもよいが、要求されたリソースおよびサービスに応じて、認証デバイス358が使用してもよいし、使用しなくてもよい。ステップ503においては、ユーザがユーザの秘密を確立するようにしてもよいが、認証デバイス358は、ステップ507においてユーザの秘密の再入力をユーザに求めることにより、特定のリソースへのアクセスおよび/または特定の操作の実行のみを行い、それ以外には行わないようにする場合がある。たとえば、ユーザが電子メールを読んだり特定のセキュリティ保護された文書にアクセスしたりするのにユーザの秘密を必要としない場合があるものの、電子メールの送信またはセキュリティ保護された文書の修正には必要となる場合がある。
【0131】
場合によって、アクセストークンおよび/またはユーザの秘密は、企業システム内に格納可能な関連する期間または期限を有していてもよい。このような場合、認証デバイス358は、アクセストークンを含む認証要求を受信した後に、当該関連する期間または期限を読み出すようにしてもよい。アクセストークンが有効で期限切れとなっていない場合、ユーザは、企業システムの要求したリソースまたはサービスへのアクセスを許可されていてもよい。ただし、クライアントデバイス302から受信したアクセストークンが期限切れまたは無効となっている場合、認証デバイス358は、ユーザの完全な認証資格情報(たとえば、ユーザ名およびパスワード)の再入力をユーザに求めるようにしてもよく、その際、アクセストークンが追加期間にわたってリセットされるようになっていてもよい。
【0132】
いくつかの実施形態において、ユーザは、以前のアクセストークンの期限切れ後、新たな異なるユーザの秘密をクライアントデバイス302に入力する必要があってもよい。また、アクセストークンは、認証デバイス358および/またはクライアントデバイス302によって明確に無効化されるようになっていてもよい。たとえば、アクセストークンは、関連する妥当性検証データのエントリの削除(または無効化マーキング)によって、認証デバイス358により無効化されるようになっていてもよい。また、企業システムには、このアクセス方法を許可しないユーザまたはデバイスの一覧が格納されていてもよい。
【0133】
また、特定のアクセストークンおよび/またはユーザの秘密は、企業システム内の特定のリソースまたはサービスと関連付けられていてもよい。たとえば、クライアントデバイス302に格納されたアクセストークンは、第1企業リソース304へのアクセスをユーザが要求した場合に妥当性検証が成功するようになっていてもよいが、異なる企業リソース304へのアクセスをユーザが要求した場合には、同じアクセストークンが拒絶されるようになっていてもよい。この実施例において、認証デバイス358は、各アクセストークン/妥当性検証データ対に対応する企業リソースまたはサービスの一覧を格納するようにしてもよい。認証デバイス358は、アクセストークンによる企業リソースまたはサービスの要求を受信した場合、当該アクセストークンに関連する企業リソースの一覧を読み出すようにしてもよく、また、これに応じて要求を許可または拒否するようにしてもよい。
【0134】
このため、いくつかの実施例においては、単一のクライアントデバイス302に対して複数の異なるアクセストークンが作成され、格納されるようになっていてもよい。たとえば、特定の企業リソース304またはサービス308の要求に対して第1アクセストークンが有効であり、他の企業リソース304またはサービス308の要求に対して第2アクセストークンが有効であってもよく、以下同様である。
【0135】
この実施例において、クライアントアプリケーション(たとえば、受信機404またはアプリケーション410)は、要求リソースに応じて、クライアントデバイス302のメモリから正しいアクセストークンを読み出して送信するようにしてもよい。ウェブブラウザ410または電子メールクライアント410等の一部のクライアントアプリケーションが特定の企業リソースと関連付けられている場合があることから、これらのクライアントアプリケーション410は、すべての要求に対して特定のアクセストークンを読み出し、送信するように構成されていてもよい。その他の場合、クライアントアプリケーションは、ユーザが要求している特定のリソース304またはサービス308を識別するようにしてもよく、その後、デバイスメモリから正しいアクセストークンが読み出されるようになっていてもよい。さらに、単一のクライアントデバイス(たとえば、デスクトップコンピュータまたはモバイルデバイス)を複数のユーザで共有している場合は、クライアントデバイス302のメモリに複数のアクセストークン(または、複数のアクセストークンセット)が格納されていてもよい。これらの例において、クライアントアプリケーション(たとえば、受信機404またはアプリケーション410)は、デバイスの現在のユーザに関連するアクセストークンを読み出して送信するように構成されていてもよい。
【0136】
ここで、
図6には、クライアントデバイス(たとえば、モバイルデバイス302および/または402)、アクセスゲートウェイ(たとえば、アクセスゲートウェイ360および/またはクラウドゲートウェイ406)、認証サービス358、および企業リソースまたはサービス(たとえば、リソース304および/またはサービス308もしくは408)が相互作用することにより、第2認証資格情報セットを受け入れる企業リソース304またはサービス308に対して、第1認証資格情報セットを有するユーザの妥当性を検証可能な方法の一例を示している。
【0137】
ステップ601において、クライアントデバイス302のユーザは、第1認証資格情報セットを含む企業システムに対するログイン要求を開始する。ステップ601のログイン要求は、
図5において上述した第1認証要求(ステップ501)と類似であってもよい。上述の通り、ログイン要求は、クライアントデバイス302から、受信機404または他のアプリケーション410等のクライアントアプリケーション(たとえば、電子メールクライアント、ウェブブラウザ等)を介して送信されるようになっていてもよい。ステップ601のログイン要求は、たとえばユーザ名およびパスワード、スマートカードからのデータ、バイオメトリックデータ、または他の種類ユーザ認証データ等の第1認証資格情報セットを含んでいてもよい。また、第1認証資格情報セットは、たとえばユーザの秘密703および/またはアクセストークン715を含む、
図5のステップ508において送信された認証資格情報と類似であってもよい。
【0138】
ステップ602においては、アクセスゲートウェイ360によりログイン要求が受信されるようになっていてもよい。アクセスゲートウェイ360は、この要求がクライアントデバイス302からの新たな要求であると判定するようにしてもよく、たとえば、この要求が企業リソース304またはサービス308との既存の通信セッションの一部ではないと判定するようにしてもよい。アクセスゲートウェイ360は、この要求がログイン要求であると判定した後、ログイン要求および認証資格情報を認証サービス358に対してルーティングすることにより、資格情報の妥当性を検証するとともに、企業システムにログインする権利がユーザに付与されているか否かを判定するようにしてもよい。この実施例の認証は、アクセスゲートウェイ360を介して行われるようになっていてもよいが、他の実施例においては、認証がゲートウェイ360を介して行われる必要はない。
【0139】
ステップ603において、認証サービス358は、第1認証資格情報セットを受信して妥当性の検証を行うことにより、ユーザが正当なユーザであって企業システムにログインする権利を付与されていることを確認する。ステップ603の妥当性検証は、
図5において上述した第1認証要求(ステップ502)の妥当性検証と類似であってもよい。ステップ603においてユーザの妥当性を検証するため、認証サービス358は、アクティブディレクトリまたはドメインコントローラ等、企業システム内のセキュリティ保護されたデータストレージまたはサービスにアクセスすることにより、第1ユーザ認証資格情報セットを検証するように構成されていてもよい。ステップ603において第1資格情報セットによるユーザの妥当性検証に成功した後、ユーザは、企業システムにログインするようにしてもよく、また、企業システムのさまざまなリソース304またはサービス308へのアクセスが許可されるようになっていてもよい。
【0140】
また、ステップ603において第1資格情報セットによるユーザの妥当性検証を行った後、認証サービス358は、ステップ604において、同じユーザの1つまたは複数の付加的な資格情報セットを読み出すように構成されていてもよい。企業システムにおいては、異なる企業リソース304およびサービス308に対応する複数の異なる認証資格情報を単一のユーザが有していてもよい。たとえば、ユーザは、企業システムにログインするための第1資格情報セット(たとえば、ユーザ名およびパスワード)、ユーザの電子メールサーバ304にログインするための第2資格情報セット、ウェブアプリケーションサーバ304上のウェブベースのアプリケーションにアクセスするための第3資格情報セット、ファイル共有サービス368を呼び出すための第4資格情報セットを有していてもよく、以下同様である。
【0141】
このように、ステップ604において、認証サービス358は、アクティブディレクトリ、ドメインコントローラサービス、および/またはユーザ資格情報データベース等のさまざまな企業サービスおよびリソースにアクセスするようにしてもよい。また、認証サービス358は、個々の企業サービス308およびリソース304(たとえば、Exchange、Sharepoint、PKIリソース、ケルベロスリソース、証明書発行等)との通信を開始することにより、これら個々のサービスおよびリソースに対する同じユーザの認証資格情報を読み出すようにしてもよい。
【0142】
ステップ604においてユーザの付加的な資格情報セットを読み出した後、認証サービス358は、当該付加的な資格情報セットをアクセスゲートウェイ360に送信するようにしてもよい。ステップ605において、アクセスゲートウェイ360は、ユーザの付加的な資格情報セットを受信し、ゲートウェイ360内のメモリまたはゲートウェイ360がアクセス可能な他のストレージに格納するようにしてもよい。いくつかの実施形態において、ユーザの付加的な資格情報セットは、ゲートウェイ360内での安全な格納および/またはゲートウェイ360外部での格納によって、ゲートウェイ360への不正アクセスの場合に企業システムのセキュリティが別途提供されるようになっていてもよい。
【0143】
図6に示す例において、ステップ604およびステップ605は、ステップ603におけるユーザの妥当性検証の成功に応答して実行されるようになっていてもよい。他の例において、ステップ604およびステップ605における付加的な資格情報の読み出しおよび格納は、しばらく経ってから実行されるようになっていてもよい。たとえば、ステップ404およびステップ405は、アクセスゲートウェイ360による認証サーバ358への2次資格情報の要求に応答して、ステップ606の後に実行されるようになっていてもよい。
【0144】
また、605において格納された付加的なユーザ資格情報セットは、たとえば
図5を参照して上述した妥当性検証データ710の形態に暗号化されていてもよい。このような例においては、異なるユーザの認証資格情報セットが異なる暗号化鍵705を用いて暗号化されるようになっていてもよい。上述の通り、これらの異なる鍵705は、アクセストークン715において、異なるユーザのクライアントデバイス302に送信されるようになっていてもよい。したがって、ゲートウェイ360に格納された認証資格情報へのアクセスによりユーザの鍵705が悪意ある者の不正アクセスを受けている場合であって、この悪意ある者は、当該ユーザのパスワード/資格情報のみを解読でき、異なる鍵705で暗号化された他のユーザのパスワード/資格情報の解読はできない。
【0145】
ステップ606において、クライアントデバイス302のユーザは、ステップ601におけるログイン要求に用いたのと同じ第1資格情報セットを用いて、企業システム内の企業リソース304またはサービス308に対する要求を開始する。ステップ606の要求は、別のログイン要求ならびに/またはたとえば電子メールサーバ304、ファイル共有サーバ304、ウェブアプリケーションサーバサーバ304、デバイスマネージャサービス324、ファイル供給サービス368、ソーシャル統合サービス372、または企業システムが提供するその他任意のリソースもしくはサービス等、企業システムのリソース304またはサービス308からのデータまたはサービスに対する要求であってもよい。
【0146】
ステップ607において、アクセスゲートウェイ360は、ユーザの第1資格情報セットを受信して妥当性の検証を行った後、適当なリソース304またはサービス308への要求のルーティングの前に、異なる第2資格情報セットを要求に差し込むようにしてもよい。アクセスゲートウェイ360は、クライアントデバイス302から要求を受信した後、ユーザの第1資格情報セットの妥当性を検証することによって、ユーザが要求したリソース304またはサービス308にアクセスすることを許可された正当なシステムユーザであることを確認するようにしてもよい。
【0147】
ステップ607におけるユーザの妥当性検証は、ステップ603、ステップ502、および/またはステップ510のいずれかにおいて上述した認証サービス358による妥当性検証と類似であってもよい。たとえば、アクセスゲートウェイ360は、ステップ605において当該ゲートウェイ360に格納したユーザ資格情報またはアクティブディレクトリもしくはドメインコントローラ等の企業システム内のセキュリティ保護されたデータストレージもしくはサービス内のユーザ資格情報との比較によって、ユーザの認証資格情報を検証するようにしてもよい。
【0148】
その他の場合、ステップ607におけるユーザの妥当性検証は、第1資格情報の妥当性検証によってではなく、トークン/クッキーを用いて行われるようになっていてもよい。たとえば、ステップ601〜ステップ603におけるユーザ資格情報の最初の妥当性検証の後、アクセスゲートウェイ360は、セッショントークンまたはクッキーをクライアントデバイス302に返すようにしてもよい。
【0149】
ステップ606において、クライアントデバイス302は、第1資格情報の代わりにセッショントークンまたはクッキーを使用するようにしてもよく、ステップ607において、アクセスゲートウェイは、受信したトークンまたはクッキーが当該ゲートウェイ360の発行したものであり、依然として最新であることを確認するようにしてもよい。
【0150】
要求されたリソース304またはサービス308にアクセスする権利がユーザに付与されていることを検証した後、アクセスゲートウェイ360は、ステップ606においてユーザが入力した第1認証資格情報セットを要求されたリソース304またはサービス308が受け入れるか否かを判定する。上述の通り、企業システムの異なるリソース304およびサービス308に対する複数の異なる認証資格情報を単一のユーザが有していてもよい。ユーザの第1認証資格情報セットを要求されたリソース304またはサービス308が受け入れない場合、アクセスゲートウェイ360は、適当な認証資格情報セットを読み出して、要求に差し込むようにしてもよい。
【0151】
たとえば、ユーザの第1認証資格情報セットがユーザの企業システムユーザ名およびパスワードまたはアクセストークン715および過去入力のユーザの秘密703である場合、要求されたリソース304またはサービス308(たとえば、電子メールサーバ、ウェブアプリケーションサーバ等)は、これらのユーザ認証資格情報を受け入れない場合がある。このため、ステップ607において、アクセスゲートウェイ360は、ステップ605において格納した認証資格情報から第2有効ユーザ資格情報セットを読み出すようにしてもよく、また、リソース304またはサービス308への要求の転送の前に、第2資格情報セットを要求に差し込むようにしてもよい。
【0152】
ステップ608において、要求された企業リソース304またはサービス308は、アクセスゲートウェイ360から要求を受信して妥当性を検証する。アクセスゲートウェイ360が第2有効ユーザ資格情報セットを要求に差し込んだことにより、リソース304またはサービス308は、クライアントデバイス302のユーザが資格情報を直接入力したかのように、第2資格情報セットを用いたユーザの検証に成功することができる。ステップ608の妥当性検証には、複数の認証ステップおよび/または1つもしくは複数のチャレンジ応答検証を伴っていてもよい。ただし、クライアントデバイス302からの要求およびユーザがリソース304またはサービス308にアクセスするための適正な認証資格情報をアクセスゲートウェイ360が有していることから、ゲートウェイ360は、ユーザまたはクライアントデバイス302の関与なく、すべての認証チャレンジを扱うようにしてもよい。
【0153】
リソース304またはサービス308は、ステップ608において第2資格情報セットによりユーザの妥当性を検証した後、ステップ609において、要求されたデータおよび/またはサービスを妥当性検証したユーザに提供するようにしてもよい。ステップ610において、アクセスゲートウェイ360は、要求されたデータおよび/またはサービスを企業リソースまたはサービスから受信し、データをクライアントデバイス302に転送する。ステップ611において、クライアントデバイス302は、要求したデータおよび/またはサービスを受信してユーザに提供する。
【0154】
したがって、この実施例においては、クライアントデバイス302と要求されたリソース304またはサービス308との間のプロキシサーバとしてアクセスゲートウェイ360が作用するようになっていてもよい。すなわち、アクセスゲートウェイ360が第1ユーザ資格情報セットの妥当性を検証した後、第2ユーザ資格情報セットを読み出して要求に差し込むことから、クライアントデバイス302には、第1資格情報セットがリソース304またはサービス308に提出されていることが明らかであり、リソース304またはサービス308には、クライアントデバイス302のユーザにより正しい第2資格情報セットが提供されたことが明らかである。
【0155】
このように、クライアントデバイス302のユーザは、単一の認証資格情報セットを用いることによって、異なる資格情報セットを必要とする複数の異なるリソース304およびサービス308へのログインに成功するようにしてもよい。この機能は、ユーザに対して透過的であってもよいため、ユーザは、多くの異なるリソース304およびサービス308の正しい認証資格情報を把握する必要はないが、それでもなお、単一の認証資格情報セットを用いたシングルサインオンによって、これらの異なるリソース304およびサービス308にアクセスするようにしてもよい。さらに、ユーザが単一の認証資格情報セットのみを把握しており、クライアントデバイス302が格納および送信を行っている場合、この単一の資格情報セットは、セキュリティ保護されたパスワードまたはその他任意の企業システム認証データを含んでいない場合がある。たとえば、上述の通り、第1認証資格情報セットは、ユーザの1つまたは複数の暗号化パスワードの解読に利用可能な鍵705を含むユーザの秘密703および/またはアクセストークン715であってもよい。
【0156】
以上、構造的な特徴および/または方法論的な作用に特有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の具体的な特徴または作用に限定されないことが了解されるものとする。むしろ、上述の具体的な特徴および作用は、以下の特許請求の範囲の例示的な実施態様として説明している。
【0157】
本願は、2013年5月3日に出願された米国特許出願第13/886,518号の優先権を主張し、同じ発明の名称を有する。