<% Include("/hsphere/local/home/terraint/common.phps");%> Jakarta Slide -- Java WebDAV -- - Security Helper
The Jakarta Project The Jakarta Slide Project

Jakarta Slide

リソース

ユーザガイド

管理者ガイド

HOW-TO

プログラミング

Slide API

リファレンス

日本語訳 (Translations)

オリジナル

概要

Slide の昨日には、セキュリティシステムの階層的な統合を行うものがあります。 subject(例:ユーザ)が所与のsubject(例:ファイル)に対して何かしらのアクションを 実行したい場合、Slide は、subjectに適切なパーミッションがあるかどうかのチェックを自動的に行います。 クライアントアプリケーションは、追加的なセキュリティチェックやパーミッションを入れる事が出来ますが、 これは、セキュリティヘルパ機能から直接的に呼び出されるものです。

ロール

ロールをSlide名前空間の各々のノードに関連付ける事が出来ます。このロールは、名前空間内でのオブジェクトの役割と権限は何であるのかを指し示します。 勿論、名前空間内のノードの殆どが、actionsの実行を試みようとはせず、ロール"nobody"に関連付けられています。

追加メソッドを含むか空のJavaインターフェースによって、ロールが Slide 内で表現されます。

ある特定のロールを持つには、 ノードはSubjectNodeを拡張(extend)しなければならず、 ロールのインターフェース(訳注:ロール名のついているインターフェース)を実装しなければなりません。 例えば、SubjectNodeを拡張子、Fooインターフェースを実装すれば、FooNodeノードはロール"Foo"を持ちます。 そのノードには常にデフォルトのコンストラクタがなければなりません。

シンプルな名前をJavaインターフェースの名前に関連付ける事が出来ます(名前空間の設定で)。 パーミッションを定義する際、インターフェースの完全修辞クラス名の代わりにこれらの名前を使う事が出来ます。

基本原則

全てのObjectNodeには関連したパーミッションがあります。パーミッション は、以下の形式の組です:


(target subject,      executing subject,    action,            inheritance)

以下、パーミッションの例です:


(/foo/document.txt,  /users/dave,            /actions/read,     no)

(/foo/document.txt,  /users/dave,            /actions/write,    no)

(/foo,               /users/john,            /actions/read,     yes)

オブジェクトに承認されたパーミッションは、子オブジェクトによって継承されます(パーミッションの割り当ての間で指定されなければ)。 例えば、URIが/fooであるオブジェクトに指定されたパーミッションは、 /foo/barオブジェクトに継承されます。

This inheritance behavior also applies to subjects and actions. Subject /users/dave will have all the permissions given to all the subject /users. Likewise, a subject who can perform action /actions on an object will be able to perform /actions/read.

行動

これらのactionタイプへのセキュリティチェックは自動的にクライアントアプリケーションでヘルパ機能によって行われます。 もしそのチェックが失敗すれば、チェックの例外であるAccessDeniedException例外が投げられます。 ですから、クライアントアプリケーションは 水面下でのセキュリティチェックがいつ行われるのかを知っており、 失敗した際に適切なactionを取る事が出来ます。

基本的な action は:

  • オブジェクトの読み取り
  • オブジェクトの作成
  • オブジェクトの削除
  • パーミッションの承諾
  • パーミッションの剥奪
  • パーミッションの読み取り
  • オブジェクトのロック
  • ロックの削除
  • ロックの読み取り
  • 履歴のメタデータの読み取り
  • 履歴のメタデータの作成
  • 履歴のメタデータの修正
  • 履歴のメタデータの削除
  • 履歴の中身の読み取り
  • 履歴の中身の作成
  • 履歴の中身の修正
  • 履歴の中身の削除
クライアントアプリケーションは、追加actionのタイプを定義でき、必要となるいかなるセキュリティチェックも行う事が出来ます。

オブジェクト・モデル
NodePermission

The NodePermission クラスは、名前空間のノードに置かれるパーミッション(あるいは Access Control Entry)を表します。

  • Object: パーミッションに関連付けられたノードのURI
  • Subject: パーミッションのSubject: 名前空間でのオブジェクトのURI、ロールの名前(インターフェースクラスの名前)、 あるいは、自己パーミッション(この場合、subjectは"~"と同等になります)のどれかを取ります。
  • Action: パーミッションのアクション
  • Inheritable: 関連したノードの子にもパーミッションが適用されるかどうかを示すフラグ
  • Negative: パーミッションがnegativeであればTrue---Subjectが特定のアクションを実行するパーミッションの拒否を行う事を意味しています。 同一ノードでパーミッションの衝突があれば、negativeのパーミッションの方を優先します。


Copyright © 1999-2005, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata, powered by Terra-International Inc.
<% orig();%>