(57)【要約】【課題】アプリケーション作成者が柔軟なユーザ認証及びアクセス制限の実装を可能とすることを目的とする。【解決手段】コンピュータを、ユーザ管理を行うユーザ管理手段と、ファイル管理を行うファイル管理手段と、ユーザ管理と、ファイル管理と、の連携を行う連携手段と、として機能させるためのミドルウェアに係るプログラムであって、各手段の機能を外部的にカスタマイズ可能に構成したことによって前記課題を解決する。【選択図】図１
2007323174.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
ユーザ管理を行うユーザ管理手段と、
ファイル管理を行うファイル管理手段と、
ユーザ管理と、ファイル管理と、の連携を行う連携手段と、
として機能させるためのミドルウェアに係るプログラムであって、
前記各手段の機能を外部的にカスタマイズ可能に構成したことを特徴とするミドルウェアに係るプログラム。
【請求項２】
前記各手段の元々の機能と、前記カスタマイズによって実現した機能と、を選択可能としたことを特徴とする請求項１に記載のミドルウェアに係るプログラム。
【請求項３】
前記ユーザ管理手段は、ＦＴＰの認証に使われるユーザの識別情報と、ＦＴＰのセッションを特定する識別情報と、を組で管理することを特徴とする請求項１又は２に記載のミドルウェアに係るプログラム。
【請求項４】
前記連携手段は、前記ＦＴＰのセッションを特定する識別情報を用いて、前記ユーザ管理と、ファイル管理と、の連携を行うことを特徴とする請求項３に記載のミドルウェアに係るプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ミドルウェアに係るプログラムに関する。
【背景技術】
【０００２】
近年の組込み機器に要求される機能は多岐にわたっている。例としては  ＦＴＰ、ＨＴＴＰ（ＷＷＷ）等のネットワーク機能、ハードディスクやＦｌａｓｈＲＯＭ等の記憶装置管理機能、ファイルシステム機能があげられる。
【０００３】
これらの機能は「ミドルウェア」として実装される場合がある。ミドルウェアは、基本ソフトウェア（ＯＳ）上で動作し、アプリケーションにこれらの機能を提供するソフトウェアモジュールである。図６は、ソフトウェアモジュールの一例を示す図である。
【０００４】
図６において、２１は、アプリケーション、２２は、ミドルウェア、２３は、基本ソフトウェアであり。アプリケーション２１を作成する者は、部品として提供されるミドルウェア２２及びＯＳ２３の機能を利用することでアプリケーションを作成する。
【０００５】
利用するミドルウェアは一つとは限らず複数を利用する場合もある。特定の機能をミドルウェアとして実装することにはいくつかのメリットがある。
【０００６】
即ち、下位層のハードウェアや基本ソフトを変更しても、この変更をミドルウェア層で吸収することで、アプリケーションを変更する必要がなくなる。
【０００７】
また、同じ機能を必要とする複数の機器を実現する際に、ミドルウェア層を流用（再利用）することで、全体として開発にかかる開発コスト（期間、人員等）を減らすことが可能となる。
【０００８】
このようなミドルウェアの一例としてＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｒｏｃｏｌ：ＲＦＣ９５９）サーバを考える。
【０００９】
従来ネットワーク機器間でのファイル転送にはＦＴＰが広く用いられてきた。ＦＴＰにしたがって通信することで、機器の種類を問わないファイルの相互転送が可能となる。
【００１０】
ＦＴＰではファイルの送受信の要求を発行する側をクライアント、要求を受けてファイルを受信又は送信する側をサーバと呼ぶ。
【００１１】
ＦＴＰにおけるユーザ認証はサーバ上で、ユーザ名と、パスワードとの組で行なわれる。認証は、まず、クライアントがサーバに"ＵＳＥＲ"コマンドを使用してユーザ名を提
示する。サーバは、そのユーザ名に対するパスワードを要求し、ユーザは"ＰＡＳＳ"コ
マンドでパスワードをサーバに送る。サーバは、このユーザ名と、パスワードと、を用いて認証を行なう。組合せが適当であれば認証は成功し、ＦＴＰのセッションが開始される。
【００１２】
この認証に必要なユーザ管理は、例えばＵＮＩＸ（登録商標）のようなマルチユーザＯＳでは、ＯＳ自身に備わったユーザ管理機能を用いて実現される。
【００１３】
一方、組込み機器では基本ソフトとして、リアルタイムＯＳが利用されることが多い。リアルタイムＯＳは、組込みＯＳとも呼ばれる小型、軽量のＯＳである。リアルタイムＯＳは小規模な機器でも動作できるように必要とする資源量（メモリやＣＰＵ速度）が小さい。
【００１４】
このため、複雑なメモリ管理機能やユーザ管理機能を持たない場合が多い。このため組込み機器でＦＴＰサーバ機能を実装するには、ＦＴＰサーバ内部にユーザ管理機能を持つことが一般的だった。
【００１５】
【特許文献１】特開２００６−１１９８５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら上記のように、ＦＴＰサーバ自身で認証のためのユーザ管理を行なう場合、いくつかの欠点がある。
【００１７】
一つは、ユーザ管理の柔軟性のなさである。ＦＴＰサーバがユーザ管理を実装する場合、通常、ユーザ名と、パスワードと、の管理は固定的なものとなる。この場合、例えばワンタイムパスワードのような機能の実現は難しい。
【００１８】
更に、この方式ではユーザ管理をファイル管理と結び付けて特定のユーザのファイルの書き込みを許可したり禁止したりすることは難しい。例えば、ＦＴＰサーバ経由ではファイルＡは読めるがファイルＢは読めない、ユーザＸは全てのファイルが読み書きできるが、ユーザＹは読み出ししかできない、等の制限を実現することは難しかった。
【００１９】
本発明はこのような問題点に鑑みなされたもので、アプリケーション作成者が柔軟なユーザ認証及びアクセス制限の実装を可能とすることを目的とする。
【課題を解決するための手段】
【００２０】
そこで、本発明のミドルウェアに係るプログラムは、コンピュータを、ユーザ管理を行うユーザ管理手段と、ファイル管理を行うファイル管理手段と、ユーザ管理と、ファイル管理と、の連携を行う連携手段と、として機能させるためのミドルウェアに係るプログラムであって、前記各手段の機能を外部的にカスタマイズ可能に構成したことを特徴とする。
【００２１】
本発明によれば、アプリケーション作成者が柔軟なユーザ認証及びアクセス制限の実装を可能とすることができる。
【発明の効果】
【００２２】
本発明によれば、アプリケーション作成者が柔軟なユーザ認証及びアクセス制限の実装を可能とすることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施形態について図面に基づいて説明する。
【００２４】
図１は、組み込み機器の一例のハードウェア構成図である。図１に示されるように、組み込み機器１は、ハードウェア構成として、入力装置１１と、表示装置１２と、記録媒体ドライブ装置１３と、ＲＯＭ１５と、ＲＡＭ１６と、ＣＰＵ１７と、インターフェース装置１８と、ＨＤ１９と、を含む。
【００２５】
入力装置１１は、組み込み機器１の操作者（又はユーザ）が操作等に応じて、組み込み機器１に各種操作情報等を入力する。表示装置１２は、各種情報（又は画面）等を表示する。インターフェース装置１８は、組み込み機器１をネットワーク等に接続するインターフェースである。
【００２６】
後述する組み込み機器１の機能等に係るプログラムは、例えば、ＣＤ−ＲＯＭ等の記録媒体１４によって組み込み機器１に提供されるか、ネットワーク等を通じてダウンロードされる。記録媒体１４は、記録媒体ドライブ装置１３にセットされ、プログラムが記録媒体１４から記録媒体ドライブ装置１３を介してＨＤ１９にインストールされる。なお、プログラムは、始めからＨＤ１９等にインストールされていてもよい。
【００２７】
ＲＯＭ１５は、組み込み機器１の電源投入時に最初に読み込まれるプログラム等を記録する。ＲＡＭ１６は、組み込み機器１のメインメモリである。ＣＰＵ１７は、必要に応じて、ＨＤ１９よりプログラムを読み出して、ＲＡＭ１６に格納し、プログラムを実行することで、後述する機能の全て又は一部を提供する。また、ＨＤ１９は、プログラム以外に、例えば後述する図５に示すテーブルに係る情報や、後述するＦＴＰミドルウェア設定ヘッダファイル等を格納する。
【００２８】
本実施形態では、ミドルウェアにおいてユーザ管理機構の枠組を提供し、実際のユーザ認証のためのメカニズムはアプリケーション作成者が定義、実装することを可能にする。
【００２９】
このために、ユーザ認証のソフトウェアインターフェースを定め、アプリケーション作成者が、これにしたがってユーザ認証のためのプログラムを書くようにすることで、これを可能とする。図２は、ユーザ認証のカスタマイズを示す図である。
【００３０】
図２において、３１は、ＦＴＰサーバを利用するアプリケーションである。３２は、ＦＴＰサーバミドルウェアである。３３は、基本ソフトウェアである。３４は、アプリケーション独自のユーザ認証ソフトウェアモジュールである。３５は、ユーザ認証のためのソフトウェアインターフェースである。
【００３１】
例えばＣ言語の場合、より具体的には以下のようにインターフェースを定める。
ｉｎｔ  ＦＴＰ＿ＵＳＥＲ＿ＡＵＴＨ（ｃｈａｒ＊  ｕｓｅｒｎａｍｅ，  ｃｈａｒ＊  ｐａｓｓｗｏｒｄ）
関数の戻り値は、例えば０ならば認証成功、それ以外は認証失敗というように定める。
【００３２】
アプリケーション作成者はこのインターフェースにしたがって独自の認証関数を記述する。
【００３３】
この実装にはユーザ独自のアルゴリズムを実装してもよいし、ユーザ管理のためのほかのミドルウェアを使用して実装してもよい。
【００３４】
実際の動作時には、エンドユーザが入力したユーザ名と、パスワードと、の組はＦＴＰサーバミドルウェア３２から上記のインターフェースを介してアプリケーション作成者が書いたユーザ認証モジュール３４に渡される。
【００３５】
ユーザ認証モジュール３４は、そのユーザ名と、パスワードと、の組の妥当性をチェックし、ＯＫならば０を、そうでなければ１を返す。
【００３６】
このカスタマイズ機能を利用する場合は関数名をＣ言語のマクロＦＴＰ＿ＵＳＥＲ＿ＡＵＴＨとして定義することとする。
例えば以下の定義を行なう。
＃ｄｅｆｉｎｅ  ＦＴＰ＿ＵＳＥＲ＿ＡＵＴＨ    ｍｙ＿ｏｗｎ＿ａｕｔｈ
【００３７】
これにより、ＦＴＰサーバミドルウェア３４では認証関数として  ｍｙ＿ｏｗｎ＿ａｕｔｈ（）を呼ぶことになる。
【００３８】
この定義は、ＦＴＰサーバミドルウェア３４のソースコードからインクルードされる、ＦＴＰミドルウェア設定ヘッダファイルに記述する。図３は、ソースコード記述の方法を示す図である。
【００３９】
ＦＴＰミドルウェア設定ヘッダファイルは、このミドルウェアを使用するアプリケーション作成者が作成、記述する。
【００４０】
また、ＦＴＰサーバミドルウェア内で、例えば以下のような記述をしておくことで、カスタマイズの機能を利用しない場合にデフォルトの認証関数を使用することも可能となる。
＃ｉｆｎｄｅｆ  ＦＴＰ＿ＵＳＥＲ＿ＡＵＴＨ
＃ｄｅｆｉｎｅ  ＦＴＰ＿ＵＳＥＲ＿ＡＵＴＨ  ｄｅｆａｕｌｔ＿ａｕｔｈ
ｉｎｔ  ｄｅｆａｕｌｔ＿ａｕｔｈ（ｃｈａｒ＊  ｕｓｅｒｎａｍｅ，  ｃｈａｒ＊  ｐａｓｓｗｏｒｄ）
｛      ｝
＃ｅｎｄｉｆ
【００４１】
これにより、コンパイル時に"ＦＴＰ＿ＵＳＥＲ＿ＡＵＴＨ"に作成した名前を定義す
れば、その名前のユーザ作成の認証関数が使われ、未定義のままコンパイルすれば、デフォルトの認証関数が使用される。
【００４２】
デフォルトの認証関数は、ＦＴＰサーバミドルウェアの一部として提供することにより、複雑な機能が必要のない場合のアプリケーション作成者の手間を減らすことができる。
【００４３】
またこの方法では、関数名を自由に設定することができ、例えばユーザ認証が必要な他のミドルウェアと、認証モジュールを共用することも可能となる。
以上により、ユーザ認証をカスタマイズ可能にすることができる。
【００４４】
次に、個々のファイルに対するユーザごとのアクセスの制限を実現するための、ファイルシステムへのアクセスのカスタマイズについて説明する。図４は、ファイルアクセスのカスタマイズを示す図である。図４において、５１は、ＦＴＰサーバを利用するアプリケーションである。５２は、ＦＴＰサーバミドルウェアである。５３は、基本ソフトウェアである。５４は、ファイルの読み出しや、書き込みを行うファイルシステムミドルウェアである。５５は、ファイルアクセスのためのソフトウェアインターフェースである。
【００４５】
ＦＴＰサーバミドルウェアは、クライアントからのファイルの読み出し、又は書き込み要求を受けて、それに応答するためにサーバマシン上のファイルの読み書きを行なう。これは下位のＯＳ（又はファイルシステムミドルウェアのサービス）を呼び出すことで実行される。これはファイルの読み書きに限らず、ファイルの削除や名前の変更、ファイル名一覧の取得等に関しても同様である。
【００４６】
本実施形態ではこれらファイルシステムに関する呼び出しを、上述のユーザ認証と同様の方法でカスタマイズを行なえるようにすることで、種々のアクセス制限の実現を可能とする。
【００４７】
以下、ファイルの読み出し（ｒｅａｄ）と、書き込み（ｗｒｉｔｅ）とを例に説明を行う。ファイルの読み出しと、書き込みと、には一般的に  ＯＳやファイルシステムミドルウェアが提供するｒｅａｄ（）と、ｗｒｉｔｅ（）と、が使用される。これはたとえば以下のような形式を持つ。
【００４８】
ｓｉｚｅ＿ｔ      ｒｅａｄ（ｆｄ，  ｃｈａｒ＊  ｂｕｆ，  ｓｉｚｅ＿ｔ  ｓｉｚｅ）
ｓｉｚｅ＿ｔ      ｗｒｉｔｅ（ｉｎｔ  ｆｄ，  ｃｈａｒ＊  ｂｕｆ，  ｓｉｚｅ＿ｔ  ｓｉｚｅ）
【００４９】
ＦＴＰサーバミドルウェアではこれらの呼び出しを全て以下のマクロで置き換える。
ｒｅａｄ      →    ＦＴＰＤ＿ＦＩＬＥ＿ＲＥＡＤ
ｗｒｉｔｅ    →    ＦＴＰＤ＿ＦＩＬＥ＿ＷＲＩＴＥ
【００５０】
更に、ＦＴＰのユーザ（ユーザ名）ごとのアクセス制限を実現するために、以下の機構を準備する。
【００５１】
即ち、ＦＴＰサーバミドルウェアは、認証が成功しＦＴＰのセッションが開始された時点で、そのセッションの「ユーザ名（ｕｓｅｒｎａｍｅ）」と、「セッション番号」と、を組として記録し、管理する。
【００５２】
また、ＦＴＰサーバミドルウェアは、セッションの開始時に以下のインターフェースでアプリケーションにこれを通知する。なお、ｓｉｄは、セッション番号とする。
ｉｎｔ  ｆｔｐｄ＿ｉｄ＿ｓｔａｒｔ（ｓｉｄ，  ｕｓｅｒｎａｍｅ）
【００５３】
セッション番号は、セッションが継続している間、ＦＴＰサーバミドルウェア等に保持され、セッションの終了時に開放される。このセッション終了の際にも、ＦＴＰサーバミドルウェアは、これをアプリケーションに通知する。
ｉｎｔ  ｆｔｐｄ＿ｉｄ＿ｅｎｄ（ｓｉｄ）
【００５４】
例えば、ユーザ名"ｃａｎｏｎ"のユーザがセッションを開始した際、他にセッション
が進行中でなければ、セッション番号は０となり、これとユーザ名"ｃａｎｏｎ"が組で
管理される（図５参照）。図５は、ユーザ名と、セッション番号と、を組での管理方法の一例を示す図である。
【００５５】
このうえで、先に述べたＦＴＰミドルウェア設定ヘッダファイルで、以下のマクロ変換を行なう。
＃ｄｅｆｉｎｅ  ＦＴＰＤ＿ＦＩＬＥ＿ＲＥＡＤ（ｆｄ，  ｂｕｆ，  ｓｉｚｅ）            ｍｙ＿ｏｗｎ＿ｒｅａｄ（ｓｉｄ，  ｆｄ，  ｂｕｆ，  ｓｉｚｅ）
＃ｄｅｆｉｎｅ  ＦＴＰＤ＿ＦＩＬＥ＿ＷＲＩＴＥ（ｆｄ，  ｂｕｆ，  ｓｉｚｅ）          ｍｙ＿ｏｗｎ＿ｗｒｉｔｅ（ｓｉｄ，  ｆｄ，  ｂｕｆ，  ｓｉｚｅ）
ｍｙ＿ｏｗｎ＿ｒｅａｄ（）及びｍｙ＿ｏｗｎ＿ｗｒｉｔｅ（）は、上述のユーザ認証の場合と同様にアプリケーション作成者が作成する。これらは基本的にはｒｅａｄ及びｗｒｉｔｅのラッパー（ｗｒａｐｐｅｒ）関数であり、最終的に基本ソフトウェア又はファイルシステムミドルウェアが提供するｒｅａｄ及びｗｒｉｔｅを呼び出す。
【００５６】
その際に、ＦＴＰサーバミドルウェアから渡されたセッションＩＤ、ｓｉｄを用いて、必要なアクセス制限を実装することができる。
【００５７】
ｓｉｄで示されるユーザにアクセスを許したくない場合は、ｒｅａｄ及びｗｒｉｔｅを呼び出さずにエラーを返すことで、アクセス制限が実現できる。
【００５８】
これによりアプリケーション作成者は、ユーザ毎に細かなアクセス制限を実装することができる。
【００５９】
ｒｅａｄ，ｗｒｉｔｅのみならず、ＦＴＰサーバミドルウェアが呼び出す全てのファイルシステムに関する呼び出しを上の例のように記述することで、先のユーザ認証同様に、アプリケーション作成者が個々の呼び出しをフックして、自由にアクセス制限を実装することができる。
【００６０】
またユーザ認証の場合と同様に以下の設定により、アクセス制限を必要としないときは新たに何も記述する必要はない。
＃ｉｆｎｄｅｆ  ＦＴＰＤ＿ＦＩＬＥ＿ＲＥＡＤ
＃ｄｅｆｉｎｅ  ＦＴＰＤ＿ＦＩＬＥ＿ＲＥＡＤ（ｆｄ，  ｂｕｆ，  ｓｉｚｅ）  ｒｅａｄ（ｆｄ，  ｂｕｆ，  ｓｉｚｅ）
＃ｅｎｄｉｆ
＃ｉｆｎｄｅｆ  ＦＴＰＤ＿ＦＩＬＥ＿ＷＲＩＴＥ
＃ｄｅｆｉｎｅ  ＦＴＰＤ＿ＦＩＬＥ＿ＷＲＩＴＥ（ｆｄ，  ｂｕｆ，  ｓｉｚｅ）  ｗｒｉｔｅ（ｆｄ，  ｂｕｆ，  ｓｉｚｅ）
＃ｅｎｄｉｆ
【００６１】
例えばＦＴＰＤ＿ＦＩＬＥ＿ＲＥＡＤに独自読み出し関数の関数名が定義されていない場合は、基本ソフトウェアが提供する本来のｒｅａｄが呼ばれる。
ファイルの読み出しは一切のアクセス制限をせず、書き込みのみユーザごとの制限を行ないたい場合はこのような設定をすることで実現できる。
もちろんこれもｒｅａｄ／ｗｒｉｔｅにかぎらず全てのファイルシステム機能の呼び出しに関して同様である。
【００６２】
以上説明したように、本実施形態によれば、ミドルウェアソフトウェアにおいて一部機能をアプリケーション作成者がカスタマイズ可能とすることで柔軟かつ多機能なアプリケーション作成を可能とした。
【００６３】
特にＦＴＰサーバミドルウェアにおいて、ユーザ管理機能と、ファイルシステムアクセス制限機能と、のカスタマイズを可能とした。更に、これらの間の連携機能を提供することで、アプリケーション作成者が柔軟なユーザ認証及びアクセス制限の実装できるようになる。
【００６４】
また、カスタマイズを行なわない場合の所謂デフォルトの機能を提供することで、高度な機能が不要な場合のアプリケーション作成の負担を軽減することもできる。
【００６５】
更に、本実施形態の構成方法でミドルウェアを作成することで、ミドルウェア作成者が幅広いユーザの要望に応えることができるという効果がある。
【００６６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００６７】
【図１】組み込み機器の一例のハードウェア構成図である。
【図２】ユーザ認証のカスタマイズを示す図である。
【図３】ソースコード記述の方法を示す図である。
【図４】ファイルアクセスのカスタマイズを示す図である。
【図５】ユーザ名と、セッション番号と、を組での管理方法の一例を示す図である。
【図６】ソフトウェアモジュールの一例を示す図である。
【符号の説明】
【００６８】
１１  入力装置
１２  表示装置
１３  記録媒体ドライブ装置
１４  記録媒体
１５  ＲＯＭ
１６  ＲＡＭ
１７  ＣＰＵ
１８  インターフェース装置
１９  ＨＤ
【図１】
2007323174.tif 000003
【図２】
2007323174.tif 000004
【図３】
2007323174.tif 000005
【図４】
2007323174.tif 000006
【図５】
2007323174.tif 000007
【図６】
2007323174.tif 000008