ユーザの役割に注目したアクセス制御機能を提供するアクセス管理サーバ

RBACdは、HTTPDのようなネットワークアプリケーション・サーバが管理するリソースやアクセス権限を管理し、ロールに基づいたアクセス制御 (Role Based Access Control, RBAC) を実現するための機能を提供します。

役割に基づいたアクセス制御 RBAC

RBAC (Role Based Access Control) は、大規模なシステムにおける複雑化したアクセス制御を効率よく行うために考えられました。

実世界、特に会社等の組織では、人が果たすべき役割に応じて権限が与えられます。取締役には会社の機密書類にアクセスする権限を、ドクターにはカルテを更新する権限を、プロジェクトメンバにはプロジェクト内のドキュメントを閲覧する権限を‥といった具合です。RBACでは、この役割(ロール)に注目し、アクセス権限をロール別に設定・管理することでアクセス制御設定の管理コストを軽減します。ロール毎に割り当てられたアクセス権限の集合は、ユーザへのロールの割り当てという形でアクセス権限を行使する権利が与えられます。

RBACは、強制的アクセス制御を有するセキュリティポリシ・モデルと言われています。強制的アクセス制御とは、従来のUNIXやWindowsのようなリソースのオーナによる任意のアクセス権設定によるアクセス制御に頼らず、セキュリティ管理者が設定するセキュリティポリシに基づいて全てのアクセス制御を行うことです。セキュリティポリシの強制により、任意のアクセス権設定による設定漏れや他のアクセス権設定と矛盾した設定による危険を防ぐことができます。

RBACのモデルは、以下の要素から構成されます。

rbacmodel.png
  • ユーザ
    リソースにアクセスする実体です。
  • ロール
    役割に基づいてアクセス権限の集合を抽象化したもので、アクセス権割り当ての単位となります。
  • セッション
    ある権限のもとで遂行される一連の作業集合(タスク)を指します。
  • オペレーション
    リソースに対する操作です。
  • オブジェクト
    アクセス制御対象のリソースです。
  • パーミッション
    オブジェクトとオペレーションの対をパーミッションと呼び、ロールに対して与えられるアクセス権の単位です。
  • ユーザ割り当て(UA)
    ユーザが行使することができるロールの割り当てです。
  • パーミッション割り当て(PA)
    ロールに与えられるアクセス権です。
  • セッションロール(アクティブロール)
    セッション内で有効なロールです。

RBACdを用いたアプリケーションサーバへのアクセス制御の実現

RBACdは、ネットワークサービスを提供するアプリケーションサーバと連携し、ロールに基づいたアクセス制御機能を提供・管理するサーバです。RBACdの機能を用いることで、安全かつ容易にアプリケーションサーバにRBACを実現することができます。以下にRBACdを用いてアプリケーションサーバが管理するリソースのアクセス制御を行う場合のシステム構成を示します。

rbacsys.jpg

RBACシステムは、RBACデータベース、RBACサーバ(RBACd)、アプリケーションサーバに組み込んだRBACモジュールから構成されます。 RBACデータベースには、アプリケーションサーバにアクセスするユーザと管理対象のリソースに関する情報を登録します。また、アプリケーションサーバには、ユーザからのアクセス時にRBACdにサービス提供許可を問い合わせるモジュールを組み込みます。

  1. クライアントがアプリケーションリソースの情報にアクセスしようとする
  2. クライアントからのリクエストを受けつけたアプリケーションサーバは、RBACdにアクセスを許可してよいかのアクセス権限確認リクエストを送る
  3. RBACdは、アプリケーションサーバから受けたリクエストの情報(ユーザ、セッション、アクセス対象オブジェクトの識別子、オペレーション)を基にRBACデータベースに問い合わせを行って、アクセスを許可するかどうかを決める。結果は、アプリケーションサーバに返送する。
  4. RBACdからのレスポンスを基に、クライアントへのレスポンスを行う。

アプリケーション WebDAV RBAC

RBACdを用いたアプリケーションサーバへのアクセス制御実現例として、WebDAVサーバにRBACを導入したシステムを実装しました。

ライセンス

RBACdは、Mozillaライセンスバージョン1.1(MPL1.1)に準拠した条項のもとでライセンスされるオープンソースです。利用者は、オリジナルソフトウェア製作者の許可を得ることなく、一定の制限のもとでコードを自由に再配布することができます。

本ソフトウェアの著作権は、株式会社イーゲル株式会社SRA先端技術研究所慶應義塾大学独立行政法人 情報処理推進機構に帰属します。

Copyright (C) 2004 IGEL Co.,Ltd, SRA KTL Inc., Keio Univ., and IPA Japan

動作環境

オペレーティングシステムLinux 2.4以上
データベースPostgreSQL 7.4.1以上
XMLパーザLibXML2 2.6.2以上
HTTPライブラリCurl 7.11.0以上
SSLライブラリ(オプション)OpenSSL 0.9.6以上
Readlineライブラリ(オプション)GNU Readline Library 4.3以上

ダウンロード

ソフトウェア説明バージョンファイル
RBACdRBAC管理サーバ1.1.0rbacd-1.1.0.tar.gz
librbaccRBACクライアントライブラリ1.1.0
rbacadmshRBAC管理シェル1.1.0

ドキュメント

リンク

謝辞

本ソフトウェアの開発は、独立行政法人 情報処理推進機構(IPA)2003年度 電子政府行政情報化事業の支援を受けました。

問い合わせ先

本ソフトウェアに関する質問、バグ報告、意見等は、下記アドレス宛にお送りください。

rbacd-mailadr.png

添付ファイル: filerbacd-mailadr.png 2241件 [詳細] filerbacmodel.png 2658件 [詳細] filerbacsys.jpg 3036件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Thu, 09 Sep 2004 21:38:34 JST (2696d)