(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】アクセス制御装置、アクセス制御方法及びアクセス制御プログラム
(51)【国際特許分類】
G06F 21/60 20130101AFI20240312BHJP
【FI】
G06F21/60 340
(21)【出願番号】P 2020169255
(22)【出願日】2020-10-06
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】大桃 潤
(72)【発明者】
【氏名】木村 浩希
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開2005-142848(JP,A)
【文献】特開2001-5727(JP,A)
【文献】特開2009-116496(JP,A)
【文献】特開2000-035912(JP,A)
【文献】特開2011-123610(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/60
(57)【特許請求の範囲】
【請求項1】
複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得する取得部と、
前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得部により取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行するアクセス制御部と
を有することを特徴とするアクセス制御装置。
【請求項2】
前記サーバは、LDAPに対応するディレクトリサービスを提供するLDAPサーバであることを特徴とする請求項1に記載のアクセス制御装置。
【請求項3】
前記グループは、前記LDAPサーバに記憶されたディレクトリ情報ツリーのルートエントリの直下に位置するエントリに対応する組織であることを特徴とする請求項2に記載のアクセス制御装置。
【請求項4】
前記所定の周期が経過した場合、前記アクセス頻度と比較する閾値を算出する算出部をさらに有することを特徴とする請求項1または請求項2に記載のアクセス制御装置。
【請求項5】
前記算出部は、前記アクセス頻度で前記サーバから属性情報を取得したときの総データサイズが前記取得部により前記グループ内の全ユーザの属性情報が一括で取得されるデータサイズと同等になる閾値を算出することを特徴とする請求項4に記載のアクセス制御装置。
【請求項6】
複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得し、
前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得する処理で取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行する、
処理をコンピュータが実行することを特徴とするアクセス制御方法。
【請求項7】
複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得し、
前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得する処理で取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行する、
処理をコンピュータに実行させることを特徴とするアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アクセス制御技術に関する。
【背景技術】
【0002】
一度のユーザ認証で複数のサービスへのアクセスを認可する機能、いわゆるSSO(Single Sign-On)が知られている。例えば、SSOでは、LDAP(Lightweight Directory Access Protocol)等に対応するディレクトリサービスを提供するLDAPサーバから取得されるユーザの属性情報を用いて、サービスに対するアクセス可否やアクセスレベルなどの制御が実現される。
【0003】
上記のディレクトリサービスでは、ユーザの職制の変更などに伴ってディレクトリ情報が高頻度で更新され得る。このような更新を反映してアクセス制御を行う側面から、サービスに対するユーザアクセスが行われる度にディレクトリサービスへのアクセスが行われる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-62556号公報
【文献】特開平8-287095号公報
【文献】特開2003-281021号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記のLDAPサーバでは、ユーザアクセスが行われる度にディレクトリサービスへのアクセスが行われるので、LDAPサーバの負荷が増大する側面がある。
【0006】
なお、上記の課題は、LDAPサーバ等のディレクトリサービスにより属性情報が提供される場合だけではなく、ユーザの属性情報を提供するサービス全般で同様に生じる課題である。
【0007】
1つの側面では、本発明は、ユーザの属性情報を提供するサーバの負荷を低減できるアクセス制御装置、アクセス制御方法及びアクセス制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、アクセス制御装置は、複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得する取得部と、前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得部により取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行するアクセス制御部とを有する。
【発明の効果】
【0009】
ユーザの属性情報を提供するサーバの負荷を低減できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施例1に係るシステム構成例を示す図である。
【
図2】
図2は、ディレクトリ情報ツリーの一例を示す図である。
【
図3】
図3は、実施例1に係るサーバ装置の機能的構成の一例を示す図である。
【
図4】
図4は、取得先情報の遷移例を示す図である。
【
図5】
図5は、定期取得時の動作例を示す図である。
【
図6】
図6は、定期取得時の動作例を示す図である。
【
図7】
図7は、アクセス制御時の動作例を示す図である。
【
図8】
図8は、アクセス制御時の動作例を示す図である。
【
図9】
図9は、実施例1に係る定期取得処理の手順を示すシーケンス図である。
【
図10】
図10は、実施例1に係る定期取得処理の手順を示すフローチャートである。
【
図11】
図11は、実施例1に係るアクセス制御処理の手順を示すシーケンス図である。
【
図12】
図12は、実施例1に係るアクセス制御処理の手順を示すフローチャートである。
【
図13】
図13は、コンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照して本願に係るアクセス制御装置、アクセス制御方法及びアクセス制御プログラムについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0012】
[システム構成]
図1は、実施例1に係るシステム構成例を示す図である。
図1には、本実施例に係るアクセス制御機能が適用される情報システムの一例として、シングルサインオンサービスを導入する企業情報システム1を例に挙げるが、任意の情報システムであってよい。さらに、
図1には、本実施例に係るアクセス制御機能がエージェント方式のシングルサインオンサービスで提供される例を挙げるが、リバースプロキシ方式などの他の方法で提供されることとしてもよい。
【0013】
図1に示すように、企業情報システム1には、サーバ装置10-1~10-Nと、ユーザ端末20A~20Mと、管理者端末30と、LDAPサーバ40とが含まれ得る。以下、サーバ装置10-1~10-Nの個体の区別が不要である場合に「サーバ装置10」と記載し、ユーザ端末20A~20Mの個体の区別が不要である場合に「ユーザ端末20」と記載する場合がある。
【0014】
サーバ装置10、ユーザ端末20、管理者端末30及びLDAPサーバ40は、ネットワークNWを介して通信可能に接続される。例えば、ネットワークNWは、有線または無線を問わず、インターネット、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網であってよい。
【0015】
サーバ装置10は、任意のサービス、例えば業務サービスなどのWebサービスを提供するコンピュータの一例である。このようなサーバ装置10の例として、Webサーバやアプリケーションサーバ、データベースサーバなどが挙げられる。
【0016】
図1に示すように、サーバ装置10-1~10-Nは、サービス実行部13-1~13-Nと、認可proxy実行部15-1~15-Nとを含み得る。サービス実行部13-1~13-Nは、Webサービスに対応する処理を実行する。認可proxy実行部15-1~15-Nは、認可コントローラ50により設定される認可ポリシーにしたがってWebサービスに対するユーザアクセスの認可、いわゆるアクセス制御を行う。以下、サービス実行部13-1~13-Nの個体の区別が不要である場合に「サービス実行部13」と記載すると共に、認可proxy実行部15-1~15-Nの個体の区別が不要である場合に「認可proxy実行部15」と記載する場合がある。
【0017】
あくまで一例として、
図1には、1つのサーバ装置10につき1つのWebサービスが提供される例を挙げたが、図示の例に限定されない。例えば、サーバ装置10は、Webサービスの並列化および冗長化を実現する側面から、VM(Virtual Machine)やコンテナなどのホスト上で同種または異種の複数のWebサービスに対応する処理を実行する複数のプロセスを動作させることもできる。この場合、サーバ装置10には、複数のサービス実行部13と、複数のサービス実行部13の各々に対応するエージェントとして配置される複数の認可proxy実行部15とが含まれ得る。
【0018】
ユーザ端末20は、企業情報システム1のエンドユーザにより使用される端末装置である。例えば、ユーザ端末20は、サーバ装置10により提供されるWebサービスを利用できる環境、例えばWebクライアントの一例であるブラウザが動作できる環境を有する。以下、ユーザ端末20からネットワークNW上に存在するリソースへ行われるアクセスのことを「ユーザアクセス」と記載する場合がある。
【0019】
管理者端末30は、シングルサインオンサービスのユーザの一例に対応する企業情報システム1の管理者により使用される端末装置である。ここで言う「管理者」には、企業情報システム1のシステム管理者やセキュリティ管理者、サーバ装置10の運営者などといった企業情報システム1の管理者全般が含まれてよい。
【0020】
LDAPサーバ40は、LDAPに対応するディレクトリサービスを提供するコンピュータの一例に対応する。例えば、上記のディレクトリサービスには、人や組織などのオブジェクトに関するエントリの集合がツリー構造で表現されたディレクトリ情報ツリーを格納するディレクトリ情報ベースが用いられる。
【0021】
図2は、ディレクトリ情報ツリーの一例を示す図である。
図2に示すように、ディレクトリ情報ツリーのオブジェクトには、属性および属性値が含まれる。例えば、ディレクトリ情報ツリーのオブジェクトの登録、更新または削除などの編集は、エンドユーザの職制情報にしたがって管理者端末30から受け付けることができる。ここで、
図2に示す“dc”はドメイン名を指し、“ou”は組織を指し、“cn”は個人を指す。
図2に示すディレクトリ情報ツリーの例で言えば、FJという企業には、営業、開発、総務および経理の4つの組織が含まれることをコンピュータが認識できる。このうち、営業には、1gおよび2gの2つ組織が含まれると共に、Xという個人が含まれることをコンピュータが認識できる。さらに、営業の1gという組織には、A、BおよびCという3人の個人が含まれることをコンピュータが認識できる。また、開発には、1gおよび2gの2つ組織が含まれ、さらに、1gには、DおよびEという2人の個人が含まれることをコンピュータが認識できる。また、総務には、1gおよび2gという2つの組織が含まれると共に、経理には、1gおよび2gの2つの組織が含まれると共にYという個人がことをコンピュータが認識できる。
【0022】
以上のように、
図1では、サーバ装置10およびLDAPサーバ40が企業情報システム1内に設置されるオンプレミス環境を例示したが、これに限定されない。例えば、サーバ装置10およびLDAPサーバ40が有する機能の一部または全部は、クラウド環境でクラウドサービスとして提供されることとしてもよい。
【0023】
さらに、
図1に示す認可コントローラ50を通じて、認可proxyの制御機能がクラウドサービスとして提供される。1つの側面として、認可コントローラ50は、エンドユーザのアクセス権限の設定を受け付けるGUI(Graphical User Interface)やCLI(Command Line Interface)などのユーザインタフェイスを管理者端末30へ提供する。例えば、エンドユーザには、エンドユーザの組織内における仕事や役割を表すロールが設定される。このようなロールごとにサービスやデータなどのリソースに対するアクセス可否やアクセスレベルなどのアクセス権限が割り当てられる。これらロールおよびアクセス権限が対応付けられた認可ポリシー情報が認可proxy実行部15へ配信される。他の側面として、認可コントローラ50には、各サーバ装置10の認可proxy実行部15からリソースに対するアクセスログを収集することもできる。
【0024】
なお、
図1には、認可コントローラ50により認可proxy実行部15-1~15-Nが制御される例を挙げるが、図示の例に限定されない。例えば、認可proxy実行部15-1~15-Nのうち1つまたは所定数の認可proxy実行部15が他の認可proxy実行部15の制御機能を有することとしてもよい。この場合、認可コントローラ50が必ずしも含まれずともよい。
【0025】
[サーバ装置10の構成]
次に、本実施例に係るサーバ装置10の機能的構成について説明する。
図3は、実施例1に係るサーバ装置10の機能的構成の一例を示すブロック図である。
図3には、サーバ装置10が有する機能に対応するブロックが模式化されている。
図3に示すように、サーバ装置10は、認証部11と、サービス実行部13と、認可proxy実行部15とを有する。なお、サーバ装置10は、
図3に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば入出力インタフェイスや通信インタフェイスなどに対応する機能が含まれることを妨げない。
【0026】
認証部11、サービス実行部13および認可proxy実行部15などの機能部は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などのハードウェアプロセッサにより仮想的に実現される。例えば、プロセッサは、図示しないストレージ、例えばHDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などから各種のプログラムを読み出す。このようなプログラムには、OS(Operating System)の他、Webサービスを実現するWebアプリケーションや上記のアクセス制御機能を実現するアクセス制御プログラムなどが含まれ得る。
【0027】
例えば、プロセッサは、上記のWebアプリケーションを実行することにより、RAM(Random Access Memory)等のメモリ上に認証部11やサービス実行部13に対応するプロセスを展開する。このように、上記のWebアプリケーションが実行される結果、上記のサービス実行部33がプロセスとして仮想的に実現される。また、プロセッサは、上記のアクセス制御プログラムを実行することにより、RAM等のメモリ上に認可proxy実行部15に対応するプロセスを展開する。このように、上記のアクセス制御プログラムが実行される結果、認可proxy実行部15がプロセスとして仮想的に実現される。なお、ここでは、プロセッサの一例として、CPUやMPUを例示したが、汎用型および特化型を問わず、任意のプロセッサにより上記の機能部が実現されることとしてもかまわない。この他、上記の機能部または機能部の一部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによって実現されることとしてもかまわない。
【0028】
認証部11は、ユーザ認証を実行する処理部である。一実施形態として、認証部11は、ユーザ端末20からサインインのリクエストを受け付けた場合、ユーザ端末20から受け付けたユーザIDおよびパスワードを含む認証リクエストを図示しないSSOサーバへ送信する。この認証リクエストに応答して、SSOサーバでは、LDAP上のアカウントを用いてユーザ認証が実行される。この結果、認証の成功時には、認証トークン、例えばLDAPのユーザ名などが発行される。
【0029】
サービス実行部13は、Webサービスに対応する処理を実行する処理部である。一実施形態として、サービス実行部13は、ユーザ端末20から認可proxy実行部15を介してユーザアクセス、例えばHTTP(HyperText Transfer Protocol)リクエストを受け付けると、HTTPリクエストで要求された処理を実行する。その後、サービス実行部13は、HTTPレスポンスを認可proxy実行部15を介してユーザ端末20へ送信する。
【0030】
認可proxy実行部15は、認可proxy、すなわち上記のアクセス制御プログラムを実行する処理部である。
図3に示すように、認可proxy実行部15は、算出部15Aと、生成部15Bと、取得部15Cと、受付部15Dと、アクセス制御部15Eとを有する。
【0031】
算出部15Aは、アクセス頻度を算出する処理部である。一実施形態として、算出部15Aは、組織単位の属性情報の定期取得が実行される場合、処理を起動することができる。すなわち、本実施例では、LDAPサーバ40の負荷を低減する側面から、アクセス頻度が閾値以上である組織に属するエンドユーザの属性情報をユーザアクセスが行われる度にLDAPサーバ40から取得することが抑制される。その代わりに、本実施例では、所定の周期、例えば数時間につき1回の頻度に抑えて、アクセス頻度が閾値を超える組織に属するエンドユーザの属性情報がLDAPサーバ40から取得される。このような定期取得が実行されるタイミングで、算出部15Aは、ディレクトリ情報ツリーが分割される分割範囲、例えばルートエントリの直下に位置するエントリに対応する組織ごとに当該組織のアクセス頻度および閾値Thを算出する。
【0032】
1つの側面として、算出部15Aは、アクセスログ14Aを参照して、組織のアクセス頻度を算出する。アクセスログ14Aは、サービス実行部13-1~13-Nの各々のサービスに対するアクセスのログである。例えば、アクセスログ14Aは、サービス実行部13-1~13-Nの各々のサービスに対するアクセスが認可proxy実行部15-1~15-Nから認可コントローラ50へ収集されたことにより生成される。あくまで一例として、
図2に示す例で言えば、ディレクトリ情報ツリーは、ルートエントリの直下に位置する営業、開発、総務および経理の4つの組織へ分割される。この場合、算出部15Aは、営業、開発、総務および経理の4つの組織ごとに当該組織がアクセス元であるアクセス数を集計した上で単位時間、例えば1日から1か月程度あたりのアクセス数をアクセス頻度として計算する。このとき、直近のアクセスの状況を重視する側面から、アクセス数を集計する期間をアクセス頻度の算出が行われる時点から所定の期間以内のアクセスに絞り込んでもよいし、アクセス頻度の算出が行われる時点に近づくに連れて大きい重みを付与することもできる。なお、ここでは、定期取得時にアクセス頻度が算出される例を挙げたが、認可proxy実行部15-1~15-Nでアクセスが検出される度にアクセス数を集計してアクセス頻度を算出することもできる。
【0033】
他の側面として、算出部15Aは、アクセス頻度と比較する閾値Thを算出する。あくまで一例として、算出部15Aは、単位時間あたりのアクセスをすべて個別に属性情報を取得したときの総データサイズが定期取得で組織内の全ユーザの属性情報を一括で取得するデータサイズと同等になる値を閾値Thとして算出する。このような閾値Thは、一例として、次式で動的に算出できる。
【0034】
閾値Th=(保存済み組織内データサイズ×アクセスカウント単位時間÷LDAPからの定期取得間隔)÷(保存済み組織内データサイズ÷組織の所属人数)
=アクセスカウント単位時間×組織の所属人数÷LDAPからの定期取得間隔
【0035】
生成部15Bは、ディレクトリ情報ツリーの分割範囲に対応する組織ごとに当該組織に属するユーザの属性情報の取得先が設定された取得先情報14Bを生成する処理部である。以下、ユーザの属性情報の取得先のことを「ユーザ属性取得先」と略記する場合がある。一実施形態として、生成部15Bは、ディレクトリ情報ツリーのルートエントリの直下に位置するエントリに対応する組織ごとに、当該組織のアクセス頻度が閾値Thを超えるか否かを判定する。このとき、生成部15Bは、アクセス頻度が閾値Thを超える組織のユーザ属性取得先を“proxy”に設定する一方で、アクセス頻度が閾値Th以下である組織のユーザ属性取得先を“LDAP”に設定する。このようにして組織ごとに当該組織のユーザ属性取得先が設定された取得先情報14Bが生成される。
【0036】
図4は、取得先情報14Bの遷移例を示す図である。
図4には、初回の時点T0、2回目の時点T1、3回目の時点T2および4回目の時点T3の取得先情報14B0~14B3が示されている。
図4に示すように、初回の時点T0では、アクセス頻度の実測値がない。このため、全ての組織のアクセス頻度の初期値が閾値Thを超える「高」に設定されるので、全ての組織のユーザ属性取得先は“proxy”に設定される。続いて、2回目の時点T1では、4つの組織のうち営業、総務および経理の3つの組織のアクセス頻度が閾値Th
営業、閾値Th
総務および閾値Th
経理を超える一方で開発のアクセス頻度が閾値Th
開発以下となる。この場合、開発のユーザ属性取得先が“proxy”から“LDAP”へ変更される。その後、3回目の時点T2では、経理のアクセス頻度が低下し、閾値Th
経理以下となる。これに伴って、経理のユーザ属性取得先が“proxy”から“LDAP”へ変更される。続いて、4回目の時点T3では、経理のアクセス頻度が上昇し、閾値Th
経理を超える。これに伴って、経理のユーザ属性取得先が“LDAP”から“proxy”へ変更される。このように、アクセス頻度の推移に追従して組織のユーザ属性取得先を動的に変更できる。
【0037】
取得部15Cは、LDAPサーバ40から組織単位の属性情報を所定の周期で取得する定期取得を実行する処理部である。一実施形態として、取得部15Cは、前回の定期取得が行われてから一定の周期が経過した場合、ディレクトリ情報ツリーの分割範囲に対応する組織ごとに当該組織のユーザ属性取得先を取得先情報14Bから参照する。その上で、取得部15Cは、ユーザ属性取得先が“proxy”である組織ごとに当該組織に属するユーザの属性情報をLDAPサーバ40から取得する。
【0038】
図5及び
図6は、定期取得時の動作例を示す図である。
図5には、
図4に示す取得先情報14B0を参照して定期取得が行われる例が示される一方で、
図6には、
図4に示す取得先情報14B1を参照して定期取得が行われる例が示されている。
【0039】
図5に示すように、算出部15Aは、ディレクトリ情報ツリーの分割範囲に対応する営業、開発、総務および経路の4つの組織ごとにアクセス頻度および閾値Thを算出する(ステップS11)。続いて、生成部15Bは、ステップS11で算出されたアクセス頻度が閾値Thを超えるか否かに応じて組織ごとに当該組織のユーザ属性取得先が対応付けられた取得先情報14B0を生成する(ステップS12)。続いて、取得部15Cは、取得先情報14B0に設定されたユーザ属性取得先を参照する(ステップS13)。ここで、
図5に示す取得先情報14B0には、営業、開発、総務および経理の全ての組織のユーザ属性取得先に“proxy”が設定されている。このため、取得部15Cは、ルートエントリ直下の全てのou以下のエントリをLDAPサーバ40にリクエストする(ステップS14)。この結果、ディレクトリ情報ベース、すなわちDIB(Directory Information Base)41Aから全組織のユーザの属性情報が取得される(ステップS15)。その後、取得部15Cは、ステップS15で取得された全組織のユーザの属性情報を認可proxy実行部15が参照可能な記憶領域へ保存する(ステップS16)。以下、認可proxy実行部15が参照可能な記憶領域のことを「認可proxy記憶領域」と略記する場合がある。これら一連の定期取得により、属性情報14C0が得られる。
【0040】
また、
図6に示すように、算出部15Aは、ディレクトリ情報ツリーの分割範囲に対応する営業、開発、総務および経路の4つの組織ごとにアクセス頻度および閾値Thを算出する(ステップS21)。続いて、生成部15Bは、ステップS21で算出されたアクセス頻度が閾値Thを超えるか否かに応じて組織ごとに当該組織のユーザ属性取得先が対応付けられた取得先情報14B1を生成する(ステップS22)。続いて、取得部15Cは、取得先情報14B1に設定されたユーザ属性取得先を参照する(ステップS23)。ここで、
図6に示す取得先情報14B1によれば、営業、総務および経理のユーザ属性取得先に“proxy”が設定されている一方で、開発のユーザ属性取得先に“LDAP”が設定されている。この場合、取得部15Cは、“ou=eigyou”以下のエントリと、“ou=soumu”以下のエントリと、“ou=keiri”以下のエントリとをLDAPサーバ40にリクエストする(ステップS24)。この結果、DIB41Aから営業、総務および経理のユーザの属性情報が取得される(ステップS25)。その後、取得部15Cは、ステップS25で取得された営業、総務および経理のユーザの属性情報を認可proxy実行部15が参照可能な記憶領域へ保存する(ステップS26)。これら一連の定期取得により、属性情報14C1が得られる。
【0041】
図3の説明に戻り、受付部15Dは、ユーザ端末20からのユーザアクセスを受け付ける処理部である。一実施形態として、受付部15Dは、ユーザ端末20からHTTPリクエストのメッセージを受け付ける。この際、受付部15Dは、HTTPリクエストのメッセージのヘッダから当該ヘッダに付与された認証トークン、例えばLDAPのユーザ名を抽出する。
【0042】
アクセス制御部15Eは、ユーザアクセスを制御する処理部である。一実施形態として、アクセス制御部15Eは、認可proxy記憶領域に保存された全ユーザの属性情報のうちLDAPのユーザ名に対応するユーザの属性情報を取得する。続いて、アクセス制御部15Eは、取得先情報14Bに含まれるユーザ属性取得先のうち、認可proxy記憶領域から取得されたユーザの属性情報から識別されるユーザの所属組織に対応するユーザ属性取得先を参照する。このとき、ユーザ属性取得先が“LDAP”である場合、アクセス制御部15Eは、LDAPサーバ40からLDAPのユーザ名に対応するユーザの属性情報を取得する。その上で、アクセス制御部15Eは、認可ポリシー情報14Dに含まれるアクセス権限のうちLDAPサーバ40から取得されたユーザの属性情報のロールに対応付けられたアクセス権限に基づいてアクセス可否およびアクセスレベルを制御する。一方、ユーザ属性取得先が“proxy”である場合、アクセス制御部15Eは、認可ポリシー情報14Dに含まれるアクセス権限のうち認可proxy記憶領域から取得されたユーザの属性情報のロールに対応付けられたアクセス権限に基づいてアクセス可否およびアクセスレベルを制御する。
【0043】
図7及び
図8は、アクセス制御時の動作例を示す図である。
図7には、
図4に示す取得先情報14B0を参照してアクセス制御が行われる例が示される一方で、
図8には、
図4に示す取得先情報14B1を参照してアクセス制御が行われる例が示されている。さらには、
図7には、
図2に示すディレクトリ情報ツリーのうち営業の1gに所属するAが使用するユーザ端末20Aからユーザアクセスを受け付ける例が示されている。一方、
図8には、
図2に示すディレクトリ情報ツリーのうち開発の1gに所属するEが使用するユーザ端末20Eからユーザアクセスを受け付ける例が示されている。
【0044】
図7に示すように、受付部15Dは、ユーザ端末20Aからユーザアクセス受け付ける(ステップS31)。すると、受付部15Dは、ステップS31で受け付けたHTTPリクエストのメッセージのヘッダから当該ヘッダに付与されたLDAPのユーザ名“A”を抽出する(ステップS32)。そして、アクセス制御部15Eは、認可proxy記憶領域に保存された全ユーザの属性情報14C0のうちLDAPのユーザ名“A”に対応するLDAP識別名“cn=A,ou=1g,ou=eigyo,dc=FJ,dc=com”を取得する(ステップS33)。続いて、アクセス制御部15Eは、取得先情報14B0のユーザ属性取得先のうち、ステップS33で認可proxy記憶領域から取得されたLDAP識別名から識別されるユーザの所属組織“営業”に対応するユーザ属性取得先“proxy”を参照する(ステップS34)。その後、アクセス制御部15Eは、認可ポリシー情報14D0に含まれるアクセス権限のうちステップS33で認可proxy記憶領域から取得されたLDAP識別名のロールに対応付けられたアクセス権限に基づいてアクセス可否およびアクセスレベルを制御する(ステップS35及びステップS36)。
【0045】
また、
図8に示すように、受付部15Dは、ユーザ端末20Eからユーザアクセス受け付ける(ステップS41)。すると、受付部15Dは、ステップS41で受け付けたHTTPリクエストのメッセージのヘッダから当該ヘッダに付与されたLDAPのユーザ名“E”を抽出する(ステップS42)。そして、アクセス制御部15Eは、認可proxy記憶領域に保存された全ユーザの属性情報14C1のうちLDAPのユーザ名“E”に対応するLDAP識別名“cn=E,ou=1g,ou=kaihatsu,dc=FJ,dc=com”を取得する(ステップS43)。続いて、アクセス制御部15Eは、取得先情報14B1のユーザ属性取得先のうち、ステップS43で認可proxy記憶領域から取得されたLDAP識別名から識別されるユーザの所属組織“開発”に対応するユーザ属性取得先“LDAP”を参照する(ステップS44)。その後、アクセス制御部15Eは、LDAPサーバ40からLDAPのユーザ名“E”に対応するLDAP識別名“cn=E,ou=1g,ou=kaihatsu,dc=FJ,dc=com”を取得する(ステップS45)。そして、アクセス制御部15Eは、属性情報14C1のうち、ステップS45で取得されたLDAPのユーザ名“E”のLDAP識別名を上書き更新する(ステップS46)。その上で、アクセス制御部15Eは、認可ポリシー情報14D0に含まれるアクセス権限のうちステップS45でLDAPサーバ40から取得されたLDAP識別名のロールに対応付けられたアクセス権限に基づいてアクセス可否およびアクセスレベルを制御する(ステップS47及びステップS48)。
【0046】
[処理の流れ]
次に、本実施例に係るサーバ装置10の処理の流れについて説明する。
図9は、実施例1に係る定期取得処理の手順を示すシーケンス図である。
図9に示すように、定期取得の周期が設定されたタイマにより割込みが掛けられる(ステップS100)。すると、取得部15Cは、データ取得範囲を取得する(ステップS110)。
【0047】
続いて、取得部15Cは、ステップS110で取得されたデータ取得範囲に基づいてデータ取得要求をLDAPサーバ40へ送信する(ステップS120)。これに応答して、LDAPサーバ40は、ステップS120でデータ取得要求が行われたデータ取得範囲に対応する属性情報を認可proxy実行部15へ送信する。その後、取得部15Cは、ステップS130で受信された属性情報を認可proxy記憶領域に保存する(ステップS130)。
【0048】
図9に示すステップS110からステップS130までの認可proxy実行部15の処理についてそのロジックの詳細を
図10に示す。
図10は、実施例1に係る定期取得処理の手順を示すフローチャートである。
【0049】
図10に示すように、算出部15Aは、ディレクトリ情報ツリーが分割される分割範囲、例えばルートエントリの直下に位置するエントリに対応する組織ごとに当該組織のアクセス頻度および閾値Thを算出する(ステップS301及びステップS302)。
【0050】
続いて、生成部15Bは、組織ごとに当該組織のアクセス頻度が閾値Thを超えるか否かに応じてユーザ属性取得先“proxy”または“LDAP”が設定された取得先情報14Bを生成する(ステップS303)。そして、取得部15Cは、ステップS303で生成された取得先情報14Bに含まれる組織のうち1つを選択する(ステップS304)。
【0051】
このとき、ステップS304で選択された組織に対応するユーザ属性取得先が“proxy”である場合(ステップS305Yes)、取得部15Cは、ステップS304で選択された組織に対応するユーザの属性情報をLDAPサーバ40から取得する(ステップS306)。そして、取得部15Cは、ステップS306で取得された属性情報を認可proxy記憶領域に保存する(ステップS307)。
【0052】
一方、ステップS304で選択された組織に対応するユーザ属性取得先が“LDAP”である場合(ステップS305No)、ステップS306およびステップS307の処理をスキップしてステップS308の処理へ移行する。
【0053】
そして、取得先情報14Bに含まれる全ての組織が選択されるまで(ステップS308No)、取得部15Cは、ステップS304からステップS307までの処理を繰り返す。その後、取得先情報14Bに含まれる全ての組織が選択された場合(ステップS308Yes)、処理を終了する。
【0054】
図11は、実施例1に係るアクセス制御処理の手順を示すシーケンス図である。
図11に示すように、ユーザ端末20からメッセージを受信すると(ステップS410)、アクセス制御部15Eは、属性情報を認可proxyの保存データから参照する(ステップS420)。続いて、アクセス制御部15Eは、属性情報の取得先を識別する(ステップS430)。
【0055】
このとき、属性情報の取得先が“LDAP”である場合、属性情報取得要求(ユーザ名)をLDAPサーバ40に送信する(ステップS440)。これに応答して、LDAPサーバ40は、ステップS440で属性情報取得要求が行われたユーザ名に対応する属性情報を認可proxy実行部15へ送信する。一方、属性情報の取得先が“proxy”である場合、ステップS440の処理はスキップされる。
【0056】
その後、アクセス制御部15Eは、ステップS420またはステップS440で取得された属性情報を用いて、ユーザ端末20からのアクセスの可否を判定する(ステップS450)。このとき、アクセス可能と判定された場合、アクセス制御部15Eは、ステップS410でユーザ端末20から受信されたメッセージをサービス実行部13へ転送する(ステップS460)。
【0057】
図11に示すステップS410からステップS460までの認可proxy実行部15の処理についてそのロジックの詳細を
図12に示す。
図12は、実施例1に係るアクセス制御処理の手順を示すフローチャートである。
【0058】
図12に示すように、ユーザ端末20からのユーザアクセスが受付部15Dにより受け付けられると(ステップS501)、アクセス制御部15Eは、認可proxy記憶領域に保存された全ユーザの属性情報のうちLDAPのユーザ名に対応するユーザの属性情報を取得する(ステップS502)。また、アクセス制御部15Eは、ステップS501のユーザアクセスに関する履歴を認可コントローラ50へ通知してアクセスログの更新を依頼する(ステップS503)。
【0059】
また、アクセス制御部15Eは、取得先情報14Bに含まれるユーザ属性取得先のうち、認可proxy記憶領域から取得されたユーザの属性情報から識別されるユーザの所属組織に対応するユーザ属性取得先を参照する(ステップS504)。
【0060】
このとき、ユーザ属性取得先が“LDAP”である場合(ステップS505Yes)アクセス制御部15Eは、LDAPサーバ40からLDAPのユーザ名に対応するユーザの属性情報を取得する(ステップS506)。
【0061】
その上で、アクセス制御部15Eは、認可ポリシー情報14Dに含まれるアクセス権限のうちステップS506でLDAPサーバ40から取得されたユーザの属性情報のロールに対応付けられたアクセス権限に基づいてアクセス可否を判定する(ステップS507およびステップS508)。
【0062】
一方、ユーザ属性取得先が“proxy”である場合(ステップS505No)、アクセス制御部15Eは、認可ポリシー情報14Dに含まれるアクセス権限のうちステップS502で認可proxy記憶領域から取得されたユーザの属性情報のロールに対応付けられたアクセス権限に基づいてアクセス可否を判定する(ステップS507およびステップS508)。
【0063】
その後、アクセス制御部15Eは、ステップS508におけるアクセスの判定結果に基づいてステップS501でユーザ端末20から受け付けたユーザアクセスを制御し(ステップS509)、処理を終了する。
【0064】
[効果の一側面]
上述してきたように、本実施例に係る認可proxy実行部15は、アクセス頻度が閾値を超える組織のユーザであるか否かに応じてアクセス制御に用いる属性情報の参照先をLDAPまたは事前キャッシュの何れとするかを切り替える。例えば、アクセス頻度が閾値を超える組織のユーザからのアクセス受付時には、事前キャッシュの属性情報をアクセス制御に用いる一方で、アクセス頻度が閾値以下である組織のユーザからのアクセス受付時には、LDAPの属性情報をアクセス制御に用いる。したがって、本実施例に係る認可proxy実行部15によれば、LDAPサーバの負荷の低減を実現できる。
【実施例2】
【0065】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0066】
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、認可proxy実行部15に含まれる機能部の一部をサーバ装置10の外部装置としてネットワーク経由で接続するようにしてもよい。また、認可proxy実行部15に含まれる機能部の一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の認可proxy実行部15の機能を実現するようにしてもよい。
【0067】
[アクセス制御プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、
図13を用いて、実施例1及び実施例2と同様の機能を有するアクセス制御プログラムを実行するコンピュータの一例について説明する。
【0068】
図13は、コンピュータのハードウェア構成例を示す図である。
図13に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110~180の各部はバス140を介して接続される。
【0069】
HDD170には、
図13に示すように、上記の実施例1で示した認可proxy実行部15と同様の機能を発揮するアクセス制御プログラム170aが記憶される。このアクセス制御プログラム170aは、
図3に示した認可proxy実行部15の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
【0070】
このような環境の下、CPU150は、HDD170からアクセス制御プログラム170aを読み出した上でRAM180へ展開する。この結果、アクセス制御プログラム170aは、
図13に示すように、アクセス制御プロセス180aとして機能する。このアクセス制御プロセス180aは、RAM180が有する記憶領域のうちアクセス制御プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、アクセス制御プロセス180aが実行する処理の一例として、
図9~
図12に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【0071】
なお、上記のアクセス制御プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にアクセス制御プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体からアクセス制御プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などにアクセス制御プログラム170aを記憶させておき、コンピュータ100がこれらからアクセス制御プログラム170aを取得して実行するようにしてもよい。
【0072】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0073】
(付記1)複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得する取得部と、
前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得部により取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行するアクセス制御部と
を有することを特徴とするアクセス制御装置。
【0074】
(付記2)前記サーバは、LDAPに対応するディレクトリサービスを提供するLDAPサーバであることを特徴とする付記1に記載のアクセス制御装置。
【0075】
(付記3)前記グループは、前記LDAPサーバに記憶されたディレクトリ情報ツリーのルートエントリの直下に位置するエントリに対応する組織であることを特徴とする付記2に記載のアクセス制御装置。
【0076】
(付記4)前記所定の周期が経過した場合、前記アクセス頻度と比較する閾値を算出する算出部をさらに有することを特徴とする付記1に記載のアクセス制御装置。
【0077】
(付記5)前記算出部は、前記アクセス頻度で前記サーバから属性情報を取得したときの総データサイズが前記取得部により前記グループ内の全ユーザの属性情報が一括で取得されるデータサイズと同等になる閾値を算出することを特徴とする付記4に記載のアクセス制御装置。
【0078】
(付記6)複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得し、
前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得する処理で取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行する、
処理をコンピュータが実行することを特徴とするアクセス制御方法。
【0079】
(付記7)前記サーバは、LDAPに対応するディレクトリサービスを提供するLDAPサーバであることを特徴とする付記6に記載のアクセス制御方法。
【0080】
(付記8)前記グループは、前記LDAPサーバに記憶されたディレクトリ情報ツリーのルートエントリの直下に位置するエントリに対応する組織であることを特徴とする付記7に記載のアクセス制御方法。
【0081】
(付記9)前記所定の周期が経過した場合、前記アクセス頻度と比較する閾値を算出する処理をさらに前記コンピュータが実行することを特徴とする付記6に記載のアクセス制御方法。
【0082】
(付記10)前記算出する処理は、前記アクセス頻度で前記サーバから属性情報を取得したときの総データサイズが前記取得部により前記グループ内の全ユーザの属性情報が一括で取得されるデータサイズと同等になる閾値を算出することを特徴とする付記9に記載ののアクセス制御方法。
【0083】
(付記11)複数のユーザの属性情報群を記憶するサーバから、アクセス頻度が閾値を超えるグループに属するユーザの属性情報を所定の周期で取得し、
前記アクセス頻度が前記閾値を超えるグループに属する第1のユーザのユーザ端末からサービスに対するアクセスを受け付けた場合、前記取得する処理で取得される属性情報のうち前記第1のユーザの属性情報に基づいてアクセス制御を実行し、前記アクセス頻度が前記閾値を超えないグループに属する第2のユーザのユーザ端末から前記サービスに対するアクセスを受け付けた場合、前記サーバに記憶された前記第2のユーザの属性情報に基づいてアクセス制御を実行する、
処理をコンピュータに実行させることを特徴とするアクセス制御プログラム。
【0084】
(付記12)前記サーバは、LDAPに対応するディレクトリサービスを提供するLDAPサーバであることを特徴とする付記11に記載のアクセス制御プログラム。
【0085】
(付記13)前記グループは、前記LDAPサーバに記憶されたディレクトリ情報ツリーのルートエントリの直下に位置するエントリに対応する組織であることを特徴とする付記12に記載のアクセス制御プログラム。
【0086】
(付記14)前記所定の周期が経過した場合、前記アクセス頻度と比較する閾値を算出する処理をさらに前記コンピュータに実行させることを特徴とする付記11に記載のアクセス制御プログラム。
【0087】
(付記15)前記算出する処理は、前記アクセス頻度で前記サーバから属性情報を取得したときの総データサイズが前記取得部により前記グループ内の全ユーザの属性情報が一括で取得されるデータサイズと同等になる閾値を算出することを特徴とする付記14に記載のアクセス制御プログラム。
【符号の説明】
【0088】
1 企業情報システム
10 サーバ装置
11 認証部
13 サービス実行部
15 認可proxy実行部
15A 算出部
15B 生成部
15C 取得部
15D 受付部
15E アクセス制御部
20 ユーザ端末
30 管理者端末
40 LDAPサーバ
50 認可コントローラ