| 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 | ||
| 12 | ||
| 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 | === |
|
| 87 | === !AuthzSourcePolicy (mod_authz_svn ライクなパーミッションポリシー) === #AuthzSourcePolicy | |
| 62 | 88 | |
| 63 | この文書が書かれている時点では、 Trac 0.1 |
|
| 89 | この文書が書かれている時点では、 Trac 0.11 以前にリポジトリへの厳密なアクセス制御に使用されていた、古い「粒度が細かいパーミッション」システムは、パーミッションポリシーのコンポーネントにコンバートされました。しかし、ユーザの視点では、実現できる機能に大きな違いはありません。 | |
| 64 | 90 | |
| 65 | 91 | 「粒度が細かいパーミッション」の制御に定義ファイルを必要とします。この定義ファイルは Subversion の mod_authz_svn で使用しているものを使います。 |
| 66 | このファイルの形式と Subversion での用法に関する情報は |
|
| 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 | |
| 119 | == TracFineGrainedPermissions を動かすために == #GettingTracFineGrainedPermissionstowork | |
| 162 | == デバッグ用パーミッション #DebuggingPermissions | |
| 163 | trac.ini の設定: | |
| 164 | {{{ | |
| 165 | [logging] | |
| 166 | log_file = trac.log | |
| 167 | log_level = DEBUG | |
| 168 | log_type = file | |
| 169 | }}} | |
| 120 | 170 | |
| 121 | tracd を使用している場合、新しい設定を読み込ませるために、 Trac を再起動するのを忘れないでください。 | |
| 171 | ウォッチコマンド: | |
| 172 | {{{ | |
| 173 | tail -n 0 -f log/trac.log | egrep '\[perm\]|\[authz_policy\]' | |
| 174 | }}} | |
| 175 | ||
| 176 | どんなチェックが行なわれているか見ることができます。より詳細な情報については、プラグインのソースに添付されているドキュメントを参照して下さい。 | |
| 177 | ||
| 122 | 178 | |
| 123 | 179 | ---- |
| 124 | See also: TracPermissions |
|
| 125 | ||
| 180 | See also: TracPermissions, | |
| 181 | [http://trac-hacks.org/wiki/FineGrainedPageAuthzEditorPlugin TracHacks:FineGrainedPageAuthzEditorPlugin] は設定を編集するプラグインです。 |