Como definir ACLs CQ5 no CRX2.x

Pergunta

Como faço para definir ACLs de usuário e grupo diretamente no CRX em vez de na tela CQ5 User Administration ("CQ5 Security")?

Visão geral

No CRX 2.0 / JCR 2.0, o modelo de segurança foi alterado. No novo modelo de segurança, o acesso do usuário é definido políticas de controle de acesso [1].

No CQ5, o modelo de segurança do usuário e do grupo faz uso do privilégios de repositório padrão para o JCR 2.0 [2] (conforme definido pela política de controle de acesso org.apache.jackrabbit.core.security.authorization.acl.ACLTemplate ).

Aqui estão algumas coisas que você deve saber sobre o novo modelo de segurança:

  1. A opção "herdar" não existe mais ao permitir ou negar acesso através da tela de administração "Segurança CQ5".
  2. Quando você definir a permissão permitir ou negar em um determinado nó, então três cenários são possíveis:
    1. se a mesma ACE (Entrada de Controle de Acesso) estiver sendo herdada de um nó pai e nenhuma ACE correspondente já existir no nó, nada será feito.
    2. se a mesma ACE estiver sendo herdada de um nó pai e uma ACE correspondente já estiver definida nesse caminho, ela será removida.
    3. se o mesmo ACE não está sendo herdado de um nó pai, a ACE será criada para esse nó.
  3. Se um usuário tiver associação atribuída a dois grupos e os dois grupos tiverem uma ACE definida no mesmo nó, a ordem em que o acesso será aplicado ao usuário será a ordem em que aparecem no diálogo "CRX Explorer" no Segurança >> -> Editor de Controle de Acesso.... Nesta caixa de diálogo, as ACEs podem ser reordenadas por meio de arrastar e soltar.

Para demonstrar, aqui está um exemplo: group1 e group2 possuem controles de acesso definidos para o caminho /content/geometrixx; group1 tem negado read e group2 tem permissão de leitura e user1 tem associação para group1 e group2 (exclusivamente). Com esta configuração, o acesso será avaliado na ordem mostrada no diálogo CRX Editor de Controle de Acesso....

Resposta, Resolução

Em CQ5.3 e versões posteriores, as regras de permissão/negação (ACEs) mostradas na tela "CQ5 Security" (também conhecida como "User Administration") não têm um relacionamento de um para um com as ACEs reais definidas no CRX 2.x repositório. A tabela abaixo mostra como os controles de acesso mapeiam do CQ5 para o repositório CRX:

CRX 1.4.2 CQ 5.2.1+ CRX 2.0
ler ler jcr:read
criar nó criar jcr:addChildNodes, jcr:nodeTypeManagement
conjunto de propriedade modificar jcr:modifyProperties, jcr:versionManagement, jcr:lockManagement
remover nó excluir jcr:removeNode, jcr:removeChildNodes
ler acl ler ACL jcr:readAccessControl
editar acl modificar a ACL jcr:modifyAccessControl

Para editar ACEs no CRX2.0:

  1. Faça o login na aplicação web http://<host>:<port>/crx (http://<host>:<port>/crx/explorer in CQ5.5+)
  2. Abra o Explorador de Conteúdo
  3. Selecione o nó no qual deseja configurar as ACLs (certifique-se de que, se o nó for versionável e não estiver marcado, Documentação do CRX para mais sobre esse conceito)
  4. Na parte superior da janela "CRX Explorer" aberta Segurança >> => Editor de Controle de Acesso... para abrir o diálogo de segurança
  5. Na caixa de diálogo de segurança, ative a caixa de seleção ACL em "Políticas de Controle de Acesso Aplicáveis" e clique em Definir políticas selecionadas
  6. clique em Adicionar ACE para adicionar um novo ACE (entrada de controle de acesso)
  7. procure um usuário ou grupo
  8. selecione permitir ou negar
  9. defina os privilégios associados à entrada
  10. para salvar, clique em Ok ou Aplicar no canto inferior direito da caixa de diálogo (se os botões "Ok" ou "Aplicar" não estiverem visíveis, redimensione a caixa de diálogo para aumentá-la)

Aplica-se a

CQ5.3, CQ5.4, CQ5.5

Referências

[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(consulte a seção 16.2.3 Privilégios padrão)

Logotipo da Adobe

Fazer logon em sua conta