質問
CQ5ユーザー管理(「CQ5セキュリティ」)画面ではなく、CRX で直接ユーザーとグループの ACL を設定するにはどうすればよいですか?
概要
CRX 2.0/JCR 2.0 でセキュリティモデルが変更されました。新しいセキュリティモデルでは、ユーザーのアクセスはアクセス制御ポリシー [1]によって定義されます。
CQ5では、ユーザーとグループのセキュリティモデルは、(org.apache.jackrabbit.core.security.authorization.acl.ACLTemplate
アクセス制御ポリシーの定義に従って)standard repository privileges for JCR 2.0 [2]を使用しています。
新しいセキュリティモデルについて知っておくべきこと:
- 「CQ5 セキュリティ」管理画面でアクセスを許可または拒否するとき、「継承」オプションは存在しません。
- また、指定されたノードの権限を
許可
または拒否
するように設定した場合は、次の3つのシナリオが可能です。- 同じ ACE(アクセス制御エントリ)が親ノードから継承されており、一致する ACE がノードに存在しない場合は、何も行われません。
- 同じ ACE が親ノードから継承され、そのパスに一致する ACE が既に定義されている場合は、その ACE は削除されます。
- 同じ ACE が親ノード ACE から継承されていない場合は、そのノードに対して作成されます。
- メンバーシップをユーザーおよびグループが2つのグループに割り当てられている場合にアクセスできるユーザーはセキュリティ/Access Control/エディターの CRX…ダイアログボックスの「エクスプローラーで表示される順序 ACE を適用する、同じノード上に定義および順」を選択します。このダイアログでは、ドラッグ&ドロップで ACE を並べ替えることができます。
名前は、次に例を示します。group1 および group2 にパス/content/geometrixx
のアクセス制御機能があります。group1 は読み取りを拒否することができ、group2 は読み取りを有効にすることができ、user1と1とグループメンバーシップ group2 の両方があります(のみ)。この設定を行うと、CRX のアクセス制御エディターの…ダイアログボックスに表示されている順序で評価されます。
回答、解決策
CQ5.3 以降のバージョンではない CRX2.x のリポジトリ設定の実際の ACE との1対1関係を「CQ5セキュリティ」(「ユーザ管理」)画面に表示されているルール(ACE)を拒否することを許可します。下の表に、アクセス制御により CQ5 から CRX リポジトリにマップする方法を示します。
CRX1.4.2 | CQ5.2.1+ | CRX2.0 |
読み取り | 読み取り | jcr:read |
ノードの作成 | 作成 | jcr:addChildNodes, jcr:nodeTypeManagement |
プロパティの設定 | の変更 | jcr:modifyProperties, jcr:versionManagement, jcr:lockManagement |
ノードの削除 | 削除 | jcr:removeNode, jcr:removeChildNodes |
ACL の読み取り | ACL の読み取り | jcr:readAccessControl |
ACL の編集 | ACL を変更 | jcr:modifyAccessControl |
CRX2.0 で ACE を次のように編集します。
http://<host>:<port>/crx
web application (http://<host>:<port>/crx/explorer in CQ5.5+)
にログインします。- Content Explorer を開きます。
- ACL を設定するノードを選択してください。(チェックインされていないノードがバージョン管理可能であることを確かめてください。この概念についての詳細は、CRX のドキュメントを参照してください。)
- 「CRX エクスプローラー」ウィンドウの上部にある 「Security >> => Access Control Editor...」をクリックして、セキュリティダイアログを開きます。
- セキュリティダイアログで、「適用可能なアクセス制御ポリシー」の下の 「ACL」 のチェックボックスを選択して、「選択したポリシーを有効にする」をクリックします。
- 「新しい ACE」 をクリックして、新しい ACE(アクセス制御エントリ)を追加しします。
- ユーザーまたはグループの参照
- 「許可」または「拒否」を選択します
- エントリに関連付けられている権限を設定します。
- ダイアログボックスの右下にある「Ok」または「適用」をクリックして保存します(「Ok」または「適用」ボタンが表示されない場合は、ダイアログボックスを拡大してください)
適用対象
CQ5.3, CQ5.4, CQ5.5
参考文献
[1] http://www.day.com/specs/jcr/2.0/16_Access_Control_Management.html#AccessControlPolicies
[2] http://www.day.com/specs/jcr/2.0/16_Access_Control_Management.html(「16.2.3 Standard Privileges」セクションを参照してください)
アカウントにログイン