![]()
|
|
|
TOP
|
|
このページでは、JustArkの様々な面に焦点を当てて、Ark開発スタッフ自らがメッセージを発信します。
皆さんはじめまして。 新たに IDisk Tool for Java 担当となりました、今年度入社の M と申します。 「何だ、新人か」などと思わず、どうか最後までお付き合い下さい。 第10回・WebDAV の概要 でも紹介されていますが、 インターネットディスクサービスでは WebDAV プロトコルを利用しています。 WebDAV プロトコルは、HTTP プロトコルに分散環境での編集やバージョン管理の機 能を追加しようとするもので、現在ではそのうちの分散環境での編集機能が定義 されています。 現在では、WebDAV の機能を更に拡張するための仕様が以下の3つのサブプロジェ クトにより検討されています。
(※ 現在のインターネットディスクでは ACL に関するサービスは公開されていません。)
ACL は、前述したとおり WebDAV サーバ上でのアクセスコントロールを規定するプ ロトコルです。 アクセスコントロールとは、コンテンツに対する自由なアクセス制御を行うこと で、簡単に言うとコンテンツに対して「誰」が「どんな」操作を行えるかを決定 することです。 つまり、ACL は WebDAV のプロトコルを用いて、サーバ上のコンテンツを見たり、あ るいは書き換えたりする権限を決定出来るようにしようと言うものです。 WebDAV ACL プロジェクトのサイト( http://www.webdav.org/acl/ )におけるドラフトでは、主に以下のようなことが定義されています。 ◆用語
◆6つの基本権限
◆プロパティ ACL では、WebDAV リソースに対して幾つか新しいプロパティを定義しています。 以下に主なものを紹介します。
これらのプロパティは、PROPPATCH や ACL メソッドで修正することが出来ません。 このようなプロパティを「保護されたプロパティ (protected property)」と呼び ます。 また、これらのプロパティの取得には高い処理コストがかかる為、PROPFINDメソッ ドの DAV:allprop プロパティの検索では取得されないことが推奨されています。
ここでは、実際に ACL が利用出来るサーバに対してどんなリクエストを送ったら どんなレスポンスが返ってくるかについて解説します。 第10回・WebDAV の概要では インターネットディスクと IDisk Tool for Java を用いて解説を行いましたが、 両者とも ACL についてはまだサポートされていませんので、 あくまで"例"としての解説になります。 なお、リクエストとレスポンスのやり取りの仕組みについては 第10回・WebDAV の概要をご覧下さい。 また、表示の都合等で、ヘッダーやボディ部などのデータの一部を編集/省略 させていただいている箇所がありますが、ご了承ください。 ◆プロパティの取得 DAV:aclまずは、PROPFIND メソッドで DAV:acl を検索してみます。 この操作では、対象リソースに設定されている全ての権限を取得することが出来 ます(もちろん、利用者に DAV:read-acl が許可されていなくてはなりませんが)。
次のボディ部分では、XML 形式で「誰」が「どんな」権限を持つかが示されてい ます。 この XML 文書の構造ですが、途中にある D:acl で示されたタグに囲まれた 部分が ACL、つまり権限のリストになっています( "D:" は "DAV:" を示しています)。 この例では、D:acl が更に D:ace に囲まれた4つの部分に分けら れます。 D:ace は、共通して D:principal を含んでいます。 これは利用者を示しています。 また、与えられた権限を表すのには D:grant と D:deny の2つを用 いることが出来ます。 前者は利用者に許可された権限を、後者は禁止された権限を表します。 最初の2つの D:ace では D:owner (リソースの所有者)に関する権 限を定めています。 1つ目の D:ace にある D:protected は、その中のプロパティが保 護されたプロパティであり、自由に修正することが出来ないことを示しています。 また、名前空間に "ns:" が示されている権限は、サーバ独自に定義された権限で す。 3つ目の D:ace では、 D:authenticated (認証された利用者)の権 限を定めています。こちらでは ns:control-acl と D:write が禁 止されています。 4つ目では、D:all (それ以外の全ての利用者)に関する権限を定めており、 D:grant が空である(=メソッドが許可されていない)ことが示されていま す。 DAV:current-user-privilege-set, DAV:owner次に、DAV:current-user-privilege-set と DAV:owner を検索してみます。 前者は設定された権限の中から利用者に関連付けられたものだけを取り出すプロ パティです。 後者はリソースの所有者を示します。
また、リソースの所有者を示すURLが D:owner の D:href 要素に 示されています。 DAV:supported-privilege-set最後に DAV:supported-privilege-set を取得します。 このリクエストで、対象サーバでどんな権限が利用出来るかを知ることが出来ま す。これは、次の「プロパティの設定」で何を指定すればよいのかを知るのに有 効です。
まず、初めの D:supported-privilege には全ての権限を表す D:all が定義されています。 D:description 要素は、権限を判り易く説明するものです。 また、この D:supported-privilege の閉じタグはリストの一番最後(下か ら7行目)になります。 これは、この D:all 権限が他の全ての権限を含んでいることを示してい ます(このような権限を「集合権限」と呼びます)。 同じように、 D:read 権限は D:read-current-user-privilege-set 権限を、 ns:control-acl 権限は D:read-acl と D:write-acl の 両権限を含む集合権限になっています。 ◆権限の設定 今度は、リソースに対して権限の設定を行います。 権限の設定は、新しく導入されたACLメソッドを用いて行います。
今回は WebDAV のアクセスコントロール機能を規定する ACL について説明しました が、いかがだったでしょうか。 本稿でインターネットディスクや WebDAV について少しでも興味を持って頂けたら 幸いです。 ACL はまだドラフト作業中ですが、WebDAV は現在急速に広まっていますので、 RFC が出されてインターネット標準になる日もそう遠くはないことでしょう。 そのときには、IDisk Tool for Java もより進化した姿を皆さんにお披 露目できると思います。 残る2つのプロジェクト DASL と DeltaV についても近いうちに皆さんに紹介してい く予定ですので、是非ご期待下さい。 |
|
TOP
|
||
| |
||