説明

操作権限管理システム及びプログラム

【課題】権限判定アルゴリズムがプログラム内にハードコーディングされているので、権限情報の修正が容易でない。
【解決手段】処理単位に関する権限情報を格納する領域の識別にポケット番号を使用し、当該ポケット番号を介して、各ユーザに関する権限情報の読み出しを実現する。また、ポケット番号に関連付けて各ユーザの権限情報を管理する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザの操作権限に応じたアプリケーションの利用又は操作を可能とする管理システム及びプログラムに関する。例えばメニュー単位の利用可否や操作ボタン単位の操作可否を簡単に管理できる技術に関する。
【背景技術】
【0002】
Webアプリケーションプログラム等においては、操作ユーザの権限に応じて利用できる機能(メニュー単位)や「ボタン」操作に制限を加える場合がある。この利用制限の可否の判定は、一般に、アプリケーションプログラム自体が行っている。なお、判定時には、操作ユーザの役職、組織、役割(ロール)、グループ情報等をチェックする。
【0003】
例えば図11に示すように、プログラムA1001の初期処理部1002を用いて、操作画面1003の操作権限を管理するものがある。初期処理部1002は、必要に応じて、人事情報データベース10004の役職、組織、役割(ロール)等やグループ管理データベース1005のグループ情報、役割(ロール)等を直接参照し、操作画面1003の操作ユーザがボタンやメニュー等を操作する権限を有しているか否かの確認を実行する。この他、アクセス権限テーブルの利用により、メニューのコマンド操作のみを単純に管理するものがある(特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−15549号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一般に、操作権限のチェックが必要な場合、権限の要件によって、組織情報、役職情報、グループ情報等を参照して利用又は操作権限の有無を判断する必要がある。また、権限の判定に使用するアルゴリズムは、一般に、プログラム内にハードコーディングされている。このため、権限の要件に追加や変更が生じた場合、プログラムの改修が必要になり、容易に変更することができない。また、一時的に操作ユーザに操作権限を付与する場合など対応ができないという問題がある。
【0006】
そこで、本発明は、ユーザの権限の有無を表す情報を、データベースを用いて一元管理する仕組みを提供する。また、本発明は、権限の判定アルゴリズムをルール定義情報ファイルで管理することにより、権限の変更にも容易に対応できる仕組みを提供する。
【課題を解決するための手段】
【0007】
本発明では、処理単位に対する権限の有無を表す情報を格納する領域にポケット番号を付し、当該ポケット番号を介して各ユーザの権限に関する情報の読み出しや管理を実現する。
【発明の効果】
【0008】
本発明により、各ユーザの権限の有無を表す情報のデータベース上での一元管理を実現でき、権限の有無をチェックするアルゴリズムをプログラム本体に記述する必要を無くすことができる。結果的に、権限の有無をチェックするアルゴリズムのカスタマイズを容易に実現できる。
【図面の簡単な説明】
【0009】
【図1】実施の形態に係る操作権限管理システムの構成例を示す図。
【図2】ユーザ管理情報を保持する人事情報ファイルの構成例を示す図。
【図3】項目定義情報を保持する人事情報定義ファイルの構成例を示す図。
【図4】ルール情報を保持するルール定義情報ファイルの構成例を示す図。
【図5】権限情報作成プログラムの処理の概要を示すフローチャート(その1)。
【図6】権限情報作成プログラムの処理の概要を示すフローチャート(その2)。
【図7】操作権限の情報を保持する権限情報データベースの構成例を示す図。
【図8】ポケット番号と権限定義との対応関連を説明する図。
【図9】画面プログラムで実行される処理の概要を示すフローチャート。
【図10】権限情報作成プログラムと入出力ファイルの関係を概要的に説明する図。
【図11】権限チェック方式の従来例を説明する図。
【発明を実施するための形態】
【0010】
以下、図面に基づいて、本発明の実施の形態を説明する。なお、後述する装置構成や処理動作の内容は発明を説明するための一例であり、本発明は、後述する装置構成や処理動作に既知の技術を組み合わせた発明や後述する装置構成や処理動作の一部を既知の技術と置換した発明も包含する。
【0011】
(システム構成)
図1に、実施の形態で使用する操作権限管理システムの構成例を示す。本システムは、権限情報データベース107を利用する画面プログラム101と、権限情報データベース107への取込データとなる権限情報CSVファイル108を作成する権限情報作成プログラム109とで構成される。
【0012】
画面プログラム101は、操作画面104の表示に初期処理部102を使用する。初期処理部102は、権限処理部103を通じて、メニュー105とボタン106に対応するユーザ固有の権限情報(オン(1)/オフ(0))を取得する。基本的に、オン(1)は、権限が「在る」ことを意味し、オフ(0)は、権限が「無い」ことを意味する。権限処理部103は、ユーザIDとポケット番号を指定して、権限情報データベース107から特定のユーザに固有の権限情報を取得する。
【0013】
初期処理部102は、取得した権限情報(オン(1)/オフ(0))に基づいて、メニュー105の利用可否の判定やボタン106の表示/非表示の判定を実行する。なお、メニュー105の表示/非表示を初期処理部102で判定しても良いし、常に表示されたボタン106の操作の可否を初期処理部102で判定しても良い。
【0014】
権限情報作成プログラム109は、人事情報定義解析部110、ルール定義解析部111、人事情報解析部112、ルール判定/出力部113により構成される。人事情報定義解析部110は、人事情報ファイル114を規定する各項目定義の情報(項目ID、属性、出力情報など)を管理する人事情報定義ファイル115を解析する。ルール定義解析部111は、ポケット番号に対応付けられる条件式(1つ又は複数のルール定義で規定される)等を管理するルール定義情報ファイル116を解析する。人事情報解析部112は、人事情報定義ファイル115の形式に従って人事情報ファイル114を解析する。ルール判定/出力部113は、ルール定義解析部111で解析したルール定義と、人事情報解析部112で解析したユーザの人事情報に基づいて、各ポケット番号に対応付けられた条件式の成立の有無を評価し、評価結果を権限情報CSVファイル108として出力する。権限情報データベース107は、各ベンダーが提供するデータベースのインポート処理を使用し、権限情報CSVファイル108からデータベースに必要な権限情報を取り込む。
【0015】
(入出力情報)
次に、画面プログラム101で使用する入力情報について説明する。画面プログラム101は、メニュー105、ボタン106等に対するユーザの操作権限の有無を、権限情報データベース107を利用して判定する。
【0016】
図7に、権限情報データベース107の構造例を示す。権限情報データベース107は、ユーザ単位で権限情報(603−1〜603−n)を格納する。権限情報は、追加情報部601と権限情報部602で構成される。追加情報部601は、人事情報ファイル114で必要な情報を、権限情報データベース107に追加情報として設定する領域である。追加情報の設定は、人事情報定義ファイル115の出力情報に応じて定義する。権限情報部602は、各機能(メニューなど)又は各操作(ボタン項目など)に対して個別に対応する権限情報にポケット番号を設定する。すなわち、ポケット番号には、アプリケーション又はシステムの任意の権限情報が定義される。
【0017】
図8に、ポケット番号と権限定義との対応関係の一例を示す。この実施の形態の場合、図8に示すポケット番号と権限定義の対応関係を記述した対応関係テーブルは、画面プログラム101が参照可能な領域に格納される。対応関係テーブルの記憶領域は任意であるが、例えば画面プログラム101内に記述されていても良い。図8の場合、ポケット番号#1(701)には画面Aを構成する登録ボタンの操作権限が対応付けられており、ポケット番号#2(702)には画面Aを構成する承認ボタンの操作権限が対応付けられている。また、ポケット番号#3(703)には画面Bを構成する受付ボタンの操作権限が対応付けられており、ポケット番号#10(710)にはメンテナンス操作に関する権限が対応付けられている。このように、ポケット番号には、アプリケーション又はシステムの処理単位(利用単位又は操作単位)について関連性が定義される。
【0018】
次に、権限情報作成プログラム109で使用する入出力情報について説明する。権限情報作成プログラム109は、人事情報ファイル114、人事情報定義ファイル115及びルール定義情報ファイル116のデータを入力情報として使用する。人事情報ファイル114は、人事データに関する情報が設定されたCSV形式のファイルである。人事情報ファイル114は、図2に太線矢印で示すように、社員情報を管理する人事管理データベース情報(201−1〜201−n)等の項目から権限の判定に必要な項目を選択的に抜き出した情報であり、項目−1(202−1)〜項目−n(202−n)のように、カンマで区切られたCSV形式のファイルである。本ファイルには、1人のユーザに対して1つのレコードが存在する。
【0019】
図2を用いて説明した各項目(項目−1(202−1)〜項目−n(202−n))の項目定義は、人事情報定義ファイル115で定義する。人事情報定義ファイル115は、図3に示すように、項目ID301、属性302、出力情報303、備考304で構成される。項目ID301は、項目に対する定数名307を定義する。指定した定数名307はルール定義情報ファイル116のルール条件式で使用する。属性302は、項目の値に対する属性を定義する。値の情報が文字属性の場合”C”、数値属性の場合”9”、日付属性の場合”D”を設定する。出力情報303は、ルール判定/出力部113が出力する権限情報CSVファイル108の追加情報部601に出力する出力順を指定する。なお、「0」が指定された場合、追加情報部601に出力しないことを意味する。備考304は、主に項目名称を設定する。
【0020】
ルール定義情報ファイル116は、ポケット番号に対して操作権限の可否を判定するためのルール条件を定義する。ルール定義情報ファイル116は、図4に示すように、ポケット番号401、権限設定値402、ルール定義403で構成される。なお、ルール定義403には、項目ID301、条件子404、判定値405を一組とする定義を、1つのポケット番号に対して複数組指定することができる。
【0021】
ポケット番号401は、操作権限の可否情報を設定する領域番号を指定する。権限設定値402は、ルール定義の条件判定が真のときに、ポケット番号401に設定する値を指定する。ルール定義403は、図3で説明した項目ID301に対して操作権限できる条件を指定する。条件子404は、条件子としてEQ(= Equal),NE(<> Not Equal),LT(< Less Than),LE(<= Less than Equal),GT(> Grater Than),GE(>= Grater than Equal),SR(部分一致 Search)の7種類を指定ができる。判定値405は、項目ID301に対して比較する値を指定する。
【0022】
例えば図4に示すポケット番号#1(406)の場合、ルール定義(1)の項目ID301(SEC:所属コード305)がA01であり、かつ、ルール定義(2)の項目ID301(POS:役職コード306)が50以上の場合、ポケット番号#1に権限設定値402で指定した値(1)が設定されることを意味している。
【0023】
ここで、同一行に記述された複数のルール定義は、各ルール定義のAND(論理積)条件で設定されていることを意味している。一方、1つのポケット番号に対応するルール定義が複数行に記述されている場合(例えば符号407に示すように、ルール定義が2行について記述されている場合)、行単位で定義されたルール定義は、OR(論理和)条件で設定されていることを意味する。
【0024】
(処理動作)
(1) 権限判定処理
図9に、画面プログラム101において実行される処理動作の概要を示す。この実施の形態の場合、画面プログラム101のうち初期処理部102の処理動作は、操作画面104がディスプレイに表示される前に実行される。
【0025】
まず、ステップ801において、初期処理部102は、権限処理部103を使用して、登録ボタンの操作権限を取得する。例えばポケット番号と各機能の対応関係が図8で与えられる場合、権限処理部103は、ユーザIDとポケット番号#1を指定して権限情報取得関数850を呼び出す(ステップ880)。
【0026】
権限情報取得関数850は、権限情報データベース107から該当するユーザIDの権限情報を取得する(ステップ851)。この後、権限情報取得関数850は、該当するポケット番号について登録されている値を取得する(ステップ852)。この処理の終了後、権限情報取得関数850は、呼び出し元である権限処理部103にポケット番号#1に設定されている値を戻す(ステップ881)。なお、権限処理部103は、取得した値を初期処理部102に与える。
【0027】
次に、初期処理部102は、取得した権限情報に基づいて、ユーザが操作権限を有しているか否かを判定する(ステップ802)。操作権限がある場合、初期処理部102は、登録ボタンを操作画面上に表示する(ステップ803)。
【0028】
続くステップ804において、初期処理部102は、権限処理部103を使用して、メンテナンスの操作権限を取得する。例えばポケット番号と各機能の対応関係が図8で与えられる場合、権限処理部103は、ユーザIDとポケット番号#10を指定して権限情報取得関数850を呼び出す(ステップ882)。
【0029】
権限情報取得関数850は、権限情報データベース107から該当するユーザIDの権限情報を取得する(ステップ851)。この後、権限情報取得関数850は、該当するポケット番号#10について登録されている値を取得する(ステップ852)。この処理の終了後、権限情報取得関数850は、呼び出し元である権限処理部103にポケット番号に設定されている値を戻す(ステップ883)。なお、権限処理部103は、取得した値を初期処理部102に与える。
【0030】
初期処理部102は、取得した権限情報に基づいて、ユーザが操作権限を有しているか否かを判定する(ステップ805)。操作権限がある場合、初期処理部102は、メンテナンスメニューを操作画面上に表示する(ステップ806)。
【0031】
このように、各ユーザの権限の有無の判定とメニュー等の表示/非表示は、ポケット番号を通じて実現される。
【0032】
(2) 権限情報作成処理
図5及び図6に、権限情報作成プログラム109において実行される処理動作の概要を示す。
【0033】
職制改正等を原因として人事データベースが更新される場合、日次や月次で、権限情報データベース107の更新が必要となる。この更新動作を、権限情報作成プログラム109が実行する。この実施形態の場合、権限情報作成プログラム109は、スケジューラプログラムを通じて起動される(ステップ501)。スケジューラプログラムには任意のプログラムを適用できる。
【0034】
最初の処理(ステップ502)は、権限情報作成プログラム109の人事情報定義解析部110を通じて実行される。人事情報定義解析部110は、人事定義情報ファイル115を読み込み(ステップ550)、項目ID、属性、出力情報の解析及びエラーチェックを実行する(ステップ503)。この際、読み込まれたデータと共に、解析結果やチェック結果の蓄積処理も実行される。構文エラー等が検出された場合、人事情報定義解析部110は、処理を中止してエラー情報を出力する(ステップ504、517)。
【0035】
構文エラー等が検出されなかった場合、権限情報作成プログラム109の処理は、人事情報定義解析部110からルール定義解析部111に移る。ルール定義解析部111は、ルール定義ファイル116を読み込み(ステップ551)、ポケット番号、権限設定値、ルール定義の解析及びエラーチェックを実行する(ステップ506)。この際、読み込まれたデータと共に、解析結果やチェック結果の蓄積も実行される。構文エラー等が検出された場合、ルール定義解析部111は、処理を中止してエラー情報を出力する(ステップ507、517)。
【0036】
構文エラー等が検出されなかった場合、権限情報作成プログラム109の処理は、ルール定義解析部111から人事情報解析部112に移る。人事情報解析部112は、人事情報ファイル114を1レコード単位で読み込む(ステップ509、552)。そして、人事情報解析部112は、読み込まれた1レコードについて、情報の解析及びエラーチェックを実行する(ステップ510)。この際、読み込まれたデータと共に、解析結果やチェック結果の蓄積も実行される。構文エラー(人事定義情報ファイル115で定義した情報と異なる情報)等が検出された場合、人事情報解析部112は、処理を中止してエラー情報を出力する(ステップ511、517)。
【0037】
構文エラー等が検出されなかった場合、権限情報作成プログラム109の処理は、人事情報解析部112からルール判定/出力部113に移る。ルール判定/出力部113は、ルール定義解析部111で解析したルール定義情報と、人事情報解析部112で解析した人事情報に基づいてルール定義に従った判定処理を実行する(ステップ514)。ポケット番号に対する条件式を評価した結果、ルール定義が真と判定された場合、ルール判定/出力部113は、次のルール定義の評価を実施する(ループ513)。全てのルール定義が真の場合、ルール判定/出力部113は、該当するポケット番号に権限設定値を代入する(ステップ515)。
【0038】
いずれかのルール定義が偽と判定された場合、ルール判定/出力部113は、次のポケット番号についてルール定義の評価を実施する(ループ512)。前述したように、各ポケット番号について全てのルール定義が真の場合、ルール判定/出力部113は、処理対象であるポケットポケット番号に権限設定値を代入する(ステップ515)。
【0039】
全てのポケット番号に対するルール評価が完了した場合、ルール判定/出力部113は、次の人事情報ファイルのレコードを読み込み(ループ508)、前述した手順により読み出されたレコードのポケット番号についてルール定義の評価を実施する。この評価動作は、ルール判定/出力部113が、人事情報ファイル114のEOF(End Of File)まで繰り返し実行される。
【0040】
人事情報ファイル114の全てのファイルについての評価が終了すると、ルール判定/出力部113は、操作権限の情報として権限情報CSVファイル108を出力する(ステップ553)。
【0041】
図10に、以上説明した権限情報作成プログラム109の処理内容を模式的に示す。図10は、人事情報定義ファイル115、ルール定義情報ファイル116及び人事情報ファイル114が権限情報作成プログラム109に対する入力ファイルであり、権限情報CSVファイル108が権限情報作成プログラム109の出力ファイルであるものとして表している。
【0042】
図10の場合、人事情報ファイル114のデータ903のデータは、ユーザID、所属コード及び役職コードのみであるものとする。また、人事情報定義ファイル115のデータ901の項目IDは、ユーザID(:UID)、所属コード(:SEC)、役職コード(:POS)で定義されるものとする。また、データ901の出力情報は、ユーザIDと所属コードを出力対象とするものとする。ルール定義情報ファイル116のデータ902は、ポケット番号#1、#2、#5に対してルール定義を記述しているものとする。
【0043】
この場合、権限情報作成プログラム109は、図5及び図6に示した処理手順に基づいてデータ904に示すデータ構造の権限情報CSVファイルを生成する。例えばユーザID「A001」の場合、ポケット番号#1のルール定義(1)とルール定義(2)の両方について「真」の判定結果が得られる。従って、権限情報CSVファイルのうちユーザID「A001」に対応するポケット番号#1に権限設定値「1」が代入される。その他のポケット番号#2〜#5については、いずれも全てのルール定義について「真」の結果が得られないので権限設定値は「0」のままに維持される。同様に、ユーザID「A002」については、権限情報CSVファイルのうちユーザID「A002」に対応するポケット番号#5だけに権限設定値「1」が代入され、ユーザID「B001」と「B003」には、権限情報CSVファイルのうちユーザID「B001」と「B003」に対応するポケット番号#2だけにそれぞれ権限設定値「1」が代入される。
【0044】
なお、ルール定義情報ファイル116で指定した最大ポケット番号(図10の場合、「5」)の範囲内で未定義のポケット番号905(図10の場合、ポケット番号「3」、「4」)がある場合、権限情報CSVファイル108には「0」が設定される。
【0045】
(まとめ)
以上説明したように、利用単位又は操作単位に関する権限情報を格納する領域を識別する番号(すなわち、ポケット番号)に対して利用又は操作権限の有無を表す情報を関連付けると共に、同ポケット番号に対して利用又は操作権限の判断条件を既定するルール定義を記述することにより、権限チェックのアルゴリズムがプログラム本体に記述されていなくても、権限情報の更新管理と権限に基づいた制御を実現することができる。この結果、一時的に権限を付与する必要がある場合でも、人事データベース等への影響を無くすことなく、権限の有無のチェックに使用するアルゴリズムを自由に変更できる。
【0046】
(他の実施の形態)
前述した実施の形態の場合には、ユーザが利用又は操作権限を有する場合には対応するメニュー105やボタン106を操作画面に表示する場合について説明した。しかしながら、メニュー105やボタン106は基本的に操作画面上に表示し、権限を有しないユーザによるメニュー105やボタン106の操作を無効にしても良い。
【0047】
また、前述した実施の形態においては、ユーザの情報が人事情報である場合について説明した。しかしながら、機能やボタンの利用や操作を、特定の個人やグループを単位として制限する際に参照される情報であれば、各種のユーザ情報に適用できる。
【符号の説明】
【0048】
101…画面プログラム、102…初期処理部、103…権限処理部、104…操作画面、107…権限情報データベース、108…権限情報CSVファイル、109…権限情報作成プログラム、110…人事情報定義解析部、111…ルール定義解析部、112…人事情報解析部、113…ルール判定/出力部、114…人事情報ファイル、115…人事情報定義ファイル、116…ルール定義情報ファイル。

【特許請求の範囲】
【請求項1】
ユーザ毎に規定された処理単位に対する権限の有無を表す情報と、その格納領域を指定するポケット番号とを対応付けて格納する権限情報データベースと、
前記ポケット番号と前記処理単位との対応関係を記述した対応関係テーブルと、
特定のユーザに対する特定の処理単位に対する権限の有無の判定が要求されるとき、ポケット番号と特定のユーザの識別子に基づいて前記権限情報データベースにアクセスし、当該ユーザに対応する権限の有無を表す情報を取得する権限処理部と
を有することを特徴とする操作権限管理システム。
【請求項2】
1つ又は複数のルール定義をポケット番号に対応付けて格納するルール定義情報ファイルと各ユーザの情報とを照合し、ポケット番号に対応付けられている1つ又は複数のルール定義の全てを同時に満たすユーザが検出された場合には、前記権限情報データベースの該当ユーザに対応するポケット番号に所定の権限設定値を反映させるルール判定部
を有することを特徴とする請求項1に記載の操作権限管理システム。
【請求項3】
前記ルール定義情報ファイルは、ポケット番号、権限設定値、項目ID、条件子、判定値で構成され、
前記ルール定義は、項目ID、条件子、判定値で構成される
ことを特徴とする請求項2に記載の操作権限管理システム。
【請求項4】
前記ユーザの情報は、人事情報である
ことを特徴とする請求項3に記載の操作権限管理システム。
【請求項5】
特定のユーザに対する特定の処理単位に対する権限の有無の判定が要求されるとき、
判定対象である処理単位に基づいて、当該処理単位に対する権限の有無を表す情報が格納される領域を特定するポケット番号を対応関係テーブルから読み出す処理と、
読み出されたポケット番号とポケット番号と特定のユーザの識別子に基づいて、処理単位に対する権限の有無を表す情報が格納される領域にそれぞれ固有のポケット番号を対応付けて格納する権限情報データベースにアクセスし、対応する権限の有無を表す情報を取得する処理と
をコンピュータに実行させることを特徴とするプログラム。
【請求項6】
1つ又は複数のルール定義をポケット番号に対応付けて格納するルール定義情報ファイルと各ユーザの情報とを照合する処理と、
ポケット番号に対応付けられている1つ又は複数のルール定義の全てを同時に満たすユーザが検出された場合には、前記権限情報データベースの該当ユーザに対応するポケット番号に所定の権限設定値を反映させる処理と
をコンピュータに実行させることを特徴とする請求項5に記載のプログラム。

【図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

【図11】
image rotate


【公開番号】特開2011−65523(P2011−65523A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−216914(P2009−216914)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】