(57)【要約】【課題】ソフトの実行時にアクセス権を制御できるようにすることを目的とする。【解決手段】リソースへのアクセス権を付与するか否かの情報を記述したセキュリティポリシーを設定するポリシー設定手段と、前記ポリシー設定手段により設定されたポリシーに基づいてアクセス権を設定するアクセス権設定手段と、前記アクセス権をユーザが所有しているかを確認するアクセス権確認手段と、アクセス権の付与を設定する条件を指定する条件指定手段と、前記条件指定手段により指定された条件が成立する時に、上記アクセス権の制限を設定する条件付アクセス制限手段とを備えることを特徴とする。【選択図】　図１
2004013832.tif 000002
【特許請求の範囲】
【請求項１】
リソースへのアクセス権を付与するか否かの情報を記述したセキュリティポリシーを、実行コードの存在する場所を示すコードベース毎に設定するポリシー設定手段と、
前記ポリシー設定手段により設定されたポリシーに基づいてアクセス権を設定するアクセス権設定手段と、
前記アクセス権設定手段によって設定されたアクセス権をユーザが所有しているかを確認するアクセス権確認手段とを備えるコンピュータセキュリティシステムであって、
アクセス権の付与を設定する条件を指定する条件指定手段と、
前記条件指定手段により指定された条件が成立する時に、前記アクセス権の制限を設定する条件付アクセス制限手段とを備えることを特徴とするコンピュータセキュリティシステム。
【請求項２】
前記条件指定手段は、ユーザに対し任意のアプリケーションプログラムを使用することを許諾するライセンス情報設定の有無を指定できることを特徴とする請求項１記載のコンピュータセキュリティシステム。
【請求項３】
前記条件指定手段は、前記ライセンス情報の使用許諾期間を指定できることを特徴とする請求項２記載のコンピュータセキュリティシステム。
【請求項４】
前記条件指定手段は、前記実行コードが前記コードベースにインストールされてから積算される試用期間を指定できることを特徴とする請求項１記載のコンピュータセキュリティシステム。
【請求項５】
前記条件設定手段は、前記アクセス権を有効とする時間帯を指定できることを特徴とする請求項１記載のコンピュータセキュリティシステム。
【請求項６】
前記条件設定手段は、前記アクセス権を有効とする曜日を指定できることを特徴とする請求項１記載のコンピュータセキュリティシステム。
【請求項７】
請求項１記載のコンピュータセキュリティシステムを実現するプログラムを記録したことを特徴とするコンピュータ読出可能な記憶媒体。
【請求項８】
リソースへのアクセス権を付与するか否かの情報を記述したセキュリティポリシーを、実行コードベース毎に設定するポリシー設定ステップと、
前記ポリシー設定ステップにより設定されたポリシーに基づいてアクセス権を設定するアクセス権設定ステップと、
前記アクセス権設定ステップによって設定されたアクセス権をユーザが所有しているかを確認するアクセス権確認ステップとを含むコンピュータセキュリティ方法であって、
アクセス権の付与を設定する条件を指定する条件指定ステップと、
前記条件指定ステップにより指定された条件が成立する時に、前記アクセス権の制限を設定する条件付アクセス制限ステップとを含むことを特徴とするコンピュータセキュリティ方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えば、コンピュータ上で実行されるプログラムのコンピュータ資源へのアクセスを制限するセキュリティシステムに用いられる、コンピュータセキュリティシステム、コンピュータセキュリティ方法、及びそれを実施するためのプログラムを記憶したコンピュータ読出可能な記憶媒体に関するものである。
【０００２】
【従来の技術】
高度なセキュリティアーキテクチャを持ち、セキュアな実行環境を持つオブジェクト指向のプログラミング言語として、Ｊａｖａ（登録商標）（Ｊａｖａ（登録商標）はＳｕｎ　Ｍｉｃｒｏｓｙｓｔｅｍｓ　Ｉｎｃ．の商標）が注目されている。
【０００３】
Ｊａｖａ（登録商標）では、コードベースのセキュリティ機構を構築している。コードベースのセキュリティ機構とは、プログラム上、実行コードがどこからロードされているかの情報を基にして、リソースへのアクセス権を実行コードに与えるか否かを決定する機構である。
【０００４】
図６は、セキュリティ関係のクラス関連を表す図である。
６０１０は、プログラムが実行された時のメソッド呼び出しのスタックであり、６０２０は、同じコードベースからロードされるコードに与えられるアクセス権を管理するＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎクラスであり、６０３０は、アクセス権を管理するＰｅｒｍｉｓｓｉｏｎｓクラスであり、６０４０は、アプリケーションプログラム実行時のセキュリティポリシーを記述したポリシーファイルであり、６０５０は、ポリシーファイル６０４０からセキュリティポリシーを読み込み、要求に応じてコードベースごとにアクセス権を返すＰｏｌｉｃｙクラスである。
【０００５】
図７は、ポリシーファイル６０４０に記述され、”ｆｉｌｅ：／Ｃ：／ｓｏｍｅｐａｔｈ／ａｐｉ／”というＵＲＬからロードされたコードに対するセキュリティポリシーの例を示したものである。この場合、キュリティポリシーは、ファイルアクセスの許可であるＦｉｌｅＰｅｒｍｉｓｓｉｏｎに対して、ユーザのホームディレクトリ（”ｕｓｅｒ．ｈｏｍｅ”で指定）に対する読み込みのみの許可を与えている。
【０００６】
図８にアクセス権をチェックする際のコーディングの例を示す。
図８の示すアクセス権のチェックとは、ホームディレクトリ以下のファイルに、書込み権を所有しているかを調べることである。図８に示すように、ファイルアクセス権を示すＦｉｌｅＰｅｒｍｉｓｓｉｏｎのパラメータに、対象となるホームディレクトリのパスと、書込み権を表す文字列である”ｗｒｉｔｅ”を指定し、これにより、インスタンスオブジェクトを構築する。
【０００７】
構築したオブジェクトをＡｃｃｅｓｓＣｏｎｔｒｏｌｌｅｒクラスのｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎメソッドに渡す。ｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎメソッドは、パラメータに指定されたＰｅｒｍｉｓｓｉｏｎクラス（ＦｉｌｅＰｅｒｍｉｓｓｉｏｎのスーパークラス）が与えられていない場合は、ＡｃｃｅｓｓＣｏｎｔｒｏｌＥｘｃｅｐｔｉｏｎ例外が発生し、以下に示すファイルセーブのためのコードは実行されないような構成になっている。
【０００８】
ｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎメソッドにおけるアクセス権のチェック方法を、図６を用いて説明する。
全てのクラスはＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎに属している。ＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎは、コードベースとコードに対して正当性を保証するためサインしたサイナーによって識別されるＣｏｄｅＳｏｕｒｃｅと、アクセス権の集合であるＰｅｒｍｉｓｓｉｏｎｓを含んで構成されている。
さらに、使用者を表すＰｒｉｎｃｉｐａｌ句を記述することにより、使用者によってアクセス権を設定できるようになっている。
【０００９】
ｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎメソッドは、先ず、ｃｋｅｃｋＰｅｒｍｉｓｓｉｏｎが呼び出された時点のスタックフレームを調べ、次に、スタック上に存在するオブジェクトのクラスに対して、そのクラスが属しているＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎを探索し、ｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎに指定されたＰｅｒｍｉｓｓｉｏｎが、ＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎによって管理されているアクセス権集合Ｐｅｒｍｉｓｓｉｏｎｓによって許可されているか否かを調べる。
【００１０】
このアクセス権が許可されているかどうかは、ＰｅｒｍｉｓｓｉｏｎｓのｉｍｐｌｉｅｓメソッドにＰｅｒｍｉｓｓｉｏｎを渡して、確認処理が実行されることにより判断される。ｉｍｐｌｉｅｓメソッドは、渡されたパラメータがＰｅｒｍｉｓｓｉｏｎによって許可されている場合は真の値を、そうでない場合は偽の値を返すように構成している。
【００１１】
ｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎメソッドは、スタック上全てのオブジェクトのクラスを調べ、アクセス権が許諾されていないクラスが発見されると、ＡｃｃｅｓｓＣｏｎｔｒｏｌＥｘｃｅｐｔｉｏｎ例外を発生させる。ＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎクラスは、初期化されるときに、ポリシーファイルからセキュリティポリシーを呼び出して、セキュリティ情報を管理しているＰｏｌｉｃｙオブジェクトから、ＣｏｄｅＳｏｕｒｃｅに対するアクセス権の集合を取得し記憶している。
【００１２】
一方、アプリケーションプログラムをインターネットなどのネットワークや、ＣＤ−ＲＯＭなどの媒体を使用してユーザに配布し、コンピュータ等に当該アプリケーションプログラムをインストールすることを許可し、その後使用権としてのライセンスを、別個に購入する販売形態がある。
【００１３】
この場合、ライセンスを購入し、ライセンス情報をアプリケーションプログラムに設定することにより、ユーザは、正常にアプリケーションプログラムを使用することが可能となる。ユーザがライセンス購入前の試用期間に、アプリケーションプログラムを実行しようとする際に、アプリケーションプログラム側がこれに対して行う処理として、以下のような方式が挙げられる。
【００１４】
ユーザに対し、
（１）アプリケーションプログラムの実行を全く許可しない、
（２）アプリケーションプログラムのインストール後、一定期間（１ヶ月程度）の実行を許可し、その後の実行を許可しない、
（３）アプリケーションプログラムに含まれる主要な機能（例えば、ドキュメントファイルのセーブ機能等）の使用を不可能とする。
【００１５】
また、ユーザに対するライセンス設定後に、一定期間に限定した使用権として当該ライセンスを位置付けて、この使用許諾期間をライセンス情報におり込むことで、使用許諾期間を経過後、上記（１）〜（３）のように使用を制限するライセンス方式も存在する。
【００１６】
上記（１）、（２）に示したアクセス制限を実現する方法について説明する。これは、アプリケーションプログラムが開始される時に実行されるコードのうち、当該コード上に設定されているライセンス情報を調べ、このライセンス情報が正しく、かつ、ライセンス許諾期間が経過していないかをチェックする構成となっている。
【００１７】
図９は、ライセンス情報のチェックを行うＪａｖａ（登録商標）プログラムの例である。
図９に示すＬｉｃｅｎｓｅクラスは、ライセンス情報を管理するクラスである。また、インスタンスオブジェクトを取得するクラスメソッドであるｇｅｔＬｉｃｅｎｓｅメソッドと、同じくクラスメソッドとしてライセンス情報が設定されておらず試用期間であることを示すｉｓＴｒｉａｌメソッド、ライセンス情報が正しい情報であるかを問い合わせるｉｓＶａｌｉｄメソッド、及びライセンスが許諾期間を過ぎていないかを問い合わせるｉｓＥｘｐｉｒｅｄメソッドを含んで実装されている。
【００１８】
図９では、Ｌｉｃｅｎｓｅクラスが、Ｌｉｃｅｎｓｅクラスのインスタンスオブジェクトを取得し、そのインスタンスオブジェクトにライセンス情報が正しいかを問い合わせ、試用期間であるかをチェックする内容を記述したものである。ライセンスが正しくなく、かつ、試用期間が経過している場合、Ｌｉｃｅｎｓｅクラスは、メッセージを出力し、終了するようになっている。
【００１９】
さらに、Ｌｉｃｅｎｓｅクラスは、ライセンスが許諾期間を過ぎていないかをチェックし、過ぎている場合は同様にメッセージを出力し、ｅｘｉｔメソッドによってアプリケーションプログラムの実行を終了するようになっている。
【００２０】
次に、上記（３）に示した方式の実現方法について説明する。
図１０は、ドキュメントのセーブを行うメソッドの例を示したものであり、当該メソッドに対し、セーブすべきドキュメントオブジェクトが引数として与えられる。
【００２１】
具体的には例えば、図１０に示すセーブメソッドは、先ずはじめに、ライセンスをチェックするための情報を取得する。
次に、ｉｆ文の条件節に示すように、当該ライセンスが不正当なものか、試用期間が経過しているか、或いはライセンスが期限切れになっているかをチェックする。この条件が成り立つ場合、セーブメソッドは、以降の処理を行わずに、メソッドの呼び出し元に返る。
【００２２】
【発明が解決しようとする課題】
以上のように、従来のＪａｖａ（登録商標）のセキュリティアーキテクチャでは、コードベース及びサイナー、或いは使用者ごとにアクセス権を設定できるセキュリティポリシーを記述することできる。
しかしながら、従来のセキュリティアーキテクチャは、ライセンスの有無によるアクセス権の制御や、ライセンス切れ時のアクセス権制御、時間帯によるアクセス権の変更は行えないという問題が存在している。
【００２３】
また、ライセンスを考慮したアプリケーションプログラムであっても、ライセンスの未取得によるアクセス制限を、プログラム開発時に作り込む必要があり、プログラムインストール時の実行環境にあわせて、アクセス権の設定を多様に変更するなどの動作制御を行うことができないといった問題点が存在した。
【００２４】
そこで、本発明は、上記の問題点に鑑みなされたもので、ライセンス等のアプリケーションプログラム実行時に設定される条件によって、コンピュータリソースに対するアクセス制限を多様かつ容易に変更することができる、コンピュータセキュリティシステム、コンピュータセキュリティ方法、及びそれを実施するためのプログラムを記憶したコンピュータ読出可能な記憶媒体を提供することを目的とする。
【００２５】
【課題を解決するための手段】
斯かる目的下において、本発明は、リソースへのアクセス権を付与するか否かの情報を記述したセキュリティポリシーを、実行コードベース毎に設定するポリシー設定手段と、前記ポリシー設定手段により設定されたポリシーに基づいてアクセス権を設定するアクセス権設定手段と、前記アクセス権設定手段によって設定されたアクセス権をユーザが所有しているかを確認するアクセス権確認手段とを備えるコンピュータセキュリティシステムであって、アクセス権の付与を設定する条件を指定する条件指定手段と、前記条件指定手段により指定された条件が成立する時に、上記アクセス権の制限を設定する条件付アクセス制限手段とを備えることを特徴とする。
【００２６】
また、本発明は、請求項１記載のコンピュータセキュリティシステムを実現するプログラムをコンピュータ読出可能な記憶媒体に記録したことを特徴とする。
【００２７】
また、本発明は、リソースへのアクセス権を付与するか否かの情報を記述したセキュリティポリシーを、実行コードベース毎に設定するポリシー設定ステップと、前記ポリシー設定ステップにより設定されたポリシーに基づいてアクセス権を設定するアクセス権設定ステップと、前記アクセス権設定ステップによって設定されたアクセス権をユーザが所有しているかを確認するアクセス権確認ステップとを含むコンピュータセキュリティ方法であって、アクセス権の付与を設定する条件を指定する条件指定ステップと、前記条件指定ステップにより指定された条件が成立する時に、上記アクセス権の制限を設定する条件付アクセス制限ステップとを含むことを特徴とする。
【００２８】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて説明する。
【００２９】
本発明は、例えば、図１に示すようなソフトウェアシステムに適用される。
図１に示すように、１０１０は、プログラムが実行された時にメソッド呼び出しのスタックである。
１０２０は、同じコードベースからロードされるコードに与えられるアクセス権を管理するＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎクラスである。
【００３０】
１０３０は、アクセス権を管理するＰｅｒｍｉｓｓｉｏｎｓクラスのサブクラスのＬｉｃｅｎｓｅＰｅｒｍｉｓｓｉｏｎｓクラスである。
１０４０は、アプリケーションプログラム実行時のセキュリティポリシーを記述したポリシーファイルである。
１０５０は、ポリシーファイル１０４０からセキュリティポリシーを読み込み、要求に応じてコードベースごとにアクセス権を返すＬｉｃｅｓｅＰｏｌｉｃｙクラスであり、図６におけるＰｏｌｉｃｙクラス６０５０のサブクラスである。
【００３１】
１０６０は、ライセンス情報を管理するＬｉｃｅｎｓｅクラスである。
１０７０は、時間を管理するＤａｔｅクラスである。
【００３２】
図２は、ポリシーファイル１０４０に記述するセキュリティポリシーであり、”ｆｉｌｅ：／Ｃ：／ｓｏｍｅｐａｔｈ／ａｐｉ／”というＵＲＬからロードされたコードに対するセキュリティポリシーである。
【００３３】
図２の（１）は、ファイルアクセスの許可であるＦｉｌｅＰｅｒｍｉｓｓｉｏｎに対して、ユーザのホームディレクトリ（”ｕｓｅｒ．ｈｏｍｅ”で指定）に対する読み込みのみの許可を与える指定である。
図２の（２）は、ライセンス設定済みの時におけるアクセス権の指定である。
図２の（３）は、ライセンス設定前の試用期間の指定で、例えば、期間は３０日間であるというような指定である。
図２の（４）は、時間帯の指定で、例えば、午前９時から午後５時までというような有効なアクセス権を設定する指定である。
図２の（５）は、曜日による指定で、例えば、月曜日から金曜日の間に有効なアクセス権を設定するというような指定である。
【００３４】
図３は、Ｌｉｃｅｎｓｅクラス１０６０の定義である。
Ｌｉｃｅｎｓｅクラスは、抽象クラスとして定義されており、各アプリケーションプログラムもしくは実行環境の実情に合わせた実装クラスを別途用意し、Ｌｉｃｅｎｓｅクラス１０６０として使用可能となっている。
【００３５】
図３において、ｉｓＶａｌｉｄメソッドは、ライセンスが有効かどうかを返すメソッドである。
ｉｓＥｘｐｉｒｅｄは、ライセンスが期限切れになっているかどうかを返すメソッドである。
ｇｅｔＬｉｃｅｎｓｅメソッドは、Ｌｉｃｅｎｓｅクラスインスタンスを取得するためのクラスメソッドである。
ｓｅｔＬｉｃｅｎｓｅメソッドは、Ｌｉｃｅｎｓｅクラスインスタンスを設定するためのクラスメソッドである。
【００３６】
図４は、ＬｉｃｅｎｓｅＰｅｒｍｉｓｓｉｏｎｓに定義されているフィールド変数である。
図２のセキュリティポリシーは、図１に示すＬｉｃｅｎｓｅＰｏｌｉｃｙクラス１０５０により読み込まれ、ＬｉｃｅｎｓｅＰｏｌｉｃｙ１０５０からＬｉｃｅｎｓｅＰｅｒｍｉｓｓｉｏｎ１０３０を生成する時に、図２に示す（１）はｏｒｄｉｎａｒｙＣｌｏｓｅ変数で、図２に示す（２）はｌｉｃｅｎｓｅＣｌｏｓｅで、図２に示す（３）はｔｒｉａｌＣｌｏｓｅで、図２に示す（４）はｔｉｍｅＣｌｏｓｅで、図２に示す（５）はｄａｔｅＣｌｏｓｅで管理されるように設定される。
ここで、ｔｒｉａｌＣｌｏｓｅはターゲットとなるコードベースに存在するファイルがインストールされてから図２に示す（３）で指定された日数を経過している場合は、設定されるｎｕｌｌが与えられる。
【００３７】
尚、各々の句が存在していない場合、対応するフィールド変数はｎｕｌｌになっている。
【００３８】
図５は、図８に示すコードが実行される場合、ｃｈｅｃｋＰｅｒｍｉｓｓｉｏｎメソッドが従来例で示したアクセス権チェックを行う際に、Ｐｅｒｍｉｓｓｉｏｎｓにおいてｉｍｐｌｉｅｓメソッドが行う処理のアルゴリズムを示したフローチャートである。
【００３９】
図５を用いてアクセス権チェックを行う処理について説明する。
図５に示すように、先ずステップＳ５０１０で、ライセンス設定がされているかを調べる。このためには、ＬｉｃｅｎｓｅクラスのｇｅｔＬｉｃｅｎｓｅメソッドを呼び出すことによってインスタンスオブジェクトを取得する。取得したＬｉｃｅｎｓｅオブジェクトのｉｓＶａｌｉｄメソッドを呼び出すことにより、ｔｒｕｅが返ってきた場合はステップＳ５０２０へ進み、ｆａｌｓｅを返した時はステップＳ５０６０へ進む。
【００４０】
ステップＳ５０２０において、ステップＳ５０１０にて取得したＬｉｃｅｎｓｅオブジェクトのｉｓＥｘｐｉｒｅｄメソッドを呼び出すことにより、ライセンスが期限切れかどうかを調べる。
ここで、ｉｓＥｘｐｉｒｅｄメソッドがｔｒｕｅを返した時はライセンスが切れていると考えられ、ステップＳ５０８０に進む。また、ｆａｌｓｅを返す時、期限切れしていないためステップＳ５０３０に進む。
【００４１】
ステップＳ５０３０において、Ｐｅｒｍｉｓｓｉｏｎｓにライセンス句が存在しているかを調べる。ライセンス句が存在しているかはｌｉｃｅｎｓｅＣｌｏｓｅがｎｕｌｌかどうかで知ることができる。存在している場合、ステップＳ５０４０に進む。存在していない場合はステップＳ５０８０へ進む。
【００４２】
ステップＳ５０４０では、ｌｉｃｅｎｓｅＣｌｏｓｅのｉｍｐｌｉｓｅメソッドを呼び出すことによりアクセス権のチェックを行いステップＳ５０９０に進む。
【００４３】
ステップＳ５０６０において、Ｐｅｒｍｉｓｓｉｏｎｓに試用期間句が存在しているかを調べる。試用期間句が存在しているかはｔｒｉａｌＣｌｏｓｅがｎｕｌｌかどうかで知ることができる。存在している場合、ステップＳ５０７０に進む。存在していない場合はステップＳ５０８０へ進む。
【００４４】
ステップＳ５０７０では、ｔｒｉａｌＣｌｏｓｅのｉｍｐｌｉｓｅメソッドを呼び出すことによりアクセス権のチェックを行いステップＳ５０９０に進む。
【００４５】
ステップＳ５０８０では、ｏｒｄｉｎａｒｙＣｌｏｓｅのｉｍｐｌｉｓｅメソッドを呼び出すことにより、アクセス権のチェックを行いステップＳ５０９０に進む。
【００４６】
ステップＳ５０９０では、直前のステップであるステップＳ５０４０、ステップＳ５０７０、及びステップＳ５０８０で呼び出されたｉｍｐｌｉｅｓメソッドのリターン値を返す。
このような処理によって、ライセンスの有無によるアクセス権のチェックを行う。
【００４７】
同様に、Ｄａｔｅクラスからその時点の時刻情報を得て、ｔｉｍｅＣｌｏｓｅ及びｄａｔｅＣｌｏｓｅのチェックを行う。
【００４８】
本発明は複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、及びプリンタ等）を含んで構成しているシステムに適用しても、一つの機器（例えば複写機、又はファクシミリ装置等）からなる装置に適用してもよい。
【００４９】
また、上述した第１の実施の形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置或いはシステム内のコンピュータに対し、上記実施の形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ或いはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００５０】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード自体は本発明を構成する。
そのプログラムコードの伝送媒体としては，プログラム情報を搬送波として伝搬させて供給するためのコンピュータネットワーク（ＬＡＮ、インターネット等のＷＡＮ、無線通信ネットワーク等）システムにおける通信媒体（光ファイバ等の有線回線や無線回線等）を用いることができる。
【００５１】
さらに、上記プログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００５２】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施の形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等と共同して上述の実施の形態の機能が実現される場合にもかかるプログラムコードは本発明の実施の形態に含まれることはいうまでもない。
【００５３】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施の形態の機能が実現される場合にも本発明に含まれることはいうまでもない。
【００５４】
なお、上記実施の形態において示した各部の形状及び構造は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその精神、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００５５】
【発明の効果】
以上説明したように本発明によれば、ポリシーファイルを記述することにより、アプリケーションプログラムが実行される時に、ライセンスの有無や、ライセンス期間内かどうか、時間帯、或いは曜日などによってアクセス権の設定を多様かつ容易に行うことができる。
これにより、アプリケーションプログラムを作成する時でなく、実行時においてもアクセス権を制御できるという効果を有する。
【図面の簡単な説明】
【図１】第１の実施形態のクラス構成図である。
【図２】第１の実施形態のポリシーファイル例を示す図である。
【図３】第１の実施形態のＬｉｃｅｎｓｅクラスを示す図である。
【図４】第１の実施形態のＬｉｃｅｎｓｅＰｅｒｍｉｓｓｉｏｎｓフィールド変数を示す図である。
【図５】第１の実施形態のプログラムフローを示す図である。
【図６】従来例：Ｊａｖａ（登録商標）のセキュリティチェックのためのクラス構成図である。
【図７】従来例：Ｊａｖａ（登録商標）のポリシーファイル例を示す図である。
【図８】従来例：アクセスチェックコーディング例を示す図である。
【図９】従来例：ライセンスチェックによる起動制限例を示す図である。
【図１０】従来例：ライセンスチェックによるアクセス制限例を示す図である。
【符号の説明】
１０１０　　プログラムスタック
１０２０　　ＰｒｏｔｅｃｔｉｏｎＤｏｍａｉｎクラス
１０３０　　ＬｉｃｅｎｓｅＰｅｒｍｉｓｓｉｏｎｓクラス
１０４０　　ポリシーファイル
１０５０　　ＬｉｃｅｎｓｅＰｏｌｉｃｙクラス
１０６０　　Ｌｉｃｅｎｓｅクラス
１０７０　　Ｄａｔｅクラス
【図１】
2004013832.tif 000003
【図２】
2004013832.tif 000004
【図３】
2004013832.tif 000005
【図４】
2004013832.tif 000006
【図５】
2004013832.tif 000007
【図６】
2004013832.tif 000008
【図７】
2004013832.tif 000009
【図８】
2004013832.tif 000010
【図９】
2004013832.tif 000011
【図１０】
2004013832.tif 000012