(57)【特許請求の範囲】
【請求項１】
方法であって、
システムによって通信ネットワーク内の複数の電子デバイスを検出するステップと、
前記複数の電子デバイスを認証するステップと、
前記複数の電子デバイスの第１のデバイスが人間のユーザに関連付けられることを判断するステップと、
前記システムによって、前記判断するステップに基づいて、前記第１のデバイスに関連付けられる第１のエンロールメントポリシーを特定するステップと、
前記第１のエンロールメントポリシーに従って第１のエンロールメントルールセットを前記第１のデバイスに適用するステップと、
前記複数の電子デバイスの第２のデバイスが、いずれか一人のユーザに関連付けられないヘッドレスデバイスであることを確認するステップと、
前記確認するステップおよび前記ヘッドレスデバイスのジオロケーションに基づいて、前記第２のデバイスに関連付けられる第２のエンロールメントポリシーを特定するステップと、
前記第２のエンロールメントポリシーに従って第２のエンロールメントルールセットを前記第２のデバイスに適用するステップと、
前記システムによって、前記第１のエンロールメントポリシーに基づいて前記第１のデバイスをエンロールするステップと、
前記システムによって、前記第２のエンロールメントポリシーに基づいて前記第２のデバイスをエンロールするステップとを備える、方法。
【請求項２】
前記第１のエンロールメントポリシーを特定するステップは、前記第１のデバイスのオペレーティングシステムまたはタイプに基づき、前記第１のデバイスの前記タイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイスおよびウェアラブルデバイスからなる群から選択される、請求項１に記載の方法。
【請求項３】
前記ヘッドレスデバイスは、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器を含む、請求項１または２に記載の方法。
【請求項４】
前記第２のエンロールメントポリシーを特定するステップは、固定されたゲートウェイを介した信頼できる接続に基づく、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記認証するステップは、
エンロールメント要求を前記複数の電子デバイスに送信するステップと、
前記エンロールメント要求に応答して前記複数の電子デバイスから資格情報を受信するステップと、
前記資格情報に基づいて前記複数の電子デバイスを認証するステップとをさらに備える、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記複数の電子デバイスを認証するステップは、
前記複数の電子デバイスが前記システムに事前登録されることを判断するステップと、
前記判断するステップに基づいて、共有鍵および識別子を前記複数の電子デバイスに送信するステップと、
暗号化された識別子および前記共有鍵を前記複数の電子デバイスから受信するステップと、
前記暗号化された識別子および前記共有鍵を復号化するステップと、
前記復号化するステップに基づいてデジタル証明書を前記複数の電子デバイスに送信するステップとをさらに備える、請求項１〜４のいずれか１項に記載の方法。
【請求項７】
前記認証するステップは、
エンロールメント要求を前記複数の電子デバイスに送信するステップと、
前記エンロールメント要求に応答して前記複数の電子デバイスから資格情報を受信するステップと、
前記資格情報に基づいて前記複数の電子デバイスを認証するステップと、
前記複数の電子デバイスが前記システムに事前登録されることを判断するステップと、
前記判断するステップに基づいて、共有鍵および識別子を前記複数の電子デバイスに送信するステップと、
暗号化された識別子および前記共有鍵を前記複数の電子デバイスから受信するステップと、
前記暗号化された識別子および前記共有鍵を復号化するステップと、
前記復号化するステップに基づいてデジタル証明書を前記複数の電子デバイスに送信するステップとをさらに備える、請求項１〜４のいずれか１項に記載の方法。
【請求項８】
前記第１のエンロールメントルールセットおよび前記第２のエンロールメントルールセットは、前記複数の電子デバイスをエンロールすることができる前記システム内のユーザに関連する情報、前記システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および前記一人以上のユーザによって前記システムにエンロールされることができる前記デバイスの最大数に関連する情報のうちの１つ以上を指定する、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記第１のエンロールメントルールセットおよび前記第２のエンロールメントルールセットは、前記複数の電子デバイスを前記システムにエンロールするために適用される特定の認証機構に関連する情報を指定する、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記第１のエンロールメントルールセットおよび前記第２のエンロールメントルールセットは、前記複数の電子デバイスのジオロケーションに関連する情報を指定する、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
請求項１〜１０のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【請求項１２】
システムであって、
プロセッサと、
メモリデバイスとを備え、前記メモリデバイスは、命令を含み、前記命令は、前記プロセッサによって実行されたときに前記プロセッサに
通信ネットワーク内の１つ以上の電子デバイスに接続されたゲートウェイデバイスを検出させ、
前記ゲートウェイデバイスをエンロールさせ、
前記システムに前記１つ以上の電子デバイスをエンロールするためのエンロールメント要求を前記ゲートウェイデバイスから受信させ、
前記１つ以上の電子デバイスを認証させ、
前記ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定させ、
前記エンロールメントポリシーに従って前記１つ以上の電子デバイスをエンロールさせ、
前記１つ以上のエンロールされたデバイスが前記システムのリソースにアクセスすることを可能にする情報を前記ゲートウェイデバイスに送信させる、システム。
【請求項１３】
前記プロセッサは、
前記１つ以上の電子デバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書を前記ゲートウェイデバイスから受信し、
前記デジタル証明書を検証し、
前記デジタル証明書に基づいて前記１つ以上の電子デバイスを認証するようさらに構成される、請求項１２に記載のシステム。
【請求項１４】
前記１つ以上の電子デバイスは、ヘッドレスデバイスを備え、前記ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含む、請求項１２または１３に記載のシステム。
【請求項１５】
デバイスエンロールメントシステムであって、
デバイス認証エンジンを備え、前記デバイス認証エンジンは、通信ネットワーク内の複数の電子デバイスを検出し、前記複数の電子デバイスを認証し、前記複数の電子デバイスの第１のデバイスが人間のユーザに関連付けられることを判断し、前記複数の電子デバイスの第２のデバイスが、いずれか一人のユーザに専用でないヘッドレスデバイスであることを確認するよう構成され、前記デバイスエンロールメントシステムはさらに、
デバイスエンロールメントポリシー特定エンジンを備え、前記デバイスエンロールメントポリシー特定エンジンは、前記判断に基づいて、前記第１のデバイスに関連付けられる第１のエンロールメントポリシーを特定し、前記確認および前記ヘッドレスデバイスのジオロケーションに基づいて、前記第２のデバイスに関連付けられる第２のエンロールメントポリシーを特定するよう構成され、前記デバイスエンロールメントシステムはさらに、
デバイスエンロールメントエンジンを備え、前記デバイスエンロールメントエンジンは、前記第１のエンロールメントポリシーに従って第１のエンロールメントルールセットを前記第１のデバイスに適用し、前記第２のエンロールメントポリシーに従って第２のエンロールメントルールセットを前記第２のデバイスに適用し、前記第１のエンロールメントポリシーに基づいて前記第１のデバイスをエンロールし、前記第２のエンロールメントポリシーに基づいて前記第２のデバイスをエンロールするよう構成される、デバイスエンロールメントシステム。
【請求項１６】
デバイスエンロールメントシステムであって、
デバイス認証エンジンを備え、前記デバイス認証エンジンは、通信ネットワーク内の１つ以上の電子デバイスに接続されたゲートウェイデバイスを検出するよう構成され、前記ゲートウェイデバイスのエンロールメント時に、前記１つ以上の電子デバイスを前記デバイスエンロールメントシステムにエンロールするためのエンロールメント要求を前記ゲートウェイデバイスから受信し、前記１つ以上の電子デバイスを認証するよう構成され、前記デバイスエンロールメントシステムはさらに、
デバイスエンロールメントポリシー特定エンジンを備え、前記デバイスエンロールメントポリシー特定エンジンは、前記ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定するよう構成され、前記デバイスエンロールメントシステムはさらに、
デバイスエンロールメントエンジンを備え、前記デバイスエンロールメントエンジンは、前記ゲートウェイデバイスをエンロールし、前記エンロールメントポリシーに従って前記１つ以上の電子デバイスをエンロールし、前記１つ以上のエンロールされたデバイスが前記デバイスエンロールメントシステムのリソースにアクセスすることを可能にする情報を前記ゲートウェイデバイスに送信するよう構成される、デバイスエンロールメントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、「モバイルセキュリティマネージャ（ＭＳＭ）（Mobile Security Manager (MSM)）」と題される２０１４年９月２４日に出願された米国仮出願番号第６２／０５４，５４４号の利益および優先権を主張する、「ルールベースのデバイスエンロールメント（RULE BASED DEVICE ENROLLMENT）」と題される２０１５年４月１７日に出願された米国非仮出願番号第１４／６８９，７３３号の利益および優先権を主張する。上記の特許出願の内容全体は、全ての目的で引用によって本明細書に援用される。
【０００２】
発明の背景
本開示は、一般に、通信ネットワークにおけるリモートデバイスの管理に関する。より特定的には、通信ネットワークにおけるさまざまなタイプの電子デバイスにエンロールメントサービスを提供するための技術が開示される。
【背景技術】
【０００３】
モバイルデバイス管理（mobile device management：ＭＤＭ）システムおよび／またはモバイルアプリケーション管理（mobile application management：ＭＡＭ）システムは、一般に、異種の電子デバイスによる企業内のリソースへのアクセスの管理および制御を容易にして、これらのリソースへのアクセスが安全なものであることを保証する。企業内のリソースへのアクセスの管理および制御は、コンプライアンスおよびリソースならびに企業へのアクセスを維持するために講じなければならない措置についての情報の伝達を含んでもよい。
【０００４】
何千人ものユーザを有する企業は、企業にアクセスする何千ものデバイスのアクセスを管理するタスク直面する場合がある。これらのデバイスのエンロールメントは、一般に、権限のないユーザが企業の内部ネットワークにアクセスすることを防止するために必要とされる。したがって、通信ネットワーク内のさまざまなタイプの電子デバイスのエンロールメントを管理するための改良された技術が望まれる。
【発明の概要】
【課題を解決するための手段】
【０００５】
発明の簡単な概要
通信ネットワーク内のさまざまなタイプの電子デバイスにエンロールメントサービスを提供するための技術（例えば方法、システム、１つ以上のプロセッサによって実行可能なコードまたは命令を記憶する非一時的なコンピュータ読取可能な媒体）を提供する。特定の実施例において、通信ネットワーク内のデバイスの認証およびエンロールメントを制御するデバイスエンロールメントシステムを開示する。
【０００６】
少なくともいくつかの実施例に従って、通信ネットワーク内の複数の電子デバイスをエンロールするための方法を開示する。当該方法は、デバイスエンロールメントシステムによって、通信ネットワーク内の複数の電子デバイスを検出するステップと、複数の電子デバイスを認証するステップとを含む。当該方法は、次いで、複数の電子デバイスの第１のデバイスが人間のユーザに関連付けられることを判断するステップと、第１のデバイスに関連付けられる第１のエンロールメントポリシーを特定するステップとを含む。当該方法は、第１のエンロールメントポリシーに従って第１のエンロールメントルールセットを第１のデバイスに適用するステップを含んでもよい。いくつかの実施例では、当該方法は、複数の電子デバイスの第２のデバイスが、いずれか一人のユーザに専用でないヘッドレスデバイスであることを確認するステップと、確認するステップおよびヘッドレスデバイスのジオロケーションに基づいて、第２のデバイスに関連付けられる第２のエンロールメントポリシーを特定するステップとを含んでもよい。当該方法は、次いで、第２のエンロールメントポリシーに従って第２のエンロールメントルールセットを第２のデバイスに適用するステップを含んでもよい。特定の実施例では、当該方法は、次いで、第１のエンロールメントポリシーに基づいて第１のデバイスをエンロールするステップと、第２のエンロールメントポリシーに基づいて第２のデバイスをエンロールするステップとを含んでもよい。
【０００７】
いくつかの実施例では、第１のエンロールメントポリシーは、第１のデバイスのオペレーティングシステムまたはタイプに基づいて特定されてもよい。いくつかの例では、第１のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイスまたはウェアラブルデバイスであってもよい。いくつかの例では、ヘッドレスデバイスは、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器を含んでもよい。ヘッドレスデバイスは、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジを含んでもよい。ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（Voice Over IP：ＶｏＩＰ）電話も含んでもよい。
【０００８】
いくつかの実施例では、第２のエンロールメントポリシーは、固定されたゲートウェイを介した信頼できる接続に基づいて特定されてもよい。
【０００９】
いくつかの実施例では、電子デバイスを認証するステップは、エンロールメント要求を電子デバイスに送信するステップと、エンロールメント要求に応答して電子デバイスから資格情報を受信するステップと、資格情報に基づいてデバイスを認証するステップとを含んでもよい。
【００１０】
いくつかの実施例では、電子デバイスを認証するステップは、電子デバイスがシステムに事前登録されることを判断するステップと、共有鍵および識別子を電子デバイスに送信するステップと、暗号化された識別子および共有鍵を電子デバイスから受信するステップと、暗号化された識別子および共有鍵を復号化するステップと、復号化するステップに基づいてデジタル証明書を電子デバイスに送信するステップとを含んでもよい。
【００１１】
いくつかの例によれば、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報を指定してもよい。
【００１２】
いくつかの例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、電子デバイスをシステムにエンロールするために適用される特定の認証機構に関連する情報を指定してもよい。
【００１３】
いくつかの例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、電子デバイスのジオロケーションに関連する情報を指定してもよい。
【００１４】
いくつかの実施例によれば、デバイスエンロールメントシステムは、通信ネットワーク内の１つ以上の電子デバイスに接続されたゲートウェイデバイスを検出し、ゲートウェイデバイスをエンロールするよう構成されてもよい。デバイスエンロールメントシステムは、次いで、電子デバイスをシステムにエンロールするためのエンロールメント要求をゲートウェイデバイスから受信するよう構成されてもよい。デバイスエンロールメントシステムは、電子デバイスを認証し、ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定し、エンロールメントポリシーに従って電子デバイスをエンロールし、１つ以上のエンロールされたデバイスがシステムのリソースにアクセスすることを可能にする情報をゲートウェイデバイスに送信するよう構成されてもよい。
【００１５】
少なくともいくつかの実施例に従って、デバイスエンロールメントシステムを開示する。当該デバイスエンロールメントシステムは、デバイス認証エンジンを備え、当該デバイス認証エンジンは、通信ネットワーク内の複数の電子デバイスを検出し、複数の電子デバイスを認証し、複数の電子デバイスの第１のデバイスが人間のユーザに関連付けられることを判断し、複数の電子デバイスの第２のデバイスが、いずれか一人のユーザに専用でないヘッドレスデバイスであることを確認するよう構成され、当該デバイスエンロールメントシステムはさらに、デバイスエンロールメントポリシー特定エンジンを備え、当該デバイスエンロールメントポリシー特定エンジンは、当該判断に基づいて、第１のデバイスに関連付けられる第１のエンロールメントポリシーを特定し、当該確認およびヘッドレスデバイスのジオロケーションに基づいて、第２のデバイスに関連付けられる第２のエンロールメントポリシーを特定するよう構成され、当該デバイスエンロールメントシステムはさらに、デバイスエンロールメントエンジンを備え、当該デバイスエンロールメントエンジンは、第１のエンロールメントポリシーに従って第１のエンロールメントルールセットを第１のデバイスに適用し、第２のエンロールメントポリシーに従って第２のエンロールメントルールセットを第２のデバイスに適用し、第１のエンロールメントポリシーに基づいて第１のデバイスをエンロールし、第２のエンロールメントポリシーに基づいて第２のデバイスをエンロールするよう構成される。
【００１６】
いくつかの実施例では、デバイスエンロールメントポリシー特定エンジンは、第１のデバイスのオペレーティングシステムまたはタイプに基づいて第１のエンロールメントポリシーを特定するようさらに構成されてもよく、第１のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイスおよびウェアラブルデバイスからなる群から選択される。
【００１７】
いくつかの実施例では、ヘッドレスデバイスは、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器を含んでもよい。
【００１８】
いくつかの実施例では、デバイスエンロールメントポリシー特定エンジンは、固定されたゲートウェイを介した信頼できる接続に基づいて第２のエンロールメントポリシーを特定するようさらに構成されてもよい。
【００１９】
いくつかの実施例では、デバイス認証エンジンは、エンロールメント要求を複数の電子デバイスに送信し、エンロールメント要求に応答して複数の電子デバイスから資格情報を受信し、資格情報に基づいて複数の電子デバイスを認証するようさらに構成されてもよい。
【００２０】
いくつかの実施例では、デバイス認証エンジンは、複数の電子デバイスがシステムに事前登録されることを判断し、当該判断に基づいて、共有鍵および識別子を１つ以上の電子デバイスに送信し、暗号化された識別子および共有鍵を１つ以上の電子デバイスから受信し、暗号化された識別子および共有鍵を復号化し、当該復号化に基づいてデジタル証明書を複数の電子デバイスに送信する、ことによって１つ以上の電子デバイスを認証するようさらに構成されてもよい。
【００２１】
いくつかの実施例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの１つ以上を指定してもよい。
【００２２】
いくつかの実施例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスをシステムにエンロールするために適用される特定の認証機構に関連する情報を指定してもよい。
【００２３】
いくつかの実施例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスのジオロケーションに関連する情報を指定してもよい。
【００２４】
少なくともいくつかの実施例に従って、デバイスエンロールメントシステムを開示する。当該デバイスエンロールメントシステムは、デバイス認証エンジンを備え、当該デバイス認証エンジンは、通信ネットワーク内の１つ以上の電子デバイスに接続されたゲートウェイデバイスを検出するよう構成され、ゲートウェイデバイスのエンロールメント時に、１つ以上の電子デバイスをシステムにエンロールするためのエンロールメント要求をゲートウェイデバイスから受信し、１つ以上の電子デバイスを認証するよう構成され、当該デバイスエンロールメントシステムはさらに、デバイスエンロールメントポリシー特定エンジンを備え、当該デバイスエンロールメントポリシー特定エンジンは、ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定するよう構成され、当該デバイスエンロールメントシステムはさらに、デバイスエンロールメントエンジンを備え、当該デバイスエンロールメントエンジンは、ゲートウェイデバイスをエンロールし、エンロールメントポリシーに従って１つ以上の電子デバイスをエンロールし、１つ以上のエンロールされたデバイスがシステムのリソースにアクセスすることを可能にする情報をゲートウェイデバイスに送信するよう構成される。
【００２５】
いくつかの実施例では、デバイス認証エンジンは、１つ以上の電子デバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、デジタル証明書を検証し、デジタル証明書に基づいて１つ以上の電子デバイスを認証するようさらに構成されてもよい。
【００２６】
いくつかの実施例では、デバイスエンロールメントエンジンは、エンロールメントポリシーによって規定されるエンロールメントルールセットを１つ以上の電子デバイスに適用し、エンロールメントルールセットに従って１つ以上の電子デバイスをエンロールするようさらに構成されてもよい。
【００２７】
いくつかの実施例では、エンロールメントルールセットは、１つ以上の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの１つ以上を指定してもよい。
【００２８】
いくつかの実施例では、１つ以上の電子デバイスは、ヘッドレスデバイスを備えてもよく、ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含む。
【００２９】
少なくともいくつかの実施例に従って、方法を開示する。当該方法は、通信ネットワーク内の１つ以上の電子デバイスに接続されたゲートウェイデバイスを検出するステップと、ゲートウェイデバイスをエンロールするステップと、１つ以上の電子デバイスをシステムにエンロールするためのエンロールメント要求をゲートウェイデバイスから受信するステップと、１つ以上の電子デバイスを認証するステップと、ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定するステップと、エンロールメントポリシーに従って１つ以上の電子デバイスをエンロールするステップと、１つ以上のエンロールされたデバイスがシステムのリソースにアクセスすることを可能にする情報をゲートウェイデバイスに送信するステップとを備える。
【００３０】
いくつかの実施例では、当該方法は、１つ以上の電子デバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信するステップと、デジタル証明書を検証するステップと、デジタル証明書に基づいて１つ以上の電子デバイスを認証するステップとをさらに備えてもよい。
【００３１】
いくつかの実施例では、当該方法は、エンロールメントポリシーによって規定されるエンロールメントルールセットを１つ以上の電子デバイスに適用するステップと、エンロールメントルールセットに従って１つ以上の電子デバイスをエンロールするステップとをさらに備えてもよい。
【００３２】
いくつかの実施例では、エンロールメントルールセットは、１つ以上の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの１つ以上を指定してもよい。
【００３３】
いくつかの実施例では、１つ以上の電子デバイスは、ヘッドレスデバイスを備えてもよく、ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含む。
【００３４】
本発明の実施例の技術的利点は多数ある。開示されているデバイスエンロールメントシステムは、通信ネットワーク内の異種の電子デバイスの認証およびエンロールメントを制御することによって通信ネットワーク内の異種のデバイスのエンロールのセキュリティを向上させる。デバイスエンロールメントシステムは、デバイスのタイプに基づいてさまざまなタイプのデバイスのためのさまざまなエンロールメントポリシーを特定することによって異種のデバイスのエンロールのセキュリティを向上させる。例えば、デバイスエンロールメントシステムは、ユーザに関連付けられるデバイスをエンロールするための第１のタイプのエンロールメントポリシーと、いかなる特定のユーザにも関連付けられないヘッドレスデバイスをエンロールするための異なるタイプのエンロールメントポリシーとを特定する。いくつかの実施例では、開示されているデバイスエンロールメントシステムは、固定されたゲートウェイデバイスを介した信頼できる接続によって異種のデバイスのエンロールのセキュリティを向上させる。いくつかの局面では、ゲートウェイデバイスは、デバイスエンロールメントシステムに登録および／またはエンロールされたデバイスであり、デバイスエンロールメントシステムへのさまざまなタイプのデバイスのエンロールメントを起動する。
【００３５】
上記は、他の特徴および実施例とともに、以下の明細書、特許請求の範囲および添付の図面を参照するとより明らかになるであろう。
【図面の簡単な説明】
【００３６】
【図１】本発明の特定の実施例に係るコンピューティング環境１００の簡略ハイレベル図を示す。
【図２】本発明の実施例に係るデバイスエンロールメントシステムの環境２００の簡略ハイレベル図を示す。
【図３】本発明の一実施例に係る、デバイスエンロールメントシステムが、いかなるユーザにも関連付けられないヘッドレスデバイスを認証およびエンロールする態様を示す環境３００の簡略ハイレベル図を示す。
【図４】本発明の一実施例に係る、デバイスエンロールメントシステムが、固定されたゲートウェイデバイスを介して接続されたデバイスを認証およびエンロールする態様を示す環境４００の簡略ハイレベル図を示す。
【図５】本明細書に記載されている、デバイスエンロールメントシステムがユーザデバイスにエンロールメントサービスを提供する例示的なプロセス５００のフロー図を示す。
【図６】本明細書に記載されている、デバイスエンロールメントシステムがヘッドレスデバイスにエンロールメントサービスを提供する例示的なプロセス６００のフロー図を示す。
【図７】本明細書に記載されている、デバイスエンロールメントシステムが、固定されたゲートウェイデバイスを介して通信ネットワークに接続されたヘッドレスデバイスにエンロールメントサービスを提供する例示的なプロセス７００のフロー図を示す。
【図８】実施例を実現するための分散型システム８００の簡略図を示す。
【図９】本開示の実施例に係る、サービスがクラウドサービスとして提供され得るシステム環境９００の１つ以上のコンポーネントの簡略ブロック図である。
【図１０】本発明の実施例を実現するために使用され得る例示的なコンピュータシステム１０００を示す。
【発明を実施するための形態】
【００３７】
発明の詳細な説明
以下の記載では、説明を目的として、本発明の実施例が完全に理解されるように具体的な詳細が記載されている。しかし、これらの具体的な詳細がなくてもさまざまな実施例は実施可能であるということは明らかであろう。図面および説明は、限定的であるよう意図されるものではない。
【００３８】
本発明の特定の実施例では、通信ネットワーク内の異種の電子デバイスの認証およびエンロールメントを制御するデバイスエンロールメントシステムが開示される。いくつかの例では、デバイスエンロールメントシステムは、デバイスエンロールメントサービスを企業に提供するための企業内のサブシステムとして実現されてもよい。他の例では、デバイスエンロールメントシステムは、デバイスエンロールメントサービスを企業に提供することができるそれ自体スタンドアロンのサービスとして実現されてもよい。
【００３９】
いくつかの実施例では、デバイスエンロールメントシステムは、通信ネットワーク内の特定のデバイスを検出し、デバイスのタイプに基づいてデバイスに適用されるべきエンロールメントポリシーのタイプを特定し、エンロールメントポリシーに従って一組のルールをデバイスに適用し、ルールによって指定された１つ以上の基準がデバイスによって満たされる場合にデバイスをエンロールするよう構成されてもよい。いくつかの例では、デバイスは、ユーザに関連付けられるデバイスであってもよい。例えば、デバイスは、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、携帯電話、タブレットなどを含んでもよい。他の例では、デバイスは、いかなるユーザにも関連付けられないヘッドレスデバイスであってもよい。例えば、ヘッドレスデバイスは、ゲートウェイデバイス、温度センサ、酸素センサ、心電図記録（Electrocardiography：ＥＫＧ）センサ、カメラまたは医療用検知機器を含んでもよい。ヘッドレスデバイスは、例えば、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジも含んでもよい。いくつかの例では、ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含んでもよい。いくつかの実施例では、ヘッドレスデバイスは、グラフィカルユーザインターフェイスが無いデバイスであってもよい。
【００４０】
少なくともいくつかの実施例によれば、デバイスエンロールメントシステムは、固定されたゲートウェイデバイスを介した信頼できる接続によって通信ネットワーク内の一組の１つ以上のデバイスに接続されてもよい。いくつかの局面では、ゲートウェイデバイスは、デバイスエンロールメントシステムに登録および／またはエンロールされたデバイスであってもよい。
【００４１】
いくつかの例では、一組の１つ以上のデバイスは、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジなどの、家庭のローカルエリアネットワーク（local area network：ＬＡＮ）内のデバイスを含んでもよい。一組の１つ以上のデバイスは、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器などの、病院のＬＡＮ内のデバイスを含んでもよい。一組の１つ以上のデバイスは、いくつかの例では、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話などの、会社のＬＡＮ内のデバイスであってもよい。
【００４２】
いくつかの局面では、ゲートウェイデバイスは、一組の１つ以上のデバイスにおける特定のデバイスを検出し、デバイスエンロールメントシステムのためにデバイスのエンロールメントを起動するよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントシステムは、ゲートウェイデバイスからエンロールメント要求を受信し、デバイスの認証およびエンロールメントを実行するよう構成されてもよい。
【００４３】
図１は、本発明の特定の実施例に係るコンピューティング環境１００の簡略ハイレベル図を示す。示されているように、コンピューティング環境１００は、１つ以上のリモートユーザデバイス１０２（１）〜１０２（Ｎ）（集合的にユーザデバイス１０２）と、通信ネットワーク１０６を介してデバイスエンロールメントシステム１０８に通信可能に結合された１つ以上のリモートヘッドレスデバイス１０４（１）〜１０４（Ｎ）（集合的にヘッドレスデバイス１０４）とを含む。いくつかの実施例では、デバイスエンロールメントシステム１０８は、通信ネットワーク１０６内のデバイス１０２，１０４の認証およびエンロールメントを企業のために管理してもよい。上記のように、いくつかの例では、デバイスエンロールメントシステム１０８は、企業内のサブシステムとして実現されてもよい。他の例では、デバイスエンロールメントシステム１０８は、デバイスエンロールメントサービスを企業に提供するそれ自体スタンドアロンのサービスとしても実現されてもよい。デバイスエンロールメントシステム１０８は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、１つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および／もしくは組み合わせとして実現されてもよい。
【００４４】
いくつかの例では、ユーザデバイス１０２は、ユーザ（例えばユーザ＿１...ユーザ＿Ｍ）に関連付けられる１つ以上の電子デバイスを含んでもよい。例えば、ユーザデバイス１０２は、さまざまなタイプのものであってもよく、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、携帯電話、タブレットなどを含むが、それらに限定されるものではない。ユーザデバイスは、別のデバイス上で実行されるワークスペースなどのエンドポイントデバイスも含んでもよい。ワークスペースは、ワークスペースを実行するデバイス上の企業データおよびアプリケーションへのアクセスを提供するための制御された環境であってもよい。例えば、セキュリティ上安全なコンテナアプリケーションがユーザデバイス１０２上で実行されてもよい。ユーザデバイス１０２は、企業によって発行されるデバイス（例えば会社のデバイス）またはユーザのパーソナルデバイス（例えば「自分自身のデバイスの持ち込み（bring your own device：ＢＹＯＤ）」）も含んでもよいが、それらに限定されるものではない。
【００４５】
いくつかの例では、ヘッドレスデバイス１０４は、いかなるユーザにも関連付けられない電子デバイスを含んでもよい。特定の例では、ヘッドレスデバイス１０４は、通信ネットワーク１０６を介してデバイスエンロールメントシステム１０８に接続するローカルエリアネットワーク（ＬＡＮ）内の一組の１つ以上のデバイスを含んでもよい。例えば、ヘッドレスデバイス１０４は、家庭のローカルエリアネットワーク（ＬＡＮ）内の一組の１つ以上のデバイスを含んでもよい。これらのデバイスは、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジを含んでもよいが、それらに限定されるものではない。ヘッドレスデバイス１０４は、病院のＬＡＮ内の一組の１つ以上のデバイスを含んでもよい。これらのデバイスは、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器を含んでもよいが、それらに限定されるものではない。ヘッドレスデバイス１０４は、会社のＬＡＮ内の一組の１つ以上のデバイスも含んでもよい。これらのデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含んでもよいが、それらに限定されるものではない。
【００４６】
通信ネットワーク１０６は、デバイス１０２，１０４とデバイスエンロールメントシステム１０８との間の通信を容易にする。通信ネットワーク１０６は、さまざまなタイプのものであり得て、１つ以上の通信ネットワークを含み得る。例えば、通信ネットワーク１０６は、インターネット、ワイドエリアネットワーク（wide area network：ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、イーサネット（登録商標）ネットワーク、パブリックまたはプライベートネットワーク、有線ネットワーク、無線ネットワークなど、およびそれらの組み合わせを含み得るが、それらに限定されるものではない。単一のＴＣＰ接続、ＩＥＥＥ８０２．ＸＸプロトコル一式、ＴＣＰ／ＩＰ、ＩＰＸ、ＳＡＮ、AppleTalk、Bluetooth（登録商標）および他のプロトコルを介して全二重通信チャネルを提供するウェブソケットなどの有線プロトコルおよび無線プロトコルを両方とも含む通信を容易にするために、さまざまな通信プロトコルが使用されてもよい。一般に、通信ネットワーク１０６は、ユーザデバイス１０２とヘッドレスデバイス１０４とデバイスエンロールメントシステム１０８との間の通信を容易にする任意の通信ネットワークまたはインフラストラクチャを含んでもよい。
【００４７】
いくつかの実施例では、デバイスエンロールメントシステム１０８は、ユーザデバイス１０２およびヘッドレスデバイス１０４の認証およびエンロールメントを実行するよう構成されてもよい。いくつかの例では、デバイスエンロールメントシステム１０８は、通信ネットワーク１０６内のデバイス１０２，１０４を最初に検出するよう構成されてもよい。デバイスエンロールメントシステム１０８がデバイス１０２，１０４を検出することができる方法はさまざまである。例えば、デバイスエンロールメントシステム１０８は、デバイス１０２，１０４を一意に特定するデバイス識別子に基づいて当該デバイスを特定するよう構成されてもよい。例えば、デバイス識別子は、ＭＡＣ（メディアアクセス制御）アドレス、固有デバイス識別子（unique device identifier：ＵＤＩＤ）、または他のデバイス識別子を含んでもよい。そして、デバイスエンロールメントシステム１０８は、デバイス１０２，１０４が通信ネットワーク１０６に接続したときにデバイス識別子に基づいて当該デバイスを検出するよう構成されてもよい。デバイス１０２，１０４を検出するために他の技術もデバイスエンロールメントシステム１０８によって使用されてもよい。例えば、デバイスエンロールメントシステム１０８は、デバイス１０２，１０４のジオロケーションまたは当該デバイスに関連付けられる他の情報に基づいてデバイス１０２，１０４を検出するよう構成されてもよい。
【００４８】
上記のようにデバイス１０２，１０４を検出すると、いくつかの実施例では、デバイスエンロールメントシステム１０８は、デバイス１０２，１０４を認証するよう構成されてもよい。デバイスエンロールメントシステム１０８が特定のデバイス１０２または１０４を認証することができる方法はさまざまである。例えば、デバイスエンロールメントシステム１０８は、特定の認証機構を利用して、ユーザに関連付けられるデバイス（例えばユーザデバイス１０２）を認証し、異なる認証機構を利用して、いかなるユーザにも関連付けられないデバイス（例えばヘッドレスデバイス１０４）を認証してもよい。デバイスエンロールメントシステム１０８がユーザデバイス１０２およびヘッドレスデバイス１０４を認証することができる態様については、それぞれ図２および図３との関連で詳細に説明する。
【００４９】
デバイス１０２，１０４を成功裏に認証すると、いくつかの実施例では、デバイスエンロールメントシステム１０８は、デバイス１０２，１０４に適用されるべきエンロールメントポリシーのタイプを決定して当該デバイスをエンロールするよう構成されてもよい。実施例では、デバイスエンロールメントシステム１０８は、最初に特定のデバイス１０２または１０４のタイプを決定することによってエンロールメントポリシーのタイプを決定してもよい。例えば、特定のデバイスがユーザデバイス１０２であるとデバイスエンロールメントシステム１０８が判断すると、デバイスエンロールメントシステム１０８は、当該デバイスのための第１のエンロールメントポリシーを特定してもよい。そして、デバイスエンロールメントシステム１０８は、第１のエンロールメントポリシーに従って第１のエンロールメントルールセットをユーザデバイスに適用し、第１のエンロールメントポリシーに基づいてユーザデバイスをエンロールするよう構成されてもよい。特定の実施例では、デバイスエンロールメントシステム１０８は、特定のデバイスがヘッドレスデバイス１０４であると判断してもよい。この場合、デバイスエンロールメントシステム１０８は、当該ヘッドレスデバイスのための異なるエンロールメントポリシーを特定してもよい。そして、デバイスエンロールメントシステム１０８は、エンロールメントポリシーに従って第２のエンロールメントルールセットをヘッドレスデバイス１０４に適用し、エンロールメントポリシーに基づいてヘッドレスデバイスをエンロールするよう構成されてもよい。いくつかの例では、ユーザデバイスをエンロールするためにデバイスエンロールメントシステム１０８によって使用されるエンロールメントポリシーは、ヘッドレスデバイスをエンロールするためにデバイスエンロールメントシステムによって使用されるエンロールメントポリシーとは異なっていてもよい。デバイスエンロールメントシステムがユーザデバイスまたはヘッドレスデバイスをエンロールすることができる態様については、図２〜図４との関連で詳細に説明する。一旦成功裏にエンロールされると、リモートデバイス１０２，１０４は、デバイスエンロールメントシステム１０８と通信して、デバイスエンロールメントシステムに接続されたターゲットシステム（例えば企業）のリソースへのアクセスを取得してもよい。
【００５０】
図２は、本発明の実施例に係るデバイスエンロールメントシステムの環境２００の簡略ハイレベル図を示す。デバイスエンロールメントシステム２１０は、図１で説明したデバイスエンロールメントシステム１０４と同一または類似のものであってもよい。図２に示される実施例では、デバイスエンロールメントシステム２１０は、デバイス認証エンジン２１２と、デバイスエンロールメントポリシー特定エンジン２１４と、デバイスエンロールメントエンジン２１６とを含む。デバイス認証エンジン２１２、デバイスエンロールメントポリシー特定エンジン２１４およびデバイスエンロールメントエンジン２１６は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、１つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および／もしくは組み合わせとして実現されてもよい。図２に示されるデバイスエンロールメントシステム２１０のさまざまなコンポーネントは、単に例示の目的で示されており、本発明の実施例の範囲を限定するよう意図されるものではない。代替的な実施例は、図２に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントおよび／または多くのデバイスもしくは少ないデバイスを含んでもよい。
【００５１】
図２に示される実施例は、デバイスエンロールメントシステム２１０が、ユーザに関連付けられるデバイスの認証およびエンロールメントを実行することができる態様を示している。例えば、上記のように、ユーザデバイスは、パーソナルコンピュータ、デスクトップ、モバイルまたは手持ち式デバイス、例えばラップトップ、携帯電話、タブレットなど、または人間のユーザに関連付けられるその他のタイプのデバイスを含んでもよい。
【００５２】
示されているように、コンピューティング環境２００は、通信ネットワーク２０８を介してデバイスエンロールメントシステム２１０に通信可能に結合されるユーザデバイス２０２を含む。通信ネットワーク２０８は、図１における通信ネットワーク１０６と同一または類似のものであってもよい。いくつかの実施例では、デバイスエンロールメントシステム２１０は、最初に、通信ネットワーク２０８に接続されたユーザデバイス２０２を検出するよう構成されてもよい。デバイスエンロールメントシステム２１０がデバイスを検出することができる態様については、図１との関連で説明する。
【００５３】
そして、デバイス認証エンジン２１２は、ユーザデバイス２０２を認証するよう構成されてもよい。いくつかの例では、デバイス認証エンジン２１２は、最初に、ユーザ／デバイス情報データベース２２０に記憶されたユーザについての情報に基づいて、ユーザデバイス２０２に関連付けられるユーザが登録されたユーザであるか否かを判断してもよい。いくつかの例では、ユーザ／デバイス情報データベース２２０は、ユーザおよびユーザに関連付けられるデバイスについての情報を記憶してもよく、当該情報は、リモートデバイス上のオペレーティングシステムのタイプ、オペレーティングシステムのバージョン、リモートデバイスが別のデバイスで運営管理される場合にはホスト識別子、デバイスタイプ、ＩＭＥＩ（国際移動体装置識別（International Mobile Equipment Identity））番号、リモートデバイスのモデル、リモートデバイスのサービスプロバイダ（例えばキャリア）、デバイス名、デバイス状態、またはリモートデバイスについての他の情報を含む。
【００５４】
いくつかの例では、デバイス認証エンジン２１２は、エンロールメント要求をユーザデバイス２０２に送信することによってユーザデバイス２０２を認証してもよい。次いで、デバイス認証エンジン２１２は、ユーザデバイス２０２でのエンロールメント要求とのユーザの対話の結果として、ユーザデバイス２０２を認証してもよい。デバイス認証エンジン２１２がエンロールメント要求をユーザデバイス２０２に送信することができる方法はさまざまである。例えば、デバイスエンロールメントシステム２１０の管理者がエンロールメント要求を起動し、当該管理者は、エンロールメント要求を電子メールメッセージでデバイス２０２に送信してもよい。別の例として、デバイス認証エンジン２１２は、エンロールメント要求をユーザデバイス２０２のエンロールメントアプリケーション２０６に自動的に送信してもよく、ユーザデバイス２０２のユーザは、エンロールメントアプリケーションにログインしてエンロールメント要求を閲覧してもよい。
【００５５】
いくつかの実施例では、デバイス認証エンジン２１２は、ユーザデバイス２０２の認証に使用されるべき特定の認証機構を指定してもよい。例えば、デバイス認証エンジン２１２は、ユーザデバイス２０２を認証するためにユーザ資格情報の形式の認証情報がユーザデバイス２０２のユーザによって指定されなければならないことをエンロールメント要求において指定してもよい。他の例では、デバイス認証エンジン２１２は、エンロールメント要求においてワンタイムパスワードをユーザデバイス２０２のユーザに割り当ててもよい。次いで、ユーザは、当該ワンタイムパスワードを使用して、デバイスエンロールメントシステムからデジタル証明書を取得してもよく、デバイス認証エンジン２１２は、当該証明書を使用してユーザデバイス２０２を認証してもよい。
【００５６】
いくつかの例では、ユーザデバイス２０２に関連付けられるユーザは、ユーザデバイス２０２のブラウザアプリケーション２０４を介してデバイスエンロールメントシステムから受信されたエンロールメント要求を閲覧してもよい。例えば、ユーザは、ブラウザアプリケーションを介して電子メールメッセージでエンロールメント要求を閲覧してもよい。または、例えば、ユーザは、ユーザデバイス２０２のエンロールメントアプリケーション２０６を用いてエンロールメント要求を閲覧してもよい。いくつかの例では、エンロールメント要求は、エンロールメント要求と対話するためにユーザが選択し得るエンロールメントユニフォームリソースロケータ（Uniform Resource Locator：ＵＲＬ）などのエンロールメントリンクを指定してもよい。次いで、ユーザは、エンロールメントリンクを選択して、ユーザおよび／またはユーザデバイス２０２を特定するユーザ資格情報（例えばユーザ名およびパスワード）などの認証情報を提供してもよい。次いで、ユーザデバイス２０２は、ユーザ資格情報をデバイスエンロールメントシステム２１０に送信してもよい。次いで、デバイス認証エンジン２１２は、ユーザデバイス２１０からユーザ資格情報を受信し、ユーザ資格情報に基づいてユーザデバイス２１０を認証するよう構成されてもよい。
【００５７】
ユーザデバイス２０２を成功裏に認証すると、デバイスエンロールメントシステム２１０は、ユーザデバイス２０２をエンロールするよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジン２１４は、最初に、ユーザデバイスに関連付けられるエンロールメントポリシーを特定するよう構成されてもよい。いくつかの例では、デバイス（例えばユーザデバイス２０２）のためのエンロールメントポリシーは、デバイスのタイプに基づいて特定されてもよい。例えば、デバイスエンロールメントポリシー特定エンジン２１４は、ユーザデバイス２０２のための第１のエンロールメントポリシーを特定するよう構成されてもよい。他の例では、図３との関連で詳細に説明するように、デバイスエンロールメントポリシー特定エンジン２１４は、いかなるユーザにも関連付けられないヘッドレスデバイスのための異なるエンロールメントポリシーを特定するよう構成されてもよい。
【００５８】
デバイスのためのエンロールメントポリシーが特定されると、デバイスエンロールメントエンジン２１６は、エンロールメントポリシーに従って一組のルールをユーザデバイス２０２に適用してもよい。当該ルールは、ユーザデバイス２０２をデバイスエンロールメントシステムにエンロールするためにユーザデバイス２０２が満たさなければならないさらなる基準を指定してもよい。いくつかの例では、ユーザデバイス２０２のエンロールに関連付けられるルールは、ヘッドレスデバイスのエンロールに関連付けられるルールとは異なっていてもよい。
【００５９】
いくつかの実施例では、当該ルールは、ポリシールールデータベース２１８に記憶されてもよい。当該ルールは、例えば、デバイスエンロールメントシステムにエンロール可能なユーザのタイプ、当該システムによってエンロール可能なデバイスのタイプ、エンロール可能なデバイスの許可されるオペレーティングシステムプラットフォーム（アンドロイド（登録商標）、ｉＯＳ（登録商標）、ウインドウズ（登録商標））、デバイスに関連付けられるオペレーティングシステムの許可されるバージョン（例えば最小、最大）、特定のユーザが当該システムにエンロールすることができるデバイスの最大数などを指定してもよい。特定の例では、当該ルールは、デバイスの認証に使用される特定の認証技術、特定のユーザ群および／またはユーザに使用される認証のタイプなども指定してもよい。例えば、デバイスエンロールメントシステム２０８は、企業内の販売グループに属するユーザを企業内の他のユーザに対して認証するために、より強力な認証技術を適用してもよい。
【００６０】
いくつかの例では、当該ルールは、デバイスのジオロケーションに関連する情報を指定してもよい。ジオロケーション情報は、例えば、デバイスの物理的位置、デバイスの地理的位置（例えば緯度、経度）などを含んでもよい。
【００６１】
いくつかの例では、エンロールメントルールは、デバイスのために許可され得るさまざまなタイプのエンロールメントも指定してもよい。例えば、エンロールメントルールは、デバイスにインストールされたセキュアワークスペースアプリケーションがデバイスエンロールメントシステムに登録する場合にユーザのパーソナルデバイスのための（例えば（ＢＹＯＤ）のための）ＭＡＭベースのエンロールメントを指定してもよい。企業アプリケーションのカタログは、デバイスに関連付けられるユーザのためにポリシーによって何が許可されるかに基づいて、デバイスが利用できる状態にされてもよい。他の例では、エンロールメントルールは、会社所有のデバイスのためにＭＤＭおよびＭＡＭベースのエンロールメントを指定してもよい。なぜなら、会社は、一般に、デバイス上のセキュアワークスペースを制御することよりもデバイスを制御することを望む場合があるからである。特定の例では、エンロールメントルールは、デバイスの最初のエンロールメントおよびその後のデバイスエンロールメントシステムとのデバイスの通信のために証明書ベースの認証スキームを指定してもよく、またはデジタル証明書をデバイスに発行する認証局（Certificate Authority：ＣＡ）などのエンティティを選択することを許可してもよい。
【００６２】
図２に示される実施例では、例えば、デバイスのためのエンロールメントポリシーによって規定された一組のルールをユーザデバイス２０２が満たす場合に、デバイスエンロールメントエンジン２１６は、ユーザデバイス２０２をエンロールしてもよい。例えば、デバイスエンロールメントエンジン２１６は、ユーザデバイスのために特定されたエンロールメントポリシーに従って一組のルールをユーザデバイス２０２に適用して、特定のタイプのエンロールメントがデバイスのユーザに許可されるか否かを判断し、登録することをユーザが許可されるデバイスの数が閾値限界の範囲内であるか否かを判断し、デバイスのタイプおよびデバイスのオペレーティングシステムバージョンが、デバイスのために特定されたエンロールメントポリシーに従っているか否かを判断する、などしてもよい。
【００６３】
ユーザデバイス２０２をエンロールするためのルールによって指定されたさらなる基準をユーザデバイス２０２が満たすとデバイスエンロールメントエンジン２１６が判断すると、デバイスエンロールメントエンジン２１６は、デバイス２０２をデバイスエンロールメントシステムにエンロールしてもよい。いくつかの例では、デバイスエンロールメントエンジン２１６は、ユーザデバイス２０２のためにデジタル証明書を生成し、当該デジタル証明書をユーザデバイス２０２に送信してもよい。ユーザデバイス２０２は、署名した証明書をデバイスエンロールメントエンジン２１６に提供してもよい。次いで、デバイスエンロールメントエンジン２１６は、署名したデジタル証明書を用いてユーザデバイス２０２を登録および／またはエンロールしてもよい。
【００６４】
図２に示される実施例では、デバイスエンロールメントシステム２１８によってユーザに関連付けられるデバイス（例えばユーザデバイス２０２）を認証およびエンロールするためのプロセスについて説明した。代替的な実施例では、図３および図４に示されるように、デバイスエンロールメントシステム２１８は、いかなるユーザにも関連付けられないリモートヘッドレスデバイスを認証およびエンロールするよう構成されてもよい。
【００６５】
図３は、本発明の一実施例に係る、デバイスエンロールメントシステムが、いかなるユーザにも関連付けられないヘッドレスデバイスを認証およびエンロールする態様を示す環境３００の簡略ハイレベル図を示す。示されているように、コンピューティング環境３００は、通信ネットワーク２０８を介してデバイスエンロールメントシステム２１０に通信可能に結合された１つ以上のリモートヘッドレスデバイス３０２（１）〜３０２（Ｎ）（集合的にヘッドレスデバイス３０２）を含む。上記のように、ヘッドレスデバイス３０２は、ゲートウェイデバイス、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器を含んでもよい。ヘッドレスデバイス３０２は、例えば、サーモスタット、セキュリティシステム、煙探知器、冷蔵庫、食洗機、洗濯機、乾燥器、自動湯沸かし器、エアコン、集中型暖房炉またはオーブンレンジも含んでもよい。いくつかの例では、ヘッドレスデバイス３０２は、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含んでもよい。また上記したように、いくつかの実施例では、ヘッドレスデバイス３０２は、家庭のＬＡＮ、病院のＬＡＮまたは会社のＬＡＮ内の一組の１つ以上のデバイスを含んでもよい。
【００６６】
デバイスエンロールメントシステム２１０は、図２との関連で説明したデバイスエンロールメントシステムと同一または類似のものであってもよい。例えば、デバイスエンロールメントシステム２１０は、デバイス認証エンジン２１２と、デバイスエンロールメントポリシー特定エンジン２１４と、デバイスエンロールメントエンジン２１６とを含んでもよい。いくつかの例では、デバイス認証エンジン２１２、デバイスエンロールメントポリシー特定エンジン２１４およびデバイスエンロールメントエンジン２１６は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、１つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および／もしくは組み合わせとして実現されてもよい。
【００６７】
いくつかの実施例では、デバイスエンロールメントシステム２１０は、最初に、通信ネットワーク２０８に接続されたヘッドレスデバイス３０２を検出するよう構成されてもよい。通信ネットワーク２０８は、図１で説明した通信ネットワーク１０６と同一または類似のものであってもよい。そして、デバイス認証エンジン２１２は、ヘッドレスデバイス３０２を認証するよう構成されてもよい。いくつかの例では、デバイス認証エンジン２１２は、最初にヘッドレスデバイス３０２を事前登録することによってヘッドレスデバイス３０２を認証してもよい。ヘッドレスデバイス３０２を事前登録することは、例えば、ヘッドレスデバイス３０２に関連付けられる識別子に基づいてヘッドレスデバイス３０２を特定することを含んでもよい。例えば、ヘッドレスデバイス３０２のための識別子は、ユーザ／デバイス情報データベース２２０に記憶されてもよい。当該識別子は、ＭＡＣ（メディアアクセス制御）アドレス、固有デバイス識別子（ＵＤＩＤ）、またはヘッドレスデバイス３０２に関連付けられる他のデバイス識別子であってもよい。
【００６８】
いくつかの実施例では、デバイス認証エンジン２１２は、共有鍵および当該識別子をヘッドレスデバイス３０２に送信することによってヘッドレスデバイス３０２を認証してもよい。当該共有鍵は、例えば、ヘッドレスデバイス３０２との安全な通信のためにデバイス認証エンジン２１２によって使用され得る事前共有鍵またはパスワードを含んでもよい。ヘッドレスデバイス３０２は、当該共有鍵および識別子を受信し、当該共有鍵で当該識別子を暗号化し、暗号化された識別子をデバイス認証エンジン２１２に送信してもよい。デバイス認証エンジン２１２は、ヘッドレスデバイス３０２から暗号化された識別子を受信し、当該識別子を復号化し、復号化された識別子がヘッドレスデバイス３０２に関連付けられる元の識別子と一致するか否かを判断してもよい。一致が見つけられると、いくつかの実施例では、デバイス認証エンジン２１２は、ヘッドレスデバイス３０２を認証してもよい。
【００６９】
ヘッドレスデバイス３０２を成功裏に認証すると、デバイスエンロールメントシステム２１０は、ヘッドレスデバイス３０２のエンロールメントに進んでもよい。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジン２１４は、ヘッドレスデバイス３０２に関連付けられるエンロールメントポリシーを特定するよう構成されてもよい。ヘッドレスデバイス３０２のためのエンロールメントポリシーが特定されると、デバイスエンロールメントエンジン２１６は、エンロールメントポリシーに従って、ユーザ／デバイス情報データベース２２０に記憶された一組のルールをヘッドレスデバイス３０２に適用してもよい。上記のように、当該ルールは、ヘッドレスデバイス３０２をデバイスエンロールメントシステムにエンロールするためにヘッドレスデバイス３０２が満たさなければならないさらなる基準を指定してもよい。
【００７０】
例えば、デバイスエンロールメントエンジン２１６によってヘッドレスデバイス３０２に適用される一組のルールは、ヘッドレスデバイス３０２のジオロケーションがデバイスエンロールメントシステムからの予め定められた距離の範囲内であるか否かを判断すること、特定のタイプのエンロールメントがヘッドレスデバイス３０２のために許可されるか否かを判断すること、ヘッドレスデバイス３０２のタイプおよびヘッドレスデバイス３０２のオペレーティングシステムバージョンが、ヘッドレスデバイス３０２のために特定されたエンロールメントポリシーに従っているか否かを判断すること、などを含んでもよい。
【００７１】
ルールによって指定されたさらなる基準をヘッドレスデバイス３０２が満たすとデバイスエンロールメントエンジン２１６が判断すると、デバイスエンロールメントエンジン２１６は、ヘッドレスデバイス３０２をエンロールしてもよい。いくつかの例では、デバイスエンロールメントエンジン２１６は、証明書エンロールメントペイロードをヘッドレスデバイス３０２に送信してもよい。当該ペイロードは、デバイスエンロールメントシステムを特定する情報および共有鍵を含んでもよい。ペイロードを受信すると、ヘッドレスデバイス３０２は、証明書署名要求（certificate signing request：ＣＳＲ）をデバイスエンロールメントシステムに送信してもよい。ＣＳＲは、認証局（ＣＡ）がデジタル証明書を発行する目的でＣＡが必要とする情報を有効化するためにヘッドレスデバイス３０２がデバイスエンロールメントシステムのＣＡに送信し得るフォーマット済みの暗号化されたメッセージであってもよい。ＣＳＲにおける共有鍵が一致する場合、デバイスエンロールメントシステムは、ＣＡによってＣＳＲを処理し、署名した証明書をヘッドレスデバイス３０２に提供してプロビジョニングしてもよい。次いで、ヘッドレスデバイス３０２は、秘密鍵で署名されたデバイスフィンガープリントをデバイスエンロールメントシステムに送信してもよい。デバイスエンロールメントシステムは、当該デバイスフィンガープリントを処理し、フィンガープリントからの識別子が署名した証明書と一致するか否かを判断してもよい。一致があるとデバイスエンロールメントシステムが判断すると、デバイスエンロールメントシステムは、ヘッドレスデバイス３０２をエンロールしてもよい。
【００７２】
図２および図３に示される実施例では、通信ネットワーク２０８を介してデバイスエンロールメントシステム２１０に直接接続されたデバイス（例えばユーザデバイスおよびヘッドレスデバイス）を示した。図４に示される代替的な実施例では、デバイス（例えばユーザデバイスおよびヘッドレスデバイス）は、固定されたゲートウェイデバイスを介した信頼できる接続によって通信ネットワーク２０８に接続されてもよい。いくつかの実施例では、ゲートウェイデバイスは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、１つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および／もしくは組み合わせとして実現されてもよい。特定の実施例では、ゲートウェイデバイスは、デバイスエンロールメントシステムに登録および／またはエンロールされたデバイスであってもよい。ゲートウェイデバイスは、通信ネットワーク内の新たなデバイスを検出し、デバイスエンロールメントシステムへのデバイスのエンロールメントを起動するよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントシステムは、ゲートウェイデバイスからエンロールメント要求を受信し、デバイスの認証およびエンロールメントを実行するよう構成されてもよい。デバイスエンロールメントシステムがゲートウェイデバイスに接続されたデバイスのエンロールメントおよび認証を実行することができる態様については、図４との関連で詳細に説明する。
【００７３】
図４は、本発明の一実施例に係る、デバイスエンロールメントシステムが、固定されたゲートウェイデバイスを介して接続されたデバイスを認証およびエンロールする態様を示す環境４００の簡略ハイレベル図を示す。示されているように、コンピューティング環境４００は、通信ネットワーク４０８を介してデバイスエンロールメントシステム２１０に通信可能に結合された１つ以上のユーザデバイス４０２−１および４０２−２（集合的にユーザデバイス４０２）を含む。コンピューティング環境４００は、固定されたゲートウェイデバイス４０６を介してデバイスエンロールメントシステム２１０に通信可能に結合された１つ以上のヘッドレスデバイス４０４−１および４０４−２（集合的にヘッドレスデバイス４０４）も含む。２つのユーザデバイスおよび２つのヘッドレスデバイスを有する例示的なシステム環境４００が示されているが、他の実施例では任意の数のデバイスがサポートされてもよい。ユーザデバイス４０２は、図１および図２との関連で説明したユーザデバイスと同一または類似のものであってもよい。同様に、ヘッドレスデバイス４０４は、図１および図３との関連で説明したヘッドレスデバイスと同一または類似のものであってもよい。通信ネットワーク４０８は、図１〜図３との関連で説明した通信ネットワークと同一または類似のものであってもよい。
【００７４】
いくつかの実施例では、デバイスエンロールメントシステム２１０は、ユーザデバイス４０２およびヘッドレスデバイス４０４の認証およびエンロールメントを管理してもよい。デバイスエンロールメントシステム２１０は、図２および図３との関連で説明したデバイスエンロールメントシステムと同一または類似のものであってもよい。例えば、デバイスエンロールメントシステム２１０は、デバイス認証エンジン２１２と、デバイスエンロールメントポリシー特定エンジン２１４と、デバイスエンロールメントエンジン２１６とを含んでもよい。いくつかの例では、デバイス認証エンジン２１２、デバイスエンロールメントポリシー特定エンジン２１４およびデバイスエンロールメントエンジン２１６は、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、１つ以上のプロセッサによって実行されるソフトウェアコンポーネント、またはその他の適切な構成および／もしくは組み合わせとして実現されてもよい。
【００７５】
図４に示される実施例では、ユーザデバイス４０２は、通信ネットワーク４０８を介してデバイスエンロールメントシステム２１０に直接接続されるように示されている。これらのデバイスは、図２において説明したものと同様の態様でデバイスエンロールメントシステム２１０によって認証およびエンロールされてもよい。ヘッドレスデバイス４０４は、固定されたゲートウェイデバイス４０６を介してデバイスエンロールメントシステム２１０に接続されるように示されている。図４に示される実施例は、ゲートウェイデバイス４０６に接続されたヘッドレスデバイス４０４を示しているが、他の実施例では、ユーザデバイス４０２もゲートウェイデバイス４０６に接続されてもよく、ゲートウェイデバイス４０６は、ユーザデバイス（例えば４０２−１または４０２−２）を検出し、デバイスエンロールメントシステム２１０へのユーザデバイス４０２のエンロールメントを起動するよう構成されてもよい。
【００７６】
いくつかの実施例では、ゲートウェイデバイス４０６は、ヘッドレスデバイス（例えば４０４−１または４０４−２）を検出し、デバイスエンロールメントシステム２１０へのヘッドレスデバイス４０４のエンロールメントを起動するよう構成されてもよい。例えば、ゲートウェイデバイス４０６は、デバイスを一意に特定するデバイス識別子に基づいてヘッドレスデバイス４０４を特定するよう構成されてもよい。上記のように、デバイス識別子は、ＭＡＣ（メディアアクセス制御）アドレス、ユニークデバイス識別子（ＵＤＩＤ）、または他のデバイス識別子を含んでもよい。次いで、ゲートウェイデバイス４０６は、ヘッドレスデバイス４０４がゲートウェイデバイス４０６に接続したときにデバイス識別子に基づいてヘッドレスデバイス４０４を検出するよう構成されてもよい。
【００７７】
ヘッドレスデバイス４０４を検出すると、ゲートウェイデバイス４０６は、エンロールメント要求をデバイスエンロールメントシステム２１０に送信するよう構成されてもよい。いくつかの例では、エンロールメント要求は、ヘッドレスデバイス４０４に関連付けられるフィンガープリント情報およびゲートウェイデバイス４０６を特定するゲートウェイ証明書を含んでもよい。フィンガープリント情報は、例えば、デバイスのための識別子またはゲートウェイデバイス４０６によって生成されるデバイスのための識別子を含んでもよい。
【００７８】
いくつかの実施例では、デバイス認証エンジン２１２は、ヘッドレスデバイス４０４に関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、当該デジタル証明書を検証し、デジタル証明書がヘッドレスデバイス４０４に関連付けられる識別子と一致する場合にヘッドレスデバイス４０４を認証することによって、ヘッドレスデバイス４０４の認証を実行してもよい。
【００７９】
デバイスエンロールメントポリシー特定エンジン２１４は、ヘッドレスデバイス４０４のためのエンロールメントポリシーを特定するよう構成されてもよい。そして、デバイスエンロールメントポリシー特定エンジン２１４は、ヘッドレスデバイス４０４に関連付けられるエンロールメントポリシーがゲートウェイデバイス４０６によって許可されるか否か、および、ヘッドレスデバイスがデバイスエンロールメントシステムに事前登録されたデバイスであるか否かを判断するよう構成されてもよい。ヘッドレスデバイスに関連付けられるエンロールメントポリシーがゲートウェイデバイスによって許可される場合、および、ヘッドレスデバイスがデバイスエンロールメントシステムに事前登録されたデバイスである場合、いくつかの実施例では、デバイスエンロールメントエンジン２１６は、ヘッドレスデバイス４０６をエンロールするよう構成されてもよい。そして、デバイスエンロールメントエンジン２１６は、フィンガープリント情報から決定されるヘッドレスデバイス４０６のタイプが、デバイスの事前登録中に記録されたデバイスのタイプと一致するか否かを検証するよう構成されてもよい。デバイスタイプが一致する場合、いくつかの実施例では、デバイスエンロールメントエンジン２１６は、デバイスエンロールメントシステムへのヘッドレスデバイス４０４の登録および／またはエンロールに進んでもよい。
【００８０】
ヘッドレスデバイスがデバイスエンロールメントシステムに事前登録されたデバイスでない場合、特定の実施例では、デバイスエンロールメントエンジン２１６は、ゲートウェイデバイス４０６に関連付けられるエンロールメントポリシーを評価して、デバイスエンロールメントシステムにエンロールされることをゲートウェイデバイス４０６によって許可されるデバイスの数およびタイプを決定するように構成されてもよい。いくつかの例では、デバイスエンロールメントエンジン２１６は、ポリシールールデータベース２１８に記憶されたルールに基づいて、ゲートウェイデバイス４０６に関連付けられるエンロールメントポリシーを評価してもよい。これらのルールは、例えば、ゲートウェイデバイスに関連付けられるデバイスグループ、ゲートウェイデバイスの物理的位置、ゲートウェイデバイスの消費者のライセンスタイプなどを決定することを含んでもよい。ルールが満たされる場合、デバイスエンロールメントエンジン２１６は、デバイスのためのゲートウェイ生成登録識別子を受入れて、ヘッドレスデバイス４０４をデバイスエンロールメントシステムにエンロールしてもよい。
【００８１】
図５〜図７は、本発明の特定の実施例に従ってデバイスエンロールメントサービスを提供するそれぞれのプロセス５００，６００および７００を示す例示的なフロー図を示す。これらのプロセスは、論理フロー図として示されており、その各オペレーションは、ハードウェア、コンピュータ命令またはそれらの組み合わせで実現され得る。コンピュータ命令の文脈では、オペレーションは、１つ以上のプロセッサによって実行されたときに記載されているオペレーションを実行する、１つ以上のコンピュータ読取可能な記憶媒体に記憶されたコンピュータによって実行可能な命令を表わしてもよい。一般に、コンピュータによって実行可能な命令は、特定の機能を実行するかまたは特定のデータタイプを実現するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。オペレーションが記載されている順序は、限定として解釈されるよう意図されるものではなく、任意の数の記載されているオペレーションを任意の順序でおよび／または並列に組み合わせてプロセスを実現してもよい。
【００８２】
また、プロセスのうちのいくつか、いずれかまたは全ては、実行可能な命令で構成された１つ以上のコンピュータシステムの制御下で実行されてもよく、１つ以上のプロセッサ上で集合的に実行されるコード（例えば実行可能な命令、１つ以上のコンピュータプログラム、または１つ以上のアプリケーション）として、ハードウェアによって、またはそれらの組み合わせによって実現されてもよい。上記のように、当該コードは、例えば１つ以上のプロセッサによって実行可能な複数の命令を含むコンピュータプログラムの形態でコンピュータ読取可能な記憶媒体に記憶されてもよい。コンピュータ読取可能な記憶媒体は、非一時的であってもよい。いくつかの例では、少なくとも図２（など）に示される（例えばデバイス認証エンジン、デバイスエンロールメントポリシー特定エンジンおよびデバイスエンロールメントエンジンを少なくとも利用する）デバイスエンロールメントシステム２１０は、図５〜図７のプロセス５００，６００および７００をそれぞれ実行してもよい。
【００８３】
図５は、ユーザに関連付けられるデバイスにデバイスエンロールメントサービスを提供するための例示的なプロセス５００のフロー図を示す。プロセス５００は、ステップ５０２から開始してもよく、ステップ５０２において、ユーザデバイス（例えばユーザデバイス２０２）がデバイスエンロールメントシステム２１０によって検出される。ステップ５０４において、デバイスエンロールメントシステムは、エンロールメント要求をユーザデバイスに送信する。図２との関連で説明するように、いくつかの例では、デバイスエンロールメントシステムの管理者は、エンロールメント要求を起動して、当該エンロールメント要求を電子メールメッセージとしてユーザデバイスに送信してもよい。他の例では、デバイスエンロールメントシステム自体が、エンロールメント要求をユーザデバイス上のエンロールメントアプリケーションに自動的に送信してもよく、ユーザデバイスのユーザは、当該エンロールメントアプリケーションにログインしてエンロールメント要求を閲覧してもよい。
【００８４】
ステップ５０６において、デバイスエンロールメントシステムは、ユーザデバイスのユーザを特定するユーザ資格情報（例えばユーザ名およびパスワード）を受信する。ステップ５０８において、デバイスエンロールメントシステムは、受信されたユーザ資格情報とユーザについてユーザ／デバイス情報データベース（例えば２２０）に記憶された情報とを比較することによってユーザデバイスの認証が成功しているか否かを判断する。ユーザデバイスの認証が成功していない場合、ステップ５１０において、デバイスエンロールメントシステムは、デバイスのエンロールメントを拒否する。
【００８５】
認証が成功している場合、いくつかの実施例では、デバイスエンロールメントシステムは、ユーザデバイスのためのエンロールメントポリシーを特定する。ステップ５１４において、デバイスエンロールメントシステムは、エンロールメントポリシ−に従って一組のエンロールメントルールをユーザデバイスに適用する。これらのルールは、例えば、特定のタイプのエンロールメントがデバイスのユーザのために許可されるか否かを判断すること、ユーザが登録することを許可されるデバイスの数が閾値限界の範囲内であるか否かを判断すること、デバイスのタイプおよびデバイスのオペレーティングシステムバージョンが、デバイスのために特定されたエンロールメントポリシーに従っているか否かを判断すること、などを含んでもよい。
【００８６】
ステップ５１６において、デバイスエンロールメントシステムは、ルールによって指定されたさらなる基準をユーザデバイスが満たすか否かを判断する。ルールによって指定されたさらなる基準をユーザデバイスが満たさない場合、ステップ５１０において、デバイスエンロールメントシステムは、ユーザデバイスのエンロールメントを拒否する。ルールによって指定されたさらなる基準をユーザデバイスが満たす場合、いくつかの実施例では、ステップ５１８において、デバイスエンロールメントシステムは、ユーザデバイスをエンロールする。
【００８７】
図６は、いかなるユーザにも関連付けられないヘッドレスデバイスにデバイスエンロールメントサービスを提供するための例示的なプロセス６００のフロー図を示す。プロセス６００は、ステップ６０２から開始してもよく、ステップ６０２において、ヘッドレスデバイス（例えばヘッドレスデバイス３０２）がデバイスエンロールメントシステム２１０によって検出され、デバイスエンロールメントシステムに事前登録される。ステップ６０４において、デバイスエンロールメントシステムは、共有鍵および識別子をヘッドレスデバイスに送信する。上記のように、共有鍵は、ヘッドレスデバイスと安全に通信するためにデバイスエンロールメントシステムによって使用され得る事前共有鍵またはパスワードを含んでもよい。ステップ６０６において、デバイスエンロールメントシステムは、暗号化された識別子をヘッドレスデバイスから受信する。ステップ６０８において、デバイスエンロールメントシステムは、識別子を復号化する。
【００８８】
いくつかの実施例では、ステップ６１０において、デバイスエンロールメントシステムは、復号化された識別子が、ヘッドレスデバイスに関連付けられる識別子と一致するか否かを判断する。復号化された識別子が、ヘッドレスデバイスに関連付けられる識別子と一致しない場合、デバイスエンロールメントシステムは、デバイスのエンロールメントを拒否する。復号化された識別子が、ヘッドレスデバイスに関連付けられる識別子と一致する場合、いくつかの実施例では、ステップ６１２において、デバイスエンロールメントシステムは、ヘッドレスデバイスを認証する。
【００８９】
ステップ６１４において、デバイスエンロールメントシステムは、ヘッドレスデバイスに関連付けられるエンロールメントポリシーを特定する。ステップ６１６において、デバイスエンロールメントシステムは、エンロールメントポリシーに従って、一組のルールをヘッドレスデバイスに適用する。当該一組のルールは、例えば、ヘッドレスデバイスのジオロケーションが、デバイスエンロールメントシステムから予め定められた距離の範囲内であるか否かを判断すること、特定のタイプのエンロールメントがヘッドレスデバイスのために許可されるか否かを判断すること、ヘッドレスデバイスのタイプおよびヘッドレスデバイスのオペレーティングシステムバージョンが、ヘッドレスデバイス３０２のために特定されたエンロールメントポリシーに従っているか否かを判断すること、などを含んでもよい。
【００９０】
ステップ６１８において、デバイスエンロールメントシステムは、ルールによって指定されたさらなる基準をヘッドレスデバイスが満たすか否かを判断する。ルールによって指定されたさらなる基準をヘッドレスデバイスが満たさない場合、ステップ６２２において、デバイスエンロールメントシステムは、ヘッドレスデバイスのエンロールメントを拒否する。ルールによって指定されたさらなる基準をヘッドレスデバイスが満たす場合、いくつかの実施例では、ステップ６２０において、デバイスエンロールメントシステムは、ヘッドレスデバイスをエンロールする。
【００９１】
図７は、本発明の実施例に従ってゲートウェイデバイスに接続されたヘッドレスデバイスにデバイスエンロールメントサービスを提供するための例示的なプロセス７００のフロー図を示す。プロセス７００は、ステップ７０２から開始してもよく、ステップ７０２において、デバイスエンロールメントシステムは、ゲートウェイデバイスを検出する。ステップ７０４において、デバイスエンロールメントシステムは、ゲートウェイデバイスをエンロールする。ステップ７０６において、デバイスエンロールメントシステムは、ヘッドレスデバイスをエンロールするためのエンロールメント要求をゲートウェイデバイスから受信する。ステップ７０８において、デバイスエンロールメントシステムは、ヘッドレスデバイスを認証する。いくつかの実施例では、ヘッドレスデバイスの認証は、ヘッドレスデバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、当該デジタル証明書を検証し、当該デジタル証明書がヘッドレスデバイスに関連付けられる識別子と一致する場合にヘッドレスデバイスを認証することを含んでもよい。
【００９２】
いくつかの実施例では、ステップ７１０において、デバイスエンロールメントシステムは、ヘッドレスデバイスに関連付けられるエンロールメントポリシーを特定する。ステップ７１２において、デバイスエンロールメントシステムは、ヘッドレスデバイスが事前登録されたデバイスであるか否かを判断する。デバイスが事前登録されたデバイスである場合、ステップ７１４において、デバイスエンロールメントシステムは、デバイスをエンロールする。ヘッドレスデバイスが事前登録されたデバイスでないとデバイスエンロールメントシステムが判断した場合、特定の実施例では、デバイスエンロールメントシステムは、ゲートウェイデバイスに関連付けられるエンロールメントポリシーを評価して、デバイスエンロールメントシステムにエンロールされることをゲートウェイデバイスによって許可されるデバイスの数およびタイプを決定する。上記のように、デバイスエンロールメントエンジンは、ポリシールールデータベース（例えば２１８）に記憶されたルールに基づいて、ゲートウェイデバイスに関連付けられるエンロールメントポリシーを評価してもよい。これらのルールは、例えば、ゲートウェイデバイスに関連付けられるデバイスグループ、ゲートウェイデバイスの物理的位置、ゲートウェイデバイスの消費者のライセンスタイプなどを決定することを含んでもよい。
【００９３】
ステップ７１８において、デバイスエンロールメントシステムは、ヘッドレスデバイスのためのエンロールメント基準が満たされるか否かを判断する。エンロールメント基準が満たされる場合、ステップ７２０において、デバイスエンロールメントシステムは、デバイスをエンロールする。ヘッドレスデバイスがエンロールメント基準を満たさないとデバイスエンロールメントシステムが判断する場合、デバイスエンロールメントシステムは、デバイスのエンロールメントを拒否する。
【００９４】
図８は、実施例を実現するための分散型システム８００の簡略図を示す。示されている実施例では、分散型システム８００は、１つ以上のクライアントコンピューティングデバイス８０２，８０４，８０６および８０８を含み、それらは、１つ以上のネットワーク８１０を介してウェブブラウザ、所有権付きクライアント（例えばオラクルフォームズ（Oracle Forms））などのクライアントアプリケーションを実行および動作させるよう構成される。サーバ８１２は、リモートクライアントコンピューティングデバイス８０２，８０４，８０６および８０８とネットワーク８１０を介して通信可能に結合されてもよい。
【００９５】
さまざまな実施例では、サーバ８１２は、デバイスエンロールメントサービスを提供するサービスおよびアプリケーションなどの１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。特定の実施例では、サーバ８１２は、非仮想および仮想環境を含むことができる他のサービスまたはソフトウェアアプリケーションも提供してもよい。いくつかの実施例では、これらのサービスは、ウェブに基づくサービスもしくはクラウドサービスとして、またはＳｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）モデルの下で、クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８のユーザに対して提供されてもよい。クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８を動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用してサーバ８１２と対話して、これらのコンポーネントによって提供されるサービスを利用してもよい。
【００９６】
図８に示される構成では、システム８００のソフトウェアコンポーネント８１８，８２０および８２２は、サーバ８１２上で実現されるものとして示されている。他の実施例では、システム８００のコンポーネントのうちの１つ以上および／またはこれらのコンポーネントによって提供されるサービスは、クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８のうちの１つ以上によって実現されてもよい。クライアントコンピューティングデバイスを動作させるユーザは、次いで、１つ以上のクライアントアプリケーションを利用して、これらのコンポーネントによって提供されるサービスを用いてもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。分散型システム８００とは異なってもよいさまざまな異なるシステム構成が可能であることが理解されるべきである。図８に示される実施例は、したがって、実施例のシステムを実現するための分散型システムの一例であり、限定的であるよう意図されるものではない。
【００９７】
クライアントコンピューティングデバイス８０２，８０４，８０６および／または８０８は、さまざまなタイプのコンピューティングシステムを含んでもよい。例えば、クライアントコンピューティングデバイスは、携帯可能な手持ち式のデバイス（例えばｉＰｈｏｎｅ（登録商標）、セルラー電話、ｉＰａｄ（登録商標）、コンピューティングタブレット、携帯情報端末（personal digital assistant：ＰＤＡ））またはウェアラブルデバイス（例えばＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標）頭部装着型ディスプレイ）を含んでもよく、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  Ｍｏｂｉｌｅ（登録商標）などのソフトウェア、および／もしくは、ｉＯＳ、Ｗｉｎｄｏｗｓ  Ｐｈｏｎｅ、Ａｎｄｒｏｉｄ、ＢｌａｃｋＢｅｒｒｙ  １０、Ｐａｌｍ  ＯＳなどのさまざまなモバイルオペレーティングシステムを実行する。デバイスは、さまざまなインターネット関連アプリ、電子メール、ショートメッセージサービス（short message service：ＳＭＳ）アプリケーションなどのさまざまなアプリケーションをサポートしてもよく、さまざまな他の通信プロトコルを使用してもよい。クライアントコンピューティングデバイスは、汎用パーソナルコンピュータも含んでもよく、一例として、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ（登録商標）および／またはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを含む。クライアントコンピューティングデバイスは、例えばＧｏｏｇｌｅ  Ｃｈｒｏｍｅ  ＯＳなどのさまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステムを限定を伴うことなく含む、さまざまな市場で入手可能なＵＮＩＸ（登録商標）またはＵＮＩＸのようなオペレーティングシステムのいずれかを実行するワークステーションコンピュータであり得る。クライアントコンピューティングデバイスは、ネットワーク８１０を介して通信することができる、シンクライアントコンピュータ、インターネットにより可能化されるゲームシステム（例えばＫｉｎｅｃｔ（登録商標）ジェスチャ入力デバイスを伴うかまたは伴わないＭｉｃｒｏｓｏｆｔ  Ｘｂｏｘゲームコンソール）および／または個人メッセージ伝達デバイスなどの電子デバイスも含んでもよい。
【００９８】
図８の分散型システム８００は４つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなど、他のデバイスがサーバ８１２と対話してもよい。
【００９９】
分散型システム８００におけるネットワーク８１０は、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（システムネットワークアーキテクチャ）、ＩＰＸ（インターネットパケット交換）、ＡｐｐｌｅＴａｌｋなどを限定を伴うことなく含む、さまざまな入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。単に一例として、ネットワーク８１０は、ローカルエリアネットワーク（ＬＡＮ）、イーサネット（登録商標）、トークンリングに基づくネットワーク、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク（virtual private network：ＶＰＮ）、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（例えば米国電気電子学会（ＩＥＥＥ）１００２．１１のプロトコル一式、Ｂｌｕｅｔｏｏｔｈ（登録商標）、および／もしくはその他の無線プロトコルのうちのいずれかの下で動作するネットワーク）、ならびに／またはこれらの任意の組み合わせおよび／もしくは他のネットワークであり得る。
【０１００】
サーバ８１２は、１つ以上の汎用コンピュータ、専用のサーバコンピュータ（一例としてＰＣ（パーソナルコンピュータ）サーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む）、サーバファーム、サーバクラスタ、またはその他の適切な構成および／もしくは組み合わせで構成されてもよい。サーバ８１２は、仮想オペレーティングシステムを実行する１つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。論理ストレージデバイスの１つ以上の柔軟なプールを仮想化してサーバのために仮想ストレージデバイスを維持することができる。仮想ネットワークを、サーバ８１２によって、ソフトウェア定義のネットワーク接続を用いて制御することができる。さまざまな実施例において、サーバ８１２は、前述の開示に記載される１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。例えば、サーバ８１２は、本開示の実施例に従って上記の処理を実行するためのサーバに対応してもよい。
【０１０１】
サーバ８１２は、上記のもののうちのいずれかを含むオペレーティングシステム、および任意の市場で入手可能なサーバオペレーティングシステムを実行してもよい。サーバ８１２は、ＨＴＴＰ（ハイパーテキスト転送プロトコル）サーバ、ＦＴＰ（ファイル転送プロトコル）サーバ、ＣＧＩ（コモンゲートウェイインターフェイス）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバなどを含むさまざまなさらなるサーバアプリケーションおよび／または中間層アプリケーションのうちのいずれかも実行してもよい。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース、ＩＢＭ（インターナショナルビジネスマシンズ）などから市場で入手可能なものを含むが、それらに限定されるものではない。
【０１０２】
いくつかの実現例では、サーバ８１２は、クライアントコンピューティングデバイス８０２，８０４，８０６および８０８のユーザから受信されるデータフィードおよび／またはイベント更新情報を解析および整理統合するための１つ以上のアプリケーションを含んでもよい。一例として、データフィードおよび／またはイベント更新情報は、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能計量ツール（例えばネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム解析ツール、自動車交通監視などに関連するリアルタイムのイベントを含んでもよい、１つ以上の第三者情報源および連続データストリームから受信される、Ｔｗｉｔｔｅｒ（登録商標）フィード、Ｆａｃｅｂｏｏｋ（登録商標）更新情報またはリアルタイムの更新情報を含んでもよいが、それらに限定されるものではない。サーバ８１２は、データフィードおよび／またはリアルタイムのイベントをクライアントコンピューティングデバイス８０２，８０４，８０６および８０８の１つ以上の表示デバイスを介して表示するための１つ以上のアプリケーションも含んでもよい。
【０１０３】
分散型システム８００は、１つ以上のデータベース８１４および８１６も含んでもよい。これらのデータベースは、在庫情報などの情報および本発明の実施例によって使用される他の情報を記憶するための機構を提供してもよい。データベース８１４および８１６は、さまざまな位置にあってもよい。一例として、データベース８１４および８１６のうちの１つ以上は、サーバ８１２に局在する（および／またはサーバ８１２に常駐する）非一時的な記憶媒体にあってもよい。代替的に、データベース８１４および８１６は、サーバ８１２から遠隔にあり、ネットワークに基づくかまたは専用の接続を介してサーバ８１２と通信してもよい。一組の実施例では、データベース８１４および８１６は、記憶域ネットワーク（storage-area network：ＳＡＮ）にあってもよい。同様に、サーバ８１２に帰する機能を実行するための任意の必要なファイルが、適宜、サーバ８１２上においてローカルに、および／または遠隔で記憶されてもよい。一組の実施例では、データベース８１４および８１６は、ＳＱＬフォーマットされたコマンドに応答してデータを記憶、更新および検索取得するように適合される、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでもよい。
【０１０４】
いくつかの実施例では、上記のデバイスエンロールメントサービスは、クラウド環境を介してサービスとして提供されてもよい。図９は、本開示の実施例に従って、サービスがクラウドサービスとして提供されてもよいシステム環境９００の１つ以上のコンポーネントの簡略ブロック図である。図９における示されている実施例では、システム環境９００は、１つ以上のクライアントコンピューティングデバイス９０４，９０６および９０８を含み、１つ以上のクライアントコンピューティングデバイス９０４，９０６および９０８は、使用パターンに応答してドキュメント（例えばウェブページ）を動的に修正するためのサービスを含むクラウドサービスを提供するクラウドインフラストラクチャシステム９０２と対話するようにユーザによって使用されてもよい。クラウドインフラストラクチャシステム９０２は、サーバ８１２のための上記のものを含んでもよい１つ以上のコンピュータおよび／またはサーバを備えてもよい。
【０１０５】
図９に示されるクラウドインフラストラクチャシステム９０２は図示されるもの以外のコンポーネントを有してもよいことが理解されるべきである。さらに、図９に示される実施例は、本発明の実施例を組み込んでもよいクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施例では、クラウドインフラストラクチャシステム９０２は、図に示されるよりも多いコンポーネントもしくは少ないコンポーネントを有してもよく、２つ以上のコンポーネントを組み合わせてもよく、またはコンポーネントの異なる構成もしくは配置を有してもよい。
【０１０６】
クライアントコンピューティングデバイス９０４，９０６および９０８は、８０２，８０４，８０６および８０８に対して上記されたものと同様のデバイスであってもよい。クライアントコンピューティングデバイス９０４，９０６および９０８は、ウェブブラウザ、所有権付きクライアントアプリケーション（例えばオラクルフォームズ）、または何らかの他のアプリケーションなどのクライアントアプリケーションを動作させるよう構成されてもよく、当該クライアントアプリケーションは、クラウドインフラストラクチャシステム９０２と対話して、クラウドインフラストラクチャシステム９０２によって提供されるサービスを使用するようにクライアントコンピューティングデバイスのユーザによって使用されてもよい。例示的なシステム環境９００が３つのクライアントコンピューティングデバイスとともに示されているが、任意の数のクライアントコンピューティングデバイスがサポートされてもよい。センサを伴うデバイスなどの他のデバイスがクラウドインフラストラクチャシステム９０２と対話してもよい。
【０１０７】
ネットワーク９１０は、クライアント９０４，９０６および９０８とクラウドインフラストラクチャシステム９０２との間におけるデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク１２１０に対して上記されたものを含む、さまざまな市場で入手可能なプロトコルのうちのいずれかを用いてデータ通信をサポートすることができる、当業者が精通している任意のタイプのネットワークであってもよい。
【０１０８】
特定の実施例では、クラウドインフラストラクチャシステム９０２によって提供されるサービスは、オンデマンドでクラウドインフラストラクチャシステムのユーザに利用可能にされるサービスのホストを含んでもよい。デバイス管理に関連するサービスに加えて、オンラインデータストレージおよびバックアップソリューション、ウェブに基づく電子メールサービス、運営管理されるオフィススイートおよびドキュメントコラボレーションサービス、データベース処理、管理される技術サポートサービスなどを限定を伴うことなく含むさまざまな他のサービスも提供されてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、動的にスケーリングしてそのユーザのニーズを満たすことができる。
【０１０９】
特定の実施例では、クラウドインフラストラクチャシステム９０２によって提供されるあるサービスのある具体的なインスタンス化は、本明細書では「サービスインスタンス」と称される。一般に、クラウドサービスプロバイダのシステムからインターネットなどの通信ネットワークを介してユーザに利用可能にされる任意のサービスは、「クラウドサービス」と称される。典型的には、パブリックなクラウド環境においては、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスのサーバおよびシステムとは異なる。例えば、クラウドサービスプロバイダのシステムは、アプリケーションを運営管理してもよく、ユーザは、インターネットなどの通信ネットワークを介して、オンデマンドで、アプリケーションをオーダーし使用してもよい。
【０１１０】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、ストレージ、運営管理されるデータベース、運営管理されるウェブサーバ、ソフトウェアアプリケーション、またはクラウドベンダーによってユーザに提供されるかもしくは他の態様で当該技術分野において公知であるような他のサービスに対する保護されたコンピュータネットワークアクセスを含んでもよい。例えば、サービスは、クラウド上のリモートストレージに対するインターネットを介してのパスワード保護されたアクセスを含むことができる。別の例として、サービスは、ネットワーク接続された開発者による個人的な使用のために、ウェブサービスに基づく運営管理されたリレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダーのウェブサイトにおいて運営管理される電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
【０１１１】
特定の実施例では、クラウドインフラストラクチャシステム９０２は、セルフサービスの、サブスクリプションに基づく、弾性的にスケーラブルで、信頼性があり、非常に利用可能性があり、およびセキュリティ上安全な態様で顧客に対して配送されるアプリケーション、ミドルウェア、データベースサービス提供一式を含んでもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド（Oracle Public Cloud）である。
【０１１２】
クラウドインフラストラクチャシステム９０２は、「ビッグデータ」関連の計算および解析ツールも提供してもよい。「ビッグデータ」という語は、一般に、大量のデータを視覚化し、傾向を検出し、および／またはその他の態様でデータと対話するようにアナリストおよび研究者によって記憶および操作され得る非常に大きなデータセットを指すように用いられる。このビッグデータおよび関連のアプリケーションは、インフラストラクチャシステムによって、多数のレベルにおいて、および異なるスケールで運営管理および／または操作され得る。そのようなデータを表示するため、またはデータもしくはデータが表現するものに対する外部の力をシミュレートするために、並列に連結された何十、何百または何千ものプロセッサがそのようなデータに対して作用することができる。これらのデータセットは、データベース状にもしくはさもなければ構造モデルに従って編成されたものなどの構造化データ、および／または非構造化データ（例えば電子メール、画像、データブロブ（バイナリラージオブジェクト）、ウェブページ、複合イベント処理）を含み得る。より多くの（またはより少ない）計算リソースを比較的迅速に対象に集中させることができる実施例の機能を活用することによって、クラウドインフラストラクチャシステムは、会社、政府機関、研究組織、私人、同じ考えを持った個人もしくは組織のグループ、または他のエンティティからの要求に基づいて大きなデータセットに対してタスクを実行することにさらに利用できるであろう。
【０１１３】
さまざまな実施例では、クラウドインフラストラクチャシステム９０２は、クラウドインフラストラクチャシステム９０２によって提供されるサービスに対する顧客のサブスクリプションを自動的にプロビジョニングし、管理し、およびトラッキングするように適合されてもよい。クラウドインフラストラクチャシステム９０２は、クラウドサービスをさまざまな展開モデルを介して提供してもよい。例えば、サービスは、クラウドインフラストラクチャシステム９０２が（例えばオラクル社によって所有される）クラウドサービスを販売する組織によって所有され、サービスが一般大衆または異なる業界企業に対して利用可能にされるパブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム９０２が単一の組織に対してのみ動作され、その組織内における１つ以上のエンティティに対してサービスを提供してもよいプライベートクラウドモデルの下で提供されてもよい。また、クラウドサービスは、クラウドインフラストラクチャシステム９０２およびクラウドインフラストラクチャシステム９０２によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有されるコミュニティクラウドモデルの下で提供されてもよい。また、クラウドサービスは、２つ以上の異なるモデルの組み合わせであるハイブリッドクラウドモデルの下で提供されてもよい。
【０１１４】
いくつかの実施例では、クラウドインフラストラクチャシステム９０２によって提供されるサービスは、Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＳａａＳ）カテゴリ、Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＰａａＳ）カテゴリ、Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ（ＩａａＳ）カテゴリ、またはハイブリッドサービスを含む他のサービスのカテゴリの下で提供される１つ以上のサービスを含んでもよい。顧客は、サブスクリプションオーダーを介して、クラウドインフラストラクチャシステム９０２によって提供される１つ以上のサービスをオーダーしてもよい。クラウドインフラストラクチャシステム９０２は、次いで、処理を実行して、顧客のサブスクリプションオーダーにおけるサービスを提供する。
【０１１５】
いくつかの実施例では、クラウドインフラストラクチャシステム９０２によって提供されるサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含んでもよいが、それらに限定されるものではない。いくつかの例では、アプリケーションサービスは、クラウドインフラストラクチャシステムによってＳａａＳプラットフォームを介して提供されてもよい。ＳａａＳプラットフォームは、ＳａａＳカテゴリに入るクラウドサービスを提供するよう構成されてもよい。例えば、ＳａａＳプラットフォームは、オンデマンドアプリケーション一式を統合された開発および展開プラットフォーム上で構築し配送する機能を提供してもよい。ＳａａＳプラットフォームは、ＳａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。ＳａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにおいて実行されるアプリケーションを利用することができる。顧客は、別のライセンスおよびサポートを購入する必要なくアプリケーションサービスを取得することができる。さまざまな異なるＳａａＳサービスが提供されてもよい。その例としては、大きな組織に対する売上実績管理、企業統合、および事業柔軟性に対するソリューションを提供するサービスが挙げられるが、それらに限定されるものではない。
【０１１６】
いくつかの実施例では、プラットフォームサービスは、クラウドインフラストラクチャシステム９０２によってＰａａＳプラットフォームを介して提供されてもよい。ＰａａＳプラットフォームは、ＰａａＳカテゴリに入るクラウドサービスを提供するよう構成されてもよい。プラットフォームサービスの例としては、（オラクルなどの）組織が既存のアプリケーションを共有の共通のアーキテクチャにおいて整理統合することができるサービス、およびプラットフォームによって提供される共有のサービスを活用する新たなアプリケーションを構築する機能を挙げることができるが、それらに限定されるものではない。ＰａａＳプラットフォームは、ＰａａＳサービスを提供するための基本的なソフトウェアおよびインフラストラクチャを管理および制御してもよい。顧客は、クラウドインフラストラクチャシステム９０２によって提供されるＰａａＳサービスを、別のライセンスおよびサポートを購入する必要なく取得することができる。プラットフォームサービスの例としては、オラクル・ジャバ・クラウド・サービス（Oracle Java Cloud Service：ＪＣＳ）、オラクル・データベース・クラウド・サービス（Oracle Database Cloud Service：ＤＢＣＳ）などが挙げられるが、それらに限定されるものではない。
【０１１７】
ＰａａＳプラットフォームによって提供されるサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを使用することができ、展開されたサービスを制御することもできる。いくつかの実施例では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス（例えばオラクル・フュージョン・ミドルウェアサービス）、およびＪａｖａクラウドサービスを含んでもよい。一実施例では、データベースクラウドサービスは、組織がデータベースリソースをプールし、顧客にＤａｔａｂａｓｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅをデータベースクラウドの形式で提供することを可能にする共有のサービス展開モデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発および展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してもよく、Ｊａｖａクラウドサービスは、顧客がＪａｖａアプリケーションを展開するためのプラットフォームをクラウドインフラストラクチャシステムにおいて提供してしてもよい。
【０１１８】
さまざまな異なるインフラストラクチャサービスがＩａａＳプラットフォームによってクラウドインフラストラクチャシステムにおいて提供されてもよい。インフラストラクチャサービスは、ストレージ、ネットワーク、ならびにＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客に対する他の基礎的計算リソースなどの基本的な計算リソースの管理および制御を容易にする。
【０１１９】
特定の実施例では、クラウドインフラストラクチャシステム９０２は、クラウドインフラストラクチャシステムの顧客に対してさまざまなサービスを提供するよう用いられるリソースを提供するためのインフラストラクチャリソース９３０も含んでもよい。一実施例では、インフラストラクチャリソース９３０は、サーバ、ストレージ、ならびにＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するためのネットワーク接続リソース、ならびに他のリソースなどの、ハードウェアの予め統合され最適化された組み合わせを含んでもよい。
【０１２０】
いくつかの実施例では、クラウドインフラストラクチャシステム９０２におけるリソースは、複数のユーザによって共有され、要求につき動的に再割り当てされてもよい。また、リソースは、ユーザに対してさまざまな時間ゾーンで割り当てられてもよい。例えば、クラウドインフラストラクチャシステム９０２は、第１の時間ゾーンにおける第１のユーザセットがクラウドインフラストラクチャシステムのリソースをある特定の時間の間利用することを可能にし、次いで、異なる時間ゾーンに位置する別のユーザセットに対する同じリソースの再割り当てを可能にし、それによって、リソースの利用を最大化してもよい。
【０１２１】
特定の実施例では、クラウドインフラストラクチャシステム９０２のさまざまなコンポーネントまたはモジュールによって共有されてクラウドインフラストラクチャシステム９０２によるサービスのプロビジョニングを可能にするある数の内部共有サービス９３２が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウイルススキャンおよびホワイトリストサービス、高可用性、バックアップおよびリカバリサービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを含んでもよいが、それらに限定されるものではない。
【０１２２】
特定の実施例では、クラウドインフラストラクチャシステム９０２は、クラウドインフラストラクチャシステムにおいてクラウドサービス（例えばＳａａＳ、ＰａａＳ、およびＩａａＳサービス）の包括的な管理を提供してもよい。一実施例では、クラウド管理機能は、クラウドインフラストラクチャシステム９０２によって受信される顧客のサブスクリプションをプロビジョニングし、管理し、およびトラッキングする機能などを含んでもよい。
【０１２３】
一実施例では、図９に示されるように、クラウド管理機能は、オーダー管理モジュール９２０、オーダーオーケストレーションモジュール９２２、オーダープロビジョニングモジュール９２４、オーダー管理および監視モジュール９２６、ならびにアイデンティティ管理モジュール９２８などの１つ以上のモジュールによって提供されてもよい。これらのモジュールは、１つ以上のコンピュータおよび／もしくはサーバを含んでもよく、またはそれらを用いて提供されてもよく、それらは、汎用コンピュータ、専用のサーバコンピュータ、サーバファーム、サーバクラスタ、またはその他の適切な構成および／もしくは組み合わせであってもよい。
【０１２４】
例示的な動作では、ステップ９３４において、クライアントデバイス９０４、９０６または９０８などのクライアントデバイスを用いる顧客は、クラウドインフラストラクチャシステム９０２によって提供される１つ以上のサービスを要求し、クラウドインフラストラクチャシステム９０２によって提供される１つ以上のサービスに対するサブスクリプションに対するオーダーを行なうことによって、クラウドインフラストラクチャシステム９０２と対話してもよい。特定の実施例では、顧客は、クラウドＵＩ９１２、クラウドＵＩ９１４および／またはクラウドＵＩ９１６などのクラウドユーザインターフェイス（ＵＩ）にアクセスし、サブスクリプションオーダーをこれらのＵＩを介して行なってもよい。顧客がオーダーを行なうことに応答してクラウドインフラストラクチャシステム９０２によって受信されるオーダー情報は、顧客を識別する情報、およびクラウドインフラストラクチャシステム９０２によって提供される、その顧客が利用することを意図する１つ以上のサービスを含んでもよい。
【０１２５】
ステップ９３６において、顧客から受信されたオーダー情報は、オーダーデータベース９１８に保存されてもよい。これが新たなオーダーである場合には、当該オーダーに対して新たなレコードが作成されてもよい。一実施例では、オーダーデータベース９１８は、クラウドインフラストラクチャシステム９１８によって動作されるいくつかのデータベースのうちの１つであり得、他のシステム要素と連携して動作され得る。
【０１２６】
ステップ９３８において、オーダー情報は、オーダー管理モジュール９２０に転送されてもよく、当該オーダー管理モジュール９２０は、オーダーを検証すること、および検証次第そのオーダーを予約することなど、オーダーに関連する請求および課金機能を実行するよう構成されてもよい。
【０１２７】
ステップ９４０において、オーダーに関する情報は、オーダーオーケストレーションモジュール９２２に通信されてもよく、当該オーダーオーケストレーションモジュール９２２は、顧客によってなされたオーダーに対してサービスおよびリソースのプロビジョニングをオーケストレーションするよう構成される。いくつかの例では、オーダーオーケストレーションモジュール９２２は、オーダープロビジョニングモジュール９２４のサービスをプロビジョニングに使用してもよい。特定の実施例では、オーダーオーケストレーションモジュール９２２は、各オーダーに関連付けられるビジネスプロセスの管理を可能にし、ビジネス論理を適用して、オーダーがプロビジョニングに進むべきか否かを判断する。
【０１２８】
図９に示される実施例に示されているように、ステップ９４２において、新たなサブスクリプションに対するオーダーを受信すると、オーダーオーケストレーションモジュール９２２は、オーダープロビジョニングモジュール９２４に対して、リソースを割り当てて、サブスクリプションオーダーを満たすのに必要とされるリソースを構成するよう、要求を送信する。オーダープロビジョニングモジュール９２４は、顧客によってオーダーされたサービスに対するリソースの割り当てを可能にする。オーダープロビジョニングモジュール９２４は、クラウドインフラストラクチャシステム９００によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするよう用いられる物理的インプリメンテーション層との間にある抽象化レベルを提供する。これにより、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか、サービスおよびリソースが予めプロビジョニングされて要求時にのみ割り当てられる／あてがわれるかなどの、インプリメンテーション詳細からオーダーオーケストレーションモジュール９２４を分離することができる。
【０１２９】
ステップ９４４において、サービスおよびリソースがプロビジョニングされると、要求されたサービスが使用できる状態であることを示す通知が、加入している顧客に送信されてもよい。いくつかの例では、顧客が要求されたサービスの使用を開始することを可能にする情報（例えばリンク）が顧客に送信されてもよい。
【０１３０】
ステップ９４６において、顧客のサブスクリプションオーダーは、オーダー管理および監視モジュール９２６によって管理およびトラッキングされてもよい。いくつかの例では、オーダー管理および監視モジュール９２６は、加入したサービスの顧客使用に関する使用統計を収集するよう構成されてもよい。例えば、統計は、使用されるストレージの量、転送されるデータの量、ユーザの人数、ならびにシステムアップ時間およびシステムダウン時間の量などについて収集されてもよい。
【０１３１】
特定の実施例では、クラウドインフラストラクチャシステム９００は、アイデンティティ管理モジュール９２８を含んでもよく、当該アイデンティティ管理モジュール９２８は、クラウドインフラストラクチャシステム９００におけるアクセス管理および承認サービスなどのアイデンティティサービスを提供するよう構成される。いくつかの実施例では、アイデンティティ管理モジュール９２８は、クラウドインフラストラクチャシステム９０２によって提供されるサービスを利用することを望む顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報、およびそれらの顧客がさまざまなシステムリソース（例えばファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してどのアクションを実行することが承認されるかを記述する情報を含み得る。アイデンティティ管理モジュール９２８は、各顧客についての記述的情報ならびにどのように誰によってその記述的情報がアクセスおよび修正され得るかについての情報の管理も含んでもよい。
【０１３２】
図１０は、本発明の実施例を実現するために使用され得る例示的なコンピュータシステム１０００を示す。いくつかの実施例では、コンピュータシステム１０００は、上記のさまざまなサーバおよびコンピュータシステムのうちのいずれかを実現するよう用いられてもよい。図１０に示されるように、コンピュータシステム１０００は、多数の周辺サブシステムとバスサブシステム１００２を介して通信する処理サブシステム１００４を含むさまざまなサブシステムを含む。これらの周辺サブシステムは、処理加速ユニット１００６、Ｉ／Ｏサブシステム１００８、ストレージサブシステム１０１８および通信サブシステム１０２４を含んでもよい。ストレージサブシステム１０１８は、有形のコンピュータ読取可能な記憶媒体１０２２およびシステムメモリ１０１０を含んでもよい。
【０１３３】
バスサブシステム１００２は、コンピュータシステム１０００のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム１００２は単一のバスとして概略的に示されているが、バスサブシステムの代替的実施例は、複数のバスを利用してもよい。バスサブシステム１００２は、さまざまなバスアーキテクチャのうちのいずれかを用いるメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。例えば、そのようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロチャネルアーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、エンハンストＩＳＡ（Enhanced ISA：ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（Video Electronics Standards Association：ＶＥＳＡ）ローカルバス、およびＩＥＥＥ  Ｐ１３８６．１規格に従って製造される中二階バスとして実現され得る周辺コンポーネントインターコネクト（Peripheral Component Interconnect：ＰＣＩ）バスなどを含んでもよい。
【０１３４】
処理サブシステム１００４は、コンピュータシステム１０００の動作を制御し、１つ以上の処理ユニット１０３２，１０３４などを備えてもよい。処理ユニットは、単一コアもしくはマルチコアプロセッサを含む１つ以上のプロセッサ、プロセッサの１つ以上のコア、またはそれらの組み合わせを含んでもよい。いくつかの実施例では、処理サブシステム１００４は、グラフィックスプロセッサ、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）などの１つ以上の特殊用途コプロセッサを含み得る。いくつかの実施例では、処理サブシステム１００４の処理ユニットの一部または全ては、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）などのカスタマイズされた回路を用いて実現され得る。
【０１３５】
いくつかの実施例では、処理サブシステム１００４における処理ユニットは、システムメモリ１０１０またはコンピュータ読取可能な記憶媒体１０２２に記憶された命令を実行することができる。さまざまな実施例では、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数の同時に実行されるプログラムまたはプロセスを維持することができる。任意の所与のときに、実行されるべきプログラムコードの一部または全ては、システムメモリ１０１０、および／または、場合によっては１つ以上のストレージデバイスを含むコンピュータ読取可能な記憶媒体１０１０に常駐することができる。好適なプログラミングを介して、処理サブシステム１００４は、使用パターンに応答してドキュメント（例えばウェブページ）を動的に修正するための上記のさまざまな機能を提供することができる。
【０１３６】
特定の実施例では、コンピュータシステム１０００によって実行される処理全体を加速させるように、カスタマイズされた処理を実行するため、または処理サブシステム１００４によって実行される処理の一部をオフロードするための処理加速ユニット１００６が設けられてもよい。
【０１３７】
Ｉ／Ｏサブシステム１００８は、コンピュータシステム１０００に情報を入力するため、および／または、コンピュータシステム１０００からもしくはコンピュータシステム１０００を介して情報を出力するためのデバイスおよび機構を含んでもよい。一般に、「入力デバイス」という語の使用は、コンピュータシステム１０００に情報を入力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、例えば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれるタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御して入力デバイスと対話することを可能にするＭｉｃｒｏｓｏｆｔ  Ｋｉｎｅｃｔ（登録商標）モーションセンサ、Ｍｉｃｒｏｓｏｆｔ  Ｘｂｏｘ（登録商標）３６０ゲームコントローラ、ジェスチャおよび話し言葉コマンドを用いて入力を受信するためのインターフェイスを提供するデバイスなどのモーション感知および／またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の活動（例えば写真を撮っている間および／またはメニュー選択を行なっている間の「まばたき」）を検出し、アイジェスチャを入力デバイス（例えばＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標））への入力として変換するＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標）瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム（例えばＳｉｒｉ（登録商標）ナビゲータ）と対話することを可能にする音声認識感知デバイスを含んでもよい。
【０１３８】
ユーザインターフェイス入力デバイスの他の例としては、三次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚／視覚デバイスが挙げられるが、それらに限定されるものではない。また、ユーザインターフェイス入力デバイスは、例えば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、医療超音波検査デバイスなどの医療画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、例えば、ＭＩＤＩ（楽器デジタルインターフェイス（Musical Instrument Digital Interface））キーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
【０１３９】
ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管（cathode ray tube：ＣＲＴ）、液晶ディスプレイ（liquid crystal display：ＬＣＤ）またはプラズマディスプレイを使うものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。一般に、「出力デバイス」という語の使用は、コンピュータシステム１０００からユーザまたは他のコンピュータに情報を出力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。例えば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声／映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されるものではない。
【０１４０】
ストレージサブシステム１０１８は、コンピュータシステム１０００によって使用される情報を記憶するためのリポジトリまたはデータストアを提供する。ストレージサブシステム１０１８は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形の非一時的なコンピュータ読取可能な記憶媒体を提供する。処理サブシステム１００４によって実行されたときに上記の機能を提供するソフトウェア（プログラム、コードモジュール、命令）がストレージサブシステム１０１８に記憶されてもよい。当該ソフトウェアは、処理サブシステム１００４の１つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム１０１８は、本発明に従って使用されるデータを記憶するためのリポジトリも提供してもよい。
【０１４１】
ストレージサブシステム１０１８は、揮発性および不揮発性メモリデバイスを含む１つ以上の非一時的なメモリデバイスを含んでもよい。図１０に示されるように、ストレージサブシステム１０１８は、システムメモリ１０１０と、コンピュータ読取可能な記憶媒体１０２２とを含む。システムメモリ１０１０は、プログラム実行中に命令およびデータを記憶するための揮発性メインランダムアクセスメモリ（random access memory：ＲＡＭ）および固定命令が記憶される不揮発性リードオンリメモリ（read only memory：ＲＯＭ）またはフラッシュメモリを含む複数のメモリを含んでもよい。いくつかの実現例では、起動中などにコンピュータシステム１０００内の要素間における情報の転送を助ける基本的なルーティンを含むベーシックインプット／アウトプットシステム（basic input/output system：ＢＩＯＳ）は、一般に、ＲＯＭに記憶されてもよい。ＲＡＭは、一般に、処理サブシステム１００４によって現在動作および実行されているデータおよび／またはプログラムモジュールを含む。いくつかの実現例では、システムメモリ１０１０は、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）などの複数の異なるタイプのメモリを含んでもよい。
【０１４２】
一例として、限定を伴うことなく、図１０に示されるように、システムメモリ１０１０は、アプリケーションプログラム１０１２を記憶してもよく、当該アプリケーションプログラム１０１２は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム（relational database management system：ＲＤＢＭＳ）など、プログラムデータ１０１４およびオペレーティングシステム１０１６を含んでもよい。一例として、オペレーティングシステム１０１６は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ（登録商標）および／もしくはＬｉｎｕｘ（登録商標）オペレーティングシステム、さまざまな市場で入手可能なＵＮＩＸ（登録商標）またはＵＮＩＸのようなオペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステム、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ（登録商標）ＯＳなどを含むがそれらに限定されない）、ならびに／または、ｉＯＳ、Ｗｉｎｄｏｗｓ（登録商標）  Ｐｈｏｎｅ、Ａｎｄｒｏｉｄ（登録商標）  ＯＳ、ＢｌａｃｋＢｅｒｒｙ（登録商標）  １０  ＯＳ、およびＰａｌｍ（登録商標）  ＯＳオペレーティングシステムなどのモバイルオペレーティングシステムのさまざまなバージョンを含んでもよい。
【０１４３】
コンピュータ読取可能な記憶媒体１０２２は、いくつかの実施例の機能を提供するプログラミングおよびデータ構造を記憶してもよい。処理サブシステム１００４によって実行されたときにプロセッサに上記の機能を提供させるソフトウェア（プログラム、コードモジュール、命令）は、ストレージサブシステム１０１８に記憶されてもよい。一例として、コンピュータ読取可能な記憶媒体１０２２は、ハードディスクドライブ、磁気ディスクドライブ、ＣＤ  ＲＯＭ、ＤＶＤ、ブルーレイ（登録商標）ディスクなどの光ディスクドライブ、または他の光学式媒体などの不揮発性メモリを含んでもよい。コンピュータ読取可能な記憶媒体１０２２は、Ｚｉｐ（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（universal serial bus：ＵＳＢ）フラッシュドライブ、セキュアデジタル（secure digital：ＳＤ）カード、ＤＶＤディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されるものではない。コンピュータ読取可能な記憶媒体１０２２は、フラッシュメモリベースのＳＳＤ、企業フラッシュドライブ、ソリッドステートＲＯＭなどの不揮発性メモリに基づくソリッドステートドライブ（solid-state drive：ＳＳＤ）、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭ、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（magnetoresistive RAM：ＭＲＡＭ）ＳＳＤなどの揮発性メモリに基づくＳＳＤ、およびＤＲＡＭとフラッシュメモリベースのＳＳＤとの組み合わせを使用するハイブリッドＳＳＤも含んでもよい。コンピュータ読取可能な媒体１０２２は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータのストレージをコンピュータシステム１０００に提供してもよい。
【０１４４】
特定の実施例では、ストレージサブシステム１０００は、コンピュータ読取可能な記憶媒体１０２２にさらに接続可能なコンピュータ読取可能記憶媒体リーダ１０２０も含んでもよい。システムメモリ１０１０とともに、およびオプションとしてシステムメモリ１０１０との組み合わせで、コンピュータ読取可能な記憶媒体１０２２は、コンピュータ読取可能な情報を記憶するための、遠隔の、ローカルな、固定された、および／またはリムーバブルなストレージデバイスに記憶媒体を加えたものを包括的に表わしてもよい。
【０１４５】
特定の実施例では、コンピュータシステム１０００は、１つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム１０００は、仮想マシンの構成および管理を容易にするためのハイパーバイザなどのプログラムを実行してもよい。各仮想マシンは、割り当てられたメモリ、計算（例えばプロセッサ、コア）、Ｉ／Ｏおよびネットワーク接続リソースであってもよい。各仮想マシンは、一般に、それ自体のオペレーティングシステムを実行し、当該オペレーティングシステムは、コンピュータシステム１０００によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同一であってもよく、または異なっていてもよい。したがって、場合によっては、複数のオペレーティングシステムがコンピュータシステム１０００によって同時に実行されてもよい。各仮想マシンは、一般に、他の仮想マシンから独立して実行される。
【０１４６】
通信サブシステム１０２４は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム１０２４は、他のシステムとコンピュータシステム１０００との間のデータの送受のためのインターフェイスとして働く。例えば、通信サブシステム１０２４は、コンピュータシステム１０００が１つ以上のクライアントデバイスとの情報の送受のためにインターネットを介したクライアントデバイスへの通信チャネルを確立することを可能にしてもよい。
【０１４７】
通信サブシステム１０２４は、有線通信プロトコルおよび／または無線通信プロトコルをサポートしてもよい。例えば、特定の実施例では、通信サブシステム１０２４は、（例えばセルラー電話技術、３Ｇ、４ＧもしくはＥＤＧＥ（グローバル進化のための高速データレート）などの先進データネットワーク技術、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリー規格、もしくは他のモバイル通信技術、またはそれらの任意の組み合わせを用いて）無線音声および／またはデータネットワークにアクセスするための無線周波数（radio frequency：ＲＦ）送受信機コンポーネント、グローバルポジショニングシステム（global positioning system：ＧＰＳ）受信機コンポーネント、ならびに／または他のコンポーネントを含んでもよい。いくつかの実施例では、通信サブシステム１０２４は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続（たとえばイーサネット）を提供することができる。
【０１４８】
通信サブシステム１０２４は、さまざまな形式でデータを送受信することができる。例えば、いくつかの実施例では、通信サブシステム１０２４は、構造化されたおよび／または構造化されていないデータフィード１０２６、イベントストリーム１０２８、イベント更新情報１０３０などの形式で入力通信を受信してもよい。例えば、通信サブシステム１０２４は、ソーシャルメディアネットワークおよび／またはＴｗｉｔｔｅｒ（登録商標）フィード、Ｆａｃｅｂｏｏｋ（登録商標）更新情報、Ｒｉｃｈ  Ｓｉｔｅ  Ｓｕｍｍａｒｙ（ＲＳＳ）フィードなどのウェブフィード、および／もしくは１つ以上の第三者情報源からのリアルタイム更新情報などの他の通信サービスのユーザからリアルタイムでデータフィード１０２６を受信（または送信）するよう構成されてもよい。
【０１４９】
特定の実施例では、通信サブシステム１０２４は、連続データストリームの形式でデータを受信するよう構成されてもよく、当該連続データストリームは、明示的な端部を有さない本質的に連続的または無限であってもよい、リアルタイムイベントのイベントストリーム１０２８および／またはイベント更新情報１０３０を含んでもよい。連続データを生成するアプリケーションの例としては、例えば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール（例えばネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム解析ツール、自動車交通監視などを挙げることができる。
【０１５０】
また、通信サブシステム１０２４は、構造化されたおよび／または構造化されていないデータフィード１０２６、イベントストリーム１０２８、イベント更新情報１０３０などを、コンピュータシステム１０００に結合される１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するよう構成されてもよい。
【０１５１】
コンピュータシステム１０００は、手持ち式の携帯デバイス（例えばｉＰｈｏｎｅ（登録商標）携帯電話、ｉＰａｄ（登録商標）コンピューティングタブレット、ＰＤＡ）、ウェアラブルデバイス（例えばＧｏｏｇｌｅ  Ｇｌａｓｓ（登録商標）頭部装着型ディスプレイ）、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのもののうちの１つであり得る。
【０１５２】
常に変化するコンピュータおよびネットワークの性質のため、図１０に示されるコンピュータシステム１０００の記載は、単に具体的な例として意図される。図１０に示されるシステムよりも多いまたは少ないコンポーネントを有する多くの他の構成が可能である。本明細書における開示および教示に基づいて、当業者は、さまざまな実施例を実現する他の態様および／または方法を理解するであろう。
【０１５３】
本発明の具体的な実施例について説明してきたが、さまざまな変形例、変更例、代替的な構成および等価物も本発明の範囲内に包含される。本発明の実施例は、特定の具体的なデータ処理環境内でのオペレーションに限定されるものではなく、複数のデータ処理環境内で自由に動作できる。また、特定の一連のトランザクションおよびステップを用いて本発明の実施例について説明してきたが、本発明の範囲は、記載されている一連のトランザクションおよびステップに限定されるものではない、ということが当業者に明らかであるべきである。上記の実施例のさまざまな特徴および局面は、個々にまたは一緒に使用されてもよい。
【０１５４】
さらに、ハードウェアとソフトウェアとの特定の組み合わせを用いて本発明の実施例について説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも本発明の範囲内であることが認識されるべきである。本発明の実施例は、ハードウェアのみで実現されてもよく、またはソフトウェアのみで実現されてもよく、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されているさまざまなプロセスは、任意の組み合わせで同一のプロセッサまたは異なるプロセッサ上で実現され得る。したがって、コンポーネントまたはモジュールが特定のオペレーションを実行するよう構成されるものとして記載されている場合、このような構成は、例えばオペレーションを実行するように電子回路を設計することによって、オペレーションを実行するように（マイクロプロセッサなどの）プログラム可能な電子回路をプログラミングすることによって、またはそれらの任意の組み合わせによって、達成されることができる。プロセスは、従来のプロセス間通信技術を含むがそれに限定されないさまざまな技術を用いて通信することができ、プロセスの異なる対は、異なる技術を使用してもよく、またはプロセスの同一の対は、異なるときに異なる技術を使用してもよい。
【０１５５】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考えられるべきである。しかし、特許請求の範囲に記載されているより広範な精神および範囲から逸脱することなく、追加、減算、削除、ならびに他の変形および変更がそれに対してなされてもよい、ということは明白であろう。したがって、具体的な本発明の実施例について説明してきたが、これらは限定的であるよう意図されるものではない。さまざまな変形例および等価物は、以下の特許請求の範囲の範囲内である。
【０１５６】
実施例において、デバイスエンロールメントシステムは、デバイス認証エンジンとデバイスエンロールメントポリシー特定エンジンとデバイスエンロールメントエンジンとを備えるものとして実現されてもよく、デバイス認証エンジン、デバイスエンロールメントポリシー特定エンジンおよびデバイスエンロールメントエンジンは、上記のデバイス認証エンジン２１２、デバイスエンロールメントポリシー特定エンジン２１４およびデバイスエンロールメントエンジン２１６と類似のものであり得る。デバイス認証エンジンは、通信ネットワーク内の複数の電子デバイスを検出し、複数の電子デバイスを認証し、複数の電子デバイスの第１のデバイスが人間のユーザに関連付けられることを判断し、複数の電子デバイスの第２のデバイスが、いずれか一人のユーザに専用でないヘッドレスデバイスであることを確認するよう構成されてもよい。デバイスエンロールメントポリシー特定エンジンは、当該判断に基づいて、第１のデバイスに関連付けられる第１のエンロールメントポリシーを特定し、当該確認およびヘッドレスデバイスのジオロケーションに基づいて、第２のデバイスに関連付けられる第２のエンロールメントポリシーを特定するよう構成されてもよい。デバイスエンロールメントエンジンは、第１のエンロールメントポリシーに従って第１のエンロールメントルールセットを第１のデバイスに適用し、第２のエンロールメントポリシーに従って第２のエンロールメントルールセットを第２のデバイスに適用し、第１のエンロールメントポリシーに基づいて第１のデバイスをエンロールし、第２のエンロールメントポリシーに基づいて第２のデバイスをエンロールするよう構成されてもよい。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジンは、第１のデバイスのオペレーティングシステムまたはタイプに基づいて第１のエンロールメントポリシーを特定するようさらに構成されてもよく、第１のデバイスのタイプは、ワークステーション、パーソナルコンピュータ、タブレットコンピュータ、モバイルデバイスおよびウェアラブルデバイスからなる群から選択される。いくつかの実施例では、ヘッドレスデバイスは、温度センサ、酸素センサ、心電図記録（ＥＫＧ）センサ、カメラまたは医療用検知機器を含む。いくつかの実施例では、デバイスエンロールメントポリシー特定エンジンは、固定されたゲートウェイを介した信頼できる接続に基づいて第２のエンロールメントポリシーを特定するようさらに構成されてもよい。いくつかの実施例では、デバイス認証エンジンは、エンロールメント要求を複数の電子デバイスに送信し、エンロールメント要求に応答して複数の電子デバイスから資格情報を受信し、資格情報に基づいて複数の電子デバイスを認証するようさらに構成されてもよい。いくつかの実施例では、デバイス認証エンジンは、複数の電子デバイスがシステムに事前登録されることを判断し、当該判断に基づいて、共有鍵および識別子を１つ以上の電子デバイスに送信し、暗号化された識別子および共有鍵を１つ以上の電子デバイスから受信し、暗号化された識別子および共有鍵を復号化し、当該復号化に基づいてデジタル証明書を複数の電子デバイスに送信する、ことによって１つ以上の電子デバイスを認証するようさらに構成されてもよい。いくつかの実施例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの１つ以上を指定してもよい。いくつかの実施例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスをシステムにエンロールするために適用される特定の認証機構に関連する情報を指定してもよい。いくつかの実施例では、第１のエンロールメントルールセットおよび第２のエンロールメントルールセットは、複数の電子デバイスのジオロケーションに関連する情報を指定してもよい。
【０１５７】
少なくともいくつかの実施例によれば、デバイスエンロールメントシステムは、デバイス認証エンジンとデバイスエンロールメントポリシー特定エンジンとデバイスエンロールメントエンジンとを備えるものとして実現され、デバイス認証エンジン、デバイスエンロールメントポリシー特定エンジンおよびデバイスエンロールメントエンジンは、上記のデバイス認証エンジン２１２、デバイスエンロールメントポリシー特定エンジン２１４およびデバイスエンロールメントエンジン２１６と類似のものであり得る。デバイス認証エンジンは、通信ネットワーク内の１つ以上の電子デバイスに接続されたゲートウェイデバイスを検出するよう構成され、ゲートウェイデバイスのエンロールメント時に、１つ以上の電子デバイスをシステムにエンロールするためのエンロールメント要求をゲートウェイデバイスから受信し、１つ以上の電子デバイスを認証するよう構成されてもよい。デバイスエンロールメントポリシー特定エンジンは、ゲートウェイデバイスのために規定されるエンロールメントポリシーを特定するよう構成されてもよい。デバイスエンロールメントエンジンは、ゲートウェイデバイスをエンロールし、エンロールメントポリシーに従って１つ以上の電子デバイスをエンロールし、１つ以上のエンロールされたデバイスがシステムのリソースにアクセスすることを可能にする情報をゲートウェイデバイスに送信するよう構成されてもよい。いくつかの実施例では、デバイス認証エンジンは、１つ以上の電子デバイスに関連付けられるフィンガープリント情報を備えるデジタル証明書をゲートウェイデバイスから受信し、デジタル証明書を検証し、デジタル証明書に基づいて１つ以上の電子デバイスを認証するようさらに構成されてもよい。いくつかの実施例では、デバイスエンロールメントエンジンは、エンロールメントポリシーによって規定されるエンロールメントルールセットを１つ以上の電子デバイスに適用し、エンロールメントルールセットに従って１つ以上の電子デバイスをエンロールするようさらに構成されてもよい。いくつかの実施例では、エンロールメントルールセットは、１つ以上の電子デバイスをエンロールすることができるシステム内のユーザに関連する情報、システムの一人以上のユーザによってエンロールされることができるデバイスのタイプに関連する情報、および一人以上のユーザによってシステムにエンロールされることができるデバイスの最大数に関連する情報のうちの１つ以上を指定する。いくつかの実施例では、１つ以上の電子デバイスは、ヘッドレスデバイスを備え、ヘッドレスデバイスは、プリンタ、スキャナ、ファクシミリ機、テレビ会議機器またはボイスオーバーＩＰ（ＶｏＩＰ）電話を含む。
【図１】
0006474890.tif 000002
【図２】
0006474890.tif 000003
【図３】
0006474890.tif 000004
【図４】
0006474890.tif 000005
【図５】
0006474890.tif 000006
【図６】
0006474890.tif 000007
【図７】
0006474890.tif 000008
【図８】
0006474890.tif 000009
【図９】
0006474890.tif 000010
【図１０】
0006474890.tif 000011