(57)【要約】【課題】  ユーザから異なるＵＲＬパスで同じ関数が起動される場合があり、ユーザ毎に許可されている機能が異なる場合には処理を実行してよいかどうかの判断をする必要がある。【解決手段】  Ｗｅｂアプリケーションの画面遷移が変わってＵＲＬパスが変更された場合でも、ＵＲＬパスに対応する処理権限情報を修正することで容易に対応することができる。【選択図】  図５
2007279833.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置（以下、ＣＰＵ）と、そのＣＰＵの動作プログラムを記憶するメモリと、データを表示するディスプレイと、そのネットワークを介して他の機器とデータのやり取りを行うためのネットワークインタフェースとを備えたサーバ装置およびクライアント装置と、データの受け渡しをするためのネットワークと、管理情報を保持するためのデータベースとを有するネットワークシステムにおいて、
前記サーバ装置が、ネットワーク上で接続されたコンピュータ間でデータをやり取りする通信手段と、ユーザから入力された情報でユーザ認証を行う手段と、システムに登録されたユーザ情報を管理する手段と、ユーザをまとめるためのグループ情報を管理する手段と、ユーザとグループを関連付ける情報を管理する手段と、各グループに許可されている処理権限を管理する手段と、クライアントからリクエストされたＵＲＬパスから処理を実行する関数を決定する手段と、そのＵＲＬパスと処理権限を管理する手段と、ユーザが属するグループ情報から取得した処理権限情報とＵＲＬパスから取得した処理権限情報から処理を実行するかどうかを判断する手段とを有することを特徴とするＷｅｂアプリケーションにおけるアクセス権限の管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂアプリケーションにおけるアクセス権限の管理方法に関するものである。
【背景技術】
【０００２】
近年、Ｗｅｂアプリケーションは基幹システムの一角をも担うようになってきており、ますます機能が増えて大規模化してきた。このために、効率よく、かつ堅牢なシステムを構築するには、画面（ＵＩ）を設計するデザイナー、アプリケーションロジックを組み立てるプログラマ、あるいはコンテンツを作成する編集者などのように各専門分野に分業してアプリケーション開発することが必須の要件となってきている。このために、「ＭＶＣ（Ｍｏｄｅｌ、Ｖｉｅｗ、Ｃｏｎｔｒｏｌ）デザインパターン」をベースに設計されたフレームワークを用いてＷｅｂアプリケーションを開発することがますます増えてきている。
【０００３】
また、Ｗｅｂアプリケーションはその重要性が高まるのに比例してセキュリティに関する重要性も高まってきており、クロスサイトスクリプティング脆弱性や不当なアクセスなどの対策がされている。
また、特開２０００−１４８４２５には、Ｗｅｂサービス技術が記載されている。
【特許文献１】特開２０００−１４８４２５
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、ＭＶＣデザインパターンで開発を行っている場合に、ユーザ毎のアクセス権限に関して各開発担当者間で整合性を取ることが難しかったり、また、システム変更があった場合に、容易に対応できなかったりすることがあった。
あるいは、セキュリティ対策を行うための規模が大きくなり、開発工数、負荷費用が増大してきている。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本特許に係る装置は、中央処理装置（以下、ＣＰＵ）と、そのＣＰＵの動作プログラムなどを記憶するメモリと、データを表示するディスプレイと、そのネットワークを介して他の機器とデータのやり取りを行うためのネットワークインタフェースとを備えたサーバ装置およびクライアント装置と、データの受け渡しなどをするためのネットワークと、管理情報を保持するためのデータベースとを有するネットワークシステムにおいて、前記サーバ装置がネットワーク上で接続されたコンピュータ間でデータをやり取りする通信手段と、ユーザから入力された情報でユーザ認証を行う手段と、システムに登録されたユーザ情報を管理する手段と、ユーザをまとめるためのグループ情報を管理する手段と、ユーザとグループを関連付ける情報を管理する手段と、各グループに許可されている処理権限を管理する手段と、クライアントからリクエストされたＵＲＬパスから処理を実行する関数を決定する手段と、そのＵＲＬパスと処理権限を管理する手段と、ユーザが属するグループ情報から取得した処理権限情報とＵＲＬパスから取得した処理権限情報から処理を実行するかどうかを判断する手段とを有することを特徴とする。
【発明の効果】
【０００６】
Ｗｅｂアプリケーションを効率よく開発するためには各機能毎にモジュール化して設計する必要がある。ただし、この場合にはユーザから異なるＵＲＬパスで同じ関数が起動される場合があり、ユーザ毎に許可されている機能が異なる場合には処理を実行してよいかどうかの判断をする必要がある。これに対して以上説明したように、ユーザ毎の処理権限情報とブラウザから指示するＵＲＬパスに対応する処理権限情報を別管理して、それぞれの管理情報から処理権限情報をチェックすることで処理を実行するかどうかを判断することができる。また、別々に管理していることによって、例えば、Ｗｅｂアプリケーションの画面遷移が変わってＵＲＬパスが変更された場合でも、ＵＲＬパスに対応する処理権限情報を修正することで容易に対応することができる。
【発明を実施するための最良の形態】
【０００７】
以下に、図１〜図１０を参照して、本発明に係る装置の一実施形態について説明する。まず、図１は本発明に係るシステムの構成図である。
【０００８】
１０１および１０２はクライアントＰＣであり、システム管理者が新規データファイルを登録したり、ユーザ管理情報修正などのシステムメンテナンス処理を行ったり、あるいはユーザが商品検索、商品情報出力などの指示を行ったりするものである。１０３はネットワーク上で共有されている画像データを読み込むスキャナであり、クライアントＰＣからの指示に従ってカタログの画像データなどを読み込む。
【０００９】
１０４はネットワーク上で共有されているプリンタであり、クライアントＰＣからの指示に従って、商品情報あるいはカタログデータなどを出力する。
【００１０】
１０５、１１１はローカルエリアネットワーク（ＬＡＮ）であり、このネットワークに接続している機器１０１から１０５はこのＬＡＮを介して他の機器とデータのやり取りを行う。１０７はインターネットであり、１０６はこのインターネットに直接に接続されたクライアントＰＣである。１０１、１０２とは接続形態が異なるが、同様の目的で使用される。
【００１１】
１０８はネットワークを介してクライアントＰＣからＨＴＴＰプロトコルできたリクエストを受け取るＨＴＴＰサーバである。１０９はＷｅｂアプリケーションサーバである。ＨＴＴＰサーバにはいくつかのＷｅｂアプリケーションサーバが登録されており、クライアントＰＣからのリクエスト内容に従ってＨＴＴＰサーバは処理を適切なＷｅｂアプリケーションサーバに割り振る。また、リクエストを受け取ったＷｅｂアプリケーションサーバは処理を実行してその処理結果をクライアントへ返信する。１１０はデータベースであり、カタログデータ、画像データなどのコンテンツデータ情報や、商品情報などのテキスト情報、およびユーザ／グループ情報、登録データファイルの処理情報などのシステム情報を記録する。
【００１２】
これらのようにＨＴＴＰサーバ１０８、ＷＥＢアプリケーションサーバ１０９、データベース１１０と有機的に組み合わさってＷＥＢデータベースシステムとして機能する。
【００１３】
次に、図２は本発明に係る装置の構成を説明するブロック図である。
１はシステム・バスであり、これから説明する各構成ブロックはこのシステム・バスに接続されている。２はＣＰＵ（Ｃｅｎｔｒｔａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。３はプログラム・メモリ（ＰＭＥＭと称す）で、本処理のためのプログラムを適宜ハード・ディスク１０から選択／読込みし、２のＣＰＵにて実行する。又、キーボード１２から入力されたデータはテキスト・メモリでもあるＰＭＥＭにコード情報として格納される。４は、通制御部であり、５の通信ポートに於ける入出力データの制御を行う。通信ポート５から出力された信号は、通信回線６を経由して、ネットワーク上の他の装置の通信ポートに伝えられる。ネットワーク上で共有されているプリンタや、画像読み取り装置とのやり取りは、この通信制御部４を介して行われる。
【００１４】
また、本実施例ではＬＡＮなどのネットワークに関して記述するが、この通信制御部に接続される通信ポート及び通信回線が一般の公衆回線であっても本発明が適応されることは言うまでもない。
【００１５】
８は外部記憶装置制御部、９、１０はデータファイル用のディスクで、例えば９は、フロッピー（登録商標）・ディスク（ＦＤと称す）であり、１０はハード・ディスク（ＨＤと称す）である。
【００１６】
１１は入力制御部であり、１２のキーボード、１３のマウス等の入力装置が接続される。操作者はこのキーボード１１を操作することによりシステムの動作指令等を行う。
【００１７】
また１３は１６のＣＲＴ上で画像情報を加工指示するためのポインティング・デバイス（ＰＤと称す）で本実施例ではマウスを使用している。これによりＣＲＴ１６上のカーソルをＸ，Ｙ方向任意に移動してコマンドメニュー上のコマンド・アイコンを選択して処理の指示を行なうほか編集対象の指示、描画位置の指示等もおこなう。１４はビデオ・イメージ・メモリ（ＶＲＡＭと称す）、１５は表示出力制御部、１６はＣＲＴである。１６のＣＲＴに表示されるデータは１１のＶＲＡＭ上にビットマップデータとして展開されている。１７は、プリンタ制御部であり、接続されているプリンタ１８に対するデータの出力制御を行う。
【００１８】
１Ａは、画像読み取り装置制御部であり、接続されている画像読み取り機器１Ｂの制御を行う。本発明に於ける、画像読み取りサーバ装置には、１Ａ、１Ｂの構成要素が必須であるが、クライアント側装置では、前述のように、通信制御部４、及び通信ポート５を介してサーバ側の共有されている同構成要素を使用することができる。
【００１９】
更に、図１の構成は、画像読み取り機器と画像読み取り装置が物理的に別々のコンポーネントであっても、画像読み取り装置が、画像読み取り機器を含む１つのコンポーネントであっても同様な機能を有することとする。
【００２０】
なお、本実施例でＲＯＭに記憶しているプログラムは、装置に直接接続されているハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）などの記憶媒体にも記憶されていてもよい。さらに、ネットワークで接続されている他の装置上に記憶されていてもよい。また、本発明のプログラムは、ＦＤやＨＤなどの記憶媒体やネットワークを介してシステムや装置に供給できる。
【００２１】
さらに、図３は本発明に係るモジュール構成を説明するブロック図である。
３０１はクライアントＰＣである。３０２はデータのやり取りを行うネットワーク、３０３はＨＴＴＰサーバである。
【００２２】
さらに、３０４がＷｅｂアプリケーションサーバであり、ＨＴＴＰサーバから受け取ったクライアントＰＣからのリクエストを処理するための関数（モジュール）３０５が記憶されている。対応している機能としては、ユーザ認証、検索処理、商品情報出力、ユーザ管理、グループ管理、データメンテナンス機能などがある。これらのモジュールはクライアントからのリクエストに応じてメモリ上にロードされ、処理を実行する。
【００２３】
また、これらのモジュールとは別に、ＰＤＦファイル、ビットマップファイルなどの画像編集を行う画像編集モジュール、データファイルに対して結合、分割などの編集処理を行うファイル編集モジュール３０６がある。さらに、データベース３０９とのデータのやり取りを行うためのライブラリ３０７や各種ユーティリティライブラリ３０８がある。
【実施例】
【００２４】
上記本発明に係るシステムの一実施形態について図４を参照してさらに説明する。図４に、本発明の指定された処理を実行するフローチャートの一例を示す。
【００２５】
まず、ステップＳ１０１でユーザがクライアントＰＣからアカウントとパスワードでログイン処理を実行したのに対して認証処理を行う。この際、認証方法はアカウントとパスワード以外でもなんら問題はない。ここで、処理を実行することが許されていなかった場合にはステップＳ１０６に進み、エラー画面をクライアントＰＣに送信する。実行することが許されていた場合にはステップＳ１０２に進む。
【００２６】
ステップＳ１０２では、指定されたパスが正しいかどうかを判断する。ここで、パスが正しくなかった場合にはステップＳ１０６に進み、エラー画面をクライアントＰＣに送信する。パスが正しかった場合にはステップＳ１０３に進み、指定されたパスから処理を実行するための関数を決定してステップＳ１０４に進む。
【００２７】
図６は本発明のＷｅｂアプリケーションにおける画面繊維の一例である。この例は、車とバイクを販売している会社におけるＷｅｂアプリケーションである。データベースには、車およびバイクの各種情報が記憶されており、それらのデータを車、バイクのそれぞれの分野毎に検索を行うことができる。一方、データベースに登録されている車とバイク情報をメンテナンスする機能も提供しており、メンテナンス時にもデータ検索する機能がある。
【００２８】
６０１から６１１はこのＷｅｂアプリケーションの画面遷移を表している。６０１はメニュ画面を表示するためのＵＲＬパスである。この画面には、メンテナンス機能とデータ出力機能があり、それぞれ６０２、６０３のＵＲＬパスで実行される。６０４は車情報をメンテナンスするためのＵＲＬパスで車データ検索機能６０５がある。同様に、６０６はバイク情報のメンテナンス機能のＵＲＬパス、６０７はバイクデータ検索機能のＵＲＬパスである。更に、データ出力機能に関しても同様に６０８は車情報出力、６０９は車情報出力時のデータ検索、６１０はバイク情報出力、６１１はバイク情報出力時のデータ検索のＵＲＬパスである。
【００２９】
図７は本発明のＵＲＬパスと処理権限を管理するテーブルの一例である。図６で示したＵＲＬパスとこのＷｅｂアプリケーションが提供する機能を実行するための処理権限を管理している。７０１がＵＲＬパス、７０２が処理権限である。例えば、バイク情報出力する際にデータ検索する処理権限は「２２」となる。
【００３０】
さらに、図８は本発明のＵＲＬパスと処理実行関数を管理するテーブルの一例である。図６で示したＵＲＬパスとこのＷｅｂアプリケーションが提供する機能を実行するための関数を管理している。８０１がＵＲＬパス、８０２が実行関数である。例えば、バイク情報出力するための実行関数は「ｏｕｔｐｕｔ＿ｂｉｋｅ」となる。
【００３１】
ステップＳ１０４では、決定された関数を実行する権限があるかどうかを判断する。ここで、処理を実行することが許されていなかった場合にはステップＳ１０６に進み、エラー画面をクライアントＰＣに送信する。処理を実行する権限があった場合にはステップＳ１０５に進み、処理を実行する。さらに、ステップＳ１０７に進んで処理を実行した結果画面をクライアントＰＣに送信して終了する。
【００３２】
ここで、図５は本発明の処理権限をチェックするフローチャートの一例である。この図を用いて図４のステップＳ１０４における処理権限チェック方法について説明する。
【００３３】
まず、ステップＳ２０１でリクエストしてきたユーザに関して登録情報を再度チェックする。ここで、ユーザ情報が正しくない場合にはステップＳ２０７に進み、処理を実行する権限がないことを返す。ユーザ情報が正しい場合にはステップＳ２０２に進む。
【００３４】
ステップＳ２０２では図７に示した管理情報を用いて、リクエストされたＵＲＬパスに対応する処理権限情報を取得する。例えば、バイク情報出力する際にデータ検索する処理権限は「２２」となる。
次にステップＳ２０３でユーザが所属するグループ情報を取得する。
【００３５】
ここで図９は本発明のユーザ名とグループ名を管理するテーブルの一例である。９０１はユーザ名、９０２は所属するグループ名である。例えば、ユーザ「柿本」は「管理者グループ」に所属する。
さらにステップＳ２０４で所属するグループに与えられている処理権限情報を取得する。
【００３６】
図１０は本発明のグループ名と処理権限を管理するテーブルの一例である。１００１がグループ名、１００２が処理権限である。例えば、「管理者グループ」は「１０」、「２０」、「２１」、「２２」、「５０」、「５１」、「５２」の処理権限が与えられている。
【００３７】
ステップＳ２０５では、ステップＳ２０２およびステップＳ２０４で取得した処理権限情報から指定された処理を実行する権限があるかどうかを判断する。ここで、処理を実行することが許されていなかった場合にはステップＳ２０７に進み、処理を実行する権限がないことを返す。処理を実行する権限があった場合には、ステップＳ２０６に進み、処理を実行する権限があることを返して終了する。例えば、ユーザ「柿本」がバイク情報出力する際のデータ検索をＵＲＬパス「／Ｏｕｔｐｕｔ／ｂｉｋｅ／ｓｅａｒｃｈ」で指示してきた場合を考える。このとき、ＵＲＬパスから実行する関数は「ｓｅａｒｃｈ」となる。また、バイク情報出力する際にデータ検索する処理権限は「２２」である。ユーザ「柿本」は「管理者グループ」に所属していて、「管理者グループ」は。「２２」の処理権限があるので処理を実行する権限ありが返される。
【００３８】
同様の指示をユーザ「徳永」が行った場合を考える。実行する関数はユーザ「柿本」の場合と同様に「ｓｅａｒｃｈ」、処理権限は「２２」となす。しかし、ユーザ「徳永」は「車販売グループ」に属しており、「車販売グループ」には処理権限「２２」は付与されていないので処理を実行できないとなる。
【００３９】
このように、データ検索を実行するための「ｓｅａｒｃｈ」関数を実行する場合でも、処理権限の異なるユーザ毎に処理を実行するかどうかを設定することができる。
【００４０】
（他の実施形態）
本実施形態におけ各図に示す処理が、外部からインストールされるプログラムによって、各装置のそれぞれにより遂行される。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
【００４１】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ（図示省略）からダウンロードすることで、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００４２】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。
【００４３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４４】
【図１】本発明の一実施例の概略構成を示すシステム構成図である。
【図２】本発明の一実施例の装置構成を説明するブロック図である。
【図３】本発明の一実施例のモジュール構成を説明するブロック図である。
【図４】本発明の指定された処理を実行するフローチャートの一例である。
【図５】本発明の処理権限をチェックするフローチャートの一例である。
【図６】本発明のＷｅｂアプリケーションにおける画面繊維の一例である。
【図７】本発明のＵＲＬパスと処理権限を管理するテーブルの一例である。
【図８】本発明のＵＲＬパスと処理実行関数を管理するテーブルの一例である。
【図９】本発明のユーザ名とグループ名を管理するテーブルの一例である。
【図１０】本発明のグループ名と処理権限を管理するテーブルの一例である。
【図１】
2007279833.tif 000003
【図２】
2007279833.tif 000004
【図３】
2007279833.tif 000005
【図４】
2007279833.tif 000006
【図５】
2007279833.tif 000007
【図６】
2007279833.tif 000008
【図７】
2007279833.tif 000009
【図８】
2007279833.tif 000010
【図９】
2007279833.tif 000011
【図１０】
2007279833.tif 000012