Migrar usuários, grupos e ACLs entre instâncias do AEM

Este artigo fornece vários métodos para migrar Usuários e grupos com Permissões de ACL no AEM de um servidor para outro ou de uma instância do AEM para outra.

Descrição description

Ambiente

Adobe Experience Manager 6.5 (AEM)

Problema/Sintomas

Migrar usuários e grupos com permissões de ACL no AEM de um servidor para outro ou de uma instância do AEM para outra.

Resolução resolution

Etapa 1: encontre os usuários administradores e anônimos

  1. Vá para o aplicativo CRXDE lite /crx/de/index.jsp e faça logon como usuário administrador (no sistema de origem).
  2. Ir para Ferramentas => Consulta.
  3. Na caixa inferior Consulta, digite esta consulta para localizar o usuário administrador: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"].
  4. Clique em Executar e copie o caminho do nó do usuário administrador nos resultados para um arquivo de texto.
  5. Repita a etapa 3 com uma consulta para usuário anônimo: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"].
  6. Clique em Executar e copie o caminho do nó do usuário anônimo nos resultados para um arquivo de texto (agora você tem dois caminhos, um para "administrador" e outro para "anônimo"). Por exemplo:
    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - usuário administrador no sistema de origem
    /home/users/K/Kj1406Qo9IDODc_nk5Ib - usuário anônimo no sistema de origem

Etapa 2: migrar usuários e grupos (usando pacotes)

Se os usuários não foram importados automaticamente por meio da autenticação LDAP/SAML ou Crx2Oak (etapa 2A acima), é possível empacotar usuários e grupos.

Nesse caso, você cria dois pacotes separados no sistema antigo (excluindo usuários administrador e anônimo prontos para uso).

Siga estas etapas:

  1. Copie o caminho dos nós de usuário anônimo e administrador dos resultados na Etapa 1 (Etapa 1: encontre os usuários administrador e anônimo) acima.

    Por exemplo:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - usuário administrador no sistema em que você está criando o pacote ou

    /home/users/K/Kj1406Qo9IDODc_nk5Ib - usuário anônimo no sistema em que você está criando o pacote

  2. Vá para o Gerenciador de Pacotes, http://host:port/crx/packmgr/index.jsp e faça logon como administrador.

  3. Criar o pacote usuários.

  4. Adicione um filtro à configuração de pacote para /home/users com essas regras de exclusão (no filtro /home/users): (Observação: talvez seja necessário alterar a lista se o produto adicionar/remover grupos/usuários do AEM)

    1. excluir /home/users/.*/.tokens
    2. excluir /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. excluir /home/users/a/admin
    5. excluir /home/users/a/anonymous
    6. excluir /home/users/system
    7. excluir /home/users/geometrixx
    8. excluir /home/users/media
    9. excluir /home/users/projects
    10. excluir /home/users/mac
  5. Crie o pacote.

  6. Baixe o pacote.

  7. Descompacte o arquivo zip do pacote no seu computador: jar -xvf users.zip META-INF/vault/filter.xml

  8. Abra o arquivo META-INF/vault/filter.xml em um editor de texto.

  9. Adicionar modo = mesclar à marca <filter ...>, por exemplo:

    code language-none
    <?xml version="1.0" encoding="UTF-8"?>
        <workspaceFilter version="1.0">
        <filter root="/home/users" mode="merge">
        <exclude pattern="/home/users/.*/.tokens"/>
        <exclude pattern="/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv"/>
        <exclude pattern="/home/users/K/Kj1406Qo9IDODc_nk5Ib"/>
        <exclude pattern="/home/users/a/admin"/>
        <exclude pattern="/home/users/a/anonymous"/>
        <exclude pattern="/home/users/system"/>
        <exclude pattern="/home/users/geometrixx"/>
        <exclude pattern="/home/users/media"/>
        <exclude pattern="/home/users/projects"/>
        <exclude pattern="/home/users/mac"/>
        </filter>
        </workspaceFilter>
    
  10. Volte a compactar o conteúdo do pacote modificado para incluir a mudança

    jar -uvf users.zip META-INF/vault/filter.xml

  11. Crie um pacote de grupos que contenha uma regra de filtro /home/groups.

  12. Repita as etapas 1 a 10 para o pacote de grupos.

  13. (Somente atualização) Se estiver executando a migração para uma versão mais recente do AEM, instale uma nova instância do AEM local da versão antiga (com nosamplecontent) e instale o pacote de usuários e o pacote de grupos. Em seguida, execute uma atualização no local para a nova versão nessa instância. Isso converte os usuários para a nova representação do Oak. Após a atualização no local, reempacote os usuários novamente para exportá-los para a instância atualizada pretendida. Faça o mesmo para os grupos de usuários.

  14. Instale o pacote de usuários no novo sistema.

  15. Instale o pacote de grupos no novo sistema.

  16. Se você estiver migrando de uma versão mais antiga do AEM para a 6.3, acesse a interface do usuário do /useradmin e adicione o receptor de replicação do usuário ao grupo administradores.

Etapa 3. Migrar ACLs

(NOTA: o pacote criado deve incluir apenas as ACLs necessárias) Observe que a máquina em que você executa esses comandos deve ser Mac OS, Linux ou Windows (usando Cygwin) com curl, python e Java SDK instalado.

  1. Vá para http://src-aem-host:port/crx/packmgr/index.jsp, e faça logon como administrador.

  2. Crie um pacote chamado ACL-migration.

  3. Clique no botão Editar.

  4. Selecione a guia Avançado e defina o Modo de manuseio de AC como Mesclar.

  5. Salvar.

  6. Crie o pacote e baixe-o.

  7. No sistema de arquivos, execute este comando no pacote para extrair o arquivo META-INF/vault/filter.xml:

    jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml

  8. No mesmo diretório, execute este comando para baixar um arquivo json dos caminhos ACL em /content da instância de origem (defina o nome de usuário, a senha e o host correto):

    curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/content//element(*,rep:ACL)&showResults=true' > data.json

  9. Crie um arquivo generate-package-filter.py e cole o código python abaixo nele:\

    code language-none
    import json
    from pprint import pprint
    with open ('data.json') as data_file:
     data = json.load(data_file)
    print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
    print("<workspaceFilter version=\"1.0\">")
    form item in data[ "results"] :
     print("<filter root=\"{path}\" />" . format(path=item[  "path"] ))
    print("</workspaceFilter>")
    
  10. Execute o script python na mesma pasta em que data.json foi criado e salve a saída em META-INF/vault/filter.xml (substituindo o conteúdo existente de filter.xml):

    python generate-packge-filter.py > META-INF/vault/filter.xml

  11. Use este comando para atualizar o filter.xml no arquivo zip:

    jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml

  12. Carregue o arquivo zip no gerenciador de pacotes da instância de origem: http://src-aem-host:port/crx/packmgr/index.jsp

  13. Clique em Criar ou Recriar para criar o pacote.

  14. Baixe o pacote do servidor do AEM de origem.

  15. Carregar o pacote no gerenciador de pacotes do servidor AEM de destino: http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Clique em Instalar para instalá-lo.

  17. Repita as etapas 8 a 16 para qualquer outro caminho que altere o comando curl de caminho. Por exemplo, isso obteria as ACLs em /etc em vez de /content:

curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/etc//element(*,rep:ACL)&showResults=true' > data.json

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f