TracFineGrainedPermissions のバージョン 1 とバージョン 2 との変更
- 日時:
- 2012/01/16 5:19:14 (13年前)
凡例:
- 未変更
- 追加
- 削除
- 更新
-
TracFineGrainedPermissions
v1 v2 3 3 Trac 0.11 より前は、リポジトリブラウザ サブシステムだけで「粒度が細かいパーミッション (fine grained permissions)」を定義することができました。 4 4 5 0.11 以降、カスタマイズしたパーミッションポリシーのプラグインを各所に使用するための共通のメカニズムが導入されたので、すべての種類の Trac リソースのあらゆるアクションについて、そのリソースの特定バージョンのレベルまで含めて許可/拒否を設定できるようになりました。 5 0.11 以降、カスタマイズした **パーミッションポリシーのプラグイン** を各所に使用するための共通のメカニズムが導入されたので、すべての種類の Trac リソースのあらゆるアクションについて、そのリソースの特定バージョンのレベルまで含めて許可/拒否を設定できるようになりました。 6 7 Note: Trac 0.12 では、 `authz_policy` はオプションモジュールとして実装されました( `tracopt.perm.authz_policy.*` 配下 ) 。したがって、デフォルトでインストールされ、 Trac の管理 Web インタフェースの //プラグイン// パネルで簡単に有効にすることができます。 8 6 9 7 10 == パーミッションポリシー == #PermissionPolicies 8 11 12 様々なパーミッションポリシーを実装することができます。 Trac にはいくつかの例を同梱しています。 13 14 現在有効なポリシーは TracIni の中で設定されているコンフィグレーションによって決定します: 15 例 16 {{{ 17 [trac] 18 permission_policies = AuthzSourcePolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy 19 }}} 20 このリストの1番目の [#AuthzSourcePolicy] ポリシーについては、下記に記載しています。続く !DefaultPermissionPolicy では、 TracPermissions に記載されている従来型の粒度が粗いパーミッションチェックを行ないます。そして3番目の !LegacyAttachmentPolicy は添付ファイルに対して、粒度の粗いパーミッションチェックを行ないます。 21 22 使用可能なオプションの選択肢として、 Authz 形式のシステムにてとても一般的なパーミッションポリシーを提供する [#AuthzPolicy] があります。 23 詳細については、 [trac:source:branches/0.12-stable/tracopt/perm/authz_policy.py authz_policy.py] を参照して下さい。 24 25 もう一つの評判のよいパーミッションポリシーである、 [#AuthzSourcePolicy] は pre-0.12 で再実装され、新しいシステムでは、 Subversion のリポジトリに限定して粒度の細かいパーミッション設定をサポートするようになりました。 26 27 その他の例については、 [trac:source:branches/0.12-stable/sample-plugins/permissions sample-plugins/permissions] を参照して下さい。 28 29 9 30 === !AuthzPolicy === #AuthzPolicy 10 11 ポリシーの例として、 Authz 形式のシステムを基にしたポリシーが追加されました。詳しくは、12 [http://trac.edgewall.org/browser/trunk/sample-plugins/permissions/authz_policy.py] を参照してください。 (より多くの例が [http://trac.edgewall.org/browser/trunk/sample-plugins/permissions] にあります。)13 31 14 32 - [http://www.voidspace.org.uk/python/configobj.html ConfigObj] をインストール (必須) 15 33 - authz_policy.py を plugins ディレクトリにコピーする 16 - [http://swapoff.org/files/authzpolicy.conf authzpolicy.conf] ファイルをどこか (できれば、 Web サーバ起動ユーザ以外が読み取りできないセキュアな領域) に置く。 34 - [http://swapoff.org/files/authzpolicy.conf authzpolicy.conf] ファイルをどこか (できれば、 Web サーバ起動ユーザ以外が読み取りできないセキュアな領域) に置く。ファイルに非ASCII文字が含まれる場合は UTF-8 で保存してください。 17 35 - `trac.ini` ファイルをアップデートする: 36 1. `[trac]` セクションの [TracIni#trac-section permission_policies] を編集する 18 37 {{{ 19 38 [trac] 20 39 ... 21 40 permission_policies = AuthzPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy 22 41 }}} 42 2. 新規に `[authz_policy]` セクションを追加する 43 {{{ 23 44 [authz_policy] 24 45 authz_file = /some/trac/env/conf/authzpolicy.conf 25 46 }}} 47 3. プラグインを有効化する 48 {{{ 26 49 [components] 27 50 ... 28 authz_policy = enabled 51 # Trac 0.12 52 tracopt.perm.authz_policy.* = enabled 53 # for Trac 0.11 use this 54 #authz_policy.* = enabled 29 55 }}} 30 56 … … 59 85 60 86 61 === mod_authz_svn ライクなパーミッションポリシー === #mod_authz_svn-likepermissionpolicy87 === !AuthzSourcePolicy (mod_authz_svn ライクなパーミッションポリシー) === #AuthzSourcePolicy 62 88 63 この文書が書かれている時点では、 Trac 0.1 0 以前にリポジトリへの厳密なアクセス制御に使用されていた、古い「粒度が細かいパーミッション」システムは、まだパーミッションポリシーのコンポーネントにコンバートされていません。しかし、ユーザの視点では、実現できる機能に大きな違いはありません。89 この文書が書かれている時点では、 Trac 0.11 以前にリポジトリへの厳密なアクセス制御に使用されていた、古い「粒度が細かいパーミッション」システムは、パーミッションポリシーのコンポーネントにコンバートされました。しかし、ユーザの視点では、実現できる機能に大きな違いはありません。 64 90 65 91 「粒度が細かいパーミッション」の制御に定義ファイルを必要とします。この定義ファイルは Subversion の mod_authz_svn で使用しているものを使います。 66 このファイルの形式と Subversion での用法に関する情報は [http://svnbook.red-bean.com/svnbook/book.html#svn-ch-6-sect-4.4.2 Subversion Book (ディレクトリごとのアクセス制御)]を参照してください。92 このファイルの形式と Subversion での用法に関する情報は、 svn book の Server Configuration (サーバ設定) の章にある [http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html Path-Based Authorization (ディレクトリごとのアクセス制御)] の項を参照してください。 67 93 68 94 例: … … 98 124 }}} 99 125 100 ''modulename'' には、 `[trac]` セクション中の `repository_dir` に設定したリポジトリと同じものを設定します。 (訳注: Subversion で `SVNParentPath` を使用して複数のリポジトリをホストしている場合のリポジトリ指定方法です。 ''modulename'' は個々のリポジトリを指します。) 126 ''modulename'' には、 `[trac]` セクション中の `repository_dir` に設定したリポジトリと同じものを設定します。例えば `[trac]` セクション内の `repository_dir` に {{{/srv/active/svn/blahblah}}} を設定している場合は次のように設定します: 127 128 {{{ 129 [trac] 130 authz_file = /path/to/svnaccessfile 131 authz_module_name = blahblah 132 ... 133 repository_dir = /srv/active/svn/blahblah 134 }}} 135 136 Subversion の Authz ファイル {{{/path/to/svnaccessfile}}} では、 {{{[blahblah:/some/path]}}} のようにエントリを記載します。 101 137 102 138 '''Note:''' Authz ファイルで使用するユーザ名と、 Trac で使用するユーザ名は __同じでなければなりません__。 139 140 0.12 では、 trac.ini の permission_policies に ''!AuthzSourcePolicy'' を必ず含めて下さい。さもないと、 authz のパーミッションファイルは無視されます。 141 142 {{{ 143 [trac] 144 permission_policies = AuthzSourcePolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy 145 }}} 103 146 104 147 ==== Subversion の設定 ==== #SubversionConfiguration … … 117 160 複数のプロジェクト Environment において、プロジェクト全体にどのようにアクセス制限を行うかについての情報は [http://trac.edgewall.org/wiki/TracMultipleProjectsSVNAccess] を参照してください。 118 161 162 == デバッグ用パーミッション #DebuggingPermissions 163 trac.ini の設定: 164 {{{ 165 [logging] 166 log_file = trac.log 167 log_level = DEBUG 168 log_type = file 169 }}} 170 171 ウォッチコマンド: 172 {{{ 173 tail -n 0 -f log/trac.log | egrep '\[perm\]|\[authz_policy\]' 174 }}} 175 176 どんなチェックが行なわれているか見ることができます。より詳細な情報については、プラグインのソースに添付されているドキュメントを参照して下さい。 177 178 119 179 ---- 120 See also: TracPermissions 180 See also: TracPermissions, 181 [http://trac-hacks.org/wiki/FineGrainedPageAuthzEditorPlugin TracHacks:FineGrainedPageAuthzEditorPlugin] は設定を編集するプラグインです。