以下に添付図面を参照して、この発明にかかる利用者認証装置、画像形成装置、利用者認証方法及び利用者認証プログラムの最良な実施の形態を詳細に説明する。なお、本実施の形態では、この発明を画像形成装置に適用した場合について説明するが、本発明はこれに限らず、利用者の認証処理をおこなう各種装置に適用することができる。
(第1の実施の形態)
まず、本発明の第1の実施の形態に係る画像形成装置(以下「複合機」と言う)1の概要について図1、図2、図3、図15および図16を用いて説明する。図1は、本実施の形態に係る複合機1を取り巻くネットワーク環境を説明するためのネットワーク図であり、図2は、図1に示した複合機1のハードウェア構成を示すブロック図であり、図3は、図1に示した複合機1のソフトウェアとハードウェアの関係を説明するための概念図である。そして図15は、複合機に搭載されるソフトウェア構成の変遷を説明するための説明図であり、図16は、従来の複合機のソフトウェアとハードウェアの関係を説明するための説明図である。
図1に示すように、近年のネットワーク化の進展により、オフィスなどに設けられたPC(Personal Computer)などの機器は、LAN(Local Area Network)などのネットワークに接続され、相互に通信することが通常となった。たとえば、本図に示したように、かかるネットワークには、クライアントPC、SMTP(Simple Mail Transfer Protocol)サーバ、FTP(File Transfer Protocol)サーバ、サーバPCなどが接続され、電子メールの送受信やファイル転送をすることができ、モデム接続された配信サーバは、オフィス外のファックス装置と通信することができる。
このようなネットワーク化の進展に伴い、複合機1もかかるネットワークに接続され、PC等の機器と相互に通信することが可能となり、ハードディスク等の記憶装置を内蔵することで、いわゆるネットワーク複合機へと進化し、ユーザの様々なニーズに応えることができるようになった。
具体的には、複合機1は、通常のコピー機能に加えて、クライアントPCからの印刷要求により文書データ等を印刷するプリンタ機能、クライアントPCからのファックス要求により文書データ等をサーバPCに接続されたモデムを経由して他のオフィスのファックス機器に送信するファックス機能、受信したファックス文書やコピー文書を内蔵したハードディスクに蓄積する蓄積機能などを有している。このような多くの機能を実現するために、従来からの複合機に搭載されるソフトウェアは規模が大きくなり、かつ複雑なものとなる。それにともない、それらのソフトウェアの開発と維持管理のための工数も大幅に増大している。そこで本実施の形態にかかる複合機1に搭載されるソフトウェアでは、開発と維持管理のための工数を減少させる。なお、複合機1に搭載されるソフトウェアの構成については後述する。
図2は、かかる複合機1のハードウェア構成を示すブロック図である。本図に示すように、この複合機1は、コントローラ10とエンジン部(Engine)60とをPCI(Peripheral Component Interconnect)バスで接続した構成となる。コントローラ10は、複合機1全体の制御と描画、通信、図示しない操作部からの入力を制御するコントローラである。エンジン部60は、PCIバスに接続可能なプリンタエンジンなどであり、たとえば白黒プロッタ、1ドラムカラープロッタ、4ドラムカラープロッタ、スキャナまたはファックスユニットなどである。なお、このエンジン部60には、プロッタなどのいわゆるエンジン部分に加えて、誤差拡散やガンマ変換などの画像処理部分が含まれる。
コントローラ10は、CPU11と、ノースブリッジ(NB)13と、システムメモリ(MEM−P)12と、サウスブリッジ(SB)14と、ローカルメモリ(MEM−C)17と、ASIC(Application Specific Integrated Circuit)16と、ハードディスクドライブ(HDD)18とを有し、ノースブリッジ(NB)13とASIC16との間をAGP(Accelerated Graphics Port)バス15で接続した構成となる。また、MEM−P12は、ROM(Read Only Memory)12aと、RAM(Random Access Memory)12bとをさらに有する。
CPU11は、複合機1の全体制御をおこなうものであり、NB13、MEM−P12およびSB14からなるチップセットを有し、このチップセットを介して他の機器と接続される。
NB13は、CPU11とMEM−P12、SB14、AGP15とを接続するためのブリッジであり、MEM−P12に対する読み書きなどを制御するメモリコントローラと、PCIマスタおよびAGPターゲットとを有する。
MEM−P12は、プログラムやデータの格納用メモリ、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いるシステムメモリであり、ROM12aとRAM12bとからなる。ROM12aは、プログラムやデータの格納用メモリとして用いる読み出し専用のメモリであり、RAM12bは、プログラムやデータの展開用メモリ、プリンタの描画用メモリなどとして用いる書き込みおよび読み出し可能なメモリである。
SB14は、NB13とPCIデバイス、周辺デバイスとを接続するためのブリッジである。このSB14は、PCIバスを介してNB13と接続されており、このPCIバスには、ネットワークインターフェース(I/F)部なども接続される。
ASIC16は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGP15、PCIバス、HDD18およびMEM−C17をそれぞれ接続するブリッジの役割を有する。このASIC16は、PCIターゲットおよびAGPマスタと、ASIC16の中核をなすアービタ(ARB)と、MEM−C17を制御するメモリコントローラと、ハードウェアロジックなどにより画像データの回転などをおこなう複数のDMAC(Direct Memory Access Controller)と、エンジン部60との間でPCIバスを介したデータ転送をおこなうPCIユニットとからなる。このASIC16には、PCIバスを介してFCU(Fax Control Unit)30、USB(Universal Serial Bus)40、IEEE1394(the Institute of Electrical and Electronics Engineers 1394)インターフェース50が接続される。
MEM−C17は、コピー用画像バッファ、符号バッファとして用いるローカルメモリであり、HDD(Hard Disk Drive)18は、画像データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積を行うためのストレージである。
AGP15は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレーターカード用のバスインターフェースであり、MEM−P12に高スループットで直接アクセスすることにより、グラフィックスアクセラレーターカードを高速にするものである。
図3は、かかる複合機1のハードウェアおよびソフトウェアの構成を示した概念図であり、具体的には、後述する本実施の形態の特徴部分である認証管理部211を含む統合アプリケーション110と、ソフトウェア100およびハードウェア150の階層関係を示している。本図に示すように、ハードウェア150は、ハードウェアリソース151を有し、このハードウェアリソース151は、スキャナ151a、プロッタ151b、HDD(Hard Disk Drive)151c、ネットワーク151dおよびその他のリソース151eを有する。なお、その他のリソース151eは、151a〜151d以外のハードウェアリソース151のことであり、たとえば、操作パネルなどの入出力デバイスを示す。
図4は、複合機1の操作パネル400の一例を示した図である。本図に示したように、かかる操作パネル400は、初期設定キー401、コピーキー402、コピーサーバーキー403、プリンタキー404、送信キー405、テンキー406、クリア/ストップキー407、スタートキー408、予熱キー409、リセットキー410および液晶タッチパネル420を有する。このような構成を有する操作パネル400でユーザが所定の操作を行った場合に、統合アプリケーション110に含まれている本実施の形態の特徴である各クラスを実体化したオブジェクトが動作する。
例えば、初期設定キー401をタッチすると、液晶タッチパネル420に初期設定用のメニューが表示され、かかるメニューにおいては、収納される用紙サイズなどを設定することができる。また、コピーをしたい場合にはコピーキー402を、コピー結果を複合機1に蓄積したい場合にはコピーサーバーキー403を、プリンタに係る操作をおこないたい場合には、プリンタキー404を、ファックスや蓄積画像などの送信をしたい場合には送信キー405を、それぞれタッチすると、液晶タッチパネル420に対応したメニューが表示される。
図3に戻り、かかるハードウェア150に搭載されるソフトウェア100は階層化されており、オペレーティングシステム103の上層にはサービス層102が構築され、このサービス層102の上層にはアプリケーション層101が構築されている。そして、サービス層102は、各ハードウェアリソース(151a〜151e)を制御するドライバーに相当する、スキャナ制御部102a、プロッタ制御部102b、蓄積制御部102c、配信/メール送受信制御部102d、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gを有する。
ここで、図3に示したソフトウェア100が、かかる階層構造をとるに至った経緯について、図15および図16を用いて説明する。図15は、複合機に搭載されるソフトウェア構成の変遷を示す説明図である。図15のサービス層分離前アプリケーション1501に示すように、多機能化した複合機に搭載されるソフトウェアは、コピーアプリケーション、FAXアプリケーション、スキャナアプリケーションなどの機能別に独立したアプリケーションとして作成され、図3に示したオペレーティングシステム103上で動作していた。
しかしながら、これらのアプリケーションは、ハードウェアリソースを制御するドライバー(サービス層102)を含んでいたため、各アプリケーションには重複した処理が存在していた。その結果、各アプリケーションの規模は大きなものとなっていた。
そこで、図15のサービス層分離後アプリケーション1502に示すように、サービス層分離前アプリケーション1501のサービス層相当部分を括りだしてサービス層102にするとともに、各アプリケーションは、このサービス層102の上層であるアプリケーション層101に構築する構成とした。かかる階層化構成をとることで、各アプリケーションはスリム化され開発労力も軽減された。
しかしながら、複合機のネットワーク化、多機能化がさらに進展するに従って、各アプリケーションに共通処理部分が存在することが問題となってきた。具体的には、アプリケーション層101の各アプリケーション、たとえば、コピーアプリケーションやスキャナアプリケーションなどは、それぞれ、スキャナ制御部102aや蓄積制御部102cといったドライバーと通信をおこなう処理や、各種機能が取り扱うデータの流れを制御するストリーム制御などの同様な処理を内部に有していた。このように、同様な処理を各アプリケーションが有していると、各アプリケーションの開発規模が大きくなるとともに、サービス層の仕様変更に対する各アプリケーションの改修規模が大きくなることが問題となってきた。
この問題を解決するため、図15の共通ルーチン分離アプリケーション1503に示すように、かかる同様な処理(共通処理部分)を共通ルーチンとして括りだすことも考えられた。しかしながら、かかる共通ルーチンは、各アプリケーションにおいて微妙に異なる処理を共通化しようとするものであるため、共通ルーチン内部の処理は複雑なものとなってしまう。また、たとえば、プリンタアプリケーションなどの新規アプリケーションを追加する場合においては、かかる新規アプリケーションに適応するために、共通ルーチンの改修が必要となる。
しかし、共通ルーチンの内部処理は複雑であるため、改修要員が処理を把握することが困難となり、改修規模の増大や、改修ミスによる他のアプリケーションへの影響が懸念された。
そこで、図15のオブジェクト指向アプリケーション1504に示すように、オブジェクト指向による設計手法(オブジェクトモデリング)により、かかる複数のアプリケーションを、統合アプリケーション110に統合することとした。具体的には、各アプリケーションの共通処理部分をオブジェクトモデルとして抽出し、このオブジェクトモデルの集合体から、統合アプリケーション110を構成する。そして、従来のコピー機能やスキャナ機能といった機能は、かかるオブジェクトモデルの協調関係によって実現する。
このような構成をとることにより、たとえばプリンタ機能のような新規機能の追加は、かかるオブジェクトモデルに属するクラスのサブクラス化などにより対処できる。このため、改修部分が明確となり、改修による他の機能への影響を小さくすることができる。また、オブジェクトモデリングによるプログラムは、従来の手続き型プログラムに比べて、処理の把握が容易であるため、改修要員が処理を把握することも容易となり、改修規模の削減や、改修ミスによる他のアプリケーションへの影響を小さくすることができる。
図16は、図15に示したサービス層分離後アプリケーション1502の段階における従来のアプリケーションの構成と、かかるアプリケーションとサービス層102の各ドライバーの関係を示した説明図である。本図に示すように、アプリケーション層101Aは、コピーアプリケーション121、スキャナアプリケーション122、ファックスアプリケーション123およびプリンタアプリケーション124を有する。
たとえば、コピーアプリケーション121は、コピー機能を実現するために、スキャナ制御部102a、プロッタ制御部102b、蓄積制御部102cおよびその他の制御部102gとデータの送受信をおこなう。また、ファックスアプリケーション123は、ファックス機能を実現するために、プロッタ制御部102b、蓄積制御部102c、FAX送受信制御部102e、ネットワーク通信制御部102fおよびその他の制御部102gとデータの送受信をおこなう。このように、アプリケーション層101Aの各アプリケーションとサービス層102の各ドライバー間の通信は、複雑なものとなっていた。
図3に戻り、上述したオブジェクトモデリングにより、アプリケーション層101に存在した複数のアプリケーションは、統合アプリケーション110に統合されている。そして、各アプリケーションが重複しておこなっていた各ドライバーとの通信処理は、統合アプリケーション110を構成する所定のオブジェクトモデルにおこなわせるように構成したことにより、アプリケーション層101のアプリケーションと、サービス層102の各ドライバー間の通信は、図16と比較して単純になっている。
次に、統合アプリケーション110の内部構成について説明する。図5は、統合アプリケーション110の内部構成、及び統合アプリケーション110内における後述する本実施の形態の特徴的部分である認証管理部211の位置を示す説明図である。本図に示すように、統合アプリケーション110は、操作系サブシステム201と、管理系サブシステム202と、実行系サブシステム203とを有する。
操作系サブシステム201は、マンマシンインタフェースを担当するソフトウェア群である。具体的には、この操作系サブシステム201は、ユーザの要求を受け付ける処理と、この要求の実行を指示する処理と、この要求の実行状況と実行結果についての情報をユーザに提供する処理をおこなう。
管理系サブシステム202は、複合機1の資源を管理するソフトウェア群である。具体的には、この管理系サブシステム202は、ハードウェアリソース151およびこのハードウェアリソース151が保持するデータ状態を管理するサービスをおこなう。
実行系サブシステム203は、ユーザからの要求の実行を担当するソフトウェア群である。具体的には、この実行系サブシステム203は、コピー要求がなされた場合には、原稿の読み取りから成果物の出力までの処理をおこなう。
操作系サブシステム201、管理系サブシステム202および実行系サブシステム203は、必要に応じて相互に処理を依頼してその結果を送り合う。このようにそれぞれのサブシステムが協調し合って、統合アプリケーション110全体として複合機1に必要とされるサービスの提供をおこなう。
そして、管理系サブシステム202は、本実施の形態の特徴部分である認証管理部211を有する。この認証管理部211は、操作系サブシステム201から利用者の認証に関する要求又は複合機1で機能を実行する際に利用者が機能を実行できるか否かの要求を受け付け、利用者に関する認証を行い、機能が実行できる場合にその旨を実行系サブシステム203に出力する。
図6は、図5に示した各サブシステムを、UML(Unified Modeling Language)のクラス図(UMLクラス図)に置き換えた図である。ここで、UMLとは、OMG(Object Management Group)が仕様を策定しているシステムモデリング言語であり、モデリングの成果を記述する記法を定義したものである。このUMLは、オブジェクト指向によるソフトウェアの設計において広く用いられている。
図6に示すように、統合アプリケーション110は複数のパッケージを有し、また、この統合アプリケーション110自体もひとつのパッケージとなっている。ここで、パッケージとはUMLモデルの各構成要素(シンボル)をグループ化したものであり、このパッケージは、左上にタブのついたフォルダ型のシンボルで表現される。また、各パッケージを相互に結ぶ直線は、各パッケージ間に処理依頼などの関連があることを示している。
図6に示したように、統合アプリケーション110は、操作系サブシステム201、管理系サブシステム202および実行系サブシステム203の3つのパッケージを内部に有するパッケージである。さらに、管理系サブシステム202は、認証管理部211のパッケージを内部に有するパッケージである。そして、操作系サブシステム201、管理系サブシステム202および実行系サブシステム203を相互に結ぶ直線は、各パッケージ間にメッセージ送受信などの関連があることを示している。なお、操作系サブシステム201、管理系サブシステム202および実行系サブシステム203のタブの右端に記された記号は、かかるパッケージがサブシステムであることを示すUMLのシンボルである。
そして、本実施の形態の特徴部分である認証管理部211について詳細に説明する。なお、この認証管理部211は、オブジェクト指向に基づいて設計するにあたって、既存の処理を単純にオブジェクト化せず、機能追加や改修をより一層容易におこなうことができるようにオブジェクトモデルを構成した。
図7は、本実施の形態の特徴部分である認証管理部211で行われる処理の概念を示した概念図である。概念としては遊園地のような場所を想定している。本図に示すように「ゲート」は制限されていない「利用者」に限り入場させる。利用者の入場を制限する場合としては入場者数が最大入場者数を超えた場合などが考えられる。
そして、入場した利用者はゲート内部の施設(本発明の装置においては「機能」)を使用することが出来る。施設を使用する際に、「利用者」は「チケット発行所」に、本人であることを証明する「身分証」を提示する。「チケット発行所」は提示された「身分証」と、予め保持している「名簿」を対比して確認し、正当な「利用者」であると確認できた場合に「チケット」が発行される。このチケットは使用できる施設と対応しており、対応していない施設については使用することが出来ない。つまり「チケット」を提示することで対応する施設(本発明の装置においては「機能」)が使用できることになる。また、「チケット」は、「身分証」で保証された地位に基づいて発行されることになる。つまり、「身分証」で保証された地位が高ければ、より多くの施設が使用することができる。あるいは「身分証」で保証された地位の種類に応じて異なる施設が使用できることになる。
具体的な例としては、ゲート内部に施設A、B、Cがあるとする。そして、利用者が身分証を提示して、チケットA及びチケットBが発行された場合、利用者は、チケットAに対応する施設AとチケットBに対応する施設Bを使用することができる。しかし、施設Cは対応するチケットCが発行されなかったので使用することが出来ない。
かかるモデルを認証管理部211に当てはめると次のようになる。すなわち、使用できる利用者のみログインを許可する「ゲート」が設置されている。そして、「ゲート」から入場した利用者であり、機能を使用する際に認証される「被認証者」が存在する。そして「被認証者」が本人であることを証明するために「身分証」を保持する。そして「被認証者」は、「身分証」による照合が正当である場合に発行される「チケット」を「身分証」と対応付けて保持する。そして「チケット発行所」は、「身分証」を提示した場合に、予め保持している「アカウント」を用いて本人であることが証明されたか否か確認し、確認できた場合に「チケット」を発行する。さらに「チケット発行所」は「身分証」により施設を使用できるか否か、予め保持している「アカウント」で確認を行う。
また、これらのクラスは大別すると3つの構成に分かれる。つまり、利用者が機能を使用できるか否かを管理する機能制限部と、利用者について予め登録された情報を保持し、個人証明による照合を行う登録情報管理部と、利用者及び利用者が保持している情報を管理する利用者機能管理部と、から構成されている。そして、機能制限部は「ゲート」を保持し、登録情報管理部は「チケット発行所」及び「アカウント」を保持し、利用者機能管理部は「被認証者」、「身分証」及び「チケット」を保持する。これらの構成及びクラスの説明については後述する。
また、利用者が複数の「身分証」を保持することも考えられる。現代社会においても、利用者が身分証として提示できるものは「免許証」、「社員証」及び「保険証」などのように複数存在し、使用する施設や乗り物に適した身分証を提示する必要がある。そこで、「被認証者」は「身分証」を複数保持することを可能にし、提示された「身分証」の種類に対応して異なる「チケット」が発行されることとする。
図8は、利用者が複数保持した身分証のうち任意の身分証を提示した場合にチケットが発行されるまでの処理の概念を示した概念図である。本図に示すように、ケース(1)として身分証Iを提示した場合では、チケット発行所で照合が行われた後にチケットA及びチケットBが発行されることになる。そして、ケース(2)として身分証IIを提示した場合では、チケット発行所で照合が行われた後にチケットCが発行されることになる。このように身分証に応じて異なる種類のチケットが発行される。このため、本発明の認証管理部211では、同一利用者に対して複数のセキュリティレベルが設定できることになり、信頼性が向上する。
そして、上述したオブジェクトモデリングにより設計された認証管理部211で身分証という概念を用いて利用者の個人証明の照合を行う。利用者の個人証明とは、例えば利用者本人であることの証明を示し、より具体的な例としては「社員証」や「住民証」等が考えられる。
本実施の形態では、ログイン方法、つまりユーザIDとパスワードを入力してログインするのか、印刷した枚数をカウントするキーカウンターを差し込んだのか、ICカードをカードリーダに読み込ませてログインしたのか、又はコインラックに硬貨を投入したのか等により生成される身分証が異なることとする。また、ユーザIDとパスワードでログインした後、さらにキーカウンターを差し込むことで同一利用者が複数の身分証を保持することもある。具体的な例としては、ユーザIDとパスワードでログインする場合、操作系サブシステム201が、操作パネル400又はクライアントPCからの利用者のユーザID及びパスワードの入力を受け付ける。そして、操作系サブシステム201がユーザID及びパスワードの入力を受け付けた場合、管理系サブシステム202の認証管理部211に出力し、ユーザID及びパスワードの入力を示すユーザコードという身分証が生成される。
図9は、上述したオブジェクトモデリングにより設計された認証管理部211のブロック構成、及びクラス構成をUMLのクラスで示した図である。本図に示すように、認証管理部211は、機能制限部910と、登録情報管理部920と、利用者機能管理部930とを備えている。これにより、機能制限部910で操作系サブシステム201から入力を受け付け、登録情報管理部920で個人証明の照合が行われた場合、利用者機能管理部930が、利用者が機能できることを証明することで、利用者本人であることが証明された場合に、機能を実行するという制御が可能になる。
そして、機能制限部910は、機能を使用する際に利用者が入る(ログインする)ことを管理するゲートクラス911を備える。
また、登録情報管理部920は、本発明の利用者情報管理手段に相当し、利用者名と識別情報を対応付けて管理して利用者の照合を行うアカウントクラス922と、利用者から利用者本人であることを証明する身分証の提示を受け付けて機能を使用できることが確認できた場合にチケットを発行するチケット発行所クラス921と、を備える。
また、利用者機能管理部930は、利用者及びこの利用者に対応した個人証明を管理して、登録情報管理部920に対してチケットの発行の要求を行う利用者証明管理部931と、登録情報管理部920より発行されたチケットを管理する利用可能機能管理部932と、を備える。そして、利用者証明管理部931は、認証される対象となる利用者を示す被認証者クラス934と、利用者が保持する身分証を示し、チケット発行所クラス921に対してチケット発行の要求を行う身分証クラス933と、を備える。また、利用可能機能管理部932は、対応する機能が実行できることを証明するチケットクラス935を備える。なお、身分は利用者個人の社会的な地位や資格をいう以上、個人であることの証明である個人証明に含まれる概念となる。
各クラスを示す矩形は3段の区画を有し、上から、クラス名を示す名前区画、クラスが有するデータ(属性)を示す属性区画およびクラスが有する処理(操作)を示す操作区画と呼ばれる。たとえば、チケットクラス935を示す矩形の名前区画は、かかるクラスのクラス名が「チケット」であることを示し、属性区画は、かかるクラスが有する属性が、「機能種類」であることを示し、操作区画は、かかるクラスが有する操作が、「有効かどうか判断する」であることを示している。
このように、各クラスは、データ(属性)を所持するための属性区画と、かかる属性の書き込みおよび読み出しをおこなう処理(操作)を所持するための操作区画とを有している。これらのクラスは、プログラム(統合アプリケーション110)の一部として含まれるので、あらかじめROM12aに格納されたこのプログラムが実行されると、各クラスはRAM12bの所定領域に実体化され、属性区画に含まれる各データ(属性)がRAM12b上に展開される。したがって、クラスを実体化したオブジェクトは、RAM12b上の各データ(属性)の書き込みおよび読み出しをすることが可能となる。
なお、属性や操作といったクラスの要素の左側に「−」記号を付した場合は、かかる要素は外部のクラスには非公開であることを示し、「+」記号を付した場合は、かかる要素は外部のクラスに公開されていることを示す。また、操作については「変更()」のように「()」記号を付することが通例であり、「(引数1,引数2)」のように、かかる操作に引き渡す引数を記述する場合もある。
次に、図9に示した本実施の形態の特徴部分である認証管理部211が備える各クラスについて説明する。
ゲートクラス911は、複合機1を利用するユーザのログイン数を管理し、ゲートクラス911が有する最大認証者数より現在のログイン数が多いか否かにより、ユーザからのログイン要求を受け付けるか否か判断する。そして、ログイン要求を受け付けた場合は、ゲートオブジェクト911Aがログイン要求を受け付けたユーザに対応する被認証者オブジェクト934Aを生成する。さらに、ゲートオブジェクト911Aは、操作系サブシステム201から機能を使用できるか否か確認を要求された場合、被認証者クラス934に問い合わせる。具体的には、このゲートクラス911は、属性として最大認証者数911aと、制限範囲911bと、入場方法911cとを有し、操作として、入る()911dと、入場者を確認する()911eとを有する。なお、かかるゲートクラス911を実体化したオブジェクトが生成されると、最大認証者数911aと、制限範囲911bと、入場方法911cはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
最大認証者数911aは、複合機1に同時にログインすることが出来る利用者の数を保持する。
制限範囲911bと、入場方法911cは、機能と認証に用いた身分証とを対応付けて保持する。図10は、制限範囲911bと入場方法911cとの対応関係を示した図である。本図に示すように、制限範囲として、複合機1が保持する機能が示され、入場方法には利用者が認証に用いることが出来る身分証が示されている。制限範囲911bと、入場方法911cとを対応付けて保持することで、利用者の機能の使用を制限することができる。また、ゲートクラス911と、チケット発行所クラス921は、図9の点線矢印で示したような依存関係にあり、チケット発行所クラス921からゲートクラス911の機能として、制限範囲911bと入場方法911cの対応関係を呼び出すことができる。また、制限範囲911bと入場方法911cとの対応関係では、機能毎の入場方法だけでなく、複合機1全体に対する入場方法も保持する。
図9に戻り、入る()911dは、操作系サブシステム201から利用者のログイン要求を受け付けて、被認証者オブジェクト934Aを生成し、利用者の認証を被認証者オブジェクト934Aに要求する。また、入る()911dは、引数として後述する被認証者オブジェクト934Aに設定される情報や身分証オブジェクト933Aに設定される情報等を受け渡され、利用者の認証を行う際に用いる。
入場者を確認する()911eは、操作系サブシステム201から、ログインした利用者からの機能を使用する要求をゲートオブジェクト911Aが受け付けた場合に、機能を使用する要求を行った利用者に対応する被認証者オブジェクト934Aに機能を使用する権利があるか確認を要求する。
被認証者クラス934は、本発明の利用者手段に相当し、ログインを要求してゲートオブジェクト911Aから入場することが出来た利用者を特定する情報を管理し、利用者が行う認証や機能を実行する際に行われる確認等を制御する。具体的には、被認証者クラス934は、属性として、利用者名934a、状態934bを有し、操作として、認証を行う()934cと、認証状態を確認する()934dとを有している。なお、かかる被認証者クラス934を実体化したオブジェクトが生成されると、利用者名934aはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
利用者名934aは、ログインを要求した利用者の利用者名を保持する。利用者名934aとしては、例えばログインする要求と共に入力処理されたユーザID等とする。後述する認証を行う()934cで呼び出された際に、引数として保持する情報から利用者名934aが設定される。また、利用者名934aは、ユーザIDに制限するものではない。例えば、複合機1に接続して利用した回数を保持するキーカウンターや、硬貨を入れて複合機1を利用するコインラック等の場合、利用者名934aとしては‘Guest’や‘Free’が設定される。
状態934bは、機能を使用する要求に対して、使用する要求を行った利用者が本物か否か確認に必要な状態934bを保持する。本実施の形態では、入力装置となる利用者のログインした操作パネル400又はPC等の情報を保持することで、本物か否か確認する。
図11は、利用者が複合機1にログインする際に操作パネル400に表示される画面の一例を示した図である。本図に示した画面が表示された後、利用者はログインするためにユーザ名及びパスワードが入力した後、‘ログイン’ボタン1102を押下する。これにより操作系サブシステム201がアカウント名及びパスワードを入力処理し、ゲートオブジェクト911Aが被認証者オブジェクト934Aを生成して、ユーザIDとパスワード、そして操作パネル400から入力された旨が被認証者オブジェクト934Aに入力される。そして、被認証者オブジェクト934Aが保持する利用者名934aにユーザIDが設定され、状態934bに操作パネル400からログインした旨が設定される。そしてパスワードについては生成される身分証オブジェクト933Aで保持することになる。
認証を行う()934cは、ゲートオブジェクト911Aから、利用者のログイン要求を受け付けた際に呼び出される。また、認証を行う()934cが呼び出された場合、引数として利用者名934aとして設定される情報や、後述する身分証オブジェクト933Aに設定される情報等から、利用者名934aを設定し、さらに身分証オブジェクト933Aを生成して、身分証オブジェクト933Aの身元確認する()933cを呼び出す。
認証状態を確認する()934dは、ゲートオブジェクト911Aから利用者が機能を使用する際に行われる認証要求として呼び出され、機能を使用する旨を入力した入力装置と状態934bが保持する情報が一致するか否か判断し、一致した場合に利用者が本物であると判断し、後述する身分証オブジェクト933Aに対して機能を使用できるか否か確認を要求する。
身分証クラス933は、本発明の個人証明情報手段に相当し、利用者本人であることを証明する際に用いられる情報を管理する。本実施の形態では利用者本人であることを証明する際に用いられる情報を認証情報933bとする。そして身分証クラス933は、後述するチケット発行所クラス921に対して上述した情報を用いて利用者の身元を証明し、チケットオブジェクト935Aの発行を要求し、発行されたチケットオブジェクト935Aを管理する。具体的には、身分証クラス933は、属性として、身分種類933aと、認証情報933bとを有し、操作として、身元確認する()933cと、チケットを受け取る()933dと、権利を確認する()933eとを有している。なお、かかる身分証クラス933を実体化したオブジェクトが生成されると、身分種類933aと認証情報933bはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
身分種類933aは、利用者のログインした方法を身分証の種類として保持する。また、身分種類933aは、換言すれば個人証明を照合する手段の種類ということになる。身分種類933aの例としては、ユーザコード、キーカウンター、コインラック、キーカード等が考えられる。この身分種類933aは、チケット発行所オブジェクト921Aがチケットを発行する際に使用される。キーカードとはカードリーダにカードを読み込ませてログインを行った場合を示す。身分種類933aを保持することで、同一の被認証者オブジェクト934Aと対応付けられた複数の身分証オブジェクト933Aを生成することを可能とする。
認証情報933bは、利用者の身元を証明する際に用いられる情報を保持する。また認証情報933bは、身分種類933aにより設定される情報が異なり、例えばユーザコードの場合、利用者にログイン時に入力されたパスワードが設定される。また、キーカウンターあるいはコインラックの場合は、予め定められた文字列、例えば‘Guest’あるいは‘Free’等が設定される。キーカードではカードのROMに予め記憶していた暗号鍵などとする。
身元確認する()933cは、被認証者オブジェクト934Aから呼び出され、認証情報933bを用いた身元の確認することとして、チケット発行所クラス921にチケットの発行を要求する。また、身元を確認する()933cは、引数として利用者名934a及び身元を証明する際に用いられる情報を受け取り、身元を証明する際に用いられる情報を認証情報933bとして設定する。
チケットを受け取る()933dは、後述するチケット発行所クラス921から生成されたチケットオブジェクト935Aを受け取り、身分証オブジェクト933Aと対応付けて保持する。
権利を確認する()933eは、被認証者オブジェクト934Aから呼び出され、利用者が機能を使用する権利が有するか機能に対応するチケットオブジェクト935Aに有効かどうか判断を要求する。また、利用者が使用する機能に対応したチケットオブジェクト935Aが生成されていない場合は、利用者は機能を使用する権利が無い旨のメッセージを被認証者オブジェクト934Aに送信する。また、チケットオブジェクト935Aから、有効であるとのメッセージを受信した場合、身分証オブジェクト933Aは、利用者が機能を使用する権利がある旨のメッセージを被認証者オブジェクト934Aに送信する。
図12は、利用者が実行を要求した機能を使用する権利がない場合に液晶タッチパネル420上に表示される画面の一例を示した図である。本図に示すように、利用者に使用する権利を有していない旨1201を表示することで、利用者に機能を使用する権限を有していないことを認識させることができる。
チケット発行所クラス921は、身分証クラス933からチケット発行の要求を受け付け、利用者の身元を確認した場合にチケットオブジェクト935Aを生成する。また、チケット発行所クラス921は、ゲートクラス911と依存関係にあるため、ゲートクラス911の機能を呼び出すことができる。具体的には、チケット発行所クラス921は、操作として、発行を要求する()921aを有している。
発行を要求する()921aは、身分証クラス933から呼び出され、アカウントクラス922に呼び出した身分証クラス933と対応付けられた利用者の照合を要求し、照合により身元を確認できた場合にチケットオブジェクト935Aを生成し、身分証オブジェクト933Aと対応付ける。また、発行を要求する()921aは、引数として利用者名、認証情報及び身分種類を受け取り、利用者名と認証情報を照合するためにアカウントクラスに受け渡す。そして、アカウントクラスから身元が確認できた旨を受け取った場合、ゲートオブジェクト911Aの機能を呼び出して、制限範囲911bと入場方法911cの対応関係から受け取った身分種類で使用することが可能な機能を特定し、特定された機能に対応したチケットを発行する。
アカウントクラス922は、チケット発行所クラス921から利用者の照合を受け付け、照合した結果をチケット発行所クラス921に送信する。具体的には、アカウントクラス922は、属性として、利用者名922aと、識別情報922bとを属性として有し、操作として、照合する()922cを有している。なお、かかるアカウントクラス922を実体化したオブジェクトが生成されると、利用者名922aと識別情報922bはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
利用者名922aは、複合機1の機能を使用することができる利用者の利用者名を保持し、識別情報922bは、利用者名922aの利用者であることを証明する情報を保持する。また、利用者名922a及び識別情報922bは、キーカウンターあるいはコインラックを示すものとして予め定められた文字列、例えば‘Guest’あるいは‘Free’が設定されている。
照合する()922cは、チケット発行所クラス921から呼び出され、利用者の照合を行う。具体的には、チケット発行所クラス921から呼び出された際に、照合する()922cは、引数として受け取った利用者名及び認証情報が、属性として有する利用者名922aと識別情報922bと一致するか否か判断する。そして、一致すると判断した場合は、チケット発行所クラス921に対して、身元が確認できた旨を送信する。一致しないと判断した場合は、チケット発行所クラス921に対して、身元が確認できなかった旨を送信する。
チケットクラス935は、本発明の許可情報手段に相当し、チケット発行所クラス921で身元が確認できた場合に生成され、操作系サブシステム201から機能を使用する要求があった場合、要求が有効かどうか判断して結果を送信する処理を行う。具体的には、属性として、機能種類935aと、有効期限935bとを有し、操作として、有効かどうか判断する()935cを有している。なお、かかるチケットクラス935を実体化したオブジェクトが生成されると、機能種類935aはRAM12b上に展開されるので、これらのデータ(属性)の書き込みおよび読み出しをすることが可能となる。
機能種類935aは、身分証クラス933において使用することができる機能の種類を保持する。具体的には、チケット発行所クラス921でチケットオブジェクト935Aが生成された際に、呼び出されたゲートクラス911の制限範囲911bと入場方法911cの対応関係より、身分証クラス933の身分種類933aで使用することができる機能の種類が設定されることになる。機能種類935aを保持することで、チケットオブジェクト935Aを機能毎に生成することを可能とする。
詳細な例としては、身分証クラス933の身分種類933aがキーカードであった場合、図9で示した制限範囲911bと入場方法911cの対応関係より、コピーとスキャナとDocBoxの機能を使用することができることになる。そこで、チケット発行所クラス921がチケットオブジェクト935Aを生成する際、チケットオブジェクト935Aが3つ生成され、生成されたチケットオブジェクト935A毎に、コピー、スキャナ、DocBoxが設定される。
有効期限935bは、生成されたチケットオブジェクト935Aを使用することが可能な有効期限を保持する。この有効期限935bは、チケット発行所クラス921でチケットオブジェクト935Aが生成された際に生成された時間から予め定められた有効時間後を設定する。予め定められた有効時間は、利用者が使用していると考えられる時間として適した時間を設定する。
有効かどうか判断する()935cは、身分証オブジェクト933Aから呼び出され、チケットオブジェクト935Aが有効かどうか判断する。具体的には、身分証オブジェクト933Aが、利用者が使用を要求した機能に対応したチケットオブジェクト935Aが有効かどうか判断する()935cを呼び出す。そして、有効かどうか判断する()935cが呼び出された場合、属性として有する有効期限935bを経過しているか否か確認する。有効かどうか判断する()935cが、有効期限935bを経過していると判断した場合、有効では無い旨を身分証オブジェクト933Aに送信する。また、有効期限935b内と判断した場合、有効である旨を身分証オブジェクト933Aに送信する。
次に、図9に示した各クラス間の関係について説明する。本図に示したように、各クラスを示す矩形を結ぶ直線は、その両端のクラス間に関係があることを表しており、この直線の両端付近の文字はクラスの役割を、数字はクラスの多重度をそれぞれ示している。ここで、役割とは、かかる直線の両端における、一方のクラスからみた、もう一方のクラスの役割や立場のことであり、多重度とは、かかる直線の両端のクラスから生成されるオブジェクト数の対応関係のことである。
たとえば、ゲートクラス911からみた被認証者クラス934の役割は「利用者」であり、被認証者クラス934からみたゲートクラス911の役割は「制限場所」であり、ゲートクラス911の多重度は「1」であり、被認証者クラス934の多重度は「0..*」である。ここで、「0..*」は、かかる被認証者クラス934の多重度が、0から上限数なしの範囲であることを示している。また、たとえば、「1..3」の記載をした場合には、かかるクラスの多重度が、1〜3の範囲であることを示す。
まず、ゲートクラス911と被認証者クラス934とのクラス関係について説明する。ゲートクラス911は、被認証者クラス934からみると複合機1に対して機能を使用しようとしている利用者が入ることを制限する制限場所としての役割を有しており、一方、被認証者クラス934は、ゲートクラス911からみると入ることができた利用者としての役割を有している。このようなクラス関係によりゲートクラス911から生成された被認証者オブジェクト934Aからの要求に応じて身元を確認し、確認された場合に複合機1の機能を使用することが可能となる。
そして、本図に示したように、認証管理部211が実行される場面において、ゲートクラス911をRAM12b上に展開(実体化)したオブジェクトは1個だけ存在し、このゲートクラス911よりログインを認められた利用者毎に生成される被認証者クラス934を実体化したオブジェクトは0個以上、上限数なしの範囲で存在する。
なお、ゲートクラス911を実体化したオブジェクトを複数個とせずに1個とし、複合機1の操作系サブシステム201からのログイン要求についての処理を一括して管理する。また、被認証者クラス934を実体化したオブジェクト数が0個とは、複合機1に対して利用者がログインしていない状態を示しており、また、かかるオブジェクト数の上限数は規定していないものの、当然に、ハードウェア仕様などによる制限を受けるものとする。
次に、被認証者クラス934と身分証クラス933との関係について説明する。被認証者クラス934は、認証方法毎に複数の身分証クラス933を保持し、身分証クラス933毎にチケットの発行を要求することができる。このため、被認証者クラス934と、身分証クラス933は、「保持者」と「身元証明」という関係をなしている。
また、被認証者オブジェクト934Aは、ログイン要求を受け付けた利用者毎に生成される。そして、1個の被認証者オブジェクト934Aは、認証方法毎に1以上複数の身分証オブジェクト933Aを管理する。つまり、身分証オブジェクト933Aは、1個の被認証者オブジェクト934Aに対して1個以上n個以下の範囲で存在する。なお、1個以上としたのはログイン要求時に被認証者オブジェクト934Aと共に身分証オブジェクト933Aが生成されるためである。身分証オブジェクト933Aが1個以上生成される例としては、利用者がユーザコードでログインした後、さらにキーカウンターを複合機1に差し込んだ場合等が考えられる。
次に、ゲートクラス911とチケット発行所クラス921との関係について説明する。ゲートクラス911は、ゲートからログインした利用者に対して機能を使用するためにチケットを発行するチケット発行所クラス921まで案内する。また、チケット発行所クラス921は、ゲート内部に0又は1つ設置されている。このため、ゲートクラス911と、チケット発行所クラス921は、「案内元」と「案内先」という関係をなしている。なお、上述したように、ゲートクラス911とチケット発行所クラス921との間には依存関係が成立している。
また、ゲートクラス911から生成されたオブジェクトは、複合機1内部に1個だけ存在し、チケット発行所オブジェクト921Aはゲートオブジェクト911Aの案内先として0又は1個だけ存在する。なお、チケット発行所オブジェクト921Aが0個の場合とは、例えばチケットが発行されなくても利用者が機能を使用することが出来る場合とする。
次に、身分証クラス933とチケット発行所クラス921との関係について説明する。チケット発行所クラス921は、身元が確認できた身分証クラス933毎にチケットを発行する。このため、身分証クラス933と、チケット発行所クラス921は、「証明証」と「証明場所」という関係をなしている。
また、チケット発行所オブジェクト921Aは、複合機1の内部に0又は1個だけ存在し、身分証オブジェクト933Aは、複合機1にログインした複数の利用者毎が複数保持することが出来る。つまり、チケット発行所オブジェクト921Aは、1個の身分証オブジェクト933Aに対して0又は1個の範囲で存在する。これに対して、身分証オブジェクト933Aは、1個のチケット発行所オブジェクト921Aに対して、0個以上n個以下の範囲で存在する。
次に、チケット発行所クラス921と、アカウントクラス922との関係について説明する。チケット発行所クラス921は、利用者毎の身元の確認を可能にするために、アカウントクラス922を各利用者の身元の確認方法毎に保持している。このため、チケット発行所クラス921と、アカウントクラス922は、「保管場所」と「保管物」という関係をなしている。
また、チケット発行所オブジェクト921Aは、複合機1の内部に0又は1個だけ存在し、アカウントオブジェクト922Aは、身元の確認方法として複数保持されている。つまり、チケット発行所オブジェクト921Aは、1個のアカウントオブジェクト922Aに対して1個存在する。これに対して、アカウントオブジェクト922Aは、1個のチケット発行所オブジェクト921Aに対して0個以上n個以下の範囲で存在する。
次に、身分証クラス933とチケットクラス935との関係について説明する。身分証クラス933は、利用者が行った身元の確認方法毎に生成されている。チケットクラス935は身分証クラス933で利用者が使用することが可能な機能毎に生成される。このため、身分証クラス933と、チケットクラス935は、「利用者」と「利用権」という関係をなしている。
また、身分証オブジェクト933Aは、利用者が行った身元確認方法毎に存在し、チケットオブジェクト935Aは、身元確認方法により使用することが認められる機能毎に生成される。つまり、身分証オブジェクト933Aは、1個のチケットオブジェクト935Aに対して1個存在する。これに対して、チケットオブジェクト935Aは、1個の身分証オブジェクト933Aに対して0個以上n個以下の範囲で存在する。
このように、ゲートクラス911、被認証者クラス934、身分証クラス933、チケット発行所クラス921、アカウントクラス922及びチケットクラス935の各オブジェクトは、相互に関連し合い、協調することにより認証管理部211に必要な機能を実現することが可能となる。
次に、図9に示した各クラスの操作の実行手順について例をあげて説明する。図13は、認証管理部211が利用者からのログインの要求を受け付けた際にチケットを発行するまでの操作の実行手順を示すUMLシーケンス図である。
ここで、UMLシーケンス図について説明しておく。図13の上部に並んだ矩形は、それぞれがクラスのオブジェクトを示している。各オブジェクトから下方に伸びた線は、各オブジェクトが生存していることを示す線(ライフライン)であり、上方から下方に向かって時間が流れているものとみなされる。この線上に存在する細長い矩形は、当該のオブジェクトが実際に活動している期間(活性期間)を示す。
各ライフラインの間を結ぶ横向きの矢印は、オブジェクトに含まれる操作の実行を示す。具体的には、この矢印は、矢印の元のオブジェクトが、矢印の先のオブジェクトに含まれる操作を呼び出すことを示す。また、矢印が自分自身のオブジェクトを指している場合は、オブジェクトが自分に含まれる操作を自身で呼び出すことを意味する。
図13に示すように、利用者が複合機1を操作して、ログイン要求として利用者名及び認証情報を入力する。入力される利用者名及び認証情報は、利用者が行った身元の確認方法毎に異なる。例えば身元の確認方法毎がユーザコードの場合は、利用者名としてユーザコード、認証情報としてパスワードとなる(ステップS1301)。そして、操作系サブシステム201がゲートオブジェクト911Aの入る()911dを呼び出して、利用者のログインを要求する(ステップS1302)。そして、ゲートオブジェクト911Aは、ログイン要求を受け付けた場合、最大認証者数911aを超えるか否か判断する(ステップS1303)。最大認証者数911aを超えないと判断した場合に、ゲートオブジェクト911Aは、ログイン要求を行った利用者に対応付けて被認証者オブジェクト934Aを生成する。また、生成は、すべてのオブジェクトが有する操作であり、生成することで各オブジェクトはRAM12b上に実体化される。また、最大認証者数911aを超えると判断した場合は、ログイン要求を受けられないため処理を終了する。
被認証者オブジェクト934Aを生成した場合、ゲートオブジェクト911Aは、被認証者オブジェクト934Aの認証を行う()934cを呼び出して、ログインを要求した利用者の認証を要求する(ステップS1304)。この際、利用者名、認証情報、及び身元の確認方法などが引数として受け渡される。そして、受け渡された利用者名が、被認証者オブジェクト934Aの利用者名934aに設定される。
次に、被認証者オブジェクト934Aは、利用者の認証を要求された場合、身分証オブジェクト933Aを生成し、生成された身分証オブジェクト933Aの身元確認する()933cを呼び出し、利用者の身元の確認を要求する(ステップS1305)。この際、認証情報、身元の確認方法及び利用者名などが引数として受け渡される。そして、受け渡された身元の確認方法に対応した身分種類が身分証オブジェクト933Aの身分種類933aに設定され、受け渡された認証情報が認証情報933bに設定される。なお、身分証オブジェクト933Aは、受け渡された身元の確認方法毎に生成される。
次に、身分証オブジェクト933Aは、身元の確認が要求された場合、チケットオブジェクト935Aの発行を要求する()921aを呼び出して、身分証オブジェクト933Aに対応したチケットの発行を要求する(ステップS1306)。この際、利用者名、認証情報、身分種類が引数として受け渡される。
そして、チケット発行所オブジェクト921Aは、チケットの発行を受け付けた場合、引数として受け渡された利用者名等の情報に対応したアカウントオブジェクト922Aに対して、照合する()922cを呼び出して、利用者が機能を使用することが出来るか否か照合を要求する(ステップS1307)。この際、利用者名、認証情報が引数として受け渡される。
次に、アカウントオブジェクト922Aは、照合を要求された場合、受け渡された利用者名及び認証情報と、属性として有する利用者名922a及び識別情報922bとを比較し一致するか否か照合を行う(ステップS1308)。一致した場合は、身元が確認できた旨をチケット発行所オブジェクト921Aに送信する。一致しなかった場合は、チケットを発行せずに終了する。
そして、身元が確認できた旨を受信したチケット発行所オブジェクト921Aは、ゲートオブジェクト911Aの機能を呼び出して、受け取った身分種類で使用することができる機能を特定する(ステップS1309)。そして、チケット発行所オブジェクト921Aは、特定した機能毎にチケットオブジェクト935Aを生成し、特定した機能に応じた機能種類935aを設定する(ステップS1310)。
そして、チケット発行所オブジェクト921Aは、チケットオブジェクト935Aを生成した後に、身分証オブジェクト933Aのチケットを受け取る()933dを呼び出して、生成されたチケットオブジェクト935Aと、チケットの発行の要求を行った身分証オブジェクト933Aを対応付ける(ステップS1311)。そして、身分証オブジェクト933Aに対応したチケットオブジェクト935Aが発行されたものとして、処理を終了する。
上述したシーケンス図で示したように、本実施の形態では、利用者からログインを要求を受け付けた際の処理を行うにあたり、ゲートクラス911と、被認証者クラス934と、身分証クラス933と、チケット発行所クラス921と、アカウントクラス922と、チケットクラス935とから構成され、各クラスから生成されたオブジェクトでログイン要求からチケットの発行まで処理することで、ログイン要求を行った利用者が保持する身元の確認方法毎に適した機能の使用が許可されることになり、信頼性が向上する。また、オブジェクト指向設計により、かかる認証管理部211の仕組みを構築し、図7で示したような概念に基づいてオブジェクトモデリングをおこない、ログイン要求に必要なクラスとしてゲートクラス911と、被認証者クラス934と、身分証クラス933と、チケット発行所クラス921と、アカウントクラス922と、チケットクラス935を用いることで、かかる認証管理部211を実現したので、ソフトウェア開発者やソフトウェア保守要員が、認証管理部の構成と役割を容易に把握することができるとともに、汎用性及び信頼性の高い利用者の認証処理をおこなうことができる。
次に、図8に示した各クラスの操作の実行手順についてもう一つの例をあげて説明する。図14は、認証管理部211が利用者から機能の実行の要求を受け付けた際の操作の実行手順を示すUMLシーケンス図である。
図14に示すように、利用者が複合機1を操作して、複合機1が有する所定の機能を実行する入力を行うと、操作系サブシステム201が所定の機能を利用する要求を受け付ける(ステップS1401)。そして操作系サブシステム201がゲートオブジェクト911Aの入場者を確認する()911eを呼び出して、機能を利用する要求と共に機能の利用を要求した利用者が機能を使用する権利があるか確認を要求する(ステップS1402)。なお、入場者を確認する()911eの引数として、利用者が利用を要求した機能の情報や、入力を行った入力装置を特定する情報を受け渡す必要がある。
そして、ゲートオブジェクト911Aは、被認証者オブジェクト934Aに対して、認証状態を確認する()934dを呼び出して、利用者の認証状態の確認を要求する(ステップS1403)。なお、認証情報を確認する()934cの引数として、利用者が利用を要求した機能の情報や、入力を行った入力装置を特定する情報を受け渡す必要がある。
次に、被認証者オブジェクト934Aは、認証状態の確認を要求された場合、設定された状態934bを用いて機能の使用を要求した利用者が本物か否か確認する(ステップS1404)。利用者が本物と確認できなかった場合は、処理を終了する。
そして、被認証者オブジェクト934Aは、利用者が本物だと確認した場合、身分証オブジェクト933Aの権利を確認する()933eを呼び出して、利用者が機能を利用する権利があるかどうか確認を要求する(ステップS1405)。また、身分証オブジェクト933Aが複数存在する場合、それぞれに対して確認を要求する。なお、権利を確認する()933eの引数として、利用者が利用を要求した機能の情報を受け渡す必要がある。
そして、身分証オブジェクト933Aが、チケットオブジェクト935Aの有効かどうか判断する()935cを呼び出して、チケットが有効かどうか確認を要求する(ステップS1406)。また、チケットオブジェクト935Aが複数存在する場合、それぞれに対して確認を要求する。
次に、チケットオブジェクト935Aは、利用者が利用を要求した機能と機能種類935aが一致するか否か確認する(ステップS1407)。そして、有効期限935bを経過しているか否か確認する(ステップS1408)。チケットオブジェクト935Aは、機能が一致しない場合または現在すでに有効期限935bを経過している場合に、有効で無い旨を身分証オブジェクト933Aに送信する。また、チケットオブジェクト935Aは、機能が一致し且つ現在既に有効期限935bを経過していない場合に有効である旨を身分証オブジェクト933Aに送信する。
そして、身分証オブジェクト933Aは、有効である旨を受信した場合に権利を有している旨を被認証者オブジェクト934Aに送信し、有効で無い旨を受信した場合に権利を有していない旨を被認証者オブジェクト934Aに送信する。
次に、被認証者オブジェクト934Aは、身分証オブジェクト933Aから権利を有している旨を受信した場合は、ゲートオブジェクト911Aに対して、機能を利用できる状態である旨を送信する。権利を有している旨を受信できなかった場合は、機能を使用する権利が無かったものとして処理を終了する。なお、複数の身分証オブジェクト933Aが生成されていた場合は、いずれか1つから権利を有している旨を受信していればよい。
そして、ゲートオブジェクト911Aは、被認証者オブジェクト934Aから機能を利用できる状態である旨を受信した場合、操作系サブシステム201に対して、利用者が要求した機能を実行できる旨を送信する(ステップS1409)。そして、操作系サブシステム201は、利用確認要求処理が終了したとして、実行系サブシステム203に対して機能の実行を要求する。
上述したシーケンス図で示したように、本実施の形態では、機能を使用する要求があった場合の処理にあたり、ゲートクラス911と、被認証者クラス934と、身分証クラス933と、チケットクラス935とから構成され、各クラスから生成されたオブジェクトで機能の利用の要求を受け付けてから、利用者が機能を利用する権利を有しているか否か確認し、権利を有している場合に実行系サブシステム203に機能を実行する旨を送信する。これにより身元を確認するために生成された身分証オブジェクト933Aに対応付けられたチケットオブジェクト935Aを用いて、利用者が機能を使用できるか否か確認できるので、複数の身元確認方法に応じて機能の実行を制御できるので、信頼性が向上する。また、オブジェクト指向設計により、かかる認証管理部の仕組みを構築し、図7で示したような概念に基づいてオブジェクトモデリングをおこない、機能を実行できる権利を有するか確認するために必要なクラスとしてゲートクラス911と、被認証者クラス934と、身分証クラス933と、チケットクラス935を用いることで、かかる認証管理部211を実現したので、ソフトウェア開発者やソフトウェア保守要員が、認証管理部の構成と役割を容易に把握することができるとともに、汎用性及び信頼性の高い利用者の認証処理をおこなうことができる。
なお、本実施の形態の画像形成装置で実行される認証管理プログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disc Read Only Memory)、フレキシブルディスク(FD)、CD−R(CD Recordable)、DVD(Digital Versatile Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供するよう構成してもよい。この場合、CPU11が上記記憶媒体から、認証管理プログラムを読み出してMEM−P12上にロードすることで、画像形成装置に、上述した各ステップ、各手段または各部を実現させる。
また、認証管理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するよう構成してもよい。さらに、かかる認証管理プログラムをインターネットなどのネットワーク経由で提供または配布するようにしてもよい。
上述した構成は、本発明の利用者認証装置の一例を示したものであり、上述した構成に制限するものではない。
そして、本実施の形態の認証管理部211は、オブジェクト毎に分割して設計し、上述した構成を備えることとした。これにより変更が生じた場合そのクラス等のみ変更を加えればよい。このため、従来は要件が増えた場合には設計者の作業量もこれに比例していたが、上述した構成を備えたことで作業量が低減される。
また、従来の認証管理を行う部分は、アプリケーション毎に設計されていたが、上述した構成を備えたことでアプリケーション毎という概念が無くなったため、設計の効率が向上した。さらにアプリケーション毎に利用者の認証を行う場合では、同一システムに同一利用者がアプリケーション毎に認証されることとなり、あるアプリケーションを使用している際には、他の利用者がログインした利用者になりすましてシステムを使用できるという問題があった。しかし、本実施の形態にかかる認証管理部211は、上述した構成を備えることでアプリケーション毎という概念が無くなったため、なりすまして使用できるという問題を解消し、信頼性が向上した。
上述した構成を備えることで、アプリケーションに相当する機能が追加された場合でも、新たに認証を行う部分を設計する必要なく、ゲートクラス911の制限範囲911bと入場方法911c、及びチケットクラス935の機能種類935aに追加するだけで認証の際の対応が可能となる。これにより新機能追加した場合の作業量が低減することとなる。
この認証管理部211の備えた構造は、実社会において、複数の施設が設置された広場に利用者がゲートから入場し、チケット発行所に利用者本人であることの証明するための身分証を提示することで、発行されたチケットを受け取り、さらにチケットを提示することで施設を利用することが出来る規則に類似している。また、この身分証及びチケットという概念は実社会状長く使用されているため、認証管理でも安定した構造で利用者の機能の利用を管理することができる。また、設計者または利用者は、身分証及びチケットの概念を直感的に把握できるため、設計または使用するまでの認識が容易になる。