CRX2.x で CQ5 ACLs を設定する方法

質問

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]を使用しています。

新しいセキュリティモデルについて知っておくべきこと:

  1. 「CQ5 セキュリティ」管理画面でアクセスを許可または拒否するとき、「継承」オプションは存在しません。
  2. また、指定されたノードの権限を許可または拒否するように設定した場合は、次の3つのシナリオが可能です。
    1. 同じ ACE(アクセス制御エントリ)が親ノードから継承されており、一致する ACE がノードに存在しない場合は、何も行われません。
    2. 同じ ACE が親ノードから継承され、そのパスに一致する ACE が既に定義されている場合は、その ACE は削除されます。
    3. 同じ ACE が親ノード ACE から継承されていない場合は、そのノードに対して作成されます。
  3. メンバーシップをユーザーおよびグループが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 を次のように編集します。

  1. http://<host>:<port>/crx web application (http://<host>:<port>/crx/explorer in CQ5.5+) にログインします。
  2. Content Explorer を開きます。
  3. ACL を設定するノードを選択してください。(チェックインされていないノードがバージョン管理可能であることを確かめてください。この概念についての詳細は、CRX のドキュメントを参照してください。)
  4. 「CRX エクスプローラー」ウィンドウの上部にある 「Security >> => Access Control Editor...」をクリックして、セキュリティダイアログを開きます。
  5. セキュリティダイアログで、「適用可能なアクセス制御ポリシー」の下の 「ACL」 のチェックボックスを選択して、「選択したポリシーを有効にする」をクリックします。
  6. 「新しい ACE」 をクリックして、新しい ACE(アクセス制御エントリ)を追加しします。
  7. ユーザーまたはグループの参照
  8. 「許可」または「拒否」を選択します
  9. エントリに関連付けられている権限を設定します。
  10. ダイアログボックスの右下にある「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」セクションを参照してください)

アドビのロゴ

アカウントにログイン