説明

Webアプリケーションにおけるアクセス権限の管理方法

【課題】 ユーザから異なるURLパスで同じ関数が起動される場合があり、ユーザ毎に許可されている機能が異なる場合には処理を実行してよいかどうかの判断をする必要がある。
【解決手段】 Webアプリケーションの画面遷移が変わってURLパスが変更された場合でも、URLパスに対応する処理権限情報を修正することで容易に対応することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Webアプリケーションにおけるアクセス権限の管理方法に関するものである。
【背景技術】
【0002】
近年、Webアプリケーションは基幹システムの一角をも担うようになってきており、ますます機能が増えて大規模化してきた。このために、効率よく、かつ堅牢なシステムを構築するには、画面(UI)を設計するデザイナー、アプリケーションロジックを組み立てるプログラマ、あるいはコンテンツを作成する編集者などのように各専門分野に分業してアプリケーション開発することが必須の要件となってきている。このために、「MVC(Model、View、Control)デザインパターン」をベースに設計されたフレームワークを用いてWebアプリケーションを開発することがますます増えてきている。
【0003】
また、Webアプリケーションはその重要性が高まるのに比例してセキュリティに関する重要性も高まってきており、クロスサイトスクリプティング脆弱性や不当なアクセスなどの対策がされている。
また、特開2000−148425には、Webサービス技術が記載されている。
【特許文献1】特開2000−148425
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、MVCデザインパターンで開発を行っている場合に、ユーザ毎のアクセス権限に関して各開発担当者間で整合性を取ることが難しかったり、また、システム変更があった場合に、容易に対応できなかったりすることがあった。
あるいは、セキュリティ対策を行うための規模が大きくなり、開発工数、負荷費用が増大してきている。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本特許に係る装置は、中央処理装置(以下、CPU)と、そのCPUの動作プログラムなどを記憶するメモリと、データを表示するディスプレイと、そのネットワークを介して他の機器とデータのやり取りを行うためのネットワークインタフェースとを備えたサーバ装置およびクライアント装置と、データの受け渡しなどをするためのネットワークと、管理情報を保持するためのデータベースとを有するネットワークシステムにおいて、前記サーバ装置がネットワーク上で接続されたコンピュータ間でデータをやり取りする通信手段と、ユーザから入力された情報でユーザ認証を行う手段と、システムに登録されたユーザ情報を管理する手段と、ユーザをまとめるためのグループ情報を管理する手段と、ユーザとグループを関連付ける情報を管理する手段と、各グループに許可されている処理権限を管理する手段と、クライアントからリクエストされたURLパスから処理を実行する関数を決定する手段と、そのURLパスと処理権限を管理する手段と、ユーザが属するグループ情報から取得した処理権限情報とURLパスから取得した処理権限情報から処理を実行するかどうかを判断する手段とを有することを特徴とする。
【発明の効果】
【0006】
Webアプリケーションを効率よく開発するためには各機能毎にモジュール化して設計する必要がある。ただし、この場合にはユーザから異なるURLパスで同じ関数が起動される場合があり、ユーザ毎に許可されている機能が異なる場合には処理を実行してよいかどうかの判断をする必要がある。これに対して以上説明したように、ユーザ毎の処理権限情報とブラウザから指示するURLパスに対応する処理権限情報を別管理して、それぞれの管理情報から処理権限情報をチェックすることで処理を実行するかどうかを判断することができる。また、別々に管理していることによって、例えば、Webアプリケーションの画面遷移が変わってURLパスが変更された場合でも、URLパスに対応する処理権限情報を修正することで容易に対応することができる。
【発明を実施するための最良の形態】
【0007】
以下に、図1〜図10を参照して、本発明に係る装置の一実施形態について説明する。まず、図1は本発明に係るシステムの構成図である。
【0008】
101および102はクライアントPCであり、システム管理者が新規データファイルを登録したり、ユーザ管理情報修正などのシステムメンテナンス処理を行ったり、あるいはユーザが商品検索、商品情報出力などの指示を行ったりするものである。103はネットワーク上で共有されている画像データを読み込むスキャナであり、クライアントPCからの指示に従ってカタログの画像データなどを読み込む。
【0009】
104はネットワーク上で共有されているプリンタであり、クライアントPCからの指示に従って、商品情報あるいはカタログデータなどを出力する。
【0010】
105、111はローカルエリアネットワーク(LAN)であり、このネットワークに接続している機器101から105はこのLANを介して他の機器とデータのやり取りを行う。107はインターネットであり、106はこのインターネットに直接に接続されたクライアントPCである。101、102とは接続形態が異なるが、同様の目的で使用される。
【0011】
108はネットワークを介してクライアントPCからHTTPプロトコルできたリクエストを受け取るHTTPサーバである。109はWebアプリケーションサーバである。HTTPサーバにはいくつかのWebアプリケーションサーバが登録されており、クライアントPCからのリクエスト内容に従ってHTTPサーバは処理を適切なWebアプリケーションサーバに割り振る。また、リクエストを受け取ったWebアプリケーションサーバは処理を実行してその処理結果をクライアントへ返信する。110はデータベースであり、カタログデータ、画像データなどのコンテンツデータ情報や、商品情報などのテキスト情報、およびユーザ/グループ情報、登録データファイルの処理情報などのシステム情報を記録する。
【0012】
これらのようにHTTPサーバ108、WEBアプリケーションサーバ109、データベース110と有機的に組み合わさってWEBデータベースシステムとして機能する。
【0013】
次に、図2は本発明に係る装置の構成を説明するブロック図である。
1はシステム・バスであり、これから説明する各構成ブロックはこのシステム・バスに接続されている。2はCPU(Centrtal Processing Unit)である。3はプログラム・メモリ(PMEMと称す)で、本処理のためのプログラムを適宜ハード・ディスク10から選択/読込みし、2のCPUにて実行する。又、キーボード12から入力されたデータはテキスト・メモリでもあるPMEMにコード情報として格納される。4は、通制御部であり、5の通信ポートに於ける入出力データの制御を行う。通信ポート5から出力された信号は、通信回線6を経由して、ネットワーク上の他の装置の通信ポートに伝えられる。ネットワーク上で共有されているプリンタや、画像読み取り装置とのやり取りは、この通信制御部4を介して行われる。
【0014】
また、本実施例ではLANなどのネットワークに関して記述するが、この通信制御部に接続される通信ポート及び通信回線が一般の公衆回線であっても本発明が適応されることは言うまでもない。
【0015】
8は外部記憶装置制御部、9、10はデータファイル用のディスクで、例えば9は、フロッピー(登録商標)・ディスク(FDと称す)であり、10はハード・ディスク(HDと称す)である。
【0016】
11は入力制御部であり、12のキーボード、13のマウス等の入力装置が接続される。操作者はこのキーボード11を操作することによりシステムの動作指令等を行う。
【0017】
また13は16のCRT上で画像情報を加工指示するためのポインティング・デバイス(PDと称す)で本実施例ではマウスを使用している。これによりCRT16上のカーソルをX,Y方向任意に移動してコマンドメニュー上のコマンド・アイコンを選択して処理の指示を行なうほか編集対象の指示、描画位置の指示等もおこなう。14はビデオ・イメージ・メモリ(VRAMと称す)、15は表示出力制御部、16はCRTである。16のCRTに表示されるデータは11のVRAM上にビットマップデータとして展開されている。17は、プリンタ制御部であり、接続されているプリンタ18に対するデータの出力制御を行う。
【0018】
1Aは、画像読み取り装置制御部であり、接続されている画像読み取り機器1Bの制御を行う。本発明に於ける、画像読み取りサーバ装置には、1A、1Bの構成要素が必須であるが、クライアント側装置では、前述のように、通信制御部4、及び通信ポート5を介してサーバ側の共有されている同構成要素を使用することができる。
【0019】
更に、図1の構成は、画像読み取り機器と画像読み取り装置が物理的に別々のコンポーネントであっても、画像読み取り装置が、画像読み取り機器を含む1つのコンポーネントであっても同様な機能を有することとする。
【0020】
なお、本実施例でROMに記憶しているプログラムは、装置に直接接続されているハードディスク(HD)やフロッピー(登録商標)ディスク(FD)などの記憶媒体にも記憶されていてもよい。さらに、ネットワークで接続されている他の装置上に記憶されていてもよい。また、本発明のプログラムは、FDやHDなどの記憶媒体やネットワークを介してシステムや装置に供給できる。
【0021】
さらに、図3は本発明に係るモジュール構成を説明するブロック図である。
301はクライアントPCである。302はデータのやり取りを行うネットワーク、303はHTTPサーバである。
【0022】
さらに、304がWebアプリケーションサーバであり、HTTPサーバから受け取ったクライアントPCからのリクエストを処理するための関数(モジュール)305が記憶されている。対応している機能としては、ユーザ認証、検索処理、商品情報出力、ユーザ管理、グループ管理、データメンテナンス機能などがある。これらのモジュールはクライアントからのリクエストに応じてメモリ上にロードされ、処理を実行する。
【0023】
また、これらのモジュールとは別に、PDFファイル、ビットマップファイルなどの画像編集を行う画像編集モジュール、データファイルに対して結合、分割などの編集処理を行うファイル編集モジュール306がある。さらに、データベース309とのデータのやり取りを行うためのライブラリ307や各種ユーティリティライブラリ308がある。
【実施例】
【0024】
上記本発明に係るシステムの一実施形態について図4を参照してさらに説明する。図4に、本発明の指定された処理を実行するフローチャートの一例を示す。
【0025】
まず、ステップS101でユーザがクライアントPCからアカウントとパスワードでログイン処理を実行したのに対して認証処理を行う。この際、認証方法はアカウントとパスワード以外でもなんら問題はない。ここで、処理を実行することが許されていなかった場合にはステップS106に進み、エラー画面をクライアントPCに送信する。実行することが許されていた場合にはステップS102に進む。
【0026】
ステップS102では、指定されたパスが正しいかどうかを判断する。ここで、パスが正しくなかった場合にはステップS106に進み、エラー画面をクライアントPCに送信する。パスが正しかった場合にはステップS103に進み、指定されたパスから処理を実行するための関数を決定してステップS104に進む。
【0027】
図6は本発明のWebアプリケーションにおける画面繊維の一例である。この例は、車とバイクを販売している会社におけるWebアプリケーションである。データベースには、車およびバイクの各種情報が記憶されており、それらのデータを車、バイクのそれぞれの分野毎に検索を行うことができる。一方、データベースに登録されている車とバイク情報をメンテナンスする機能も提供しており、メンテナンス時にもデータ検索する機能がある。
【0028】
601から611はこのWebアプリケーションの画面遷移を表している。601はメニュ画面を表示するためのURLパスである。この画面には、メンテナンス機能とデータ出力機能があり、それぞれ602、603のURLパスで実行される。604は車情報をメンテナンスするためのURLパスで車データ検索機能605がある。同様に、606はバイク情報のメンテナンス機能のURLパス、607はバイクデータ検索機能のURLパスである。更に、データ出力機能に関しても同様に608は車情報出力、609は車情報出力時のデータ検索、610はバイク情報出力、611はバイク情報出力時のデータ検索のURLパスである。
【0029】
図7は本発明のURLパスと処理権限を管理するテーブルの一例である。図6で示したURLパスとこのWebアプリケーションが提供する機能を実行するための処理権限を管理している。701がURLパス、702が処理権限である。例えば、バイク情報出力する際にデータ検索する処理権限は「22」となる。
【0030】
さらに、図8は本発明のURLパスと処理実行関数を管理するテーブルの一例である。図6で示したURLパスとこのWebアプリケーションが提供する機能を実行するための関数を管理している。801がURLパス、802が実行関数である。例えば、バイク情報出力するための実行関数は「output_bike」となる。
【0031】
ステップS104では、決定された関数を実行する権限があるかどうかを判断する。ここで、処理を実行することが許されていなかった場合にはステップS106に進み、エラー画面をクライアントPCに送信する。処理を実行する権限があった場合にはステップS105に進み、処理を実行する。さらに、ステップS107に進んで処理を実行した結果画面をクライアントPCに送信して終了する。
【0032】
ここで、図5は本発明の処理権限をチェックするフローチャートの一例である。この図を用いて図4のステップS104における処理権限チェック方法について説明する。
【0033】
まず、ステップS201でリクエストしてきたユーザに関して登録情報を再度チェックする。ここで、ユーザ情報が正しくない場合にはステップS207に進み、処理を実行する権限がないことを返す。ユーザ情報が正しい場合にはステップS202に進む。
【0034】
ステップS202では図7に示した管理情報を用いて、リクエストされたURLパスに対応する処理権限情報を取得する。例えば、バイク情報出力する際にデータ検索する処理権限は「22」となる。
次にステップS203でユーザが所属するグループ情報を取得する。
【0035】
ここで図9は本発明のユーザ名とグループ名を管理するテーブルの一例である。901はユーザ名、902は所属するグループ名である。例えば、ユーザ「柿本」は「管理者グループ」に所属する。
さらにステップS204で所属するグループに与えられている処理権限情報を取得する。
【0036】
図10は本発明のグループ名と処理権限を管理するテーブルの一例である。1001がグループ名、1002が処理権限である。例えば、「管理者グループ」は「10」、「20」、「21」、「22」、「50」、「51」、「52」の処理権限が与えられている。
【0037】
ステップS205では、ステップS202およびステップS204で取得した処理権限情報から指定された処理を実行する権限があるかどうかを判断する。ここで、処理を実行することが許されていなかった場合にはステップS207に進み、処理を実行する権限がないことを返す。処理を実行する権限があった場合には、ステップS206に進み、処理を実行する権限があることを返して終了する。例えば、ユーザ「柿本」がバイク情報出力する際のデータ検索をURLパス「/Output/bike/search」で指示してきた場合を考える。このとき、URLパスから実行する関数は「search」となる。また、バイク情報出力する際にデータ検索する処理権限は「22」である。ユーザ「柿本」は「管理者グループ」に所属していて、「管理者グループ」は。「22」の処理権限があるので処理を実行する権限ありが返される。
【0038】
同様の指示をユーザ「徳永」が行った場合を考える。実行する関数はユーザ「柿本」の場合と同様に「search」、処理権限は「22」となす。しかし、ユーザ「徳永」は「車販売グループ」に属しており、「車販売グループ」には処理権限「22」は付与されていないので処理を実行できないとなる。
【0039】
このように、データ検索を実行するための「search」関数を実行する場合でも、処理権限の異なるユーザ毎に処理を実行するかどうかを設定することができる。
【0040】
(他の実施形態)
本実施形態におけ各図に示す処理が、外部からインストールされるプログラムによって、各装置のそれぞれにより遂行される。そして、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
【0041】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ(図示省略)からダウンロードすることで、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0042】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、DVD、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。
【0043】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0044】
【図1】本発明の一実施例の概略構成を示すシステム構成図である。
【図2】本発明の一実施例の装置構成を説明するブロック図である。
【図3】本発明の一実施例のモジュール構成を説明するブロック図である。
【図4】本発明の指定された処理を実行するフローチャートの一例である。
【図5】本発明の処理権限をチェックするフローチャートの一例である。
【図6】本発明のWebアプリケーションにおける画面繊維の一例である。
【図7】本発明のURLパスと処理権限を管理するテーブルの一例である。
【図8】本発明のURLパスと処理実行関数を管理するテーブルの一例である。
【図9】本発明のユーザ名とグループ名を管理するテーブルの一例である。
【図10】本発明のグループ名と処理権限を管理するテーブルの一例である。

【特許請求の範囲】
【請求項1】
中央処理装置(以下、CPU)と、そのCPUの動作プログラムを記憶するメモリと、データを表示するディスプレイと、そのネットワークを介して他の機器とデータのやり取りを行うためのネットワークインタフェースとを備えたサーバ装置およびクライアント装置と、データの受け渡しをするためのネットワークと、管理情報を保持するためのデータベースとを有するネットワークシステムにおいて、
前記サーバ装置が、ネットワーク上で接続されたコンピュータ間でデータをやり取りする通信手段と、ユーザから入力された情報でユーザ認証を行う手段と、システムに登録されたユーザ情報を管理する手段と、ユーザをまとめるためのグループ情報を管理する手段と、ユーザとグループを関連付ける情報を管理する手段と、各グループに許可されている処理権限を管理する手段と、クライアントからリクエストされたURLパスから処理を実行する関数を決定する手段と、そのURLパスと処理権限を管理する手段と、ユーザが属するグループ情報から取得した処理権限情報とURLパスから取得した処理権限情報から処理を実行するかどうかを判断する手段とを有することを特徴とするWebアプリケーションにおけるアクセス権限の管理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate