VerboseSecurityで想定外の権限不足の原因を調べる
プロダクトを入れたり、セキュリティー設定を変えたらページが見えなくなった、など想定外の権限不足が発生したときに、詳細な原因を表示することが出来ます。
Zopeのセキュリティー設定はRole毎に細かく権限を設定することが出来ますが、カスタマイズした結果見えて欲しいページが権限不足で見えなくなるという想定外の自体も起こります。しかもZope標準設定ではこのときに表示されるエラーメッセージからは原因が分からないことが多々あります。
フォルダのViewを不許可にして表示してみる
試しに、フォルダのView権限を不許可にしてアクセスしてみます。
このように、photoというフォルダのセキュリティータブでviewの権限を全てOFFにしました。この状態でPlone上でこのフォルダを表示しようとすると、VerboseSecurityの有り無しで以下のようにエラーメッセージが変わります。
VerboseSecurity無し
| 英語: | Unauthorized: You are not allowed to access 'Language' in this context. |
|---|---|
| 意訳: | 未認証:contextの'Language'にアクセスしました |
VerboseSecurity有り
| 英語: | Unauthorized: Your user account does not have the required permission. Access to 'Language' of (ATFolder at /plone/photo) denied. Your user account, admin, exists at /acl_users. Access requires one of the following roles: ['Reviewer']. Your roles in this context are ['Authenticated', 'Manager', 'Owner']. |
|---|---|
| 意訳: | 未認証: あなたのアカウントは必要なパーミッションが不足しています。 ATFloder(/plone/photo)のLanguageへのアクセスが拒否されました。 あなたのアカウントは/acl_usersにあるadminです。 アクセスには、['Reviewer']ロールが必要です。 あなたのロールは['Authenticated','Manager','Owner']です。 |
設定方法
Zopeのバージョンが2.8.1よりも前
VerboseSecurityプロダクトを使います。まずは以下のプロダクトをインストールします。
次に、Zopeインスタンスの etc/zope.conf の以下のディレクティブを以下のように設定します:
security-policy-implementation python
Zope2.8.1以降
標準機能としてZopeに取り込まれました。このため、VerboseSecurityプロダクトを入れないでください。
設定方法は、Zopeインスタンスの etc/zope.conf の以下のディレクティブを以下のように設定します:
verbose-security on security-policy-implementation python
The following items are included in this how-to:
This How-to applies to: Zope 2.9.0, Zope 2.8.5, Zope 2.8.x, Zope 2.7.7, Zope 2.7.x
