(58)【調査した分野】(Int.Cl.,DB名)
前記接続情報は、前記第1ターゲットシステムのポートアドレス、前記第1ターゲットシステムのホストアドレス、および前記第1ターゲットシステムのライトウェイトディレクトリアクセスプロトコル(LDAP)を含む、請求項1から9のいずれか1項に記載の方法。
前記リモート装置の前記コンフィグレーションは、前記リモート装置の装置コンフィグレーションまたはオペレーティングシステムコンフィグレーションの一方または両方を含む、請求項15に記載のシステム。
【発明を実施するための形態】
【0028】
詳細な説明
以下の記載において、本発明の実施形態を完全に理解するために、説明の目的で具体的な詳細を説明する。しかしながら、これらの具体的な詳細がなくても、さまざまな実施形態を実施できることは、明らかであろう。例えば、回路、システム、アルゴリズム、構造、技術、ネットワーク、プロセス、および他の構成要素は、実施形態を不必要な詳細により不明瞭にしないために、ブロック図の形式で要素として示されることがある。図面および説明は、限定的なものではない。
【0029】
なお、各実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明されてもよい。フローチャートは、処理を連続プロセスとして記述しているが、複数の処理は、並行にまたは同時に実行されてもよい。また、処理の順序を改変してもよい。プロセスは、その処理が完了した時点で終了するが、図面に含まれていない追加ステップを含んでもよい。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応してもよい。プロセスが関数に対応する場合、その終了は、その関数を呼び出し関数またはメイン関数にリターンすることに対応してもよい。
【0030】
本開示は、一般的に、リモート装置を用いて企業システムに対するアクセスの管理に関する。より詳細には、企業システムへのアクセスを可能にするために、リモート装置およびユーザIDの管理を統一するための技術が開示される。企業システム内のリソースにアクセスするリモート装置上のアプリケーションの準備を管理するための技術が開示される。具体的には、リモート装置を用いて企業システム内のリソースにアクセスするように、アクセス情報(例えば、アカウント情報)および接続情報を用いて、アプリケーションを自動的に設定することができる。設定がなされたアプリケーションを用いて、リモート装置のユーザは、リソースにアクセスすることができ、リソースにアクセスするように手動でアプリケーションを設定する必要がない。
【0031】
いくつかの実施形態において、装置アクセス管理システムを実装して、リモート装置を用いてリソースにアクセスするアプリケーションを設定することができる。ユーザにリモート装置の登録、リソースにアクセスする要求の受信、新たなリソースにアクセスする許可の検出、または新たなアプリケーションの検出を含むいくつかの理由で、アプリケーションを自動的に設定することができる。アプリケーションの設定は、アプリケーションを用いてリソースにアクセスするためのアカウントの決定を含むことができる。アプリケーションを設定する対象のリモート装置に関連付けられたユーザにアカウントを決めることができる。アカウントがリソースにアクセスするように準備されていない場合、ユーザ役割に基づいて、リソースにアクセスするようにアカウントを準備することができる。いくつかの実施形態において、リソースへのアクセス権は、ユーザ役割に基づいて変化することができる。ユーザのアカウントを決定することによって、ユーザは、リソースにアクセスするアプリケーションを設定する前に、アカウント情報の取得またはアカウントの要求などの追加プロセスを行う必要がない。
【0032】
装置アクセス管理システムは、アプリケーションを自動的に設定することによって、ユーザがアプリケーションを設定するために使用されるプロセスを低減するまたは無くすことができる。多くの場合、リモート装置の属性(例えば、装置の種類および装置のプラットフォームの種類)が変更することがある。装置の属性に応じて、アプリケーションを設定することは、異なるプロセスに関与することになる。ユーザは、アプリケーションを設定するためのさまざまなプロセスに精通していない可能性がある。複数のリモート装置を有するユーザにとって、これらのリモート装置の各々にアプリケーションを設定する必要があるため、負担になる。同様に、企業として、ユーザに登録された各リモート装置上のアプリケーションが適切に設定されていることを保証するメカニズムを提供必要があり、負担になる。装置アクセス管理システムは、ユーザに登録された各リモート装置の少なくともアクセス情報(例えば、アカウント情報)および接続情報(例えば、ポートアドレス、ホストアドレス、またはデータアクセスプロトコル)を用いて、アプリケーションを自動的に設定することができる。いくつかの実施形態において、アプリケーションの機能に関連して設定される1つ以上の設定情報を設定することができる。ユーザの役割またはユーザの嗜好に基づいて、当該設定情報を設定することができる。アプリケーションが設定されると、そのアプリケーションを実行してリソースにアクセスすることができる。ユーザは、設定がなされたアプリケーションを用いてリソースにアクセスするために、機密アクセス情報(例えば、パスワード)を提供しなければならない。ユーザおよび企業のいずれも、リソースにアクセスするために、アプリケーションを手動で設定する必要がない。
【0033】
アプリケーションを設定したとき、装置アクセス管理システムは、当該アプリケーションを設定する対象のリモート装置に、設定がなされた当該アプリケーションを送信することができる。いくつかの実施形態において、プッシュ通知サービスを用いて、設定がなされたアプリケーションをリモート装置に送信してもよい。設定がなされたアプリケーションは、受信されると、リモート装置に自動的にインストールされる。その後、アプリケーションを実行することによって、リソースにアクセスすることができる。いくつかの実施形態において、設定がなされたアプリケーションをデータストア(例えば、アプリケーションカタログ)に記憶することができ、リモート装置は、記憶されたアプリケーションを読出すおよび/または検索し取り出すことができる。リモート装置は、データストア内の利用できるアプリケーションに関する通知を受信することができる。いくつかの実施形態において、設定がなされたアプリケーションそのものではなく、アプリケーションのコンフィグレーションのみをリモート装置に送信することができる。リモート装置は、受信したコンフィグレーションに基づいて、アプリケーションを設定することができる。
【0034】
異なるユーザに登録された複数のリモート装置用のために、アプリケーションを設定することができる。同様に、1人のユーザに登録された複数のリモート装置のために、アプリケーションを設定し、装置アクセス管理システムは、設定がなされたアプリケーションを各リモート装置に送信してもよい。ユーザごとにアプリケーションを設定することによって、企業は、最新のアプリケーションがリモート装置に提供されていることを保証することができ、ユーザは、各リモート装置のアプリケーションを確認および取得する必要がない。アプリケーションを複数の装置用に設定することによって、企業システムに送信されるアプリケーションを要求する要求の数を減らし、アプリケーション配信の処理効率を改善することができる。
【0035】
企業システム内のリソースへのアクセス権の変更を検出すると、装置アクセス管理システムは、リソースへのアクセスを提供するアプリケーションのコンフィグレーションを自動的に変更することができる。アクセス権の変更は、1人または複数のユーザの役割の変更、アプリケーションの更新、ポリシー遵守の変更、およびリモート装置の構成の変更を含むがこれらに限定されない任意数の変更イベントによって、引き起こされ得る。装置アクセス管理システムは、変更に応じて、変更により影響を受ける1つ以上のリモート装置上のアプリケーションのコンフィグレーションを変更することができる。例えば、リソースへのアクセス権が取消された場合、その設定内容を削除するようにアプリケーションのコンフィグレーションを変更することができる。いくつかの実施形態において、装置アクセス管理システムは、変更により影響を受けるリモート装置に命令を送信することができる。命令は、受信されると、リモート装置に指示して、アクセス権の変更に応じてアプリケーションのコンフィグレーションを変更することができる。リソースへのアクセス権が取消された場合、命令は、リモート装置に指示して、そのリソースへのアクセスを提供するアプリケーションを削除することができる。新たなリソースへのアクセスが許可されたことを検出すると、検出されたリソースへのアクセスを許可したユーザに登録されたリモート装置用のために、アプリケーションを設定することができる。新たに設定がなされたされたアプリケーションは、設定がなさされたアプリケーションのインストールが許可されたリモート装置に送信されてもよい。
【0036】
図1は、本発明のいくつかの実施形態に従って、リモート装置を用いて企業システムに対するアクセスを管理するための装置アクセス管理システムを含むコンピューティングシステム100を高レベルで示す簡略図である。具体的には、コンピューティングシステム100は、企業システムへのアクセスを可能にするために、リモート装置およびユーザIDの管理を統一することができる。コンピューティングシステム100は、企業システム内のリソースにアクセスするように、アプリケーションをリモート装置に提供することを容易にすることができる。
図1に示された実施形態は、単なる例示であり、請求される本発明の実施形態を不当に限定することを意図していない。当業者であれば、多くの変形例、代替例および修正例の存在が分かるであろう。
【0037】
コンピューティングシステム100は、企業に実装された企業システムの一部であってもよい。コンピューティングシステム100は、企業システムによって提供された1つ以上のリソースへのアクセスを提供する企業コンピュータシステム150を含むことができる。リソースの例は、ハードウェアリソース、ソフトウェアリソース(例えば、アプリケーション)、データリソース、サービスリソース、場所、オブジェクトなどを含むことができる。リソースは、企業コンピュータシステム150によって提供されてもよく、または第三者プロバイダにホストされ、企業コンピュータシステム150によってリモート装置に提供されてもよい。いくつかの実施形態において、リソースは、企業コンピュータシステム150または第三者プロバイダによって実装される1つ以上のターゲットシステムによって提供されてもよい。例えば、メールサービスは、メールサービスシステムによってリモート装置のユーザに提供されてもよい。メールサービスは、メールサービスシステムと通信するように構成されたアプリケーションを用いて、リモート装置からアクセスされてもよい。メールサービスシステムは、企業コンピュータシステム150に含まれてもよく、企業コンピュータシステム150からアクセスしてもよい。
【0038】
ユーザは、1つ以上のリモート装置、例えばリモート装置108−1、108−2、・・・108−N(合わせてリモート装置108という)を用いて、企業コンピューティングシステム150にアクセスすることができる。リモート装置108を用いて企業コンピュータシステム150に対するアクセスは、装置アクセス管理システム120によって制御および管理することができる。リモート装置108の各々は、セキュアコンテナアプリケーションを含むことができる。セキュアコンテナアプリケーションは、企業コンピュータシステム150にアクセスするように、装置アクセス管理システム120と通信するための安全な実行環境を提供することができる。リモート装置108は、装置アクセス管理システム120と通信することによって、企業コンピュータシステム150により提供されたリソースへのアクセス権を取得することができる。
【0039】
装置アクセス管理システム120は、企業コンピュータシステム150にアクセスするためのリモート装置108の認証および登録を管理することができる。企業システム120にアクセスするように登録されたユーザIDで、リモート装置108を登録することができる。ユーザIDを用いてユーザを認証すると同様に、リモート装置を認証するために使用されたID(識別子)を用いて、リモート装置を登録することができる。IDは、リモート装置に提供されてもよく、そのリモート装置からのすべてのさらなる通信を認証するために使用されてもよい。データストア160内のユーザ情報データストア172は、企業コンピュータシステム150にアクセスするように登録されたユーザに関する情報を含むことができる。ユーザ情報は、ユーザに関するユーザID情報を含むことができる。ユーザ情報の例は、
図5を参照して説明される。
【0040】
企業コンピュータシステム150にアクセスするように登録されたユーザは、企業コンピュータシステム150にアクセスするように1つ以上のリモート装置108を登録することができる。装置アクセス管理システム120は、インターフェイスを提供して、リモート装置を企業コンピュータシステム150の1つのIDに登録することができる。例えば、装置アクセス管理システム120は、グラフィカルユーザインターフェイス(GUI)をリモート装置のユーザに提供することができる。リモート装置のユーザは、このGUIを介して、企業コンピュータシステム150にアクセスするように登録されたユーザのIDに関連するリモート装置に関する情報を登録することができる。装置アクセス管理システム120は、企業コンピュータシステム150にアクセスするためのユーザIDでリモート装置の登録を行うために、リモート装置に証明書を発行することができる。要求がリモート装置のIDに関連付けられたユーザIDからのものである場合、装置アクセス管理システム120は、そのリモート装置からコンピュータシステム150へのアクセスを許可する。
【0041】
装置アクセス管理システム120は、リモート装置に関する装置情報を「装置記録」に記憶することができる。装置記録は、リモート装置を登録するユーザのIDを示すユーザ情報に関連して記憶されてもよい。ユーザ情報は、ユーザ情報データストア172に記憶されてもよい。いくつかの実施形態において、リモート装置は、複数のIDに登録されてもよく、各IDは、単一のユーザまたは異なるユーザに関連付けられてもよい。装置記録は、装置レジストリ162に記憶されてもよい。ユーザ情報の例および装置記録の例は、
図7を参照して説明される。
【0042】
企業コンピュータシステム150にアクセスするためのユーザ情報(例えば、ID)に関連して装置情報を記憶することによって、統一の方法でリモート装置108およびIDを管理することができる。企業コンピュータシステム150にアクセスするためのリモート装置は、リモート装置の装置記録とユーザIDとの間の関連に基づいて、ユーザIDを用いて特定されてもよい。後述するように、リモート装置108と1つ以上のIDとの間の関連は、リモート装置108を用いて企業コンピュータシステム150に対するアクセス権の管理を改善することができる。
【0043】
いくつかの実施形態において、1つ以上のリモート装置108は、リソースにアクセスするように設定されたアプリケーションを用いて、企業コンピュータシステム150によって提供されたリソースにアクセスすることができる。装置アクセス管理システム120は、ユーザIDに関連付けられたリモート装置のために、アプリケーションを準備することができる。以下でさらに説明するように、装置アクセス管理システム120は、企業コンピュータシステム150と通信するために準備されたアプリケーションを設定して、リソースにアクセスすることができ、またはそのリソースを提供するターゲットシステムと直接通信することができる。アプリケーションは、ユーザのIDに登録されたリモート装置上で動作するように設定されてもよい。例えば、企業コンピュータシステム内のリソースにアクセスするために、コンピューティングシステム(例えば、ターゲットシステムのコンピューティングシステム)に接続するためのアクセス情報(例えば、ユーザID、アクセストークン、または他の認証情報)および接続情報(例えば、ホストサーバ、ポートアドレス、通信情報、または他のプロトコル)を用いて、アプリケーションを設定することができる。リソースへのアクセスを提供するアプリケーションを準備することは、リモート装置からリソースにアクセスするユーザIDにアカウントを決定することを含むことができる。アカウントがユーザのIDに準備されていない場合、企業コンピュータシステム150は、リソースにアクセスするようにアカウントを準備することができる。ユーザのID用のために設定されたアプリケーションは、そのIDで登録されたリモート装置に送信されてもよい。そのIDに関連付けられたユーザは、設定がなされたアプリケーションを操作して、準備されたアカウントのリソースにアクセスすることができる。
【0044】
コンピューティングシステム100は、異なる通信ゾーンにそれぞれ対応する複数のゾーンに規定されてもよい。いくつかの実施形態において、リモート装置108は、外部通信ゾーン(「外部ゾーン」)102に配置されてもよい。装置アクセス管理システム120および企業コンピュータシステム150は、グリーン通信ゾーン(「グリーンゾーン」)106に配置されてもよい。グリーンゾーン106は、1つ以上の安全なネットワーク(例えば、企業ネットワーク)を含むことができる。グリーンゾーン106は、企業コンピューティング環境のファイアウォールの内側に配置されてもよい。外部ゾーン102は、非安全な外部ネットワーク(例えば、インターネット)の一部であってもよい。例えば、外部ゾーン102は、グリーンゾーン106のファイアウォールの外側に配置されてもよい。
【0045】
いくつかの実施形態において、リモート装置108は、DMZ(Demilitarized Zone、非武装地帯)104に配置されたセキュリティアクセスシステム110を介して、グリーンゾーン106内のコンピュータシステムと通信することができる。DMZ104の例として、企業DMZが挙げられる。セキュリティアクセスシステム110は、リモート装置108と装置アクセス管理システム120との間の安全な通信を容易にすることができる。例えば、セキュリティアクセスシステム110は、リモート装置108および装置アクセス管理システム120のうちいずれか一方上のセキュアコンテナアプリケーションと、安全な通信接続(例えば、トンネル)を形成することができる。
【0046】
セキュリティアクセスシステム110は、リモート装置のユーザを認証するサービスを提供することができる。セキュリティアクセスシステム110は、ユーザアクセス管理システム130と通信して、リモート装置のユーザを認証するための認証を取得することができる。例えば、セキュリティアクセスシステム110は、企業コンピュータシステム150によって提供されたリソースに対するシングルサインオン(SSO)認証を容易にするために、ユーザアクセス管理システム130から認証トークンを取得することができる。一例において、セキュリティアクセスシステム110は、Oracle(登録商標)モバイルセキュリティアクセスサーバに含まれてもよい。Oracleモバイルセキュリティアクセスサーバは、Oracle社により提供されるOracleモバイルセキュリティスイートの一部である。
【0047】
リモート装置108は、エンドポイント装置、装着型装置(例えば、スマートウォッチ)、消費者装置(例えば、電気製品)、パーソナルコンピュータ、デスクトップ、IOT(Internet of Things:インターネット端末)装置、ラップトップ、携帯電話、タブレット、コンピュータ端末などのモバイル装置または携帯式装置、および他の種類の装置を含むがこれらに限定されないさまざまな種類の装置であってもよい。いくつかの実施形態において、リモート装置は、コンピューティング装置(例えば、モバイル装置、IOTゲートウェイまたはIOTエッジ装置)上にホストされたアプリケーションであってもよい。いくつかの実施形態において、リモート装置は、別の装置上で動作しているエンドポイント、例えばワークスペースであってもよい。ワークスペースは、ワークスペースを動かす装置上の企業データおよびアプリケーションへのアクセスを提供する制御環境であってもよい。例えば、セキュアコンテナアプリケーションは、1つ以上のリモート装置108上で動作することができる。リモート装置の例として、企業コンピュータシステム150に関連付けられた企業から支給される装置(すなわち、企業装置)、または企業コンピュータシステム150にアクセスするために使用されるユーザの個人装置(「BYOD装置」)を含むがこれらに限定されない。
【0048】
リモート装置は、その識別に関する情報、例えばMAC(メディアアクセス制御)アドレス、一意の装置識別子(UDID)、または他の装置識別子を記憶することができる。リモート装置は、そのリモート装置に関するメタデータ属性を記憶することができる。リモート装置のメタデータ属性は、リモート装置上のオペレーティングシステムの種類、オペレーティングシステムのバージョン、リモート装置が他の装置上にホストされる場合のホスト識別子、装置の種類、IMEI(国際携帯電話端末識別)番号、リモート装置の型番、リモート装置のサービスプロバイダ(例えば、キャリア)、装置名、装置状態、遵守状況、またはリモート装置に関する他の情報を含むことができる。
【0049】
いくつかの実施形態において、リモート装置は、そのリモート装置に関する装置情報を判断するように構成されてもよい。装置情報は、リモート装置の稼働状態を含むことができる。稼働状態は、アプリケーションのインストール、実行および/または削除、リモート装置内のハードウェアおよび/またはソフトウェアの変更、アプリケーションに関する情報(例えば、アプリケーションのパスワード)、リモート装置の使用に関連する活動状態または非活動状態、またはリモート装置の実行または使用に関する他の情報を含むことができる。装置アクセス管理システム120と通信するようにリモート装置を構成することができる。例えば、リモート装置は、装置アクセス管理システム120と周期的に同期(「装置同期」)することによって、リモート装置に関する装置情報を装置アクセス管理システム120に提供することができる。いくつかの実施形態において、装置アクセス管理システム120は、リモート装置から受信した情報または受信していなかった情報に基づいて、リモート装置に関する情報を判断することができる。
【0050】
特定の実施形態において、リモート装置は、1つ以上のアプリケーションを実施する(例えば、実行および動作する)ように構成することができる。例えば、1つ以上のリモート装置108は、「コンテナ化」アプリケーション、すなわち、特定のコンテナに安全に接続されたアプリケーションを保持するように設計されたセキュアコンテナアプリケーションを実行することができる。アプリケーションの例として、コンピュータアプリケーション、クライアントアプリケーション、専用クライアントアプリケーション、ワークスペース、コンテナなどを含むがこれらに限定されない。いくつかの実施形態において、1つ以上のネットワークを介して、リモート装置に実装されたアプリケーションにアクセスすることができ、またはそれを作動することができる。リソースにアクセスするように、企業コンピュータシステム150によって設定され、企業コンピュータシステム150から受信されたアプリケーションは、セキュアコンテナアプリケーションにインストールされ、実行されることができる。セキュアコンテナアプリケーションは、装置アクセス管理システム120から受信した命令に基づいて、アプリケーションのコンフィグレーションを変更するように設定され得る。
【0051】
リモート装置は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせを用いて実装され得るコンピューティング装置を含むことができる。リモート装置は、メモリと、1つ以上のプロセッサとを含むことができる。メモリは、プロセッサに結合されてもよく、命令を記憶してもよい。これらの命令は、プロセッサによって実行されると、本開示に開示された1つ以上の処理、方法またはプロセスをプロセッサに実施させる。メモリは、コンピュータ読取可能な記憶媒体のような任意種類の永続記憶装置を用いて、実装されてもよい。
【0052】
いくつかの実施形態において、リモート装置108は、1つ以上のさまざまな種類の通信ネットワークを介して、装置アクセス管理システム120および企業コンピュータシステム150に通信可能に接続されてもよい。通信ネットワークの例として、例えば、インターネット、ワイドアリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)ネットワーク、公衆または私設ネットワーク、有線ネットワーク、無線ネットワーク、およびそれらの組み合わせを含むがこれらに限定されない。異なる通信プロトコルを用いて、IEEE 802.XXプロトコルスイート、TCP/IP、IPX、SAN、AppleTalk、Bluetooth(登録商標)、および他のプロトコルのような有線プロトコルおよび無線プロトコルの両方を含む通信を促進することができる。
【0053】
装置アクセス管理システム120は、コンピュータシステムに実装することができる。コンピュータシステムは、汎用コンピュータ、(例えば、PCサーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、およびラックマウントサーバなどを含む)専用サーバコンピュータ、サーバファーム、サーバクラスタ、分散型サーバ、または任意の他の適切な配置および/またはそれらの組み合わせであり得る1つ以上のコンピュータおよび/またはサーバを含むことができる。例えば、装置アクセス管理システム120は、サーバを含むことができる。全てのサーバまたは一部のサーバは、同様の地理上の位置または異なる地理上の位置に配置されてもよい。装置アクセス管理システム120を構成するコンピューティング装置は、任意のオペレーティングシステム、または、HTTPサーバ、FTPサーバ、CGIサーバ、Java(登録商標)サーバ、データベースサーバを含むさまざまな追加のサーバアプリケーションおよび/またはミッドティアアプリケーションのいずれかを実行することができる。例示的なデータベースサーバは、Oracle、Microsoft(登録商標)などから市販されているものを含むがこれらに限定されない。装置アクセス管理システム120は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせを用いて実装することができる。一例において、装置アクセス管理システム120は、Oracleモバイルセキュリティアクセスマネージャに含まれてもよい。Oracleモバイルセキュリティアクセスマネージャは、Oracle社により提供されるOracleモバイルセキュリティスイートの一部である。
【0054】
装置アクセス管理システム120は、少なくとも1つのメモリ、1つ以上の処理ユニット(またはプロセッサ)、および記憶装置を含むことができる。処理ユニットは、ハードウェア、コンピュータ実行可能な命令、ファームウェア、またはそれらの組み合わせで、適切に実現されてもよい。処理ユニットのコンピュータ実行可能な命令またはファームウェア実装は、本開示に説明されたさまざまな処理、機能、方法および/またはプロセスを実行するのに任意の適切なプログラミング言語で書かれたコンピュータ実行可能な命令または機械実行可能な命令を含むことができる。装置アクセス管理システム120内のメモリは、処理ユニットにロード可能且つ実行可能なプログラム命令、およびこれらのプログラムの実行中に生成されたデータを記憶することができる。メモリは、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM))および/または不揮発性メモリ(例えば、読出専用メモリ(ROM)、フラッシュメモリなど)であってもよい。メモリは、コンピュータ読取可能な記憶媒体のような任意種類の永続記憶装置を用いて実現されてもよい。いくつかの実施形態において、コンピュータ読取可能な記憶媒体は、悪意コードを含む電子通信からコンピュータを保護するように構成されることができる。コンピュータ読取可能な記憶媒体は、プロセッサ上で実行されると、本開示に説明された処理をプロセッサに実行させる命令を記憶することができる。
【0055】
装置アクセス管理システム120は、追加記憶装置を含んでもよく、またはそれらに連接されてもよい。追加記憶装置としては、メモリ記憶装置または他の非一時的なコンピュータ読取可能な記憶媒体などの任意種類の永続記憶装置を用いて実現されてもよい。いくつかの実施形態において、ローカル記憶装置は、1つ以上のデータベース(例えば、文章データベース、関係データベース、または他の種類のデータベース)、1つ以上のファイルストア、1つ以上のファイルシステム、またはそれらの組み合わせを含んでもよく、それらを実装してもよい。例えば、装置アクセス管理システム120は、1つ以上のデータストア、例えばデータストア160に連接されてもよく、それを含んでもよい。メモリおよび追加記憶装置の両方は、コンピュータ読取可能な記憶媒体の例である。例えば、コンピュータ読取可能な記憶媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実現される揮発性または不揮発性媒体、取り外し可能または不可能な媒体を含むことができる。
【0056】
装置アクセス管理システム120は、ID管理システム140に通信可能に接続されてもよい。ID管理システム140は、企業コンピュータシステム150のユーザの存続期間および企業コンピュータシステム150からアクセスできるリソースのために設定された関連するアカウントの存続期間を管理することができる。ID管理システム140は、企業コンピュータシステム150にアクセスするために定義された役割(例えば、ユーザグループ)を管理することができる。いくつかの実施形態において、ID管理システム140は、企業コンピュータシステム150にアクセスするために定義された役割に関するポリシーを管理することができる。ユーザ情報データストア172は、ID管理システム140から取得したユーザ情報を記憶することができる。ユーザ情報は、ユーザのIDに関連付けられた1つ以上のユーザ役割を含むことができる。ID管理システム140は、企業コンピュータシステム150にアクセスするために定義された役割を管理することができる。ID管理システム140の例は、Oracle社によって提供されたOracleIDマネージャを含むことができる。
【0057】
ユーザアクセス管理システム130は、装置アクセス管理システム120に通信可能に接続されてもよい。ユーザアクセス管理システム130は、範囲の管理、認証トークンの発行、更新トークンの発行、およびアクセストークンの発行を処理することができる。例えば、ユーザアクセス管理システム130は、セキュリティアクセスシステム110からの、リモート装置108によるアクセス要求を処理することができる。いくつかの実施形態において、ユーザアクセス管理システム130は、企業コンピュータシステム150によって提供されたリソースにアクセスするためのアクセスポリシーを管理することができる。アクセス管理システム130は、Oracle社によって提供されたOracleアクセスマネージャを含むことができる。
【0058】
いくつかの実施形態において、装置アクセス管理システム120は、企業コンピュータシステム150にアクセスするように登録されたリモート装置108の設定情報を管理することができる。設定情報の例としては、装置の設定情報、インストール設定情報、同期設定情報、通信設定情報、アプリケーションの設定情報、または企業システムのアクセスに関連するその他の設定情報を含むがこれらに限定されない。設定に関する情報は、データストア160に記憶されてもよい。一部の設定情報は、リモート装置108から受信した情報に対応することができる。一部のリモート装置108に関する設定情報(例えば、装置の設定情報およびインストール設定情報)は、登録のために検証され、登録されたリモート装置108としての準拠性がチェックされる。いくつかの実施形態において、設定情報(例えば、同期設定情報)を一部のリモート装置108に送信することによって、リモート装置108上のセキュアコンテナアプリケーションを用いて、装置アクセス管理システム120および企業コンピュータシステム150との同期通信を構成することができる。
【0059】
リモート装置108を用いて企業コンピュータシステム150に対するアクセスは、1つ以上のポリシーを用いて管理することができる。ポリシーは、データストア160のポリシーデータストア164に記憶され、そこからアクセスされてもよい。ポリシーの例としては、登録ポリシー、遵守ポリシー、ワークスペースポリシー、および装置ポリシーを含むがこれらに限定されない。いくつかの実施形態において、遵守ポリシーに関する情報は、企業コンピュータシステム150、ID管理システム140、および/またはユーザアクセス管理システム130から受信することができる。1つ以上のポリシーは、装置アクセス管理システム120の技師(例えば、管理者)から受信した入力に基づいて、設定されてもよい。装置アクセス管理システム120は、リモート装置108がポリシーを遵守しているか否かを判断することができる。ポリシーは、リモート装置を用いた企業コンピュータシステム150に対するアクセスを規定することができる。いくつかの実施形態において、装置アクセス管理システム120は、ポリシーに基づいて、是正措置を実行して、リモート装置によるアクセスを調整することができる。装置アクセス管理システム120は、命令をリモート装置に送信することによって、リモート装置に指示して、ポリシーの遵守に応じて是正措置を取ることができる。通知をリモート装置108に送信することによって、これらのリモート装置に、ポリシーの遵守および/またはポリシーの違反および遵守期間を知らせることができる。
【0060】
装置アクセス管理システム120は、企業コンピュータシステム150内の1つ以上のリソースへのアクセスを可能にする1つ以上のアプリケーションを管理することができる。アプリケーションは、アプリケーションデータストア166に記憶されてもよい。リモート装置上で実行するセキュアコンテナアプリケーションは、アプリケーションデータストア166にアクセスすることができる。アプリケーションは、企業コンピュータシステム150内の1つ以上のリソースにアクセスすることができる。例えば、メールアプリケーションは、企業コンピュータシステム150によって提供されたメールサービスへのアクセスを提供することができる。別の例において、人事資源(HR)アプリケーションは、企業コンピュータシステム150によって管理される人事資源データにアクセスすることができる。
【0061】
以下でさらに説明するように、ユーザに登録された1つ以上のリモート装置108に、アプリケーションを提供することができる。さまざまな理由で、アプリケーションを設定することができる。例えば、ユーザのリモート装置の登録、リソースにアクセスする要求の受信、新たなリソースにアクセスする許可の検出、または新たなアプリケーションの検出を含むいくつかの理由で、アプリケーションを設定することができる。アプリケーションを設定することは、このアプリケーションを用いてリソースにアクセスするようにアプリケーションを自動的に設定することを含んでもよい。
【0062】
アプリケーションを準備するために、装置アクセス管理システム120は、ユーザに登録されたリモート装置108の各々の情報のうち、少なくともアクセス情報(例えば、アカウント情報)および接続情報(例えば、ポートアドレス、ホストアドレス、またはデータアクセスプロトコル)を用いて、アプリケーションを自動的に設定することができる。アクセス情報は、データストア160のアクセス情報データストア168に管理されてもよい。接続情報は、データストア160の接続情報データストア170に管理されてもよい。いくつかの実施形態において、アプリケーションの機能に関連する1つ以上の情報を設定することができる。ユーザの役割またはユーザの嗜好に基づいて、当該情報を設定することができる。装置アクセス管理システム120は、設定がなされたアプリケーションをアプリケーションデータストア166に記憶することができる。いくつかの実施形態において、アプリケーションのコンフィグレーションをアプリケーションコンフィグレーション174に記憶することができる。
【0063】
いくつかの実施形態において、アプリケーションを設定することは、アプリケーションを用いてリソースにアクセスするためのアカウントを決定することを含むことができる。アプリケーションを設定する対象のリモート装置に関連付けられたユーザに、アカウントを決めることができる。アカウントがリソースにアクセスするように準備されていない場合、装置アクセス管理システム120は、ユーザ役割に基づいて、リソースにアクセスするようにアカウントを設定することができる。
【0064】
装置アクセス管理システム120は、さまざまな技術を用いて、アプリケーションを設定する対象のリモート装置に、設定がなされたアプリケーションを自動的に提供することができる。いくつかの実施形態において、装置アクセス管理システム120は、アプリケーションの全体ではなく、アプリケーションの設定情報のみをリモート装置に提供することができる。いくつかの実施形態において、装置アクセス管理システム120は、プッシュ通知サービスを用いて、設定がなされたアプリケーションをリモート装置に提供することができる。アプリケーションは、設定がなされたアプリケーションまたはリモート装置に提供されたアプリケーションの設定情報に従って、自動的にリモート装置にインストールすることができる。
【0065】
設定がなされたアプリケーションをリモート装置のユーザに提供することによって、ユーザは、リソースにアクセスするために各々のアプリケーションを管理する必要がない。さらに、新たなアプリケーションが利用可能になる場合、ユーザは、新たなアプリケーションを自動的に受け取ることができる。企業システムの場合、アプリケーションの個別要求をなくすことによって、処理負荷を軽減することができる。複数のリモート装置がユーザに登録された場合、アカウント情報を含む設定がなされたアプリケーションを各リモート装置に提供することができる。企業は、アプリケーションをリモート装置に提供することによって、企業システムにアクセスするリモート装置が、企業のアクセスポリシーを満たすアプリケーションで構成されることを保証することができる。企業システムへのアクセス権が変更する場合、リモート装置の遵守を評価するおよびリソースへのアクセス権を判断することなく、変更されたアプリケーションを用いてリモート装置を自動的に更新することができる。何千台のリモート装置を有する企業システムにおいて、一度アプリケーションを複数のリモート装置上で使用するように構成すれば、複数のリモート装置に効率的に配信することができる。
【0066】
図2を参照して、
図2は、実施形態に従って、装置アクセス管理システム120を高レベルでより詳細に示す図である。
図2に示すように、装置アクセス管理システム120は、いくつかのサブシステムおよび/またはモジュール、例えば、アカウントハンドラ232、アプリケーション設定マネージャ234、通信ハンドラ236、アクセスマネージャ238、および装置マネージャ240を含むことができる。サブシステムおよび/またはモジュールは、ソフトウェア(例えば、プロセッサによって実行可能なプログラムコードおよび命令)、ハードウェア、またはそれらの組み合わせで実現されてもよい。いくつかの実施形態において、ソフトウェアは、メモリ(例えば、非一時的コンピュータ読取可能な媒体)、メモリ装置、または他の物理メモリに記憶することができ、1つ以上の処理ユニット(例えば、1つ以上のプロセッサ、1つ以上のプロセッサコア、または1つ以上のGPU)によって実行することができる。
【0067】
企業システム(例えば、企業コンピュータシステム150)へのアクセスを可能にするBYODを採用することによって、多くのユーザは、自分のリモート装置を用いて、企業システムにアクセスすることができる。1つ以上のリモート装置、例えばエンドポイント装置210−1、・・・210−N(合わせてエンドポイント装置210という)を操作して、企業コンピュータシステム150にアクセスすることができる。
図2において、いくつかのリモート装置を使用して、企業コンピュータシステム150にアクセスしていると示されているが、数千人のユーザは、何千台のリモート装置を用いて、企業コンピュータシステム150にアクセスすることができる。装置アクセス管理システム120を含むコンピューティングシステム(例えば、コンピューティングシステム100)を用いて、企業システムへのアクセスを管理することができる。リモート装置を用いて、企業コンピュータシステム150内の1つ以上のリソースにアクセスすることができる。
【0068】
図2に示す例において、企業コンピュータシステム150は、1つ以上のターゲットシステム、例えばターゲットシステム250およびターゲットシステム260を含んでもよく、またはそれらに通信可能に接続されてもよい。ターゲットシステム250および260の各々は、企業コンピュータシステム150にリソースを形成することができる。例えば、ターゲットシステム250は、リソース252を形成することができ、ターゲットシステム260は、リソース262を形成することができる。リソース252および262の各々に対するアクセスは、各々のリソースにアクセスするために準備されたアカウントによって制御されてもよい。
【0069】
各エンドポイント装置210は、装置アクセス管理システム120と通信するように構成されたセキュアコンテナアプリケーションを含むことができる。セキュアコンテナアプリケーション270は、リモート装置上で実行する他のアプリケーション(例えば、外部ブラウザ280)と異なってもよい。例えば、エンドポイント装置210−2は、エンドポイント装置210−2上で実行するセキュアコンテナアプリケーション270を含むことができる。セキュアコンテナアプリケーション270は、装置アクセス管理システム120と通信するように構成されてもよい。いくつかの実施形態において、セキュアコンテナアプリケーション270は、企業コンピュータシステム150にアクセスするための1つ以上のポリシーに基づいて、企業コンピュータシステム150に対するアクセスを管理するように構成されてもよい。装置アクセス管理システム120によって構成されたアプリケーションを実行するように、セキュアコンテナアプリケーション270を構成することができる。
【0070】
エンドポイント装置210−2は、装置同期通信(「装置同期」)を実行して、エンドポイント装置210−2に関する装置情報を装置アクセス管理システム120に送信することができる。エンドポイント装置210−2は、装置アクセス管理システム120と定期的に同期することができる。いくつかの実施形態において、装置アクセス管理システム120は、1つ以上のリモート装置、例えばエンドポイント装置210との装置同期を開始することができる。
【0071】
いくつかの実施形態において、各エンドポイント装置210は、データストア160に記憶された情報を利用して、リモート装置からリソースにアクセスするようにアプリケーションを設定することができる。いくつかの実施形態において、装置アクセス管理システム120からの指示に基づいて、1つ以上の処理(例えば、企業コンピュータシステム150のリソースにアクセスするようにアプリケーションを設定する処理)を実行するように、セキュアコンテナアプリケーション270を構成することができる。
【0072】
何千台のリモート装置が企業システムにアクセスする場合、企業システム内のリソースにアクセスするようにリモート装置用のアプリケーションを設定することは、困難である。リソースへのアクセスを可能にするアプリケーションは、企業コンピュータシステム150内のリソースのアクセスを管理する1つ以上のポリシーを遵守するように、設定される必要がある。リソースへのアクセスを可能にするアプリケーションは、装置の属性、接続の属性、ユーザの役割、またはアクセスされるリソースの種類を含むがこれらに限定されない1つ以上の要因に基づいて、異なって設定される必要がある。したがって、アプリケーションは、ユーザに登録された複数のリモート装置のうち1つ以上の装置に対して、異なって設定される必要がある。さらに困難な点は、企業システムに発生する変更イベントに基づいて、リソースにアクセスするアプリケーションの設定を調整することである。
【0073】
リソースへのアクセス権は、企業コンピュータシステム150内に変更イベントの発生に基づいて変動し得る。変更イベントは、企業システムへのアクセス権の変更に関連するイベントに対応し得る。リソース(例えば、リソース252またはリソース262)へのアクセス権は、変更イベントに対応するアクセス権の変更に基づいて、変動し得る。変更イベントの例としては、ポリシーの違反に基づいて企業コンピュータシステム150へのアクセスの変更、リモート装置の変更(例えば、リモート装置上のハードウェアまたはソフトウェアの変更)、リモート装置に関連付けられたユーザ役割の変更、企業コンピュータシステム150内のリソースへのアクセス許可の変更、および企業コンピュータシステム150へのアクセスに影響を与える他の変更を含むがこれらに限定されない。数千台のリモート装置を構成する時に直面する難題を克服するために、装置アクセス管理システム120は、リモート装置が企業コンピュータシステム150内のリソースにアクセスすることを可能にするように、アプリケーションを自動的に構成することができる。アプリケーションを使用してリソースにアクセスすることに影響を与える変更イベントに基づいて、アプリケーションの設定情報を変更することができる。
【0074】
装置マネージャ240は、企業コンピュータシステム150にアクセスするリモート装置(例えば、エンドポイント装置210)のアクセスを管理することができる。具体的には、装置マネージャ240は、1つ以上の登録ポリシーに基づいて、企業コンピュータシステム150にアクセスするリモート装置の登録を管理することができる。装置マネージャ240は、リモート装置の通信を処理することができる。通信は、リモート装置と装置アクセス管理システム120との間の同期(「装置同期」)を含むことができる。装置同期は、リモート装置に関する装置情報をリモート装置から装置アクセス管理システム120に送信することを含むことができる。装置情報は、装置記録として装置レジストリ162に記憶される。リモート装置の装置情報を用いて、そのリモート装置上で実行するアプリケーションを設定することができる。装置マネージャ240は、企業コンピュータシステム150にアクセスするように登録された新たなリモート装置を検出することができる。
【0075】
装置情報が登録されたリモート装置の変更に対応する変更イベントを示しているときに、装置マネージャ240は、それを検出することができる。リモート装置の変更の例としては、リモート装置上のハードウェアの構成の調整、またはリモート装置上のアプリケーションのインストールまたは削除を含むがこれらに限定されない。装置マネージャ240は、リモート装置が企業コンピュータシステム150へのアクセスを管理する1つ以上のポリシーを遵守しているか否かを判断することができる。
【0076】
アクセスマネージャ238は、ID管理システム、例えばID管理システム140との通信、およびユーザアクセス管理システム、例えばユーザアクセス管理システム130との通信を実現するまたは促進することができる。ユーザIDに関連付けられた役割を含むユーザ情報は、識別管理システム140から取得することができる。アクセスマネージャ238は、企業コンピュータシステム150へのアクセス権の変更に関連する変更イベントに関する情報を受信することができる。例えば、アクセスマネージャ238は、ID管理システム140から、1つのユーザ役割から別のユーザ役割に変更するユーザ役割の変更を示す情報を受信することができる。ユーザ役割の変更は、ユーザIDにユーザ役割の関連、またはユーザIDからユーザ役割の分離に対応してもよい。
【0077】
アクセスマネージャ238は、ユーザアクセス管理システム130から、企業コンピュータシステム150へのアクセス権の変更を示す情報を受信することができる。アクセス権の変更は、リソースのアクセス権が取消されまたは許可されたというアクセス権の変更に対応することができる。リソースへのアクセス権は、ポリシーの変更に基づいて変更する可能性がある。アクセス権の変更は、1つ以上の役割に対するアクセス権の変更に対応してもよい。リソースへのアクセス権の変更は、ユーザのアクセス権に影響するため、そのユーザに登録されたリモート装置からリソースに対するアクセス権に影響し得る。いくつかの実施形態において、リソースへのアクセス権に関する情報は、
図5を参照して説明される技術を用いて記憶することができる。これらの情報は、ユーザアクセス管理システム130から取得することができる。情報は、1つ以上のユーザ役割に応じて許可または禁止されたリソースを示すことができる。アクセスマネージャ238は、その情報を用いて、ユーザ役割に基づいてリソースへのアクセス権を決定することができる。
【0078】
通信ハンドラ236は、装置アクセス管理システム120とエンドポイント装置210などのリモート装置との間のメッセージ(例えば、メッセージ208)の通信を管理することができる。通信ハンドラ236は、エンドポイント装置210からの要求を受信することができる。要求は、ターゲットシステムのリソースにアクセスするための要求、またはターゲットシステムのリソースにアクセスするようにアプリケーションからの要求を含むことができる。通信ハンドラ236は、装置同期のためにエンドポイント装置210から送信された情報を受信することができる。情報は、リモート装置の遵守の変更もしくは処理または構成の変更などの変更イベントを示す装置情報を含むことができる。
【0079】
エンドポイント装置210と装置アクセス管理システム120との間のメッセージ(例えば、要求)の通信は、通信システム290を介して容易にすることができる。通信システム290は、メッセージを送信、受信、記憶、および/または利用するサービスを提供することができる。「メッセージ」としては、メールメッセージ、インスタントメッセージ(例えば、さまざまな「チャット」サービスを用いて、ユーザ間に送信されるメッセージ)、SMS/MMSメッセージ(例えば、さまざまな移動通信データネットワークおよび他の無線データネットワークによってサポートされるショートメッセージサービスおよび/またはマルチメディアメッセージサービスプロトコルに準拠するメッセージ)、音声メッセージ、写真/画像メッセージ、ソーシャルネットワークメッセージなどが挙げられる。メッセージサービスの例としては、Gmail(登録商標)(Google(登録商標)社のサービス)またはYahoo!(登録商標)Mail(Yahoo!社のサービス)などのメールサービスが挙げられる。他の例としては、Gmailのチャット機能またはFacebook(登録商標)(Facebook社のサービス)のチャット機能などのインスタントメッセージまたはチャットサービス、移動通信データキャリアによって提供されたSMS/MMSサービス、メッセージングコンポーネント(例えば、Facebook社またはLinkedIn(登録商標)社により提供されたソーシャルネットワーク)を備えるソーシャルネットワークサービスが挙げられる。通信システム290は、装置アクセス管理システム120とエンドポイント装置210との間の通信を容易にするために、ウェブベースクライアントインターフェイス、専用アプリケーションプログラム、アプリケーションプログラムインターフェイス(API)、および/または他のツールを提供することができる。
【0080】
通信システム120は、1つ以上のさまざまな種類の通信ネットワーク(例えば、ネットワーク292)を介して、エンドポイント装置と通信することができる。通信ネットワークの例として、例えば、インターネット、ワイドアリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)ネットワーク、公衆または私設ネットワーク、有線ネットワーク、無線ネットワーク、およびそれらの組み合わせを含むがこれらに限定されない。異なる通信プロトコルを用いて、IEEE802.XXプロトコルスイート、TCP/IP、IPX、SAN、AppleTalk、Bluetooth(登録商標)、および他のプロトコルのような有線プロトコルおよび無線プロトコルの両方を含む通信を促進することができる。
【0081】
アプリケーションを設定するために、アカウントハンドラ232は、ユーザのIDに対応するリソースにアクセスするためのアカウントがユーザに提供されているか否かを判断することができる。アカウントハンドラ232は、ユーザ情報データストア172にアクセスすることによって、(アカウントが存在する場合)リソースにアクセス許可を有する各IDのアカウントを確認することができる。アカウントがユーザに提供されていないと判断する場合、アカウントハンドラ232は、企業コンピュータシステム150と通信して、アカウントをユーザに提供することができる。いくつかの実施形態において、アカウントハンドラ232は、ターゲットシステムと直接通信することによって、アカウントを提供することができる。アカウントに関する情報は、アプリケーション内に設定されてもよい。
【0082】
アプリケーション設定マネージャ234は、リソース262またはリソース272などのリソースにアクセスするようにアプリケーションを設定するか否かを判断することができる。アプリケーションを用いてアクセス可能なリソースにアクセスするリモート装置からの要求の受信、新たなリモート装置の登録、およびリソースへのアクセス権の変更を含むがこれらに限定されない多くの異なる状況によって、アプリケーションをリモート装置用に設定することができる。例えば、ユーザ役割の変更によって、そのユーザは、1つ以上のリソースにアクセスすることができる。場合によって、複数のアプリケーションは、役割に関連付けられたグループとして定義されてもよい。複数のアプリケーションは、グループに関連付けられた役割が与えられたユーザに提供されてもよい。いくつかの実施形態において、リモート装置に変更イベントを検出することに応じて、アプリケーションをリモート装置用に設定することができる。変更イベントは、リモート装置の不遵守、またはリモート装置の動作または使用の変更(例えば、リモート装置構成の調整)に対応することができる。一度設定がなされると、アプリケーションを用いてリソースに対するアクセス権の後続変更に関する判断に応じて、アプリケーションのコンフィグレーションを修正することができる。リソースへのアクセスを提供するアプリケーションは、リソースに許可されたアクセスに基づいて、異なるユーザ用に異なって設定されてもよい。
【0083】
アプリケーション設定マネージャ234は、アプリケーションデータストア166にアクセスして、ユーザIDに応じてリソースへのアクセス権を提供するように、設定する対象のアプリケーションを取り出すことができる。リソースへのアクセス権を提供するまたはリソースへのアクセス権を取消すように、アプリケーションを設定することができる。アプリケーション設定マネージャ234は、アプリケーションコンフィグレーションデータストア174にアクセスして、1つ以上のアプリケーションのコンフィグレーションを特定することができる。装置の属性、リソース、ユーザ役割、機能および設定を含むがこれらに限定されないさまざまな基準で、アプリケーションのコンフィグレーションを規定することができる。いくつかの実施形態において、上記1つ以上の基準に基づいて、アプリケーションのコンフィグレーションを事前に規定してもよい。例えば、リソースを提供するコンピューティングシステムに基づいて、アプリケーションの接続情報を事前に規定してもよい。
【0084】
アプリケーション設定マネージャ234は、アプリケーションを用いてアクセス可能なリソースに許可されたアクセス権に基づいて、ユーザに登録された1つ以上のリモート装置のアプリケーションを設定することができる。アプリケーションは、さまざまな手法を用いて設定することができる。アプリケーションのコンフィグレーションの一部を事前に規定することができる。アプリケーションコンフィグレーションデータストア174は、アプリケーションのコンフィグレーションを記憶することができる。アプリケーション設定マネージャ234は、
図6を参照して説明する技術を用いて、アプリケーションのコンフィグレーションを記憶することができる。
【0085】
技術上、リソースを提供するコンピューティングシステム(例えば、ターゲットシステム)への接続を形成するための1つ以上の接続属性を表すアプリケーションのコード(例えば、実行コード)を変更することを含むことができる。例えば、コンピューティングシステムからリソースにアクセスすることを示すURL(Uniform Resource Locator)を有するように、アプリケーションのコードを設定することができる。URLは、コンピューティングシステムに接続するために使用される1つ以上の接続属性を表すことができる。いくつかの実施形態において、アプリケーションは、アプリケーションの変更されたコードに基づいて再作成されてもよい。接続属性の例としては、コンピューティングシステムのポートアドレス、コンピューティングシステムのホストアドレス、コンピューティングシステムによってサポートされる1つ以上のアクセスプロトコル、またはコンピューティングシステムとの接続を規定する他の属性を含むがこれらに限定されない。いくつかの実施形態において、アプリケーションによってアクセスされるコンフィグレーションファイルは、1つ以上の接続属性値を有するように構成されてもよい。コンフィグレーションファイルは、実行中にアプリケーションにアクセス可能なメモリに記憶されてもよく、アプリケーションのコードに含まれてもよい。いくつかの実施形態において、アプリケーションのコンフィグレーションを記憶するアプリケーションコンフィグレーションデータストア174に、アプリケーションの設定情報を参照することができる。いくつかの実施形態において、アプリケーションは、アプリケーションの動的設定を行うためのインターフェイス(例えば、アプリケーションプログラミングインターフェイス)を提供することができる。インターフェイスは、アプリケーションを設定するための1つ以上の属性を受入れることができる。
【0086】
アプリケーション設定マネージャ234は、アプリケーションの1つ以上のアクセス属性を設定することができる。アクセス属性を用いて、アプリケーションからリソースに対するアクセス権を判断することができる。アプリケーションは、上述した1つ以上の設定技術を用いて、1つ以上のアクセス属性に関するアクセス情報を有するように設定されてもよい。アクセス属性の例としては、アカウント識別子、ユーザのアクセストークン、認証情報、およびリソースのアクセスを判断するために使用される他の情報を含むがこれらに限定されない。アクセスマネージャ238は、登録されたユーザによるリソースへのアクセスに関するアクセス情報を取得することができる。
【0087】
いくつかの実施形態において、アプリケーション設定マネージャ234は、アプリケーションに設定する1つ以上の情報(設定情報)を設定することができる。アプリケーションの設定情報は、アプリケーションの1つ以上の機能に対応することができる。上述した1つ以上の設定技術を用いて、設定情報を設定することができる。ユーザに許可されたリソースへのアクセスに応じて、設定情報を設定することができる。例えば、リソースに許可されたアクセス権に基づいて、アプリケーションの機能を有効または無効にするように、1つ以上の設定情報を設定することができる。別の例において、1つ以上の装置属性に基づいて、アプリケーションの設定情報を設定することができる。いくつかの実施形態において、装置の属性、例えばリモート装置の種類またはリモート装置上のプラットフォームに基づいて、アプリケーションの設定情報を異なって設定することができる。
【0088】
アプリケーション設定マネージャ234は、変更イベントが発生した(例えば、アプリケーションによるリソースへのアクセスが変更された)と判断した場合、アプリケーションのコンフィグレーションを変更することができる。アプリケーション設定マネージャ234は、リソースへのアクセス権の変更に関する変更イベントを検出した場合、リソースへのアクセス権を調整するまたは取消すことができる。アクセス権の変更に基づいて、1つ以上の接続属性、1つ以上のアクセス属性、および/または1つ以上の設定情報を設定することができる。上述した1つ以上の技術を用いて、アプリケーションの設定情報を変更することができる。例えば、アプリケーションを使用してリソースに対するアクセス権が取消された場合、アプリケーションに設定された1つ以上の接続属性および/または1つ以上のアクセス属性を削除することができる。いくつかの実施形態において、リソースへのアクセス権が取消された場合、リモート装置からアプリケーションを完全に削除してもよい。アプリケーション設定マネージャ234は、通信ハンドラ236を利用して、リモート装置に命令を送信することによって、アプリケーションを削除するようリモート装置に要請することができる。他の例において、リソースへのアクセスが許可された場合、同様に、そのリソースにアクセスするようにアプリケーションを設定することができる。いくつかの実施形態において、1つ以上の設定情報を有するようにアプリケーションの設定を変更することによって、追加リソースへのアクセス権を提供する機能を有効にすることができる。
【0089】
アプリケーション設定マネージャ234は、
図8を参照して説明する技術を用いて、リモート装置の設定がなされたアプリケーションの状態を管理することができる。アプリケーションの設定状態を用いて、アプリケーションの設定情報を変更するか否かを判断することができる。
【0090】
アプリケーションは、設定がなされたとき、さまざまな技術を用いてリモート装置に提供することができる。いくつかの実施形態において、設定がなされたアプリケーションの全体をユーザに登録された1つ以上のリモート装置に送信することができる。通信ハンドラ236は、設定がなされたアプリケーションを1つ以上のリモート装置に送信することができる。例えば、通信ハンドラ236は、1つ以上の設定がなされたアプリケーション204をエンドポイント装置210−2に送信し、1つ以上の設定がなされたアプリケーション206をエンドポイント装置210−1に送信することができる。設定がなされたアプリケーション204および設定がなされたアプリケーション206は各々、同一のリソースまたは異なるリソースにアクセスするように構成されてもよい。
【0091】
いくつかの実施形態において、通信ハンドラ236は、通信システム290を介して、設定がなされたアプリケーションをリモート装置に提供することができる。通信システム290は、プッシュ通知サービス(例えば、Apple(登録商標)社により提供されたAppleプッシュ通知サービスまたはGoogle(登録商標)社により提供されたGoogle(登録商標)通知サービス)を実行することができる。プッシュ通知サービスは、ネットワーク292を介して、リモート装置(例えば、エンドポイント装置210)との通信を容易にすることができる。プッシュ通知サービスは、設定がなされたアプリケーションをエンドポイント装置に配信することができる。エンドポイント装置210は、ネットワーク292内にプッシュ通知の有無をチェックし、設定がなされたアプリケーションに関する通知を含むプッシュ通知を取得するように構成することができる。
【0092】
いくつかの実施形態において、アプリケーションの全体ではなく、アプリケーションのコンフィグレーションのみをエンドポイント装置210に提供することができる。上述した技術を用いて、通信ハンドラ236は、アプリケーションのコンフィグレーションを示す通知またはアプリケーションコンフィグレーションデータストア174からアプリケーションのコンフィグレーションを利用できることを示す通知を送信することによって、アプリケーションのコンフィグレーションをエンドポイント装置に送信することができる。エンドポイント装置上で実行しているセキュアコンテナアプリケーションは、このコンフィグレーションを使用または利用することができ、このコンフィグレーションに基づいてアプリケーションを設定することができる。いくつかの実施形態において、アプリケーションがエンドポイント装置にインストールされていない場合、セキュアコンテナアプリケーションは、まずアプリケーションを取り出し、次にアプリケーションを設定することができる。いくつかの実施形態において、通知は、設定がなされたアプリケーションがデータストア160に記憶されていることを示す情報と共に送信されてもよい。例えば、設定がなされたアプリケーションは、インターフェイス(例えば、アプリケーションカタログ)を介してアクセスできるアプリケーションデータストア166に記憶されてもよい。通知をエンドポイント装置に通信することによって、利用可能な1つ以上の設定がなされたアプリケーションがアプリケーションデータストア166内に存在していることをエンドポイント装置に知らせることができる。エンドポイント装置上のセキュアコンテナアプリケーションは、アプリケーションデータストア166にアクセスして、設定がなされたアプリケーションを取り出すことができる。
【0093】
図2に示す例において、エンドポイント装置210−2は、設定がなされたアプリケーション204を受信することができる。セキュアコンテナアプリケーション270は、セキュアコンテナアプリケーション270内で実行するように設定がなされたアプリケーション204をインストールすることができる。設定がなされたアプリケーション204は、1つ以上の接続属性(例えば、ターゲットシステムのポートアドレスおよびターゲットシステムのホストアドレス)の値を示す接続情報212を有するように、設定されてもよい。設定がなされたアプリケーション204は、1つ以上のアクセス属性(例えば、リソースおよびアクセストークンのアカウント情報)を示すアクセス情報208を有するように、設定されてもよい。エンドポイント装置210−2に関連付けられたユーザは、エンドポイント装置210−2を操作して、設定がなされたアプリケーション204を用いて、接続情報によって特定されたターゲットシステム内のリソースにアクセスすることができる。いくつかの実施形態において、ユーザは、アクセス情報208に従って設定されたアカウントを用いてリソースにアクセスするために、認証情報を提供する必要がある。
【0094】
図3を参照して、
図3は、本発明のいくつかの実施形態に従って、アプリケーションをリモート装置に提供するための処理シーケンスを示す例である。この例において、複数のリモート装置(例えば、エンドポイント装置302、304および306)は、企業システム、例えば企業コンピュータシステム150にアクセスするように登録することができる。
図3に示す例において、エンドポイント装置302、304および306の各々は、企業システムのユーザIDを用いて登録されたものとする。
【0095】
処理シーケンス300は、企業システムにアクセスするユーザのIDで登録されたリモート装置(例えば、エンドポイント装置302)からの要求310によって開始される。要求310は、企業システム内のリソースまたはアプリケーションにアクセスするために、送信されてもよい。
【0096】
装置アクセス管理システム120は、要求310に応答して、処理312を実行することができる。装置アクセス管理システム120は、要求310により指定された1つ以上のアプリケーションまたは要求310により指定された1つ以上のリソースへのアクセスを提供する1つ以上のアプリケーションを特定することができる。要求310に関連付けられたリモート装置を用いて企業システム内のリソースにアクセスするように、特定されたアプリケーションを設定することができる。あるアカウントが企業システム内のリソースにアクセスすることを可能にするアクセス情報を用いて、アプリケーションを設定することができる。アプリケーションを実行するリモート装置がリソースへのアクセスを提供するターゲットシステムに接続することを可能にする接続情報を用いて、アプリケーションを設定することができる。いくつかの実施形態において、リモート装置のコンフィグレーション(例えば、リモート装置の種類またはリモート装置のプラットフォーム)に基づいて、リモート装置用にアプリケーションを設定することができる。いくつかの実施形態において、リソースへのアクセスを可能にするアプリケーションは、異なるバージョンを有することができる。各バージョンは、リモート装置の異なるコンフィグレーションに対応する。
【0097】
図3に示す例において、設定がなされたアプリケーションは、要求310を送信したユーザのIDで登録された複数のエンドポイント装置に提供されてもよい。ユーザのIDで登録されたエンドポイント装置から、要求、例えば要求310を受信することに応答して、設定がなされたアプリケーションをそのIDで登録されたリモート装置に配信することができる。例えば、要求310に応じて装置アクセス管理システム120によって設定がなされたアプリケーションを、エンドポイント装置302およびエンドポイント装置304にそれぞれ送信することができる(314、316)。ユーザは、そのユーザに登録された各リモート装置上でアプリケーションを個別に要求および設定する必要なく、登録されたすべてのリモート装置用に設定されたアプリケーションを受信することができるという利点を受けることができる。アプリケーションは、登録された各リモート装置の設定に基づいて、特異的に設定されてもよい。ユーザは、登録されたリモート装置のいずれかを操作し、設定がなされたアプリケーションを用いて、リソースにアクセスすることができる。企業システムは、各登録された装置からの個別要求の数を減らすことによって、アプリケーションの処理効率を改善することができる。代替的に、装置アクセス管理システム120は、アプリケーションを一度設定して、設定がなされたアプリケーションをすべてのリモート装置に配信することができる。
【0098】
いくつかの実施形態において、装置アクセス管理システム120は、ユーザのID(例えば、エンドポイント装置302、304を登録するID)で企業システムに登録された1つ以上のリモート装置(例えば、リモート装置306)を検出することができる(320)。装置レジストリ162内に追加された装置情報(例えば、装置記録)によって、リモート装置を検出することができる。装置情報をユーザIDに関連付けることができる。アプリケーションを設定して、同一のIDで登録された他のリモート装置に送信した後、リモート装置を検出することができる。例えば、ユーザIDで登録された他のリモート装置に設定がなされたアプリケーションを送信した後に、新たに登録されたリモート装置をユーザIDで登録されたものとして検出することができる。
【0099】
登録されたリモート装置を検出すると、以前に他のリモート装置のために設定がなされたアプリケーションは、検出されたリモート装置に送信される(322)。いくつかの実施形態において、装置アクセス管理システム120は、上述の技術を用いて、検出されたリモート装置用にアプリケーションを設定することができる。
【0100】
いくつかの実施形態において、装置アクセス管理システム120は、企業システム内の変更イベントを検出することができる(330)。変更イベントは、ユーザのIDによるリソースのアクセス権に影響を及ぼすものであってもよい。例えば、変更イベントは、あるユーザ役割から別のユーザ役割に変更するユーザ役割の変更に対応することができる。別の例において、変更イベントは、ユーザ役割に対するアクセスポリシーの変更に対応することができる。したがって、リソースへのアクセス権は、変更イベントに基づいて変更する可能性がある。リソースへのアクセス権の変更の例としては、リソースへのアクセス権の取消、新たなリソースへのアクセスの許可などを含むがこれらに限定されない。IDによるリソースへのアクセス権の変更に基づいて、そのIDで登録されたリモート装置のために、リソースへのアクセスを提供するアプリケーションのコンフィグレーションを変更する必要がある。例えば、リソースへのアクセス権が取消された場合、アプリケーションのコンフィグレーションを変更して、リソースにアクセスできるようにアプリケーションを有効にする接続情報を削除する必要がある。いくつかの実施形態において、以前に設定がなされ、リモート装置に送信されたアプリケーションは、変更イベントに基づいてそのコンフィグレーションを変更することができる。
図3の例において、処理312によって以前に設定がなされたアプリケーションは、アクセス権の変更に基づいてそのコンフィグレーションを変更してもよい。装置アクセス管理システム120は、アプリケーションのコンフィグレーションに対する変更をエンドポイント装置302、エンドポイント装置304およびエンドポイント装置306にそれぞれ送信することができる(334、336、338)。いくつかの実施形態において、アプリケーションを再設定することができ、アプリケーションの全体をエンドポイント装置302、304、306に送信することができる。
【0101】
いくつかの実施形態において、装置アクセス管理システム120は、企業システムにアクセスする1つ以上のアプリケーションを検出することができる(340)。例えば、装置アクセス管理システム120は、IDに割り当てられた1つ以上のユーザ役割にアクセス可能なリソースへのアクセスを提供することができるアプリケーションを検出することができる。別の例において、装置アクセス管理システム120は、新たなリソースへのアクセスを可能にする新たなアプリケーションを検出することができる。
【0102】
装置アクセス管理システム120は、処理342を実行して、装置アクセス管理システム120によって検出されたアプリケーション340を設定することができる。いくつかの実施形態において、アプリケーションが以前にアクセスできないリソースへのアクセスを可能にした場合、装置アクセス管理システム120は、リソースにアクセスするように、エンドポイント装置302、304、306に関連付けられたIDにアカウントを提供することができる。アカウントは、IDに関連付けられた1つ以上のユーザ役割に基づいて、提供されてもよい。リソースへのアクセスは、1つ以上のユーザ役割に基づいて決定されてもよい。いくつかの実施形態において、装置アクセス管理システム120は、検出されたアプリケーションを用いてアクセス可能なリソースへのアクセスを提供するアカウントを特定することができる。IDで登録されたリモート装置(例えば、エンドポイント装置302、304、306)を用いてリソースにアクセスするように、検出されたアプリケーションを設定することができる。
【0103】
装置アクセス管理システム120は、検出されたアプリケーションを設定した後、設定がなされたアプリケーションを送信することができる。設定がなされたアプリケーションは、ユーザのIDで登録されたエンドポイント装置302、エンドポイント装置304およびエンドポイント装置306にそれぞれ送信される(344、346、348)。
【0104】
いくつかの実施形態において、装置アクセス管理システム120は、企業システム内に発生したさまざまな種類の変更イベントに基づいて、アプリケーションのコンフィグレーションを変更することができる。
図3の例に続けて、
図4は、本発明のいくつかの実施形態に従って、装置アクセス管理システム120がアプリケーションをリモート装置に提供するための例示的な処理シーケンス400を示している。具体的には、
図4の例は、装置アクセス管理120が、企業システムへのアクセスを影響し得る変更イベントに基づいてアプリケーションを設定するために実行し得る処理を示している。企業システムにアクセスするように登録されたリモート装置から受信した情報から、変更イベントを検出することができる。変更イベントは、企業システムまたは企業システムをサポートする1つ以上の他のシステム(例えば、ID管理システム140およびユーザアクセス管理システム130)から受信した情報に基づいて、装置アクセス管理システム120によって検出されてもよい。
図4に示す例において、処理400は、処理300を実行した後に実行される。いくつかの実施形態において、変更イベントの検出時間に基づいて、処理400のすべてまたは一部は、処理300と同時に行われてもよい。
【0105】
装置アクセス管理システム120は、1つ以上のリモート装置から、変更イベント(例えば、遵守イベントまたは装置イベント)を示す情報を受信することができる。例えば、装置アクセス管理システム120は、エンドポイント装置304から、装置イベント420に関する情報を受信することができる。情報420は、企業システムへのアクセスに影響を及ぼすエンドポイント装置304の変更を示すことができる。いくつかの実施形態において、情報420は、エンドポイント装置304の変更を特定するために使用され得る装置情報を含むことができる。例えば、エンドポイント装置304の変更は、エンドポイント装置304のハードウェアの変更(例えば、エンドポイント装置304上で行われた脱獄(jail-breaking))、エンドポイント装置304のソフトウェアの変更(例えば、ブラックリストに載せられたアプリケーションのインストールまたはサポートされていないオペレーティングシステムへの更新)、またはエンドポイント装置304の操作および/または使用における他の変更を含むことができる。別の例において、装置アクセス管理システム120は、エンドポイント装置302から、遵守イベント422に関する情報を受信することができる。情報422は、リモート装置上で実行するセキュアコンテナアプリケーションによって判断されてもよい。遵守イベント422に関する情報は、リモート装置の遵守を評価するために使用され得る装置同期情報を含んでもよい。いくつかの実施形態において、遵守イベントに関する情報は、リモート装置の遵守または違反を示すことができる。
【0106】
装置アクセス管理システム120は、処理430を実行して、1つ以上のリモート装置(例えば、エンドポイント装置302、304および306)の変更イベントを検出することができる。変更イベントは、リモート装置から受信した情報(例えば、情報420または情報422)に基づいて、検出されてもよい。いくつかの実施形態において、装置アクセス管理システム120は、企業システムからまたは企業システムをサポートする1つ以上の他のシステム(例えば、ID管理システム140およびユーザアクセス管理システム130)から受信した情報に基づいて、変更イベントを検出することができる。この情報は、変更イベントを示すことができ、またはこの情報を使用して、変更イベントを検出することができる。例えば、この情報は、エンドポイント装置302、304および306に登録されたユーザIDに関連付けられたユーザ役割の変更を示すことができる。別の例において、この情報は、リソースのアクセスポリシーの変更を示すことができる。変更イベントは、企業システムへのアクセス権の変更を引き起こす可能性がある。アクセス権の変更は、ユーザに登録されたリモート装置からアクセス可能なリソースへのアクセス権の変更を引き起こす可能性がある。
【0107】
検出された変更イベントによって影響されたリソースへのアクセスを調整するように、リモート装置上のアプリケーションのコンフィグレーションを変更することができる。アクセス権の変更は、リソースまたはリソースの1つ以上の機能に対するアクセス権の許可または拒否を含む。装置アクセス管理システム120は、変更イベントに基づいたアクセス権を反映するようにエンドポイント装置302、304および306のいずれかのアプリケーションのコンフィグレーションを変更する必要があるか否かを決定するために、処理432を実行することができる。いくつかの実施形態において、ユーザに登録されたすべてのまたは一部のリモート装置上でアプリケーションのコンフィグレーションを変更してもよい。一例において、変更イベントが遵守ポリシーによって定義された不遵守に関連する遵守イベントである場合、装置アクセス管理システム120は、遵守ポリシーに基づいて、リソースへのアクセス権を決定することができる。
【0108】
装置アクセス管理システム120は、アクセス可能なリソースに基づいて、エンドポイント装置302、304および306の各々に登録されたIDに関連付けられたユーザ役割でアクセス可能なリソースにアクセスするように構成できるアプリケーションを決定することができる。一部のリモート装置は、変更イベントの影響を受けるアプリケーションを有しないため、変更イベントに影響されない。エンドポイント装置にインストールされたアプリケーションに対し、装置アクセス管理システム120は、ユーザ役割に許可されたアクセス権に従って、アプリケーションのコンフィグレーションを自動的に変更することができる。アプリケーションにアクセスされるリソースへのアクセスを許可または拒否するように、アプリケーションのコンフィグレーションを変更することができる。アクセス情報、接続情報、またはアプリケーションの設定に関する他の情報を追加または削除することによって、アプリケーションのコンフィグレーションを変更することができる。いくつかの実施形態において、変更イベントにより許可されたアクセス権に基づいて、リソースにアクセスする新たなアプリケーションを設定することができる。アプリケーションのコンフィグレーションの変更は、リモート装置にインストールされていない新たなアプリケーションのコンフィグレーションの変更を含んでもよい。新たなアプリケーションのコンフィグレーションは、アクセス情報および接続情報を含むように変更されてもよい。
【0109】
アプリケーションのコンフィグレーションを変更したとき(後)、装置アクセス管理システム120は、変更がなされたアプリケーションまたは変更がなされたコンフィグレーションを変更イベントに影響されたリモート装置に送信することができる。いくつかの実施形態において、ユーザに登録されたすべてのリモート装置(例えば、エンドポイント装置302、304および306)は、変更イベントに影響された可能性がある。例えば、装置アクセス管理システム120は、変更されたアプリケーションのコンフィグレーションをエンドポイント装置302、エンドポイント装置304、およびエンドポイント装置306にそれぞれ送信することができる(434、436、438)。
【0110】
変更イベントに基づいてアプリケーションのコンフィグレーションを自動的に変更し、変更されたコンフィグレーションを用いてリモート装置を更新することによって、ユーザは、変更イベントに基づいて、手動で最新のアプリケーションを要求する必要がない。いくつかの実施形態において、ユーザは、変更イベントを知っておらず、リモート装置上のアプリケーションを利用するときに、アクセスが許可されていないことを発見することがある。変更されたコンフィグレーションを自動的に提供することによって、ユーザは、リソースにアクセスする許可を有する場合、自動的に設定されたアプリケーションを用いて、リソースにアクセスすることができる。ユーザは、異なる種類のリモート装置を登録しており、そのうちの一部が同一のアプリケーションに対して異なって設定されている可能性があるため、変更イベントに影響されたアプリケーションの各インスタンスを取得し、個別に設定する必要がない。
【0111】
図5は、本発明のいくつかの実施形態に従って、企業システム(例えば、企業コンピュータシステム150)内の役割によりアクセス可能なリソースを示す情報を記憶するためのデータ構造510の一例を示す図である。データ構造510内の情報は、企業システムにアクセスするために規定された1つ以上のユーザ役割に許可および/または拒否された1つ以上のリソースを示すことができる。データ構造510内の情報を使用して、データ構造510に特定されたリソースへのアクセスを提供するアプリケーションのコンフィグレーションを決定することができる。
【0112】
データ構造510は、配列、レコード、関係データベーステーブル、ハッシュテーブル、リンクリスト、または他の種類のデータ構造を含むがこれらに限定されない異なる種類のデータ構造のうち1つのデータ構造またはそれらの組み合わせとして実現されてもよい。例示の目的のために、データ構造510は、特定の数のフィールド(例えば、フィールド512および514)を有する構成で示されているが、示されたものよりも多いフィールドまたは少ないフィールドを有する異なる構成に定義されてもよい。データ構造510の各インスタンスは、アクセス情報データストア168に記憶されてもよい。
【0113】
データ構造510のフィールド512(「ユーザ役割」)は、企業システムにアクセスするために規定された1つ以上のユーザ役割を示す情報を含むことができる。フィールド514(「許可リソース」)は、フィールド512に示されたユーザ役割によるアクセスが許可された1つ以上のリソースを示す情報を含むことができる。いくつかの実施形態において、データ構造510は、1つ以上のユーザ役割によるアクセスが拒否された1つ以上のリソースを示す情報を含むことができる。いくつかの実施形態において、リソースによって提供された機能へのアクセスは、ユーザ役割に基づいて制御されてもよい。データ構造510は、1つ以上のユーザ役割に応じて許可または拒否される機能を示すことができる。いくつかの実施形態において、データ構造510内の情報は、1つ以上のポリシー、例えば遵守ポリシーに基づいて、決定されてもよい。いくつかの実施形態において、ポリシーを利用して、ユーザ役割に応じて許可される1つ以上のリソースへのアクセス権を決定することができる。
【0114】
図5に示す例において、データ構造510のエントリ520は、フィールド512の「管理者」役割を示し、「VPNサービス」、「Outlook(登録商標)メールサービス」および「人事資源サービス」を含む許可リソース514を示すことができる。データ構造510のエントリ530は、フィールド512の「幹部」役割を示し、「Outlookメールサービス」および「人事資源サービス」を含む許可リソース514を示すことができる。データ構造510のエントリ540は、フィールド512の「従業員」役割を示し、「Outlookメールサービス」を含む許可リソース514を示すことができる。
【0115】
図6は、本発明のいくつかの実施形態に従って、企業システム(例えば、企業コンピュータシステム150)内の異なるリソースにアクセスするためのアプリケーションのコンフィグレーションを特定する情報を記憶するデータ構造610の一例を示す図である。
【0116】
データ構造610は、配列、レコード、関係データベーステーブル、ハッシュテーブル、リンクリスト、または他の種類のデータ構造を含むがこれらに限定されない異なる種類のデータ構造のうち1つのデータ構造またはそれらの組み合わせとして実装されてもよい。例示の目的のために、データ構造610は、特定の数のフィールド(例えば、フィールド612〜616)を有する構成で示されているが、示されたものよりも多いフィールドまたは少ないフィールドを有する異なる構成に定義されてもよい。データ構造610の各インスタンスは、アプリケーションコンフィグレーションデータストア174に記憶されてもよい。装置アクセス管理システム120は、アプリケーションコンフィグレーションデータストア174にアクセスして、設定されるアプリケーションのコンフィグレーションを取り出すことができる。
【0117】
データ構造610内の情報は、企業システム内のリソースへのアクセスを提供する1つ以上のアプリケーションを示すことができる。データ構造610は、リソースへのアクセスを提供するアプリケーションの接続情報のコンフィグレーションを示す接続情報を含む。いくつかの実施形態において、企業システム内のID用のアプリケーションのコンフィグレーションを記憶するために、データ構造610のインスタンスを作成することができる。
【0118】
図示されていないが、データ構造610は、リモート装置に特有の1つ以上の基準に特有のアプリケーションのコンフィグレーションに関する接続情報を含むことができる。例えば、アプリケーションのコンフィグレーションに関する接続情報は、リモート装置の種類、リモート装置上でサポートされるプラットフォーム、リモート装置のハードウェア構成、リモート装置のソフトウェア構成、またはリモート装置の操作および/または使用に関する他の情報に基づいて、規定されてもよい。
【0119】
いくつかの実施形態において、データ構造610は、アプリケーションを用いてアクセス可能なリソースに対してアプリケーションの1つ以上の設定情報を含むことができる。設定情報は、リソースへのアクセスを提供するアプリケーションの機能に対応することができる。いくつかの実施形態において、アプリケーションを使用してリソースにアクセスする1つ以上のユーザ役割に応じて、設定情報を設定することができる。
【0120】
データ構造610のフィールド612(「アプリケーション」)は、データ構造610に記憶されるコンフィグレーションのアプリケーションを示す情報を含むことができる。フィールド614(「リソース」)は、フィールド612に示されたアプリケーションを用いてアクセス可能であるリソースを示す情報を含むことができる。
【0121】
データ構造610のフィールド616(「接続情報」)は、フィールド612に示されたアプリケーションの設定に関する1つ以上の接続属性を示す情報を含むことができる。いくつかの実施形態において、接続属性は、装置特有の基準、例えば装置種類またはリモート装置のプラットフォームに基づいて規定することができる。いくつかの実施形態において、異なるアプリケーションの接続情報は、接続情報データストア170に記憶することができる。接続情報は、アプリケーションの設定に関する1つ以上の接続属性の値を示すことができる。接続情報は、装置特有の基準に基づいて、接続属性の値を示すことができる。データ構造610の各インスタンスは、アクセス情報データストア174に記憶することができる。
【0122】
図6に示す例において、データ構造610のエントリ620は、「Outlookメールサービス」(フィールド614)用の「メールアプリケーション」(フィールド612)の構成を示すことができる。フィールド616は、メールアプリケーション用の接続情報を示すことができる。フィールド616の接続情報は、メールサービスを提供するメールサービスシステムのポートアドレス、メールサービスシステムのホストアドレス、およびメールサービスシステムのLDAPなどの接続属性の値を示すことができる。
【0123】
データ構造610のエントリ630は、「VPNサービス」(フィールド614)用の「VPNアプリケーション」(フィールド612)のコンフィグレーションを示すことができる。フィールド616は、VPNアプリケーションの接続情報を示すことができる。フィールド616の接続情報は、VPNサービスを提供するVPNサービスシステムのポートアドレスおよびVPNサービスシステムのホストアドレスなどの接続属性の値を示すことができる。
【0124】
データ構造610のエントリ640は、「人事資源(HR)サービス」(フィールド614)用の「HRアプリケーション」(フィールド612)のコンフィグレーションを示すことができる。フィールド616は、HRアプリケーションの接続情報を示すことができる。フィールド616の接続情報は、HRサービスを提供するHRサービスシステムのポートアドレスおよびHRサービスシステムのホストアドレスなどの接続属性の値を示すことができる。
【0125】
図7を参照して、
図7は、データ構造710の一例を示している。データ構造710は、本発明のいくつかの実施形態に従って、企業システムにアクセスするように登録されたリモート装置に関する情報を記憶することができる。データ構造710のような1つ以上のデータ構造を作成して、複数のリモート装置に関する情報を記憶することができる。データ構造710に記憶されたリモート装置の情報は、リモート装置用のアプリケーションを設定するために考慮されてもよい。データ構造710は、データ構造710内に特定された各リモート装置用の1つ以上のアプリケーションのコンフィグレーションに関する情報を記憶することができる。
【0126】
データ構造710は、配列、レコード、関係データベーステーブル、ハッシュテーブル、リンクリスト、または他の種類のデータ構造を含むがこれらに限定されない異なる種類のデータ構造のうち、1つのデータ構造またはそれらの組み合わせとして実装されてもよい。例示の目的のために、データ構造710は、特定の数のフィールド(例えば、フィールド712〜728)を有する構成で示されているが、示されたものよりも多いフィールドまたは少ないフィールドを有する異なる構成に定義されてもよい。データ構造710の各インスタンスは、装置レジストリ162などのデータストアに記憶されてもよい。
【0127】
データ構造710は、企業システムにアクセスするように登録された各リモート装置の装置記録を記憶することができる。各エントリ(例えば、エントリ730およびエントリ740)は、装置記録であってもよい。
【0128】
フィールド712(「装置識別子」)は、リモート装置の装置識別子を示すことができる。装置識別子の例としては、リモート装置のハードウェア識別子、リモート装置を企業システムに登録するために生成されたトークン、UDID、またはリモート装置に関連付けられ且つ登録されている他のリモート装置からリモート装置を一意的に識別することができる他の種類の識別子を含むがこれらに限定されない。エントリ730は、企業システムにアクセスするように登録された第1リモート装置の装置識別子(例えば、「AX1759UGJKY」)を含み、エントリ740は、企業システムにアクセスするように登録された第2リモート装置の装置識別子(例えば、「AX1759UGJKK」)を含むことができる。
【0129】
フィールド714(「プラットフォームバージョン」)は、リモート装置に構成されたプラットフォームのバージョンを特定する情報を含むことができる。プラットフォームバージョンの例としては、リモート装置にインストールされたオペレーティングシステム(OS)バージョン、リモート装置にインストールされたハードウェアプラットフォーム、またはリモート装置を動作させるためにリモート装置にインストールされた他のソフトウェアを含むがこれらに限定されない。フィールド714のエントリ730は、リモート装置上のOSバージョン(「iOS 7.0.1」)を示し、フィールド714のエントリ740は、別のリモート装置上のOSバージョン(「Android 5.0.1」)を示すことができる。
【0130】
フィールド716(「地理上の位置」)は、リモート装置の地理上の位置を示すことができる。例えば、フィールド716のエントリ730、740は、各々のエントリに対応するリモート装置の最新の物理的な地理上の位置の座標(例えば、経緯度座標)を示す情報を含むことができる。地理上の位置は、リモート装置に含まれるまたはリモート装置にアクセス可能な全地球測位システム(GPS)によって決定されてもよい。
【0131】
フィールド718(「ホスト識別子」)は、ホストシステムの識別子を示すことができる。例えば、リモート装置が別の装置(「ホスト装置」)上でホストされるエンドポイントである場合、ホスト識別子は、ホスト装置の識別子を示すことができる。ホスト装置の装置識別子は、ホスト識別子の一例である。いくつかの実施形態において、リモート装置用にホスト装置を登録し、ホスト装置の遵守に基づいて、リモート装置の遵守を評価することができる。
【0132】
データ構造710の1つ以上のフィールドは、リモート装置の記述情報を含むことができる。例えば、フィールド720(「表示名」)のエントリ730は、エントリ730に対応するリモート装置の表示名(例えば、「ユーザ1_装置1」)を示し、フィールド720のエントリ740は、エントリ740に対応するリモート装置の表示名(例えば、「ユーザ2_装置2」)を示すことができる。リモート装置に関する記述情報は、リモート装置の登録時に形成されてもよい。記述情報を用いて、あるユーザに登録された1つのリモート装置をそのユーザに登録された他のリモート装置から区別することができる。フィールド722(「装置種類」)は、装置記録に対応するリモート装置の種類を示すことができる。装置種類の例は、携帯電話、テーブルコンピュータ、スマートフォンまたは装着型装置を含むことができる。
【0133】
いくつかの実施形態において、装置記録は、企業システムにアクセスするために設立されたユーザID情報に関連付けられてもよい。上述したように、リモート装置は、企業システムにアクセスする1つ以上のユーザIDによって使用されるように登録されてもよい。リモート装置を登録するために使用されたユーザIDは、そのリモート装置の装置記録に関連付けられてもよい。例えば、フィールド724は、企業システムにアクセスするために設立された1つ以上のユーザIDとのユーザ関連を示す情報を含むことができる。フィールド724は、ユーザID情報を記憶する場所を示すことを含むことができる。
図7に示す例において、フィールド724のエントリ730、740は、データ構造760を記憶するメモリ内の場所への参照を各々含むことができる。データ構造760は、エントリ730、740の各々によって特定されるリモート装置に関連するユーザIDに対応するユーザID情報を含むことができる。
【0134】
ユーザIDは、ID管理システム(例えば、ID管理システム140)により制定されてもよい。データ構造760は、ID管理システムによって作成され、管理されてもよい。データ構造760は、装置アクセス管理システム120にアクセス可能なユーザ情報データストア172に記憶されることができる。いくつかの実施形態において、装置アクセス管理システム120は、ID管理システム140と通信して、リモート装置に関連付けられたユーザID情報を取得することができる。
図7は、ユーザIDに関するデータを記憶するデータ構造760の一例を示している。データ構造760は、ユーザID(例えば、ユーザ_1)を示すフィールド762(「ユーザID」)を含むことができる。また、データ構造760は、ユーザIDの登録に関連するデータを含むことができる。例えば、データ構造760のフィールド764は、ユーザIDに関連する1つ以上の役割を示すことができる。データ構造760は、1つ以上のリソースにアクセスするための1つ以上のアカウントを示すフィールド766を含むことができる。各アカウントは、ユーザIDに登録されてもよい。例えば、アカウント766は、メールサービスへのアクセスを提供するアカウントのユーザID(例えば、ユーザ_ID)を示すことができる。
【0135】
フィールド724に示されたユーザID関連に基づいて、データ構造760のリモート装置に関連付けられたユーザIDから、1つ以上の役割を決定することができる。役割を用いて、リモート装置の遵守を判断することができる。
【0136】
いくつかの実施形態において、リモート装置の遵守情報は、データ構造710に記憶されることができる。遵守情報は、企業システムにアクセスするリモート装置の遵守に関連する。データ構造710のフィールド726は、遵守状況情報を含むことができる。遵守状況情報は、データ構造710によって特定されたリモート装置の遵守状況を示すことができる。
【0137】
フィールド728は、データ構造710内の記録によって特定されたリモート装置上のアプリケーションのコンフィグレーションに関する情報を含むことができる。例えば、フィールド728は、リモート装置上のアプリケーションの設定状態を示すことができる。別の例において、フィールド728は、リモート装置上の各アプリケーションのコンフィグレーションを示す情報を含むことができる。例えば、フィールド728のエントリ730は、エントリ730によって特定されたリモート装置上のメールアプリケーションのコンフィグレーションを示すことができ、VPNアプリケーションがそのリモート装置上で設定されていないことを示すことができる。フィールド728のエントリ750は、エントリ730によって特定されたリモート装置上のメールアプリケーションが削除されたことを示すことができ、VPNアプリケーションがそのリモート装置上で設定がなされていないことを示すことができる。いくつかの実施形態において、フィールド728は、リモート装置上の1つ以上のアプリケーションのコンフィグレーションを含む別のデータ構造(例えば、以下に説明する
図8のデータ構造)を記憶するメモリの場所への参照を示す情報を含むことができる。
【0138】
図8は、本発明のいくつかの実施形態に従って、リモート装置のアプリケーションの設定状態を特定する情報を記憶するためのデータ構造810の一例を示す図である。データ構造810のような1つ以上のデータ構造を作成して、複数のリモート装置上のアプリケーションのコンフィグレーションに関する情報を記憶することができる。データ構造810は、ユーザIDで登録された1つ以上のリモート装置上の1つ以上のアプリケーションのコンフィグレーションおよび/または設定状態を示す情報を記憶することができる。いくつかの実施形態において、ユーザが複数のユーザ役割を有する場合、アプリケーションのコンフィグレーションに関する情報は、ユーザに関連付けられた異なるユーザ役割に基づいて特定されてもよい。
【0139】
データ構造810は、配列、レコード、関係データベーステーブル、ハッシュテーブル、リンクリスト、または他の種類のデータ構造を含むがこれらに限定されない異なる種類のデータ構造のうち1つのデータ構造またはそれらの組み合わせとして実装されてもよい。例示の目的のために、データ構造810は、特定の数のフィールド(例えば、フィールド812〜818)を有する構成で示されているが、示されたものよりも多いフィールドまたは少ないフィールドを有する異なる構成に定義されてもよい。データ構造810の各インスタンスは、装置レジストリ162またはアプリケーションコンフィグレーションデータストア174などのデータストアに記憶することができる。
【0140】
フィールド812は、リモート装置上のアプリケーションの設定の状態を示す情報を含むことができる。設定状態は、アプリケーションがリモート装置にインストールされているか否かを示し、リモート装置にインストールされている場合に、そのアプリケーションが設定がなされているか否かを示すことができる。
【0141】
フィールド814は、フィールド812に特定されたアプリケーションのために構成されたアクセス情報を含むことができる。アクセス情報の例としては、ユーザID、アクセストークン、またはフィールド812に示されたアプリケーションを用いてアクセス可能なリソースにアクセスするための他の情報を含むがこれらに限定されない。
【0142】
フィールド816は、1つ以上のユーザ役割を示すことができる。フィールド812に特定されたアプリケーションは、これらのユーザ役割に基づいて設定される。いくつかの実施形態において、フィールド816に示されたユーザ役割がアプリケーションによって提供されたリソースへのアクセス許可を有しない場合、アプリケーションは、設定がなされなくてもよく、または削除されてもよい。
【0143】
フィールド818は、フィールド818に示されたアプリケーションに関する接続情報を含むことができる。接続情報は、フィールド812に特定されたアプリケーションのために構成された1つ以上の接続属性の各々の値を示すことができる。アプリケーションがリモート装置上で設定がなされていない場合、フィールド818は、接続情報を示さなくてもよい。
【0144】
図8は、ユーザIDで登録されたリモート装置のために、データ構造810に記憶された情報の例を示している。一例において、フィールド812のエントリ820は、リモート装置上でメールアプリケーションが構成されていることを示している。このメールアプリケーションは、幹部役用に構成されている。このメールアプリケーションは、アクセス情報814(例えば、メールサービスのユーザ_ID)および接続情報818を有するように設定されている。エントリ820に対応する接続情報818は、メールサービスシステムのポートアドレス、メールサービスシステムのホストアドレス、およびメールサービスシステムのLDAPを示している。別の例において、フィールド812のエントリ830は、リモート装置に登録されたIDに関連付けられた役割が幹部役であるため、VPNアプリケーションがリモート装置から削除されたことを示している。VPNが削除されたため、アクセス情報814および接続情報818は、空値を有する。
【0145】
図9は、本発明のいくつかの実施形態に従って、アプリケーションをリモート装置に提供するためのプロセスを示すフローチャート900である。いくつかの実施形態において、
図9に示されたプロセスは、本開示に説明した装置アクセス管理システム120を用いて実施することができる。
【0146】
フローチャート900に示されたプロセスは、1つ以上の処理ユニット(例えば、プロセッサコア)、ハードウェア、またはそれらの組み合わせによって実行されるソフトウェア(例えば、コード、命令、プログラム)に実施されてもよい。ソフトウェアは、(例えば、メモリ装置または非一時的なコンピュータ読取可能な記憶媒体上の)メモリに記憶されてもよい。フローチャート900の特定の一連の処理ステップは、限定することを意図していない。別の実施形態に従って、他の一連のステップを実行することもできる。例えば、本発明の代替の実施形態は、異なる順序で上述したステップを実行することができる。さらに、
図9に示された各ステップは、複数のサブステップを含み、これらの複数のサブステップは、各ステップに応じてさまざまな順序で実行されてもよい。さらに、特定のアプリケーションに応じて、ステップを追加してもよく、削除してもよい。
図9に示された処理が企業システム内のリソースにアクセスする単一のアプリケーションに対応するものであるが、この処理は、リソースへのアクセスを可能にする任意数のアプリケーションまたは任意数のリソースにアクセス可能なアプリケーションによって実行されてもよい。
図9に示された処理がユーザIDに関連付けられた単一の役割に対応するものであるが、この処理は、IDに関連付けられた複数の役割に対して実行されてもよい。当業者であれば、多くの変形例、変更例および代替例を認識するであろう。
【0147】
フローチャート900の処理は、ステップ902において、企業システムのユーザのIDに関連付けられたユーザ役割を特定することによって開始される。例えば、装置アクセス管理システム120は、ユーザ情報データストア174にアクセスして、ユーザIDに関連付けられたユーザ役割を判断することができる。ユーザ情報データストア174のユーザ情報は、企業システムにアクセスするためにユーザに提供された1つ以上のIDおよびこれらのIDに割り当てられた1つ以上の役割を示すことができる。1つのユーザIDに1つ以上の役割を割り当てることができる。ユーザに割り当てられた役割に基づいて、企業システムへのアクセスを規定することができる。ユーザは、リモート装置を操作して企業システムにアクセスしている人物であってもよい。例えば、ユーザは、リモート装置を操作して、企業システム内のリソースへのアクセスを要求することができる。別の例において、ユーザは、企業システムにアクセスするようにリモート装置を登録した人物であってもよい。
【0148】
ステップ904において、企業システムにアクセスするように登録された1つ以上のリモート装置の装置情報を検索することができる。リモート装置は、企業システムの登録ユーザのID(例えば、ステップ902で特定されたユーザ役割に関連付けられたID)で登録されている。例えば、装置アクセス管理システム120は、装置レジストリ162にアクセスして、企業システムにアクセスするIDで登録された1つ以上のリモート装置に関する装置情報を取得することができる。装置情報は、ユーザのIDで登録されたリモート装置の構成を示すことができる。構成は、リモート装置上のオペレーティングシステム構成およびリモート装置のハードウェア構成を示すことができる。リモート装置の構成を使用して、リソースにアクセスするアプリケーションを設定することができる。
【0149】
ステップ906において、企業システム内のアクセス可能なリソースへのアクセス権をIDに与えるアカウントを決定することができる。アカウントは、そのIDに関連付けられたユーザ役割(例えば、ステップ902で特定されたユーザ役割)に基づいて、決定されてもよい。アカウントは、企業システム内の1つ以上のリソースにアクセスできるように構成されてもよい。リソースへのアクセス権は、IDに関連付けられたユーザ役割に基づいて決定されてもよい。リソースへのアクセス権をIDに与えるアカウントの場合、そのIDで登録された1つ以上のリモート装置は、リソースにアクセスすることができる。1つ以上のアプリケーションを用いて、リソースにアクセスすることができる。ユーザ役割にアクセス可能なリソースに基づいて、アプリケーションは、ユーザ役割にアクセスすることができる。
【0150】
いくつかの実施形態において、アクセス情報データストア(例えば、アクセス情報データストア168)にアクセスして、ターゲットシステムによって提供されたリソースにアクセスするためのユーザIDにアカウントを提供したか否かを判断することができる。上述のように、企業システム内のリソースは、ターゲットシステムによって提供されてもよい。アカウントがユーザIDに提供されたと判断する場合、アクセス情報データストアからアカウント情報を取り出すことができる。アカウント情報は、ユーザIDに提供されたアカウントを特定する。アカウントがユーザのIDに提供されていないと判断する場合、ターゲットシステムによって提供されたリソースへのアクセスをIDに与えるために、アカウントを設定することができる。
【0151】
ステップ908において、そのユーザのIDで登録された1つ以上のリモート装置を用いて、アカウントに対応するリソース(例えば、ステップ906で提供されたアカウント用のリソース)にアクセスするように、アプリケーションを設定することができる。リモート装置は、ステップ904で検索された装置情報から特定されてもよい。ユーザは、アプリケーションを用いて、ユーザのIDに登録されたリモート装置からリソースにアクセスすることができる。例えば、アカウントに関連付けられたユーザに登録されたリモート装置を用いてメッセージングアカウントのメッセージサービスにアクセスするように、メッセージングアプリケーションを設定することができる。接続情報を用いて、リソースを提供するターゲットシステムに接続するようにアプリケーションを設定することができる。接続情報の例としては、ターゲットシステムのポートアドレス、ターゲットシステムのホストアドレス、およびターゲットシステムのLDAPが挙げられる。アカウントを用いてリソースにアクセスするように、アクセス情報を用いてアプリケーションを設定することができる。アクセス情報の例としては、ユーザID、アクセストークン、またはアクセス関連情報を特定する他の情報が挙げられる。
【0152】
アプリケーションを設定した後、ステップ910において、設定がなされたアプリケーションをリモート装置に送信することができる。いくつかの実施形態において、アプリケーションアクセスするまたはアプリケーションを用いてアクセス可能なリソースにアクセスする要求があった場合、アプリケーションをリモート装置に送信することができる。例えば、リモート装置にアクセス可能な1つ以上のアプリケーションを特定するアプリケーションカタログから選択を行った場合、アプリケーションをリモート装置に送信することができる。アプリケーションは、装置アクセス管理システムによって記憶され、要求に応じて送信されてもよい。
【0153】
ステップ912において、IDに関連するユーザ役割(例えば、ステップ902で特定されたユーザ役割)における変更を検出する。そのIDは、リモート装置が登録されているユーザに属してもよい。ユーザ役割の変更は、あるユーザ役割から別のユーザ役割への変更に対応してもよい。例えば、ユーザ役割の変更は、ユーザIDに新たなユーザ役割の割り当てに対応してもよい。ユーザ役割の変更は、ユーザIDから割り当てられたユーザ役割の削除に対応してもよい。ユーザ情報データストア172内のユーザ情報にアクセスして、ユーザに関連するユーザ役割を判断することができる。いくつかの実施形態において、ID管理システム140から、ユーザ役割の変更に関する情報を取得することができる。
【0154】
ステップ914において、IDによるリソースへのアクセス権の変更を判断することができる。ユーザ役割の変更に基づいて、アクセス権の変更を判断することができる。リソースにアクセスするように許可されたユーザ役割に基づいて、リソースへのアクセス権を提供することができる。IDによるリソースへのアクセス権は、ユーザ役割の変更に応じて変更される可能性がある。例えば、ユーザ役割(例えば、管理者役割)の喪失に基づいて、リソース(例えば、人事資源アプリケーション)へのアクセス権を取消すまたは制限することができる。別の例において、リソースへのアクセスを許可する新たなユーザ役割(例えば、管理者役割)の割り当てに基づいて、リソース(例えば、人事資源アプリケーション)へのアクセス権を付与することができる。
【0155】
ステップ916において、アクセス権の変更(例えば、ステップ914で判断したアクセス権の変更)に基づいてアプリケーションのコンフィグレーションを変更するように、1つ以上のリモート装置(例えば、ユーザIDで登録されたリモート装置)に指示することができる。アプリケーションを用いてアクセス可能なリソースへのアクセス権は、ユーザIDに関連付けられたユーザ役割の変更に基づいて変更される可能性がある。リソースへのアクセス権の変更に従って、リソースへのアクセス権を提供するアプリケーションのコンフィグレーションを変更しなければならない。ユーザ役割の変更によって影響されたIDに関連付けられたリモート装置上のアプリケーションのコンフィグレーションを変更することができる。リソースへのアクセスを調整するようにまたはリソースへのアクセスを拒否するように、コンフィグレーションを変更することができる。
【0156】
多くの方法でアプリケーションのコンフィグレーションを変更することができる。リソースにアクセスするアプリケーションのアクセス情報、接続情報、または使用に関連する他の設定に応じて、アプリケーションのコンフィグレーションを変更することができる。例えば、変更は、リソースへのアクセスを防止するようにアプリケーションから接続情報の削除を含むことができる。アプリケーションのコンフィグレーションを変更するようリモート装置に指示することは、コンフィグレーションの変更を示す命令を含むメッセージをリモート装置に送信することを含むことができる。リモート装置は、命令に従ってコンフィグレーションを変更することができる。いくつかの実施形態において、アプリケーションのコンフィグレーションを変更するようにリモート装置に指示することは、アクセス権の変更に対応する変更に従ってアプリケーションを設定すること、および設定がなされたアプリケーションをリモート装置に送信することを含んでもよい。リモート装置は、設定がなされたアプリケーションに従って、装置上のアプリケーションを変更する。
【0157】
フローチャート900の処理は、ステップ918で終了する。
図10は、本発明のいくつかの実施形態に従って、アプリケーションをリモート装置に提供するためのプロセスを示すフローチャート1000である。いくつかの実施形態において、
図10に示すプロセスは、本開示に説明した装置アクセス管理システム120を用いて実施することができる。
【0158】
フローチャート1000に示されたプロセスは、1つ以上の処理ユニット(例えば、プロセッサコア)、ハードウェア、またはそれらの組み合わせによって実行されるソフトウェア(例えば、コード、命令、プログラム)に実施されてもよい。ソフトウェアは、(例えば、メモリ装置または非一時的なコンピュータ読取可能な記憶媒体上の)メモリに記憶されてもよい。フローチャート1000の特定の一連の処理ステップは、限定することを意図していない。別の実施形態に従って、他の一連のステップを実行することもできる。例えば、本発明の代替の実施形態は、異なる順序で上述したステップを実行することができる。さらに、
図10に示された各ステップは、複数のサブステップを含み、これらの複数のサブステップは、各ステップに応じてさまざまな順序で実行されてもよい。さらに、特定のアプリケーションに応じて、ステップを追加してもよく、削除してもよい。
図10に示された処理が企業システム内のリソースにアクセスする単一のアプリケーションに対応するものであるが、この処理は、リソースへのアクセスを可能にする任意数のアプリケーションまたは任意数のリソースにアクセス可能なアプリケーションによって実行されてもよい。
図10に示された処理がユーザIDに関連付けられた単一の役割に対応するものであるが、この処理は、IDに関連付けられた複数の役割に対して実行されてもよい。当業者であれば、多くの変形例、変更例および代替例を認識するであろう。
【0159】
フローチャート1000の処理は、ステップ1002において、企業システムのユーザのIDに関連するユーザ役割を特定することによって開始される。ステップ1004において、企業システムにアクセスするように登録された1つ以上のリモート装置の装置情報を検索することができる。
【0160】
ステップ1006において、複数のアプリケーションへのアクセス権をIDに与える。複数のアプリケーションの各々は、企業システムにアクセスするように登録されたリモート装置を用いて、企業システム内の異なるリソースにアクセスするように設定される。異なるリソースの各々は、そのIDにアクセス可能である。異なるリソースは、IDに関連する特定のユーザ役割にアクセス可能なリソースとして特定されてもよい。複数のアプリケーションの各々は、異なるリソースのうち1つへのアクセスを提供するアプリケーションとして特定されてもよい。
【0161】
アプリケーションへのアクセスを提供することは、アプリケーションにアクセス可能なリソースへのアクセス権を提供するアカウントをそのIDに提供することを含むことができる。企業システムは、アプリケーションにアクセス可能な異なるリソースの各々に対するアクセスを提供するよう要求されることがある。いくつかの実施形態において、リソースへのアクセス権を提供するターゲットシステムは、そのIDにアカウントを提供するように要求されることがある。人事資源システムは、リソースの提供を容易にすることができる。リソースは、そのIDで特定されたユーザ役割にアクセス可能である。
【0162】
ステップ1008において、リモート装置を用いてアプリケーションからリソースにアクセスするように、接続情報およびアクセス情報を用いて、アクセス権を有する複数のアプリケーションを各々設定することができる。リソースを提供するターゲットシステムに接続するように、接続情報を用いてアプリケーションを設定することができる。リソースにアクセスするために提供されたアカウントを用いてリソースにアクセスするように、アクセス情報を用いてアプリケーションを設定することができる。
【0163】
ステップ1010において、企業システムにアクセスするように登録されたリモート装置に、設定された複数のアプリケーションの各々を送信することができる。一例において、設定がなされたアプリケーションは、メモリ(例えば、アプリケーションカタログに関連付けられた記憶装置)に記憶されるように送信され、リモート装置は、メモリからアプリケーションを取り出すことができる。別の例において、設定がなされたアプリケーションは、当該アプリケーションが設定される対象のリモート装置に送信されてもよい。
【0164】
ステップ1012において、IDによる1つ以上のリソースへのアクセス権の変更を判断することができる。アクセス権の変更は、ユーザ役割の変更に基づいて判断することができる。リソースへのアクセス権は、そのリソースへのアクセスが許可されているユーザ役割に基づいて提供することができる。IDによるリソースへのアクセス権は、そのIDに関連付けられたユーザ役割の変更に応じて変更する可能性がある。例えば、ユーザのIDに割り当てられたユーザ役割に応じて、リソースへのアクセス権を取消すことができる。別の例において、ユーザのIDに割り当てられたユーザ役割に応じて、新たなリソースへのアクセスを許可することができる。
【0165】
ステップ1014において、アクセス権の変更(例えば、ステップ1014で判断したアクセス権の変更)に基づいてアプリケーションのコンフィグレーションを変更するように、1つ以上のリモート装置(例えば、ユーザIDで登録されたリモート装置)に指示することができる。例えば、アプリケーションのコンフィグレーションを変更して、ユーザ役割の変更に基づいて取消されたリソースへのアクセスを防止するように、リモート装置に指示することができる。
【0166】
いくつかの実施形態において、リモート装置は、アクセス権をユーザのIDに与えた新たなリソースへのアクセスを提供するアプリケーションを備えていない場合がある。ステップ1016において、ユーザ役割の変更に基づいて、新たなアプリケーションへのアクセス権をそのユーザのIDに提供することができる。上述したように、ユーザ役割が変更された場合、リソースは、そのユーザのIDにアクセス可能であり得る。このように、そのユーザIDによるリソースへのアクセスを可能にする新たなアプリケーションを特定することができる。新たなアプリケーションへのアクセスをIDに与えることは、そのIDに新たなアプリケーションへのアクセスを提供するアカウントを提供することを含む。ステップ1018において、IDに登録されたリモート装置を用いてアプリケーションからリソースにアクセスするように、接続情報およびアクセス情報を用いて新たなアプリケーションを設定することができる。ステップ1020において、設定がなされた新たなアプリケーションは、リモート装置に送信されてもよい。
【0167】
フローチャート1000の処理は、ステップ1022で終了する。
図11に示された構成において、システム1100のソフトウェア要素1118、1120および1122は、サーバ1112上に実装されたものとして示されている。他の実施形態において、システム1100の1つ以上の構成要素および/またはこれらの構成要素によって提供されたサービスは、1つ以上のクライアントコンピューティング装置1102、1104、1106および/または1108によって実現されてもよい。クライアントコンピューティング装置を操作するユーザは、1つ以上のクライアントアプリケーションを利用して、これらの構成要素によって提供されたサービスを使用することができる。これらの構成要素は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせで実現されてもよい。理解すべきことは、分散型システム1100と異なって、さまざまな異なるシステム構成が可能であることである。
図11に示されたシステムは、実施形態を実現するための分散型システムの一例であり、限定することを意図していない。
【0168】
クライアントコンピューティング装置1102、1104、1106および/または1108は、さまざまな種類のコンピューティングシステムを含むことができる。例えば、クライアントコンピューティング装置は、Microsoft Windows Mobile(登録商標)のようなソフトウェア、および/またはiOS、Windows Phone(登録商標)、Android(登録商標)、BlackBerry(登録商標)10、Palm OSなどのさまざまなモバイルオペレーティングシステムを実行する手持ち式携帯装置装置(例えば、iPhone(登録商標)、携帯電話、iPad(登録商標)、コンピューティングタブレット、携帯情報端末(PDA))または装着型装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)を含むことができる。これらの装置は、さまざまなアプリケーション、例えばさまざまなインターネット関連アプリケーション、メールアプリケーションおよびショートメッセージサービス(SMS)アプリケーションをサポートすることができ、さまざまな他の通信プロトコルを使用することができる。また、例示として、Microsoft Windows(登録商標)オペレーティングシステム、Apple Macintosh(登録商標)オペレーティングシステムおよび/またはLinux(登録商標)オペレーティングシステムのさまざまなバージョンを動かすパーソナルコンピュータおよび/またはラップトップコンピュータを含む汎用のパーソナルコンピュータであってもよい。クライアントコンピューティング装置は、たとえば、さまざまなGNU/Linuxオペレーティングシステム、たとえば、Google Chrome OSを含むがこれに限定されない市販のUNIX(登録商標)またはUNIXに類似するさまざまなオペレーティングシステムを動かすワークステーションコンピュータであってもよい。さらに、クライアントコンピューティング装置は、ネットワーク1110を介して通信可能な他の電子機器、例えばシンクライアントコンピュータ、インターネット対応のゲームシステム(たとえば、Kinect(登録商標)ジェスチャ入力装置を備えるまたは備えないMicrosoft Xboxゲームコンソール)、および/またはパーソナルメッセージング装置などであってもよい。
【0169】
図11の分散システム1100は、4つのクライアントコンピューティング装置を備えると示されているが、任意数のクライアントコンピューティング装置をサポートすることができる。他の装置、たとえばセンサを有する装置は、サーバ1112と情報交換することができる。
【0170】
分散型システム1100のネットワーク1110は、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、およびAppleTalkなどを含むがこれらに限定されないさまざまな市販プロトコルのいずれかを使用してデータ通信をサポートすることができ、当業者に熟知される任意種類のネットワークであってもよい。単なる例示として、ネットワーク1110は、ローカルエリアネットワーク(LAN)、イーサネット(登録商標)に基づくネットワーク、トークンリング、広域ネットワーク、インターネット、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば、IEEE(Institute of Electrical and Electronic Engineers)802.11プロトコルスイート、Bluetooth(登録商標)、および/または任意の他の無線プロトコルの下で動作するネットワーク)および/またはこれらのネットワークと他のネットワークの組み合わせを含むことができる。
【0171】
サーバ1112は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(例示として、PC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバを含む)、サーバファーム、サーバクラスタ、または任意の他の適切な構成および/または組み合わせから構成されてもよい。サーバ1112は、仮想オペレーティングシステムを動かす1つ以上の仮想マシン、または仮想化に関与する他のコンピューティングアーキテクチャを含むことができる。論理記憶装置の1つ以上のフレキシブルプールを仮想化して、サーバの仮想記憶装置を維持することができる。仮想ネットワークは、ソフトウェア定義ネットワークを用いて、サーバ1112によって制御することができる。さまざまな実施形態において、サーバ1112は、前述の開示に記載された1つ以上のサービスまたはソフトウェアアプリケーションを実行するように構成することができる。例えば、サーバ1112は、本開示の実施形態に従って上記に説明した処理を実行するためのサーバに対応することができる。
【0172】
サーバ1112は、上述したものいずれかを含むオペレーティングシステム、および任意の市販サーバオペレーティングシステムを動かすことができる。サーバ1112は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェイス)サーバ、Java(登録商標)サーバ、データベースサーバなどを含むさまざまな追加サーバアプリケーションおよび/またはミッドティアアプリケーションのいずれかを実行することができる。例示的なデータベースサーバは、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)などの会社から市販されているものを含むがこれらに限定されない。
【0173】
いくつかの実現例において、サーバ1112は、クライアントコンピューティング装置1102、1104,1106、および1108のユーザから受信したデータフィードおよび/またはイベント更新を分析および統合する1つ以上のアプリケーションを含んでもよい。例示として、データフィードおよび/またはイベント更新は、Twitter(登録商標)フィード、Facebook(登録商標)更新または1つ以上の第3情報源および連続データストリームから受信したリアルタイム更新を含むがこれらに限定されない。リアルタイム更新は、センサデータアプリケーション、金融相場表示機、ネットワーク性能測定ツール(たとえば、ネットワーク監視およびトラフィック管理アプリケーション)、ページ遷移(Clickstream)解析ツール、自動車交通監視装置などに関連するリアルタイムイベントを含むことができる。また、サーバ1112は、クライアントコンピューティング装置1102、1104、1106および1108の1つ以上の表示装置を介して、データフィードおよび/またはリアルタイムイベントを表示するための1つ以上のアプリケーションを含むこともできる。
【0174】
また、分散型システム1100は、1つ以上のデータベース1114および1116を含むこともできる。これらのデータベースは、本発明の実施形態によって使用されるユーザ対話情報、使用パターン情報、適合ルール情報、および他の情報を記憶するためのメカニズムを提供することができる。データベース1114および1116は、さまざまな場所に常駐することができる。例示として、1つ以上のデータベース1114および1116は、サーバ1112の近く(および/またはその中)の非一時記憶媒体に常駐することができる。代替的には、データベース1114および1116は、リモートサーバ1112から離れており、ネットワークに基づく接続または専用接続を介して、サーバ1112と通信している。一組の実施形態において、データベース1114および1116は、記憶領域ネットワーク(SAN)に常駐することができる。同様に、サーバ1112に帰する機能を実行するための任意の必要なファイルは、必要に応じて、サーバ1112上に/またはサーバ1112から離れた場所に保存されてもよい。一組の実施形態において、データベース1114および1116は、たとえば、Oracleにより提供されるデータベースなどの関係データベースを含むことができる。これらの関係データベースは、SQLフォーマット命令に応じて、データを取得、保存および更新するように構成されている。
【0175】
いくつかの実施形態において、クラウド環境は、リモート装置を用いて企業システムに対するアクセスを管理するための1つ以上のサービスを提供することができる。
図12は、本開示の一実施形態に従って、サービスをクラウドサービスとして提供することができるシステム環境1200の1つ以上の構成要素を示す簡略ブロック図である。
図12に示された実施形態において、システム環境1200は、1つ以上のクライアントコンピューティング装置1204、1206および1208を含む。ユーザは、これらのクライアントコンピューティング装置を用いて、クラウドインフラストラクチャシステム1202と情報交換することができる。クラウドインフラストラクチャシステム1202は、リモート装置を用いて企業システムに対するアクセスを管理するサービスを含むクラウドサービスを提供することができる。クラウドインフラストラクチャシステム1202は、サーバ1112について上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを備えることができる。
【0176】
理解すべきことは、
図12に示されたクラウドインフラストラクチャシステム1202は、図示された構成要素以外の構成要素を備えてもよいことである。さらに、
図12に示されたものは、本発明の実施形態を組み込むことができるクラウドインフラストラクチャシステムの一例に過ぎない。いくつかの他の実施形態において、クラウドインフラストラクチャシステム1202は、図示よりも多いまたは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、または異なる構成または配置の構成要素を有してもよい。
【0177】
クライアントコンピューティング装置1204、1206、および1208は、クライアントコンピューティング装置1102、1104、1106、および1108と同様であってもよい。クライアントコンピューティング装置1204、1206、および1208は、ウェブブラウザ、専用クライアントアプリケーション(たとえば、オラクルフォーム)または他のアプリケーションなどのクライアントアプリケーションを作動するように構成されることができる。ユーザは、クライアントアプリケーションを用いてクラウドインフラストラクチャシステム1202と情報交換することによって、クラウドインフラストラクチャシステム1202により提供されたサービスを利用することができる。例示的なシステム環境1200は、3つのクライアントコンピューティング装置を備えると示されているが、任意数のクライアントコンピューティング装置をサポートすることができる。他の装置、たとえばセンサを有する装置は、クラウドインフラストラクチャシステム1202と情報交換することができる。
【0178】
ネットワーク1210は、クライアント1204、1206および1208とクラウドインフラストラクチャシステム1202との間のデータの通信および交換を促進することができる。各ネットワークは、上記でネットワーク1110に関して説明したプロトコルをさまざまな市販プロトコルのいずれかを用いてデータ通信をサポートすることができ、当業者に熟知する任意種類のネットワークであってもよい。
【0179】
特定の実施形態において、クラウドインフラストラクチャシステム1202によって提供されたサービスは、需要に応じて、クラウドインフラストラクチャシステムからユーザに提供できる多くのサービスを含んでよい。リモート装置を使用して企業システムに対するアクセスの管理に関連するサービスに加えて、オンラインデータの記憶およびバックアップ、Webベースの電子メールサービス、ホストされたオフィススイートおよび文章連携サービス、データベース処理、管理された技術サポートサービスを含むがこれらに限定されないさまざまなサービスを提供することができる。クラウドインフラストラクチャシステムによって提供されるサービスは、ユーザのニーズを満たすように動的に拡張できる。
【0180】
特定の実施形態において、クラウドインフラストラクチャシステム1202によって提供されたサービスの特定の例示は、本明細書において、「サービスインスタンス」と呼ばれる。一般的には、インターネットなどの通信ネットワークを介して、クラウドサービスプロバイダのシステムからユーザに提供できる任意のサービスは、「クラウドサービス」と呼ばれる。典型的には、パブリッククラウド環境において、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客のオンプレミスサーバおよびシステムとは異なる。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションを提供することができ、ユーザは、必要に応じて、インターネットなどの通信ネットワークを介して、アプリケーションを注文し、使用することができる。
【0181】
いくつかの例において、コンピュータネットワーククラウドインフラストラクチャ内のサービスは、保護されたコンピュータネットワークのストレージアクセス、ホストされたデータベース、ホストされたWebサーバ、ソフトウェアアプリケーション、またはクラウドベンダによってユーザに提供された他のサービス、または当該技術分野に知られている他のサービスを含むことができる。たとえば、サービスは、インターネットを介して、クラウド上のリモートストレージに対して、パスワードにより保護されたアクセスを含むことができる。別の例として、サービスは、Webサービスにホストされている関係データベースおよびネットワーク上の開発者により私的使用のためのスクリプト言語ミドルウェアエンジンを含むことができる。別の例として、サービスは、クラウドベンダのウェブサイト上でホストされている電子メールソフトウェアアプリケーションに対するアクセスを含むことができる。
【0182】
特定の実施形態において、クラウドインフラストラクチャシステム1202は、セルフサービスのサブスクリプションに基づく、柔軟なスケーラビリティ、信頼性、高可用性および安全性を有する方法で、顧客に提供できる一連のアプリケーション、ミドルウェアおよびデータベースサービスを含むことができる。このようなクラウドインフラストラクチャシステムの例示として、本願譲受人により提供されたOracleパブリッククラウドが挙げられる。
【0183】
クラウドインフラストラクチャシステム1202はまた、「ビッグデータ」に関連する計算および分析サービスを提供してもよい。「ビッグデータ」という用語は、一般的に非常に大きなデータセットを指す。分析者および研究者が、記憶された「ビッグデータ」を利用して、大量のデータを視覚化し、傾向を検出し、および/またはデータと情報交換することができる。このようなビッグデータおよび関連するアプリケーションは、さまざまなレベルおよびさまざまな規模でインフラストラクチャシステムにホストされ、操作されることができる。並行に連結された数十、数百、または数千のプロセッサは、ビッグデータを処理することによって、データを表示することができ、もしくはデータまたはデータの表現に作用する外力をシミュレートすることができる。これらのデータセットは、これらのデータセットは、データベースに編成されたデータまたは構造化モデルに従って編成されたデータなどの構造化データおよび/または非構造化データ(例えば、電子メール、画像、データブロブ(バイナリ大型対象物)、ウェブページ、複合イベント処理)を含むことができる。実施形態の能力を活用して、より多くの(またはより少ない)コンピューティングリソースを比較的迅速に目的物に集中させることによって、クラウドインフラストラクチャシステムは、企業、政府機関、研究機関、個人、個人同士または組織同士のグループまたは他の実体からの需要に基づいて、大きなデータセットに関するタスクの実行により適切になる。
【0184】
さまざまな実施形態において、クラウドインフラストラクチャシステム1202は、顧客から申込んだクラウドインフラストラクチャシステム1202のサービスを自動的に提供、管理および追跡するように構成されることができる。クラウドインフラストラクチャシステム1202は、さまざまな展開モデルを介して、クラウドサービスを提供することができる。たとえば、サービスは、クラウドサービスを販売する組織に所有された(たとえば、Oracleに所有された)クラウドインフラストラクチャシステム1202を有するパブリッククラウドモデルで提供され、一般人または異なる業界の企業に利用されることができる。別の例として、サービスは、単一の組織に専用されたクラウドインフラストラクチャシステム1202を有するプライベートクラウドモデルで提供され、組織内の1つ以上の実体に利用されることができる。また、クラウドサービスは、集団クラウドモデルで提供されてもよい。よって、クラウドインフラストラクチャシステム1202およびクラウドインフラストラクチャシステム1202により提供されたサービスは、関連する集団内の複数の組織によって共有される。また、クラウドサービスは、2つ以上の異なるモデルの組み合わせからなるハイブリッドクラウドモデルで提供されてもよい。
【0185】
いくつかの実施形態において、クラウドインフラストラクチャシステム1202によって提供されたサービスは、SaaS(Software as a Service)カテゴリ、PaaS(Platform as a Service)カテゴリ、IaaS(Infrastructure as a Service)カテゴリ、またはハイブリッドサービスを含む他のカテゴリのサービスに準拠して提供された1つ以上のサービスを含むことができる。顧客は、サブスクリプションの申込みによって、クラウドインフラストラクチャシステム1202によって提供された1つ以上のサービスを注文することができる。これに応じて、クラウドインフラストラクチャシステム1202は、顧客のサブスクリプション申込書に含まれたサービスを提供する処理を行う。
【0186】
いくつかの実施形態において、クラウドインフラストラクチャシステム1202によって提供されたサービスは、アプリケーションサービス、プラットフォームサービスおよびインフラストラクチャサービスを含むがこれらに限定されない。いくつかの例において、アプリケーションサービスは、SaaSプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。SaaSプラットフォームは、SaaSカテゴリに準拠するクラウドサービスを提供するように構成されてもよい。たとえば、SaaSプラットフォームは、統合の開発および展開プラットフォーム上でオンデマンドアプリケーションのスイートを構築し、提供するように、機能することができる。SaaSプラットフォームは、SaaSサービスを提供するために、基礎のソフトウェアおよびインフラストラクチャを管理し、制御することができる。SaaSプラットフォームにより提供されたサービスを利用することによって、顧客は、クラウドインフラストラクチャシステム上で動作するアプリケーションを利用することができる。顧客は、別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得することができる。さまざまな異なるSaaSサービスを提供することができる。例示としては、販売実績管理、企業統合、および大規模組織のビジネス柔軟性に対する解決策を提供するサービスを含むがこれらに限定されない。
【0187】
いくつかの実施形態において、プラットフォームサービスは、PaaSプラットフォームを介してクラウドインフラストラクチャシステム1202によって提供されてもよい。PaaSプラットフォームは、PaaSカテゴリに準拠するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例としては、共有されている共通アーキテクチャ上で既存のアプリケーションを統合する能力、およびプラットフォームにより提供された共有サービスを活用する新規アプリケーションを構築する能力を組織(たとえば、Oracle)に与えるサービスを含むがこれに限定されない。PaaSプラットフォームは、PaaSサービスを提供するために、基礎のソフトウェアおよびインフラストラクチャを管理および制御することができる。顧客は、別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステム1202によって提供されたPaaSサービスを取得することができる。プラットフォームサービスの例としては、oracle Javaクラウドサービス(JCS)、Oracleデータベースクラウドサービス(DBCS)およびその他を含むがこれらに限定されない。
【0188】
PaaSプラットフォームにより提供されたサービスを利用することによって、顧客は、クラウドインフラストラクチャシステムにサポートされているプログラミング言語およびツールを利用することができ、展開されたサービスを制御することができる。いくつかの実施形態において、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス(たとえば、Oracle Fusionミドルウェアサービス)、およびJavaクラウドサービスを含むことができる。一実施形態において、データベースクラウドサービスは、データベースリソースを蓄積する能力を組織に与えることができる共有サービス展開モデルをサポートすることができ、DBaaS(Database as a Service)をクラウドデータベースとして顧客に提供することができる。ミドルウェアクラウドサービスは、クラウドインフラストラクチャシステム上でさまざまなビジネスアプリケーションを開発および展開するためのプラットフォームを顧客に提供することができ、Javaクラウドサービスは、クラウドインフラストラクチャシステム上でJavaアプリケーションを展開するためのプラットフォームを顧客に提供することができる。
【0189】
種々の異なるインフラストラクチャサービスは、IaaSプラットフォームによって、クラウドインフラストラクチャシステムに提供されてもよい。これらのインフラストラクチャサービスは、SaaSプラットフォームおよびPaaSプラットフォームにより提供されたサービスを利用する顧客のために、ストレージ、ネットワークおよびその他の基本的なコンピューティングリソースとしての基礎コンピューティングリソースの管理と制御を容易にする。
【0190】
特定の実施形態において、クラウドインフラストラクチャシステム1202はまた、クラウドインフラストラクチャシステムを利用する顧客に、さまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース1230を含むことができる。一実施形態において、インフラストラクチャリソース1230は、PaaSプラットフォームおよびSaaSプラットフォームによって提供されたサービスを実行するために、事前に統合され且つ最適化されたハードウェアの組み合わせ、例えばサーバリソース、ストレージリソースおよびネットワークリソース、および他のリソースを含んでもよい。
【0191】
いくつかの実施形態において、クラウドインフラストラクチャシステム1202内のリソースは、複数のユーザに共有されることができ、各々の需要に応じて動的に再割り当てることができる。また、リソースは、異なるタイムゾーンでユーザに割り当てることができる。たとえば、クラウドインフラストラクチャシステム1202は、指定時間内でクラウドインフラストラクチャシステムのリソースを第一時間帯における第一グループのユーザに利用させ、その後、同様のリソースを異なる時間帯における別のグループのユーザに再配分することができ、リソースを最大に利用することができる。
【0192】
特定の実施形態において、複数の内部共有サービス1232は、提供され、クラウドインフラストラクチャシステム1202の異なる構成要素またはモジュールに共有されおよびクラウドインフラストラクチャシステム1202によって提供されたサービスに共有されることができる。これらの内部共有サービスは、安全性および識別サービス、統合サービス、企業リポジトリサービス、企業管理サービス、ウイルススキャンおよびホワイトリストサービス、高可用性のバックアップおよびリカバリサービス、クラウドサポートを可能にするサービス、メールサービス、通知サービス、およびファイル転送サービスなどを含むがこれらに限定されない。
【0193】
特定の実施形態において、クラウドインフラストラクチャシステム1202は、クラウドインフラストラクチャシステム内のクラウドサービス(たとえば、SaaSサービス、PaaSサービスおよびIaaSサービス)を包括的に管理する機能を提供することができる。一実施形態において、クラウド管理機能は、クラウドインフラストラクチャシステム1202などによって受信した顧客のサブスクリプションを提供、管理、および追跡する機能を含んでもよい。
【0194】
一実施形態において、
図12に示すように、クラウド管理機能は、1つ以上のモジュール、たとえば、オーダー管理モジュール1220、オーダーオーケストレーションモジュール1222、オーダー支給モジュール1224、オーダー管理監視モジュール1226、およびID管理モジュール1228によって提供される。これらのモジュールは、1つ以上のコンピュータおよび/またはサーバを含んでもよく、これらを用いて形成されてもよい。これらのコンピュータおよび/またはサーバは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、または任意の他の適切な配置および/またはこれらの組み合わせであってもよい。
【0195】
例示的な処理1234において、顧客は、クライアント装置、たとえば、クライアント装置1204、1206または1208を使用して、クラウドインフラストラクチャシステム1202により提供された1つ以上のサービスをリクエストし、クラウドインフラストラクチャシステム1202によって提供された1つ以上のサービスをオーダーすることによって、クラウドインフラストラクチャシステム1202と情報交換することができる。特定の実施形態において、顧客は、クラウドユーザインターフェイス(UI)、クラウドUI 1212、クラウドUI 1214および/またはクラウドUI 1216にアクセスし、これらのUIを介して、サブスクリプションをオーダーすることができる。クラウドインフラストラクチャシステム1202が顧客のオーダーに応答して受信したオーダー情報は、顧客と、クラウドインフラストラクチャシステム1202により提供され、顧客が購読しようとする1つ以上のサービスとを識別する情報を含むことができる。
【0196】
ステップ1236において、顧客から受信したオーダー情報は、オーダーデータベース1218に記憶することができる。このオーダーが新たなオーダーである場合、そのオーダーに新たなレコードを作成することができる。一実施形態において、オーダーデータベース1218は、クラウドインフラストラクチャシステム1218によって操作され、他のシステム要素と連動して操作されるいくつかのデータベースのうち1つであってもよい。
【0197】
ステップ1238において、オーダー情報をオーダー管理モジュール1220に転送することができる。オーダー管理モジュール1220は、オーダーに関連する請求および会計機能、たとえば、オーダーの確認、および確認後オーダーの記入を実行するように構成されてもよい。
【0198】
ステップ1240において、オーダーに関する情報をオーダーオーケストレーションモジュール1222に伝達することができる。オーダーオーケストレーションモジュール1222は、顧客がオーダーしたサービスおよびリソースの提供を準備するように構成される。いくつかの例において、オーケストレーションモジュール1222は、オーダー支給モジュール1224のサービスを使用して、支給を行うことができる。特定の実施形態において、オーケストレーションモジュール1222は、各オーダーに関連付けられたビジネスプロセスを管理することができ、ビジネスロジックを適用することによって、オーダーに対して支給をするか否かを判断することができる。
【0199】
図12の実施形態に示すように、ステップ1242において、新規サブスクリプションのオーダーを受信すると、オーダーオーケストレーションモジュール1222は、リソースを割り当て、サブスクリプションオーダーを満たすために必要なリソースを構成するように、リクエストをオーダー支給モジュール1224に送信する。オーダー支給モジュール1224は、顧客がオーダーしたサービス用のリソースを割り当てることができる。オーダー支給モジュール1224は、クラウドインフラストラクチャシステム1200により提供されたクラウドサービスと、リクエストされたサービスを提供するためのリソースを供給するために使用される物理的な実装層との間の抽象化レベルを形成する。このように、オーダーオーケストレーションモジュール1722は、たとえば、サービスおよびリソースをその場で支給するかまたは事前に支給するか、リクエストに応じて割り当てる/与えるかなどの実装詳細から単離されることができる。
【0200】
ステップ1244において、サービスおよびリソースを支給した後、要求されたサービスが現在使用可能であることを示す通知を加入顧客に送信することができる。場合によって、顧客が要求されたサービスの使用を開始できるように、情報(例えば、リンク)を顧客に送信することができる。
【0201】
ステップ1246において、オーダー管理監視モジュール1226は、顧客のサブスクリプションオーダーを管理および追跡することができる。いくつかの例において、オーダー管理監視モジュール1226は、サブスクリプションオーダー内のサービスの利用統計、たとえば、ストレージの使用量、データの転送量、ユーザの数、システムの起動時間およびシステムの停止時間を収集するように構成されることができる。
【0202】
特定の実施形態において、クラウドインフラストラクチャシステム1200は、ID管理モジュール1228を含むことができる。ID管理モジュール1228は、クラウドインフラストラクチャシステム1200に、識別サービス、たとえば、アクセス管理および認可サービスを提供するように構成することができる。いくつかの実施形態において、ID管理モジュール1228は、クラウドインフラストラクチャシステム1202によって提供されたサービスを利用したい顧客に関する情報を制御することができる。このような情報は、顧客のIDを承認する情報、およびさまざまなシステムリソース(たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど)に対して許可された顧客の実行権限を記載する情報を含むことができる。また、ID管理モジュール1228は、各顧客に関する記述情報の管理、記述情報にアクセスおよび変更する方法の管理、および記述情報にアクセスおよび変更した顧客の管理を行うこともできる。
【0203】
図13は、本発明のさまざまな実施形態を実現することができるコンピュータシステム1300の一例を示す図である。いくつかの実施形態において、コンピュータシステム1300を用いて、上述したさまざまなサーバおよびコンピュータシステムのいずれかを実現することができる。
図13に示すように、コンピュータシステム1300は、さまざまなサブシステム、例えばバスサブシステム1302を介して、複数の周辺と通信する処理ユニット1304を含む。周辺サブシステムは、処理加速ユニット1306と、I/Oサブシステム1308と、記憶サブシステム1313と、通信サブシステム1324とを含むことができる。記憶サブシステム1313は、有形コンピュータ読取可能記憶媒体1322と、システムメモリ1310とを含む。
【0204】
バスサブシステム1302は、コンピュータシステム1300のさまざまな構成要素およびサブシステムが必要に応じて相互通信させるための機構を形成する。図示には、バスサブシステム1302を単一のバスとして概略的に示しているが、代替的な実施形態において、バスサブシステムは、複数のバスを利用してもよい。バスサブシステム1302は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを備えるいくつかの種類のバス構造のいずれかを有してもよい。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクス規格協会(VESA)ローカルバス、および周辺構成要素相互接続(PCI)バスを含むことができる。これらのバスは、IEEE P1386.1規格などに準拠した製造されたメザニンバスとして実現することができる。
【0205】
処理サブシステム1304は、コンピュータシステム1300の動作を制御し、1つ以上の処理ユニット1332、1334などを含むことができる。処理ユニットは、1つ以上のプロセッサコア、例えば、単一コアプロセッサまたはマルチコアプロセッサ、またはそれらの組み合わせを含んでもよい。いくつかの実施形態において、処理サブシステム1304は、1つ以上の専用コプロセッサ、例えばグラフィックプロセッサ、デジタル信号プロセッサ(DSP)などを含むことができる。いくつかの実施形態において、処理サブシステム1304の処理ユニットの一部または全部は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などの特装回路を用いて実現することができる。
【0206】
いくつかの実施形態において、処理サブシステム1304内の処理ユニットは、システムメモリ1310またはコンピュータ読取可能な記憶媒体1322に記憶された命令を実行することができる。さまざまな実施形態において、処理ユニットは、さまざまなプログラムまたはコード命令を実行することができ、複数のプログラムまたはプロセスを同時に実行することができる。任意の時点において、実行されるプログラムコードの一部または全部は、システムメモリ1310および/または1つ以上の記憶装置を潜在的に含むコンピュータ読取可能な記憶媒体1322に常駐することができる。適切なプログラミングによって、処理サブシステム1304は、リモート装置を使用して企業システムに対するアクセスを管理するための上述したさまざまな機能を提供することができる。
【0207】
特定の実施形態において、コンピュータシステム1300によって実行された処理を全体的に加速するために、特定の処理または処理サブシステム1304によって実行される処理の一部をオフロードするように、処理加速ユニット1306を設けてもよい。
【0208】
I/Oサブシステム1308は、コンピュータシステム1300に情報を入力するための装置および機構、および/またはコンピュータシステム1300からまたはコンピュータシステム1300を介して情報を出力するための装置および機構を含むことができる。一般的に、「入力装置」という用語を使用する場合、コンピュータシステム1300に情報を入力するために使用されるさまざまの可能な種類の装置および機構を含むことができる。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声命令認識システムを備える音声入力装置、マイクロフォン、および他の種類の入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、たとえば、Microsoft Kinect(登録商標)モーションセンサのようなモーション検知および/またはジェスチャ認識装置を含んでもよい。Microsoft Kinect(登録商標)モーションセンサは、ジェスチャおよび音声命令を利用する自然ユーザインターフェース(NUI)を介して、Microsoft Xbox(登録商標)360ゲームコントローラなどの入力装置を制御することができ、それと対話することができる。また、ユーザインターフェイス入力装置は、Google Glass(登録商標)瞬き検出器のような眼球ジェスチャ認識装置を含むことができる。Google Glass(登録商標)瞬き検出器は、ユーザの眼球活動(たとえば、写真を撮るときおよび/またはメニューを選択するときの「瞬き」)を検出し、眼球活動を入力装置(たとえば、Google Glass(登録商標))に入力する入力に変換する。さらに、ユーザインターフェイス入力装置は、音声命令を介してユーザと音声認識システム(たとえば、Siri(登録商標)ナビゲータ)との対話を可能にする音声認識検出装置を含んでもよい。
【0209】
ユーザインターフェイス入力装置の他の例として、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッド、グラフィックタブレット、スピーカなどのオーディオ/ビジュアル装置、デジタルカメラ、デジタルビデオカメラ、ポータブルメディアプレーヤ、ウェブカメラ、イメージスキャナ、指紋スキャナ、バーコードリーダ、3Dスキャナ、3Dプリンタ、レーザ距離計、および視線追跡装置を含むがこれらに限定されない。さらに、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影装置、磁気共鳴像装置、超音波放射断層撮影装置、および医療用超音波装置などのような医用画像入力装置を含んでもよい。また、ユーザインターフェイス入力装置は、たとえば、MIDIキーボードおよび電子楽器などの音声入力装置を含んでもよい。
【0210】
ユーザインターフェイス出力装置は、ディスプレイサブシステム、インジケータライト、またはオーディオ出力装置などの非視覚ディスプレイを含んでもよい。ディスプレイサブシステムは、たとえば、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使用するフラットパネル装置、投射装置またはタッチスクリーンであってもよい。一般的に、「出力装置」という用語を使用する場合、コンピュータシステム1300から情報をユーザまたは他のコンピュータに出力するためのすべての可能な種類の装置および機構を含むことを意図している。たとえば、ユーザインターフェイス出力装置は、文字、画像およびオーディオ/ビデオ情報を視覚的に伝達するさまざまな表示装置、たとえば、モニタ、プリンタ、スピーカ、ヘッドフォン、カーナビゲーションシステム、プロッタ、音声出力装置、およびモデムを含むがこれらに限定されない。
【0211】
記憶サブシステム1318は、コンピュータシステム1300によって使用される情報を記憶するためのリポジトリまたはデータストアを提供する。また、記憶サブシステム1318は、いくつかの実施例の機能を提供する基本的なプログラミングおよびデータ構造を記憶するための有形のコンピュータ読取可能な記憶媒体を提供し得る。処理サブシステム1304によって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム1318に記憶され得る。これらのソフトウェアモジュールまたは命令は、処理サブシステム1304の1つ以上の処理ユニットによって実行され得る。また、記憶サブシステム1318は、本発明に従って使用されるデータを記憶するためのリポジトリを提供し得る。
【0212】
記憶サブシステム1318は、揮発性メモリ装置および不揮発性メモリ装置を含む1つ以上の非一時的メモリ装置を含むことができる。
図13に示すように、記憶サブシステム1318は、システムメモリ1310およびコンピュータ読取可能な記憶媒体1322を含む。システムメモリ1310は、いくつかのメモリ、例えばプログラム実行中に命令およびデータを記憶するための揮発性メインランダムアクセスメモリ(RAM)および固定命令を記憶する不揮発性読取専用メモリ(ROM)またはフラッシュメモリを含むことができる。いくつかの実現例では、始動中などにコンピュータシステム1300内の素子間で情報を転送することを助ける基本ルーチンを含む基本入力/出力システム(basic input/output system:BIOS)が、一般にROMに記憶され得る。RAMは、一般的には、処理サブシステム1304によって現在に処理され、実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ1310は、スタティックランダムアクセスメモリ(static random access memory:SRAM)またはダイナミックランダムアクセスメモリ(dynamic random access memory:DRAM)などの複数の異なるタイプのメモリを含むことができる。
【0213】
限定ではなく一例として、
図13に示すように、システムメモリ1310は、クライアントアプリケーション、ウェブブラウザ、ミッドティア(mid-tier)アプリケーション、関係データベース管理システム(relational database management system:RDBMS)などを含み得るアプリケーションプログラム1312、プログラムデータ1314およびオペレーティングシステム1316も示す。一例として、オペレーティングシステム1316は、さまざまなバージョンのMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)および/もしくはLinuxオペレーティングシステム、さまざまな市販のUNIX(登録商標)もしくはUNIXライクオペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むが、これらに限定されるものではない)、および/または、iOS、Windows(登録商標)フォン、Android(登録商標)OS、BlackBerry(登録商標)10 OSおよびPalm(登録商標)OSオペレーティングシステムなどのモバイルオペレーティングシステムを含むことができる。
【0214】
コンピュータ読取可能な記憶媒体1322は、いくつかの実施例の機能を提供するプログラミングおよびデータ構成を記憶することができる。プロセッサによって実行されたときに上記の機能を提供するソフトウェア(プログラム、コードモジュール、命令)が記憶サブシステム1318に記憶され得る。一例として、コンピュータ読取可能な記憶媒体1322は、取外し不可能な不揮発性磁気媒体から読取るまたは当該媒体に書込むハードディスクドライブ、取外し可能な不揮発性磁気ディスクから読取るまたは当該ディスクに書込む磁気ディスクドライブ、ならびに、CD ROM、DVDおよびBlu-Ray(登録商標)ディスクまたは他の光学式媒体などの取外し可能な不揮発性光学ディスクから読取るまたは当該ディスクに書込む光学式ディスクドライブを含み得る。コンピュータ読取可能な記憶媒体1322は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(universal serial bus:USB)フラッシュドライブ、セキュアデジタル(secure digital:SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、これらに限定されるものではない。また、コンピュータ読取可能な記憶媒体1322は、フラッシュメモリベースのSSD、企業向けフラッシュドライブ、固体ROMなどの不揮発性メモリに基づく固体ドライブ(solid-state drive:SSD)、固体RAM、ダイナミックRAM、スタティックRAMなどの揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(magnetoresistive RAM:MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDを含み得る。ディスクドライブおよびそれらの関連のコンピュータ読取可能な媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶装置をコンピュータシステム1300に提供することができる。
【0215】
特定の実施形態において、記憶サブシステム1300は、コンピュータ読取可能な記憶媒体1322にさらに接続可能なコンピュータ読取可能な記憶媒体リーダ1320を含み得る。コンピュータ読取可能な記憶媒体1322は、システムメモリ1310とともに、または必要に応じてシステムメモリ1310と組み合わせて、コンピュータ読取可能な情報を記憶するための記憶媒体に加えて、リモート記憶装置、ローカル記憶装置、固定的な記憶装置および/または取外し可能な記憶装置を包括的に表すことができる。
【0216】
特定の実施形態において、コンピュータシステム1300は、1つ以上の仮想マシンを実行するためのサポートを提供することができる。コンピュータシステム1300は、仮想マシンの構成および管理を容易にするために、ハイパーバイザなどのプログラムを実行することができる。各仮想マシンは、メモリ、コンピュータ(例えば、プロセッサ、コア)、I/O、およびネットワークリソースに割り当てられてもよい。各仮想マシンは、通常、独自のオペレーティングシステムを実行する。各仮想マシンのオペレーティングシステムは、コンピュータシステム1300によって実行される仮想マシンは、各々同一または異なるオペレーティングシステムを実行してもよい。したがって、コンピュータシステム1300は、複数のオペレーティングシステムを同時に実行することができる。各マシンは通常、他の仮想マシンから独立して動作する。
【0217】
通信サブシステム1324は、他のコンピュータシステムおよびネットワークとのインターフェイスを提供する。通信サブシステム1324は、他のシステムからデータを受信し、コンピュータシステム1300から他のシステムにデータを送信するためのインターフェイスとして機能する。例えば、通信サブシステム1324によって、コンピュータシステム1300は、インターネットを介して1つ以上のクライアント装置との通信チャネルを形成し、クライアント装置との間に情報を送受信することができる。
【0218】
通信サブシステム1324は、有線通信プロトコルおよび/または無線通信プロトコルの両方をサポートすることができる。例えば、特定の実施形態において、通信サブシステム1324は、(たとえば3G、4GまたはEDGE(enhanced data rates for global evolution)などの携帯電話技術、高度データネットワーク技術を用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(radio frequency:RF)トランシーバ素子、WiFi(IEEE 802.11ファミリ標準または他のモバイル通信技術またはそれらの任意の組み合わせ)(登録商標)、全地球測位システム(global positioning system:GPS)レシーバ素子、および/または、他の構成要素を含み得る。いくつかの実施例では、通信サブシステム1324は、無線インターフェイスに加えて、または無線インターフェイスの代わりに、有線ネットワーク接続(たとえばイーサネット)を提供することができる。
【0219】
通信サブシステム1324は、さまざまな形態のデータを受信および送信することができる。例えば、いくつかの実施形態において、通信サブシステム1324は、構造化されたおよび/または構造化されていないデータフィード1326、イベントストリーム1328、イベント更新1330などの形態で入力通信を受信することができる。例えば、通信サブシステム1324は、ソーシャルメディアネットワークのユーザおよび/またはTwitter(登録商標)フィード、Facebook(登録商標)更新、RSS(Rich Site Summary)フィードなどのウェブフィードなどのデータフィード1326をソーシャルネットワークおよび/または他の通信サービスのユーザからリアルタイムで受信し、および/または、1つ以上の第三者情報源からリアルタイム更新を受信するように構成されてもよい。
【0220】
特定の実施形態において、通信サブシステム1324は、連続的なデータストリームの形態でデータを受信するように構成され得て、当該データは、連続的である場合もあれば本質的に明確な端部を持たない状態で境界がない場合もあるリアルタイムイベントのイベントストリーム1328および/またはイベント更新1330を含み得る。連続的なデータを生成するアプリケーションの例としては、たとえばセンサデータアプリケーション、金融ティッカ、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム分析ツール、自動車交通モニタリングなどを含み得る。
【0221】
また、通信サブシステム1324は、構造化されたおよび/または構造化されていないデータフィード1326、イベントストリーム1328、イベント更新1330などを、コンピュータシステム1300に連結された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0222】
コンピュータシステム1300は、手持ち式携帯機器(たとえばiPhone(登録商標)携帯電話、iPad(登録商標)計算タブレット、PDA)、装着型装置(例えば、Google Glass(登録商標)ヘッドマウントディスプレイ)、PC、ワークステーション、メインフレーム、キオスク、サーバラックまたはその他のデータ処理システムを含むさまざまなタイプのうち、1つであってもよい。
【0223】
コンピュータおよびネットワークが絶え間なく進化し続けるため、
図13に示されているコンピュータシステム1300の説明は、特定の例として意図されているにすぎない。
図13に示されているシステムよりも多くのまたは少ない数の構成要素を有する多くの他の構成が可能である。本明細書に提供された開示および教示に基づいて、当業者は、さまざまな実施例を実現するための他の手段および/または方法を理解するであろう。
【0224】
本発明の一実施形態によれば、コンピューティングシステムにおける装置アクセス管理システムが提供される。本実施形態の装置アクセス管理システムは、前述の実施形態に説明した装置アクセス管理システム120であってもよい。さらに、装置アクセス管理システムおよびその構成要素は、前述の実施形態に説明した本発明の原理に基づいて、いずれかの処理を適切に実行することができる。
【0225】
この実施形態の例において、装置アクセス管理システムは、アカウントハンドラと、アプリケーション構成マネージャと、通信ハンドラと、アクセスマネージャと、装置マネージャとを含むことができる。アクセスマネージャは、企業システムのユーザのIDに関連付けられたユーザ役割を特定することができる。装置マネージャは、企業システムにアクセスするように、そのIDで登録された第1リモート装置の装置情報を検索ことができる。アカウントハンドラは、ユーザ役割に基づいて、企業システムのアクセス可能な第1リソースへのアクセスをIDに与えるアカウントを決定することができ、第1リソースは、ユーザ役割でアクセス可能な複数のアプリケーションのうち、第1アプリケーションを用いて、第1リモート装置からアクセス可能である。アプリケーション構成マネージャは、第1リモート装置を用いてアカウントの第1リソースにアクセスするように第1アプリケーションを設定することができ、第1アプリケーションは、第1リソースを提供する第1ターゲットシステムに接続するように、接続情報を用いて設定され、第1アプリケーションは、アカウントの第1リソースにアクセスするように、アクセス情報を用いて設定される。さらに、通信ハンドラは、第1アプリケーションを構成した後、第1アプリケーションを第1リモート装置に送信することができる。
【0226】
この実施形態の例において、装置マネージャは、企業システムにアクセスするようにIDで登録された複数のリモート装置のうち、第2リモート装置を検出することができる。この例において、通信ハンドラは、第1アプリケーションを設定した後、第1アプリケーションを第2リモート装置に送信することができる。
【0227】
この実施形態の例において、アクセスマネージャは、第1ユーザ役割から第2ユーザ役割に変更するユーザ役割の変更を検出し、第2ユーザ役割に基づいて、IDによる第1リソースへのアクセス権の変更を判断することができる。アプリケーション構成マネージャは、アクセス権の変更に基づいて、第1アプリケーションの設定を変更するように、第1リモート装置に指示することができる。
【0228】
この実施形態の例において、装置マネージャは、企業システムにアクセスするようにIDで登録された複数のリモート装置を検出することができる。通信ハンドラは、第1アプリケーションを設定した後、第1アプリケーションを複数のリモート装置に送信することができる。アプリケーション構成マネージャは、アクセス権の変更に基づいて、第1アプリケーションの設定を変更するように、複数のリモート装置の各々に指示することができる。
【0229】
この実施形態の一例において、第1リソースへのアクセス権の変更は、第1リソースへのアクセスの取消を含み、第1アプリケーションの変更は、第1アプリケーションに設定された接続情報およびアクセス情報の削除を含む。
【0230】
この実施形態の一例において、第1リソースへのアクセス権の変更は、第1リソースへのアクセスの取消を含み、第1アプリケーションの変更は、第1リモート装置から第1アプリケーションの削除を含む。
【0231】
この実施形態の例において、第1アプリケーションの変更は、第1アプリケーションに構成されたアクセス情報の調整を含む。
【0232】
この実施形態の例において、アクセスマネージャは、第1ユーザ役割から第2ユーザ役割に変更するユーザ役割の変更を検出することができる。アカウントハンドラは、第2ユーザ役割に基づいて、第2ユーザ役割でアクセス可能な複数のアプリケーションのうち、第2アプリケーションを検出することができる。アプリケーション構成マネージャは、IDを用いて第1リモート装置からアクセスように、第2アプリケーションを設定することができる。第2アプリケーションは、第2ターゲットシステムによって提供された第2リソースにアクセスするように、情報を用いて設定される。通信ハンドラは、第2アプリケーションを第1リモート装置に送信することができる。
【0233】
本実施形態の一例において、装置情報は、第1リモート装置のオペレーティングシステム構成および第1リモート装置のハードウェア構成を表す第1リモート装置の構成を示し、第1アプリケーションは、第1リモート装置の構成を用いて設定される。
【0234】
この実施形態の例において、接続情報は、第1ターゲットシステムのポートアドレス、第1ターゲットシステムのホストアドレス、および第1ターゲットシステムの軽量ディレクトリアクセスプロトコル(LDAP)を含む。
【0235】
この実施形態の例において、アカウントハンドラは、ユーザ役割に基づいて、複数のアプリケーションのうち、ユーザがユーザ役割を実行することを可能にする第2アプリケーションを特定することができる。アカウントハンドラは、企業システム内の第2リソースにアクセスするように、第2アプリケーションを準備することができる。アプリケーション構成マネージャは、第1リモート装置から第2リソースにアクセスするように第2アプリケーションを設定することができる。通信ハンドラは、第2アプリケーションを設定したとき、第2アプリケーションを送信することができる。
【0236】
この実施形態の一例において、アカウントハンドラによるアカウントの決定は、アカウントが前記第1ターゲットシステムの前記第1リソースにアクセスするように準備されているか否かを判断するステップと、アカウントが第1リソースにアクセスするように準備されていないと判断した場合、第1ターゲットシステムの第1リソースへのアクセスをIDに与えるようにアカウントを準備するステップと、アカウントがIDに準備されていると判断した場合、アカウントに関するアカウント情報を検索するステップを含む。
【0237】
本発明の別の実施形態によれば、コンピューティングシステムにおける別の装置アクセス管理システムが提供される。本実施形態の装置アクセス管理システムは、前述の実施形態に説明した装置アクセス管理システム120であってもよい。さらに、装置アクセス管理システムおよびその構成要素は、前述の実施形態に説明した本発明の原理に基づいて、いずれかの処理を適切に実行することができる。
【0238】
この実施形態の例において、装置アクセス管理システムは、アカウントハンドラと、アプリケーション構成マネージャと、通信ハンドラと、アクセスマネージャと、装置マネージャとを含むいくつかのサブシステムおよび/またはモジュールを含むことができる。アクセスマネージャは、企業システムのユーザのIDに関連付けられたユーザ役割を識別することができる。装置マネージャは、企業システムにアクセスするように、そのIDで登録された第1リモート装置の装置情報を検索ことができる。アカウントハンドラは、ユーザ役割に基づいて、企業システムでアクセス可能な第1リソースへのアクセスをIDに与えるアカウントを決定することができ、第1リソースは、ユーザ役割でアクセス可能な複数のアプリケーションのうち第1アプリケーションを用いて、第1リモート装置からアクセス可能である。アプリケーション構成マネージャは、第1リモート装置を用いてアカウントの第1リソースにアクセスするように第1アプリケーションを設定することができ、第1アプリケーションは、第1リソースを提供する第1ターゲットシステムに接続するように、接続情報を用いて設定され、第1アプリケーションは、第1リソースにアクセスするように、アカウントのアクセス情報を用いて設定される。さらに、通信ハンドラは、第1アプリケーションを設定したとき、第1アプリケーションを第1リモート装置に送信することができる。
【0239】
この実施形態の一例において、アクセスマネージャは、第1ユーザ役割から第2ユーザ役割に変更するユーザ役割の変更を検出し、ユーザ役割の変更に基づいて、IDによる第2リソースへのアクセス権が取消され、IDによる第3リソースへのアクセスが許可されていることを判断することができる。第1リソース、第2リソースおよび第3リソースは、互いに異なる。アプリケーション構成マネージャは、第2リソースへのアクセス権が取消されたという判断に基づいて、第2アプリケーションを削除するように第1リモート装置に指示し、第1リモート装置から第3リソースにアクセスするように、第3接続情報および第3アクセス情報を用いて、複数のアプリケーションのうち第3アプリケーションを設定することができる。アカウントハンドラは、第2ユーザ役割に基づいて、第1リモート装置から企業システム内の第3リソースへのアクセスを提供する第3アプリケーションへのIDのアクセスを提供することができる。この例において、通信ハンドラは、第3アプリケーションを構成したとき、第3アプリケーションを第1リモート装置に送信することができる。
【0240】
この実施形態の一例において、アプリケーションへのアクセス権をIDに与えるステップは、アプリケーションによってアクセス可能なリソースへのアクセス権をそのIDに提供するアカウントを構成するステップを含む。
【0241】
本発明の特定の実施形態を説明してきたが、さまざまな変更、改変、代替構成、および同等物も本発明の範囲内に包含される。変更は、開示された特徴の任意の適切な組み合わせを含む。本発明の実施形態は、特定のデータ処理環境内で動作するのに限定されず、複数のデータ処理環境内で自由に動作することができる。さらに、一連の特定の処置およびステップを用いて本発明の実施形態を説明してきたが、本発明の範囲が説明された一連の処置およびステップに限定されないことは、当業者にとって明らかであろう。上述した実施形態のさまざまな特徴および態様は、個別にまたは共同で使用することができる。
【0242】
さらに、ハードウェアおよびソフトウェアの特定の組み合わせを用いて本発明の実施形態を説明してきたが、ハードウェアおよびソフトウェアの他の組み合わせも本発明の範囲内に含まれることを認識すべきである。ハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせを用いて、本発明の実施形態を実現することができる。本開示に記載されたさまざまなプロセスは、同一のプロセッサまたは任意の組み合わせの異なるプロセッサ上で実行することができる。したがって、特定の処理を実行するように構成要素またはモジュールを構成すると説明する場合、その構成は、例えば、その処理を実行するように電子回路を設計することによって、その処理を実行するようにプログラム可能な電子回路(マイクロプロセッサなど)をプログラムすることによって、またはそれらの組み合わせによって実現することができる。プロセスは、プロセス間の通信を行う従来技術を含むがこれに限定されないさまざまな技術を用いて通信を行うことができる。異なる対のプロセスは、異なる技術を使用することができ、または同一対のプロセスは、異なる時間で異なる技術を使用することができる。
【0243】
したがって、明細書および図面は、限定的な意味ではなく例示的な意味であるとみなすべきである。しかしながら、特許請求の範囲により定められた幅広い主旨および範囲から逸脱することなく、追加、削減、削除および他の修飾および変更を行ってもよいことは、明らかであろう。したがって、本発明の特定の実施形態を説明したが、これらの実施形態は、限定することを意図していない。さまざまな変更およびその等価物は、添付の特許請求の範囲に含まれる。