(57)【特許請求の範囲】
【請求項１】
サーバコンピュータまたはクライアントコンピュータによって実行されるプラグイン権限制御方法であって、
対応するプラグインの識別子（ＩＤ）を識別するために使用されるプラグイン識別番号（ＰＩＮ）を前記プラグインに割り当てを含む、プラグインを認可することと、
前記ＰＩＮを前記プラグインに通知することと、
前記プラグイン及びプラグインアクセス可能サービスに関する情報をサービスのマッピングに格納することと、
前記ＰＩＮを含む、サービスのリクエストを前記プラグインから受信することと、
前記ＰＩＮにしたがって、ＩＤと対応するＰＩＮとのマッピングから前記プラグインの前記ＩＤを取り出すことと、
前記取り出されたＩＤを用いて、ＩＤと対応する許可サービスとのマッピングに基づき前記プラグインがリクエストされた前記サービスへの前記プラグインのアクセスを許可するか否かを決定することと、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記ＰＩＮは、
前記ＩＤに対してランダムに格納場所を割り当てることと、
前記ＩＤを前記格納場所に格納することと、
前記格納場所のバイトアドレスを前記ＰＩＮとして使用すること、
によって導出される、方法。
【請求項３】
請求項２に記載の方法であって、
前記ＩＤを取り出すことは、更に、
前記ＰＩＮを読み出すことと、
前記ＩＤが格納されている前記バイトアドレスを取り出すことと、
前記バイトアドレスにしたがって前記ＩＤを取り出すことと、
を含む、方法。
【請求項４】
請求項１に記載の方法であって、
前記リクエストされたサービスへの前記プラグインのアクセスが許可された場合に、前記方法は、更に、
前記プラグインがリクエストした前記サービスが条件付きアクセス可能性要件を満たすか否かを決定することと、
前記条件付きアクセス可能性要件が満たされない場合に、前記プラグインによる前記サービスへのアクセスを無効にすることと、
を備える方法。
【請求項５】
請求項４に記載の方法であって、
前記条件付きアクセス可能性は、アクセス頻度の閾値を含む、方法。
【請求項６】
請求項５に記載の方法であって、更に、
前記プラグインによるサービスアクセスの頻度又は総数が前記閾値を超える場合に、前記サービスを前記プラグインにとってアクセス可能なサービスのリストから除外することと、
前記閾値を超えない場合に、前記プラグインによるサービスアクセスの頻度又は数を再計算することと、
を備える方法。
【請求項７】
請求項４に記載の方法であって、
前記条件付きアクセス可能性は、前記プラグインによるサービスアクセスの総数を含む、方法。
【請求項８】
請求項１に記載の方法であって、更に、
機密サービスのリストを設定することと、
前記機密サービスへのプラグインアクセスを監視することと、
を備える方法。
【請求項９】
請求項１に記載の方法であって、更に、
前記アクセス可能サービスが変更若しくは削除された場合に、又は新しいアクセス可能サービスが追加された場合に、前記サービスのマッピングを更新することを備える方法。
【請求項１０】
プラグイン権限制御システムであって、
インターフェースに接続されている１つ又は２つ以上のプロセッサと、
前記１つ又は２つ以上のプロセッサに接続され、前記プロセッサに命令を提供するように構成されている１つ又は２つ以上のメモリと、
を備え、
サーバコンピュータまたはクライアントコンピュータにおける、前記１つ又は２つ以上のプロセッサは、
対応するプラグインの識別子（ＩＤ）を識別するために使用されるプラグイン識別番号（ＰＩＮ）を前記プラグインに割り当てることを含んで、プラグインを認可し、
前記ＰＩＮを前記プラグインに通知し、
前記プラグイン及びプラグインアクセス可能サービスに関する情報をサービスのマッピングに格納し、
前記ＰＩＮを含む、サービスを求めるリクエストを前記プラグインから受信し、
前記ＰＩＮにしたがって、ＩＤと対応するＰＩＮとのマッピングから前記プラグインの前記ＩＤを取り出し、
前記取り出されたＩＤを用いて、ＩＤと対応する許可サービスとのマッピングに基づき前記プラグインがリクエストされた前記サービスへの前記プラグインのアクセスを許可するか否かを決定する
ように構成されている、システム。
【請求項１１】
請求項１０に記載のシステムであって、
前記ＰＩＮは、
前記ＩＤに対してランダムに格納場所を割り当て、
前記ＩＤを前記格納場所に格納し、
前記格納場所のバイトアドレスを前記ＰＩＮとして使用すること、
によって導出される、システム。
【請求項１２】
請求項１１に記載のシステムであって、
前記ＩＤの取り出しは、更に、
前記ＰＩＮを読み出し、
前記ＩＤが格納されている前記バイトアドレスを取り出し、
前記バイトアドレスにしたがって前記ＩＤを取り出すこと、
を含む、システム。
【請求項１３】
請求項１０に記載のシステムであって、
前記プラグインが前記リクエストされたサービスへのアクセスを許可された場合に、前記１つ又は２つ以上のプロセッサは、更に、
前記プラグインがリクエストした前記サービスが条件付きアクセス可能性要件を満たすか否かを決定し、
前記条件付きアクセス可能性要件が満たされない場合に、前記プラグインによる前記サービスへのアクセスを無効にするように、
構成されている、システム。
【請求項１４】
請求項１３に記載のシステムであって、
前記条件付きアクセス可能性は、アクセス頻度の閾値を含む、システム。
【請求項１５】
請求項１４に記載のシステムであって、
前記１つ又は２つ以上のプロセッサは、更に、
前記プラグインによるサービスアクセスの頻度又は総数が前記閾値を超える場合に、前記サービスを前記プラグインにとってアクセス可能なサービスのリストから除外し、
前記閾値を超えない場合に、前記プラグインによるサービスアクセスの頻度又は数を再計算するように、
構成されている、システム。
【請求項１６】
請求項１３に記載のシステムであって、
前記条件付きアクセス可能性は、前記プラグインによるサービスアクセスの総数を含む、システム。
【請求項１７】
請求項１０に記載のシステムであって、
前記１つ又は２つ以上のプロセッサは、更に、
機密サービスのリストを設定し、
前記機密サービスへのプラグインアクセスを監視するように、
構成される、システム。
【請求項１８】
請求項１０に記載のシステムであって、
前記１つ又は２つ以上のプロセッサは、更に、
前記アクセス可能サービスが変更若しくは削除された場合に、又は新しいアクセス可能サービスが追加された場合に、前記サービスのマッピングを更新するように構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、あらゆる目的のために、参照によって本明細書に組み込まれる、２００９年７月２２日付けで出願された、発明の名称を「PLUG-IN PRIVILEGE CONTROL METHOD AND SYSTEM（プラグイン権限制御の方法及びシステム）」とする、中国特許出願第２００９１０１５９６５８．６号の優先権を主張する。
【０００２】
本発明は、ソフトウェアの分野に関し、特に、プラグイン権限制御の方法及びシステムに関する。
【背景技術】
【０００３】
プラグインは、より大きなソフトウェアアプリケーションに特定の機能を追加する特殊なソフトウェアコンポーネントである。プラグインは、通常は、単独では実行されることはできず、その代わり、多くは「ホストアプリケーションプログラム」と呼ばれるより大きなソフトウェアアプリケーションに依存する。プラグインは、ソフトウェアアプリケーションによってサポートされている場合に、アプリケーションの機能性のカスタム化を可能にする。プラグインは、そのコンパクトさと、有効性と、ソフトウェアアプリケーション自体が実行しない機能を実行する能力とから、広く使用されている。例えば、プラグインは、ウェブブラウザにおいて、特殊なファイルを処理するためによく使用される。ブラウザは、映像を再生する、ウィルスをスキャンする、新しいタイプのファイルを表示するなどのために、プラグインを直接呼び出すことができる。ダイナミックリンクライブラリ（ＤＬＬ）を含むプラグインもある。
【０００４】
ホスト側プログラムが実行できない機能を実行するために、プログラムは、多くの場合、ホスト側プログラムから入手可能なサービスにアクセスする必要がある。図１は、プラグインがどのように動作するかを示した概略図である。図に示されるように、ホストアプリケーションは、プラグインがホストアプリケーションプログラムに登録するためのメカニズムや、プラグインとの間でデータを交換するためのプロトコルなどの、プラグインが使用できるサービスを提供する。プラグインは、ホストアプリケーションプログラムによって提供されるサービスに依存しており、単体では働かないのが普通である。これに対して、ホストアプリケーションは、プラグインとは独立に動作し、これは、エンドユーザがホストアプリケーションに変更を加える必要なくプラグインを動的に追加及び更新することを可能にする。オープンアプリケーションプログラミングインターフェース（ＡＰＩ）は、ホストアプリケーションとやり取りするプラグインを第三者が作成することを可能にする標準的なインターフェースを提供する。ホストアプリケーションプログラムは、多くの場合、プラグイン開発者にとってアクセス可能なソフトウェア開発キット（ＳＤＫ）を提供する。
【０００５】
プラグインは、ホストアプリケーションプログラムに信頼されているプラグイン開発者によって開発されることも、あるいは信頼されていないプラグイン開発者によって開発されることもありえるので、ホスト側アプリケーションプログラムは安全対策をとる必要がある。
【０００６】
従来の安全対策の１つは、機密性のあるインターフェースを全て非公開にすることである。例えば、ホストアプリケーションプログラムが、インスタントメッセージアプリケーションプログラムである場合は、連絡先情報、アカウント情報、取引入力、商品リストなどにアクセスするインターフェースを公開しないであろう。したがって、このプラグイン権限制御のアプローチは、ホストアプリケーションプログラムの公開性はもちろんのこと、対応するプログラムのために開発することができるプラグインの量及び機能性も大きく制限する。
【０００７】
従来の別の安全対策は、プラグイン権限を制御するためにサービスレベルとプラグインレベルとを突き合せる方式を使用する。例えば、ホスト側アプリケーションのサービス及びプラグインは、ともに、降順に並べられたそれぞれのレベルを割り当てられ、それぞれのレベルのプラグインにとってどの（１つ又は２つ以上の）レベルのサービスがアクセス可能であるかを決定するためにサービスレベルとプラグインレベルとの間に対応関係が確立される。次いで、或るプラグイン用に特定のサービスがリクエストされたときに、そのサービスのサービスレベルが決定されるとともに、リクエストしたプラグインにとってそのサービスレベルが適しているか否かが決定される。プラグインによるサービスへのアクセスは、突き合せの結果にしたがって許可又は無効にされる。このプラグイン権限制御のアプローチは、意図したセキュリティ管理及びプラグイン制御を実施するのみならず、セキュリティを考慮に入れつつプラグイン開発者ごとに異なるサービスを提供する。
【０００８】
しかしながら、従来のプラグイン権限制御のアプローチは、ともに、幾つかの欠点を有する恐れがある。
【０００９】
従来のアプローチによる精密制御は、一部のホストアプリケーションの要求に応えられず、望ましくないセキュリティ上の犠牲を要することがある。従来、既存のサービスレベルは、２つのレベル、すなわち「高」と「低」とに分けられ、プラグインもまた、２つのレベル、「通常」と「信頼」とに分けられる。「信頼」レベルのプラグインにとっては、「高」レベル及び低レベルのサービスの両方がアクセス可能である。「通常」レベルのプラグインにとっては、「低」レベルのサービスにのみがアクセス可能である。その結果、同じサービスレベルにある個々のサービスは、特定のレベルにあるプラグインにとってアクセス可能又はアクセス不可のいずれかである。したがって、プラグインの権限に対して細かい精密制御を実現することが困難である。サービス及びプラグインが単純に２つのレベルに分けられる方式ゆえに、従来のアプローチは、望ましくないセキュリティ漏洩をもたらす恐れがある。プラグインのアクセス可能性は、２つのサービスレベルのうちの１つにおいて、アクセス可能又はアクセス不可の２つの状態のみであるので、プラグインが１つのサービスレベルにおいて機能することを許可するためには、この特定のレベルにある全てのサービスがそのプラグインに公開される。プラグインレベルを割り当てる審査担当のエンジニアが、セキュリティ漏洩のあらゆる可能性を徹底的に考慮していないと、プラグインは、アクセスを許可されるべきでない一部のサービスにもアクセスできる恐れがある。その結果、ホストアプリケーションプログラムのセキュリティが損なわれる恐れがある。
【図面の簡単な説明】
【００１０】
以下の詳細な説明及び添付の図面において、発明の様々な実施形態が開示される。
【００１１】
【図１】プラグインがどのように動作するかを示した概略図である。
【００１２】
【図２】ホストアプリケーションプログラムにおけるプラグイン権限制御のためのシステムの一実施形態を示した概略図である。
【００１３】
【図３】プラグイン権限制御方法の一実施形態を示したフローチャートである。
【００１４】
【図４】プラグイン権限制御方法の別の実施形態を示したフロー図である。
【００１５】
【図５】プラグイン権限制御を実施するように構成されたシステムのメモリコンポーネントの一実施形態を示したブロック図である。
【００１６】
【図６】プラグイン権限制御を実施するように構成されたシステムのコントローラコンポーネントの一実施形態を示したブロック図である。
【００１７】
【図７】プラグイン権限制御を実施するように構成されたサーバ側実施形態を示したブロック図である。
【００１８】
【図８】プラグイン権限制御を実施するように構成されたクライアント側実施形態を示したブロック図である。
【発明を実施するための形態】
【００１９】
発明は、プロセス、装置、システム、合成物、コンピュータ可読ストレージ媒体に実装されたコンピュータプログラム製品、並びに／又は結合先のメモリに保存された命令及び／若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサなどのプロセッサを含む、数々の形態で実装することができる。本明細書において、これらの実装形態、又は発明がとりえるその他のあらゆる形態は、技術と称されてよい。総じて、開示されたプロセスのステップの順序は、発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されたものとして説明されているプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実装されてよい。本明細書において、「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された１つ又は２つ以上の、デバイス、回路、及び／又は処理コアを言う。
【００２０】
発明の原理を示した添付の図面とともに、以下で、発明の１つ又は２つ以上の実施形態の詳細な説明が提供される。発明は、このような実施形態に関連して説明されているが、いかなる実施形態にも限定されない。発明の範囲は、特許請求の範囲によってのみ限定され、発明は、数々の代替形態、変更形態、及び均等物を内包している。以下の説明では、発明の完全な理解を可能にするために、数々の詳細が特定されている。これらの詳細は、例示を目的として提供されたものであり、発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施することができる。明瞭さを期するために、発明に関連した技術分野において知られている技術事項は、発明が不必要に不明瞭にならないように、詳細な説明を省略されている。
【００２１】
プラグイン権限制御が説明される。図２は、ホストアプリケーションプログラムにおけるプラグイン権限制御のためのシステムの一実施形態を示した概略図である。この例では、システムは、ホストアプリケーションプログラムにおけるプラグインのサービスアクセス権限を制御するように適応される。システムは、クライアント２１０と、プラグインサーバ２２０とを含む。一部の実施形態では、ホストアプリケーションプログラムは、クライアント２１０上にあり、プラグインサーバ２２０は、プラグインの権限を制御するとともに、ＡＰＩ及びウェブサービスをプラグインソフトウェア開発者に提供する。一部の実施形態では、ＡＰＩは、ＨＴＴＰリクエストに応答してインターフェース機能を通じて呼び出される。
【００２２】
図３は、プラグイン権限制御方法の一実施形態を示したフローチャートである。プロセスは、図２に示されるようなシステムにおいて実施されてよい。
【００２３】
ステップ３１０では、プラグインは、所定のサービスに対するアクセスを認可され、プラグイン識別番号（ＰＩＮ）を割り当てられる。ＰＩＮは、英数字列であってよい。ＰＩＮは、対応するプラグインの、具体的には人が読めるプラグイン名などの識別子（ＩＤ）を識別するために使用される。続いて、プラグインには、ＰＩＮが通知される。ＰＩＮは、所定の割り当て方式にしたがってランダムに生成することができる。ＰＩＮ及びプラグインＩＤは、ともに、例えばプラグインサーバに格納（保存）される。プラグインが使用されるときは、プラグインＩＤは、対応するＰＩＮと共に取り出される。一部の実施形態では、プラグインＩＤの格納スペースのバイトアドレスが、そのプラグインに対応するＰＩＮとして割り当て可能である。
【００２４】
ステップ３２０では、プラグインのＰＩＮ及びＩＤと、そのプラグインがアクセスを許可されているサービスとに関する情報が格納される。一部の実施形態では、プラグインサーバは、ホストアプリケーションプログラムによって提供されるサービス群を格納する。プラグイン情報と、それらのプラグインがアクセスを許可されているそれぞれのサービスとのマッピング（対応付け）を格納（保存）するために、テーブル又はその他の適切なデータ構造が使用される。したがって、プラグインサーバは、プラグインの情報及びプラグインがアクセス可能なサービスの情報はもちろん、プラグインとサービスリストとの間のアクセス可能性対応関係も格納する。一部の実施形態では、情報は、テーブルの形でサーバに格納される。
【００２５】
ステップ３１０及び３２０は、プラグイン及びそれらが許可されているサービスに関する情報を後の使用に備えてサーバ上に格納するために、複数のプラグインについて繰り返されてよい。
【００２６】
一部の実施形態では、プラグインについての制限付きアクセス可能性が更に設定され、プラグインサーバ上に格納されてよい。例えば、アクセス頻度や、所定の時間内に所定のサービスに対してアクセスを許可されるプラグインの総数などについて、制限が設定されてよい。一部の実施形態では、機密サービスが監視され、機密情報の使用が記録される。
【００２７】
ステップ３３０では、あるサービスを求めるリクエストがプラグインから受信される。プラグインがサービスをリクエストするときに、そのリクエストは、プラグインを識別するためのＰＩＮはもちろん、サービス名などアクセスされるサービスに関する情報も含む。
【００２８】
ステップ３４０では、プラグインのＩＤ及びＰＩＮが取得される。リクエストの受信を受けて、サーバは、ＩＤ及びＰＩＮを決定するためにそのリクエストを処理する。一部の実施形態では、ＩＤ及びＰＩＮは、リクエスト内の既定の場所に含まれており、リクエストのフォーマットにしたがって抽出される。一部の実施形態では、ＰＩＮが、リクエストに格納されており、ＩＤは、ＰＩＮに基づいて導出される。例えば、リクエストが、プラグインＩＤの格納場所のアドレスに対応するＰＩＮを含む場合は、サーバは、ＰＩＮをリクエストから抽出し、そのＰＩＮに対応するアドレスにある格納場所からＩＤを取得することができる。
【００２９】
ステップ３５０では、サーバは、リクエストされたサービスへのプラグインのアクセスを許可するかどうか否かを決定する。一部の実施形態では、事前に格納されているデータの中から、プラグイン情報と許可サービスとのマッピングが探索される。プラグインのＩＤが、リクエストされたサービスにマッピングされている場合には、プラグインは認可される。一部の実施形態では、プラグインの格納スペースのバイトアドレスが、ＰＩＮとして使用され、サーバは、バイトアドレスが指し示す格納場所にアクセスすることによってプラグインのＩＤを取り出すことができる。
【００３０】
プラグインにとってアクセス可能なサービスのリストは、サービスが削除、変更、又は追加されるときに更新される。
【００３１】
図４は、プラグイン権限制御方法の別の一実施形態を示したフロー図である。サーバと、ホストアプリケーションプログラムがインストールされているクライアントと、プラグインがインストールされているユーザ端末との間における通信が描かれている。
【００３２】
ステップ４１０では、プラグインが認可される。この例では、ホストアプリケーションプログラムがあるところであるクライアントが、プラグインに対してランダムにＰＩＮを割り当てる。ＰＩＮは、プラグインのＩＤを識別するために使用される。クライアントは、次いで、ＰＩＮをプラグインに通知する。クライアントは、更に、サーバに認可情報を報告する。
【００３３】
ステップ４２０では、プラグインのＰＩＮ及びＩＤと、プラグインがアクセスを許可されているサービスとに関する情報が、クライアントからサーバに送信され、サーバ上に格納される。プラグインＩＤとそれらのアクセス可能サービスとの間の対応関係が、探索に使用可能なマッピングテーブルに追加される。
【００３４】
プラグインにとってアクセス可能なサービスを変更するリクエストがサーバに対してなされるときは、プラグインにとってアクセス可能な対応サービスを、ホストアプリケーションプログラムを任されている管理者の承認を経て変更することができる。ホスト側プログラムから入手可能なサービスが削除、変更、又は追加されるときは、プラグインにとってアクセス可能なサービスのテーブルを、クライアントに関する情報と同期して更新することができる。
【００３５】
ステップ４１０及び４２０は、複数のプラグインについて繰り返され得る。
【００３６】
ステップ４３０では、ホストアプリケーションプログラムが存在する場所であるクライアントが、プラグインのサービスアクセス可能性権限に関する情報をサーバから取り出す。
【００３７】
一部の実施形態では、ホストアプリケーションプログラムがクライアントにダウンロードされた後に、ソフトウェアとともに、そのソフトウェアが持つ権限制御情報がインストールされる。権限制御情報としては、プラグインにとってアクセス可能なサービスのリスト、プラグインのＩＤ情報、機密サービス情報、及び条件付きアクセス可能性情報を非限定例として挙げられる。ホストアプリケーションプログラムが開始されるときは、常に、このような情報がクライアントにダウンロードされる。更に、クライアントは、クライアントのローカルな権限制御情報がサーバ上の情報と同期していることを保証するために、最新の権限制御情報を定期的にサーバからダウンロードする。
【００３８】
ステップ４４０では、プラグインは、サービスをリクエストする。リクエストは、プラグインについてのＰＩＮを含む。プラグインが存在する場所であるユーザ端末がサービスをリクエストするとき、そのリクエストは、プラグインを識別するための及びプラグインが認可されていることを示すためのＰＩＮを含む。ここで、端末は、ブラウザプログラムなどであってよく、ホストアプリケーションプログラムもあるところであるクライアントと同じ又は異なるデバイス上にあることが可能である。
【００３９】
ステップ４５０では、サービスリクエストを受信した後、クライアントは、リクエストに含まれているＰＩＮ情報にしたがってプラグインのＩＤを取り出す。
【００４０】
ステップ４６０では、リクエストされたサービスへのクライアントのアクセスを許可するか否かを決定するために、クライアント上で動作しているサービスのローカルリストが照会される。
【００４１】
一部の実施形態では、プラグインからのサービスリクエストの受信を受けて、クライアントは、リクエストされたサービスがプラグインにとってアクセス可能なローカルサービスのなかの１つであるか否かを決定するために、プラグインにとってアクセス可能なサービスに関する事前に受信された情報をローカルサービスと比較する。否である場合は、プラグインによるサービスアクセスを不可にする結果が、プラグインが存在する場所であるユーザ端末に返される。
【００４２】
一部の実施形態では、プラグインについての追加のアクセス可能性情報が、サーバからダウンロードされてよい。例えば、アクセス頻度や、所定の時間内に所定のサービスにアクセスするプラグインの総数などのパラメータに基づいて、アクセス可能性が制限されてよい。クライアントは、プラグインが制限付きアクセス可能性要件を満たしているか否かを決定する。満たしている場合は、プラグインによるサービスアクセスを不可にする結果が、プラグインが存在する場所である端末に返され、それ以外の場合は、プラグインによるサービスアクセスを許可する結果が、ユーザ端末に返される。
【００４３】
ステップ４７０では、ホストアプリケーションプログラムが存在する場所であるクライアントは、プラグインによるサービスアクセスに関してサーバに通知する。
【００４４】
一部の実施形態では、サーバは、随意として、プラグインによる機密サービスへのアクセスの数及び頻度に関する定期的なチェックを実施する。例えば、認可されていないプラグインが、サービスにアクセスしようとした場合は、警告が発せられ、そのプラグインを無効（利用不能）にするための後続処理が実施される。機密サービスへのアクセスの最大数又は最大頻度の既定閾値に達した場合は、サーバは、警告を発し、プラグインにとってアクセス可能なサービスのリストからそのサービスを削除するための後続処理を実施する。
【００４５】
プラグイン開発者は、インスタントコミュニケーションアプリケーションなどのホストアプリケーションに、プラグインについてのアクセス可能サービスのリストが配備されることの承諾を、そのホストアプリケーションの開発者にリクエストすることができる。承諾が得られたら、サーバ上のマッピングテーブルが更新される。プラグイン開発者が、特に決まったサービスを申し出ない場合は、サーバは、プラグインにとってアクセス可能なサービスのデフォルトリストを作成する。
【００４６】
ステップ４８０では、リクエストされたサーバへのアクセスをプラグインが許可されたか否かを示す処理結果が、プラグインに返送される。
【００４７】
上記のプラグイン権限制御方法の実施形態に対応して、本出願は、更に、プラグイン権限制御システムの実施形態を提供する。プラグイン権限制御のシステムの実施形態の実装例が、以下で説明される。システムは、幾つかのユニットを含むものとして説明される。ユニットは、１つ若しくは２つ以上のプロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラム可能なロジックデバイス及び／若しくは所定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、ユニット／サブユニットは、本発明の実施形態で説明される方法をコンピュータデバイス（パソコン、サーバ、ネットワーク機器など）に実施させるための幾つかの命令を含み且つ光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの不揮発性のストレージ媒体に格納することが可能であるソフトウェア製品の形で具現化することができる。ユニットは、１つのデバイス上に実装されてよい、又は複数のデバイスに分散されてよい。モジュール又はユニットの機能は、互いに合体されてよい、又は複数のサブユニットに更に分割されてよい。
【００４８】
図５は、プラグイン権限制御を実施するように構成されたシステムのメモリコンポーネントの一実施形態を示したブロック図である。
【００４９】
図に示された例では、図２のサーバ２２０は、サーバメモリ６００を含む。サーバメモリ６００は、プラグインと、当該プラグインにとってアクセス可能なサービスとの間の対応関係を格納するように適応されたマッピングストレージユニット６１０と、機密サービスに関する情報を格納するように適応された機密サービス情報ストレージユニット６２０と、認可されたプラグインの情報を格納するように適応された認可情報ストレージユニット６３０（例えば、プラグインのＰＩＮ及びＩＤを格納するために使用されるテーブル）と、サービスのアクセス可能性に関する情報を格納するように適応されたアクセス情報ストレージユニット６４０と、プラグインに対するサービスのアクセス可能性制限パラメータを格納するように適応された制限付きアクセス可能性ストレージユニット６５０とを含む。
【００５０】
図６は、プラグイン権限制御を実施するように構成されたシステムのコントローラコンポーネントの一実施形態を示したブロック図である。
【００５１】
図に示された例では、図２のサーバ２２０は、更に、サーバコントローラ７００を含む。サーバコントローラは、認可制御ユニット７１０と、認可決定ユニット７２０と、権限制御ユニット７３０と、制限付きアクセス可能性決定ユニット７４０と、サービス保存処理ユニット７５０と、機密サービス制御ユニット７６０とを含む。
【００５２】
認可制御ユニット７１０は、リクエストしたサービスへのプラグインのアクセス可能性を可能にするためにプラグインを認可するように及びそのプラグインの権限を対応する認可情報ストレージユニット６３０に格納するように適応される。一部の実施形態では、認可制御ユニット７１０からの認可は、通常、プラグインのＩＤを識別することができるＰＩＮをプラグインにランダムに割り当て、そのＰＩＮについてプラグインに通知し、ＰＩＮとプラグインとの間の対応関係を認可情報ストレージユニット６３０に格納するプロセスを言う。一部の実施形態では、プラグインのＩＤに対してランダムに格納スペースを割り当てることができ、この格納スペースのバイトアドレスが、プラグインのＰＩＮとして使用される。
【００５３】
認可決定ユニット７２０は、プラグインからの、プラグインのＰＩＮを含むサービスリクエストの受信を受けて、認可情報ストレージユニット６３０を照会し、そのプラグインが認可されているかどうかを決定するように適応される。認可決定ユニット７２０は、先ず、サービスリクエストをパースし、次いで、対応するプラグインＩＤを認可情報ストレージユニット６３０の中から検索する。認可情報ストレージユニット６３０の中に、対応するＩＤが格納されていない場合は、そのプラグインは、認可されていない。プラグインのＩＤを取り出すことができる場合は、そのプラグインは、事前に認可されている。一部の実施形態では、格納スペースのバイトアドレスがＰＩＮとして使用され、そのＰＩＮに基づいてＩＤの格納場所が見つけ出される。
【００５４】
権限制御ユニット７３０は、リクエストしたサービスへのプラグインのアクセスを許可するか否かを決定するために、そのプラグインのＩＤによってサービスリストストレージユニット７１０を検索するように適応される。
【００５５】
コントローラ７００は、更に、リクエストされたサービスがプラグインにとってアクセス可能なサービスの１つであるかどうか、及びサービスにアクセスするための条件が満たされているかどうかを決定するように適応された制限付きアクセス可能性決定ユニット７４０を含むことができ、満たされていない場合は、制限付きアクセス可能性ユニットは、そのサービスに対するプラグインのアクセスを無効にする。
【００５６】
コントローラ７００は、また、サービスに対応するプラグインのアクセス可能性をアクセス情報ストレージユニット６４０に格納するように適応されたサービス保存処理ユニット７５０も更に含むことができる。
【００５７】
サーバコントローラ７００は、更に、アクセス情報ストレージユニット６４０及び機密サービス情報ストレージユニット６２０を検索するように適応された機密サービス制御ユニット７６０を含むことができる。機密サービス制御ユニットは、機密サービスにアクセスするための条件が満たされない場合に、プラグインによるアクセスを無効にする。例えば、機密サービスへのアクセスの指定頻度又は指定総数を超えた場合は、プラグインは、プラグインがリクエストした機密サービスにアクセスすることができない。
【００５８】
プラグインサーバからサービスリクエストを受信した後、サーバ２２０は、プラグインのＩＤによってサービスのリストを照会し、そのプラグインのＰＩＮがサービステーブルの中にある場合は、そのプラグインを認可されたプラグインであると決定する。サーバは、更に、プラグインが目下リクエストしているサービスを、プラグインのＩＤに対応するアクセス可能サービスの中から検索する。リクエストされたサービスが、アクセス可能サービスのリストの中で見つかった場合は、そのサービスへのアクセスは付与され、見つからなかった場合は、そのサービスへのアクセスは無効にされる。一部の実施形態において、プラグインに対して制限付きアクセス可能性が存在するならば、サーバ２２０は、更に、プラグインが制限付きアクセス可能性の条件を満たしているか否かを決定する。条件が満たされていない場合は、プラグインによってリクエストされたサービスは、拒絶される。満たされている場合は、プラグインは、プラグインがリクエストしたサービスへのアクセスを許可される。
【００５９】
ホストアプリケーションプログラムサーバによってアクセス可能なサービスのリストは、ホストアプリケーションプログラムを任されている人間の承認を経て変更することができる。
【００６０】
上記の実施形態では、集中サーバ２２０が、全てのプラグインのアクセス権限を決定する。この集中的なアプローチは、サーバ２２０が集中権限制御を強化することを可能にする。しかしながら、処理作業負荷を共有するその他のサーバ／プロセッサがないので、プラグインサービスリクエストの処理が遅れる恐れがある。
【００６１】
一部の実施形態では、サービスのリストは、クライアントエンドにおいてクライアント２１０に格納される。要するに、プラグインのサービスアクセス権限は、主に、サーバエンドではなくクライアントエンドにおいて制御される。たとえサーバの作業負荷が重くても、それがプラグイン権限制御の処理効率に影響することはない。
【００６２】
サーバ２２０は、更に、メモリ８１０と、コントローラ８２０とを含む。
【００６３】
図７は、プラグイン権限制御を実施するように構成されたサーバ側実施形態を示したブロック図である。サーバ側実施形態は、サーバメモリ８１０と、サーバコントローラ８２０とを含む。
【００６４】
図７に示されるように、サーバメモリ８１０は、プラグインと、該プラグインにとってアクセス可能なサービスとの間の対応関係のマッピングを格納するように適応されたサービスストレージユニット８１２と、機密サービスに関する情報を格納するように適応された機密情報ストレージユニット８１４と、サービスのアクセス可能性に関する情報を格納するように適応されたアクセス情報ストレージユニット８１６と、プラグインに対するサービスのアクセス可能性制限パラメータを格納するように適応された制限付きアクセス可能性ストレージユニット８１８とを含む。
【００６５】
サーバコントローラ８２０は、更に、プラグインによるサービス使用に関する情報を受信及び格納するように並びにそれをアクセス情報ストレージユニット８１６に格納するように適応されたアクセス情報処理ユニット８２２を含む。サービス使用情報は、図８に示されるクライアント９００から伝送される。
【００６６】
サーバコントローラ８２０は、更に、アクセス情報ストレージユニット８１６及び機密情報ストレージユニット８１４を検索するように適応された機密サービス制御ユニット８２４を含む。機密サービス制御ユニットは、機密サービスにアクセスするための条件が満たされない場合に、プラグインによるアクセスを無効にする。例えば、もし機密サービスへのプラグインのアクセスの指定頻度又は指定総数が超えた場合は、プラグインは、それがリクエストした機密サービスにアクセスすることができない。
【００６７】
図８は、プラグイン権限制御を実施するように構成されたクライアント側実施形態を示したブロック図である。クライアント側メモリは、クライアントメモリ９１０と、クライアントコントローラ９２０とを含む。
【００６８】
図８に示されるように、クライアントメモリ９１０は、プラグインと、当該プラグインのアクセス可能サービスとの間の対応関係のマッピングを格納するように適応されたサービスストレージユニット９１２と、認可されたプラグインの情報を格納するように適応された認可情報ストレージユニット９１４とを含む。
【００６９】
一部の実施形態では、認可情報ストレージユニット９１４は、プラグインに対してランダムにＰＩＮを割り当てる。ＰＩＮは、プラグインのＩＤを識別するために使用される。このユニットは、また、ＰＩＮについてプラグインに通知し、ＰＩＮとＩＤとの対応関係を格納する。ＰＩＮは、数々の方法を使用して割り当てることが可能である。一部の実施形態では、プラグインのＩＤに対してランダムに格納スペースを割り当てることができ、この格納スペースのバイトアドレスが、プラグインのＰＩＮとして使用される。
【００７０】
更に、ホストプログラムがあるところであるクライアント９００は、サーバ８００のメモリ８１０の機密情報ストレージユニット８１４及び制限付きアクセス可能ストレージユニット８１８の中の情報を事前にクライアント９００にダウンロードすることができる。一部の実施形態では、クライアント９００は、クライアント側における情報をサーバ側における情報と同期させるために、同期リクエストを定期的にサーバ８００に送信する。
【００７１】
図８に示されるように、クライアントコントローラ９２０は、認可ユニット９２２と、認可決定ユニット９２４と、権限制御ユニット９２５と、制限付きアクセス可能性決定ユニット９２６と、機密サービス制御ユニット９２８と、更新ユニット９２９とを含む。
【００７２】
認可制御ユニット９２２は、プラグインによるサービスアクセスの権限を認可するように及びその権限を対応する認可情報ストレージユニット９１４に格納するように適応される。一部の実施形態では、プラグインに対してランダムにＰＩＮが割り当てられ、ＰＩＮとプラグインのＩＤとの間の対応関係が認可情報ストレージユニット９１４に格納される。例えば、対応するプラグインＩＤは、プラグインのＰＩＮにしたがって、認可情報ストレージユニット９１４を通じて取り出すことができる。一部の実施形態では、プラグインのＩＤ格納スペースがランダムに割り当てられ、その格納スペースのバイトアドレスがＰＩＮとして使用される。
【００７３】
認可決定ユニット９２４は、プラグインからのサービスリクエストの受信を受けて、認可情報ストレージユニット９１４に問い合わせし、そのプラグインが認可されているか否かを決定するように適応される。サービスリクエストは、プラグインのＰＩＮを含む。認可決定ユニット９２４は、先ず、サービスリクエストをパースし、次いで、対応するプラグインＩＤを認可情報ストレージユニット９１４の中から検索する。認可情報ストレージユニット９１４の中に、対応するＩＤが格納されていない場合、そのプラグインは認可されていない。プラグインのＩＤを取り出すことができる場合は、そのプラグインは、事前に認可されている。一部の実施形態では、格納スペースのバイトアドレスがＰＩＮとして使用され、そのＰＩＮを辿ることによってＩＤの格納場所が見つけ出される。
【００７４】
権限制御ユニット９２５は、リクエストしたサービスへのプラグインのアクセスを許可するか否かを決定するために、そのプラグインのＩＤを使用してサービスストレージユニット９１２を検索するように適応される。
【００７５】
クライアントコントローラ９２０は、更に、リクエストされたサービスがプラグインにとってアクセス可能なサービスの１つであるか否か、及びサービスにアクセスするための条件が満たされているか否かを決定するように適応された制限付きアクセス可能性決定ユニット９２６を含むことができ、満たされていない場合は、制限付きアクセス可能性ユニット９２６は、そのサービスに対するプラグインのアクセスを無効にする。
【００７６】
クライアントコントローラ９２０は、更に、サーバ８００側における制限付きアクセス可能性ストレージユニット８１８及び機密情報ストレージユニット８１４を検索するように適応された機密サービス制御ユニット９２８を含むことができる。機密サービス制御ユニット９２８は、機密サービスにアクセスするための条件が満たされない場合に、プラグインによるアクセスを無効にする。例えば、機密サービスへのプラグインのアクセスの指定頻度又は指定総数が超えた場合は、プラグインは、プラグインがリクエストした機密サービスにアクセスすることができない。
【００７７】
クライアントコントローラ９２０は、更に、クライアントのローカル情報を更新してサーバ８００側における情報と同期させるように適応された更新ユニット９２９を含む。
【００７８】
当業者ならば、本出願の実施形態が方法、システム、コンピュータ、又はコンピュータ製品として提供されてよいことを理解するべきである。したがって、本出願は、完全なるハードウェアの実施形態、完全なるソフトウェアの実施形態、又はそれらの組み合わせの形態をとることができる。更に、本出願は、コンピュータによって使用可能なプログラムコードを含み且つコンピュータによって使用可能な１つ又は２つ以上のストレージ媒体（非限定例として、磁気ディスクストレージ、ＣＤ−ＲＯＭ、フラッシュ、及び光ストレージが挙げられる）に実装された、コンピュータプログラム製品の形態をとることができる。これらのプログラムコードは、上述された方法の全部若しくは一部の実施形態をコンピュータ装置に実行させるための命令を含む。
【００７９】
本出願のそれぞれの実施形態は、１つずつ説明されており、これらの実施形態の間で同じ及び類似の部分は、参照によってなされ、各実施形態では、その他の実施形態との違いが強調される。具体的には、システムの実施形態は、方法の実施形態との類似性ゆえに簡単に説明されており、システムの実施形態の関連モジュールは、方法の実施形態を参照にしてなされる。
【００８０】
本出願は、パソコン、サーバコンピュータ、ハンドセットデバイスすなわち携帯用デバイス、フラットパネルデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電気機器、ネットワークＰＣ、ミニコンピュータ、大型コンピュータ、上記のシステム若しくはデバイスの任意の１つを含む分散コンピューティングシステムなどの、多くの汎用又は専用のコンピューティングシステム環境又はコンピューティングシステム構成に適用することができる。
【００８１】
本出願は、本出願の実施形態にしたがった方法、システム、及びコンピュータプログラム製品の、フローチャート及び／又はブロック図を参照にして説明されている。フローチャート及び／又はブロック図における各フロー及び／又はブロック、並びにフローチャート及び／又はブロック図におけるフロー及び／又はブロックの組み合わせは、コンピュータプログラム命令として実現されえることを理解されるべきである。実際、本出願は、その全体を、例えばプログラムモジュールなどの、コンピュータによって実行されるコンピュータ実行可能命令を一般的な背景として説明することができる。一般に、プログラムモジュールは、指定のタスクを実行するための又は指定の抽象データ型を実装するための、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。或いは、本発明は、通信ネットワークを通じて接続されたリモート処理装置がタスクを実行する分散コンピューティング環境において実施されてよい。分散コンピューティング環境では、プログラムモジュールは、ストレージデバイスを含むローカル又はリモートのコンピュータストレージ媒体内に配されてよい。
【００８２】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実施するには、多くの代替的手法がある。開示された実施形態は、例示的であって限定的ではない。
適用例１：プラグイン権限制御方法であって、対応するプラグインの識別子（ＩＤ）を識別するために使用されるプラグイン識別番号（ＰＩＮ）を前記プラグインに割り当てを含む、プラグインを認可することと、前記ＰＩＮを前記プラグインに通知することと、
前記プラグイン及びプラグインアクセス可能サービスに関する情報をサービスのマッピングに格納することと、前記ＰＩＮを含む、サービスのリクエストを前記プラグインから受信することと、前記ＰＩＮにしたがって前記プラグインの前記ＩＤを取り出すことと、前記プラグインがリクエストした前記サービスへの前記プラグインのアクセスを許可するか否かを決定することと、を備える方法。
適用例２：適用例１に記載の方法であって、前記ＰＩＮは、前記ＩＤに対してランダムに保存場所を割り当てることと、前記ＩＤを前記格納場所に格納することと、前記格納スペースのバイトアドレスを前記ＰＩＮとして使用することと、によって導出される、方法。
適用例３：適用例２に記載の方法であって、前記ＩＤを取り出すことは、更に、前記ＰＩＮを読み出すことと、前記ＩＤが格納されている前記バイトアドレスを取り出すことと、前記バイトアドレスにしたがって前記ＩＤを取り出すことと、を含む、方法。
適用例４：適用例１に記載の方法であって、前記リクエストされたサービスへの前記プラグインのアクセスが許可された場合に、前記方法は、更に、前記プラグインがリクエストした前記サービスが条件付きアクセス可能性要件を満たすか否かを決定することと、前記条件付きアクセス可能性要件が満たされない場合に、前記プラグインによる前記サービスへのアクセスを無効にすることと、を備える方法。
適用例５：適用例４に記載の方法であって、前記条件付きアクセス可能性は、アクセス頻度の閾値を含む、方法。
適用例６：適用例５に記載の方法であって、更に、前記プラグインによるサービスアクセスの頻度又は総数が前記閾値を超える場合に、前記サービスを前記プラグインにとってアクセス可能なサービスのリストから除外することと、前記閾値を超えない場合に、前記プラグインによるサービスアクセスの頻度又は数を再計算することと、を備える方法。
適用例７：適用例４に記載の方法であって、前記条件付きアクセス可能性は、前記プラグインによるサービスアクセスの総数を含む、方法。
適用例８：適用例１に記載の方法であって、更に、機密サービスのリストを設定することと、前記機密サービスへのプラグインアクセスを監視することと、を備える方法。
適用例９：適用例１に記載の方法であって、更に、前記アクセス可能サービスが変更若しくは削除された場合に、又は新しいアクセス可能サービスが追加された場合に、前記サービスのマッピングを更新することを備える方法。
適用例１０：プラグイン権限制御システムであって、インターフェースに接続されている１つ又は２つ以上のプロセッサと、前記１つ又は２つ以上のプロセッサに接続され、前記プロセッサに命令を提供するように構成されている１つ又は２つ以上のメモリと、を備え、前記１つ又は２つ以上のプロセッサは、対応するプラグインの識別子（ＩＤ）を識別するために使用されるプラグイン識別番号（ＰＩＮ）を前記プラグインに割り当てることを含んで、プラグインを認可し、前記ＰＩＮを前記プラグインに通知し、前記プラグイン及びプラグインアクセス可能サービスに関する情報をサービスのマッピングに格納し、前記ＰＩＮを含む、サービスを求めるリクエストを前記プラグインから受信し、前記ＰＩＮにしたがって前記プラグインの前記ＩＤを取り出し、前記プラグインがリクエストした前記サービスへの前記プラグインのアクセスを許可するか否かを決定するように構成されている、システム。
適用例１１：適用例１０に記載のシステムであって、前記ＰＩＮは、前記ＩＤに対してランダムに格納場所を割り当て、前記ＩＤを前記格納場所に格納し、前記格納スペースのバイトアドレスを前記ＰＩＮとして使用することと、によって導出される、システム。
適用例１２：適用例１１に記載のシステムであって、前記ＩＤの取り出しは、更に、前記ＰＩＮを読み出し、前記ＩＤが格納されている前記バイトアドレスを取り出し、前記バイトアドレスにしたがって前記ＩＤを取り出すこと、を含む、システム。
適用例１３：適用例１０に記載のシステムであって、前記プラグインが前記リクエストされたサービスへのアクセスを許可された場合に、前記１つ又は２つ以上のプロセッサは、更に、前記プラグインがリクエストした前記サービスが条件付きアクセス可能性要件を満たすか否かを決定し、前記条件付きアクセス可能性要件が満たされない場合に、前記プラグインによる前記サービスへのアクセスを無効にするように、構成されている、システム。
適用例１４：適用例１３に記載のシステムであって、前記条件付きアクセス可能性は、アクセス頻度の閾値を含む、システム。
適用例１５：適用例１４に記載のシステムであって、前記１つ又は２つ以上のプロセッサは、更に、前記プラグインによるサービスアクセスの頻度又は総数が前記閾値を超える場合に、前記サービスを前記プラグインにとってアクセス可能なサービスのリストから除外し、前記閾値を超えない場合に、前記プラグインによるサービスアクセスの頻度又は数を再計算するように、構成されている、システム。
適用例１６：適用例１３に記載のシステムであって、前記条件付きアクセス可能性は、前記プラグインによるサービスアクセスの総数を含む、システム。
適用例１７：適用例１０に記載のシステムであって、前記１つ又は２つ以上のプロセッサは、更に、機密サービスのリストを設定し、前記機密サービスへのプラグインアクセスを監視するように、構成される、システム。
適用例１８：適用例１０に記載のシステムであって、前記１つ又は２つ以上のプロセッサは、更に、前記アクセス可能サービスが変更若しくは削除された場合に、又は新しいアクセス可能サービスが追加された場合に、前記サービスのマッピングを更新するように構成される、システム。
【図１】
0005624620.tif 000002
【図２】
0005624620.tif 000003
【図３】
0005624620.tif 000004
【図４】
0005624620.tif 000005
【図５】
0005624620.tif 000006
【図６】
0005624620.tif 000007
【図７】
0005624620.tif 000008
【図８】
0005624620.tif 000009