ケーパビリティに基づくアクセス制御を持つ スケジュール管理

ケーパビリティに基づくアクセス制御を持つ
スケジュール管理アプリケーション
馬渕 充啓 †
1.
新城 靖 ‡
はじめに
2.1
加藤 和彦 ‡
目的
現在、アクセス制御方式としては、ACL(Access Control
本研究は、ケーパビリティを用いることで個々のユーザ
List) に基づくものが主流である。ACL とは、ファイル等の
オブジェクトが保持するユーザ毎のアクセス権を列挙した
が自律的に、また、ユーザ同士が連携してスケジュール管理
リストのことである。これに対して、ケーパビリティに基
までのアプリケーションは、他のカレンダーをインポート、
づくアクセス制御方式がある。これは、ファイル等のオブ
およびエクスポートすることしかできないものが多い。グ
ジェクトへの参照と、オブジェクトに対するアクセス権を
ループウェアでは、アクセス制御に ACL を用いている。一
アクセスの主体であるユーザやプロセス等に持たせるもの
般的に ACL の設定が煩雑なため、アクセス可能な人であれ
である。
ば他人のスケジュールの削除や追加が可能な状態で運用さ
ケーパビリティを用いることで、ACL に基づくアクセス
を行うことができるアプリケーションの実現を目指す。今
れていることが多い。本研究では、これらの問題をケーパ
制御の問題点を解決することができる。ACL に基づくアク
ビリティを用いることで解決する。
セス制御では、ユーザ認証を必要とする。例えば、ユーザ
2.2
機能
ID やパスワードの入力が必要になる。それらを他人に渡す
ことは、全権を渡すことになってしまう。また、新しいユー
連携してスケジュール管理を行うために必要な機能を提供
ザの登録やユーザの消去など、厳密なユーザ管理が必要で
する。これらの機能を、以下のように弱いケーパビリティ
ある。これに対して、ケーパビリティに基づくアクセス制
を用いることで実現する。
御では、あるオブジェクトに対応するケーパビリティに関
して、機能を絞った弱いケーパビリティを提供できるため、
他人に全権を渡さなくてもよいという利点がある。ユーザ
の追加に関しては、新しいユーザにケーパビリティを配布
本アプリケーションは、共通の目的を持つユーザ同士が
1. あるユーザが他のユーザに対してスケジュールを閲覧
可能にしたい時、閲覧のみ可能なケーパビリティを他
のユーザに渡すことで、閲覧させること以外の機能を
与えない。
することで、即座に対応できるという利点がある。
本研究では、ケーパビリティに基づくアクセス制御を持つ
2. あるユーザが他のユーザに対してスケジュールを書き
込んでもらいたい時、開始時間や終了時間等を指定し
スケジュール管理アプリケーションを実現する。スケジュー
た書き込みのケーパビリティを渡すことで、指定され
ル管理アプリケーションを選んだ理由は、スケジュール管
た時間帯にしか書き込めないようする。
理というものがセンシティブな情報を扱うためアクセス制
御が重要であると考えたからである。ケーパビリティを用
また、その他に複数のカレンダーをマージして 1 つのカ
いる事により、既存の ACL に基づくアクセス制御の問題点
レンダーとして扱う機能を提供する。これにより、あるユー
を解決し、ユーザ認証と管理、および権限変更の手間を軽
ザのスケジュールを把握しやすくする。
減をすることを目指す。本アプリケーションでは、あるオブ
ジェクトに対するケーパビリティから、それよりも弱いケー
パビリティを生成する機能を提供する。これにより、ユー
ザ同士が連携してスケジュール管理を行えるようにする。
2.
スケジュール管理アプリケーション
この章では、本研究で設計・実装しているスケジュール
管理アプリケーションについて説明する。
2.3
実装
Web サービスのサーバとクライアントは、Java と GLUE
を用いる。GLUE とは、Java オブジェクトによる Web サー
ビスの実装を可能にするフレームワークである [2]。Web
サービスにすることで、オンラインであれば、どこにいて
もすべてのクライアントが使用できる。
ケーパビリティには、WSDL(Web Service Description
Language)の文書を用いる [1]。WSDL の文書は、Web サー
ビスにおけるインタフェース記述を含む XML 形式の文書で
ある。WSDL による記述は、サーバやオブジェクトの位置
† 筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻
‡ 筑波大学大学院システム情報工学研究科コンピュータサイエンス専
攻/JST CREST
情報(URL)を含むため、それだけでオブジェクトの手続
きを呼び出し、操作することが可能である。ケーパビリティ
には、パスワード等のユーザ識別機能がないため盗聴や偽
造等から保護しなければいけない。本システムでは、URL
4.Send Capability
Client A
Client B
に乱数を使用し予測されないようにすることで、ケーパビ
3.Create(capabity)
リティの保護を行っている [1]。
5.Access
本アプリケーションは、カレンダー・オブジェクトから
構成さる。カレンダー・オブジェクトは、イベントのリスト
を持つ。各イベントはイベント ID、開始時間、終了時間、
Interface
Interface
Server
Object 1
1.Create()
Interface
...
Object n
イベント名を持つ。カレンダー・オブジェクトは、以下の 3
<Stackable Server>
2.Access
つのメソッドを持つ。
read イベントのリストを読み込むメソッド:時間帯を指
Interface
Interface
定すると、その時間帯に含まれるスケジュールを返す。
Server
write イベントを書き込むメソッド。
delete イベントを消去するメソッド。
弱いケーパビリティとは、メソッドの数が他のものと比
Object A
Interface
...
Object N
<Base Server>
べて少ないものやメソッドの機能に制限を持つものである。
図 1: 動作イメージ
弱いケーパビリティの実装方法としては、スタッカブル・オ
ブジェクトを利用する。スタッカブル・オブジェクトを利用
することで、オブジェクトのモジュール性が高くなる。以
ジェクトが下位のオブジェクトと通信することで、カレン
下に、本研究で実現するスタッカブル・オブジェクトの例
ダー・オブジェクトにアクセスすることができる。
を示す。
1. イベントの一部の情報を表示しない read メソッドを持
つオブジェクト:例えば、イベント名を表示しないで
予定が入っていることだけを返す。
2. 書き込みの時間帯を制限した write メソッドを持つオ
ブジェクト:例えば、2 月しか書き込みができないオブ
ジェクトを生成し、ケーパビリティをユーザに渡す。
3. 複数のカレンダーをマージする read メソッドを持つオ
ブジェクト:例えば、あるユーザと他のユーザのカレ
ンダーをマージして表示することができる。
2.4
ケーパビリティの取得とアクセス
本スケジュール管理アプリケーションの基本的な使い方
を説明する。まず、図 1 の 1 のように、クライアント A が
サーバに生成要求を送ると、サーバはカレンダー・オブジェ
3.
関連研究
Amoeba は、オブジェクトへのアクセス制御にケーパビリ
ティを利用している [3]。Amoeba では、本アプリケーショ
ンと同じく、弱いケーパビリティを提供する機能を持つ。
Amoeba は、ログイン時にパスワードを必要とするクロー
ズな環境を対象としている。これに対して、本アプリケー
ションはオープンな環境で利用されることを考えている。
4.
まとめと今後の課題
本論文では、ケーパビリティに基づくアクセス制御を持つ
スケジュール管理アプリケーションの実現について述べた。
本研究では、ケーパビリティを用いることにより、ACL に
基づくアクセス制御の問題である、ユーザ認証と管理、お
よび権限変更の手間を軽減する。
今後の課題としては、現在未実装の機能を実装すること、
クトを生成し、そのオブジェクトにアクセスするためのケー
他のアプリケーションのカレンダーをインポートできるよ
パビリティをクライアント A へ返す。
うにすること、および、GUI の作成である。
クライアント A が弱いケーパビリティを取得したい時は、
図 1 の 3 のように、スタッカブル・サーバに生成要求と 1
参考文献
で生成した下位のケーパビリティを送信する。スタッカブ
[1] 新城 靖, 阿部 聡, 板野 肯三: XML Web サービスのための大域的ファイル・
サービスの提案, 情報処理学会システムソフトウェアとオペレーティングシステ
ム研究会 pp.15-22(2004).
[2] Graham Glass: Web Services: Building Blocks for Distributed Systems
[3] Mullender, S.J., van Rossum, G.,Tenenbaum, A.S., van Renesse, R.
and van Staveren, H.: Amoeba: A Distributed Operating System for
the 1990s, IEEE Computer, Vol. 23, No.5, pp.44-53 (1990).
ル・サーバは、それを受けて下位のケーパビリティでスタッ
カブル・オブジェクトを生成し、それにアクセスするため
のケーパビリティをクライアント A に返す。
また、クライアント A は図 1 の 4 のように、ケーパビリ
ティをクライアント B に渡すことができる。クライアント
B は受け渡されたケーパビリティを使用することで、スタッ
カブル・オブジェクトにアクセスし、スタッカブル・オブ