Sincronização do usuário

Introdução

Quando a implantação é um farm de publicação, os membros precisam fazer logon e ver seus dados em qualquer nó de publicação.

Usuários e grupos de usuários (dados de usuário) criados no ambiente publish não são necessários no ambiente author.

A maioria dos dados do usuário criados no ambiente do autor deve permanecer no ambiente do autor e não ser copiada para publicar instâncias.

O registro e as modificações feitas em uma instância de publicação precisam ser sincronizados com outras instâncias de publicação para que elas tenham acesso aos mesmos dados do usuário.

A partir do AEM 6.1, quando a sincronização do usuário estiver ativada, os dados do usuário serão sincronizados automaticamente entre as instâncias de publicação no farm e não serão criados no autor.

Distribuição Sling

Os dados do usuário, juntamente com seus ACLs, são armazenados no Oak Core, a camada abaixo de Oak JCR, e são acessados usando a Oak API. Com atualizações raras, é razoável que os dados do usuário sejam sincronizados com outras instâncias de publicação usando Sling Content Distribution (distribuição Sling).

Os benefícios da sincronização do usuário usando a distribuição Sling, em comparação com a replicação tradicional são:

  • usuários, perfis de usuário e grupos de usuários criados ao publicar não são criados no autor

  • A distribuição Sling define propriedades em eventos jcr, possibilitando a ação de ouvintes de eventos do lado da publicação sem preocupação com loops de replicação infinitos

  • A distribuição Sling envia somente dados do usuário para instâncias de publicação não originárias, eliminando tráfego desnecessário

  • As ACLsset no nó do usuário são incluídas na sincronização

NOTE

Se as sessões forem necessárias, é recomendável usar uma solução SSO ou usar uma sessão aderente e fazer com que os clientes façam logon se mudarem para outro editor.

CAUTION

A sincronização do grupo administradores não é suportada, mesmo quando a sincronização do utilizador está ativada. Em vez disso, uma falha ao "importar o diff" será registrada no registro de erros.

Portanto, quando a implantação é um farm de publicação, se um usuário for adicionado ou removido do grupo *administradores, a modificação deverá ser feita manualmente em cada instância de publicação.

Habilitar sincronização de usuário

NOTE

Por padrão, a sincronização do usuário é disabled.

Habilitar a sincronização do usuário envolve modificar configurações existentes OSGi.

Nenhuma nova configuração deve ser adicionada como resultado da ativação da sincronização do usuário.

A sincronização do usuário depende do ambiente do autor para gerenciar as distribuições de dados do usuário, mesmo que os dados do usuário não sejam criados no autor. Grande parte, mas não toda, da configuração acontece no ambiente do autor e cada etapa identifica claramente se ela deve ser executada no autor ou publicação.

Estas são as etapas necessárias para habilitar a sincronização do usuário, seguidas por uma seção Solução de problemas:

Pré-requisitos

  1. Se usuários e grupos de usuários já tiverem sido criados em um editor, é recomendável sincronizar manualmente os dados do usuário para todos os editores antes de configurar e ativar a sincronização do usuário.

Quando a sincronização do usuário estiver ativada, somente os usuários e grupos recém-criados serão sincronizados.

  1. Verifique se o código mais recente foi instalado:

1. Apache Sling Distribution Agent - Fábrica de agentes de sincronização

Ativar sincronização de usuário

  • sobre o autor

    • fazer logon com privilégios de administrador

    • acesse o Web Console

    • localizar Apache Sling Distribution Agent - Sync Agents Factory

      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verifique name: socialpubsync

      • marque a caixa de seleção Enabled

      • select Save

2. Criar usuário autorizado

Configurar
permissõesEste usuário autorizado será usado na etapa 3 para configurar a distribuição Sling no autor.

CAUTION

Um novo usuário deve ser criado.

  • O usuário padrão atribuído é admin.
  • Não utilize communities-user-admin user.

Como adicionar ACL

  • crxde lite de acesso

  • selecionar nó /home

  • no painel direito, selecione a guia Access Control

  • selecione o botão + para adicionar uma entrada ACL

    • Principal: procurar utilizador criado para sincronização de utilizador
    • Tipo: Allow
    • Privilégios: jcr:all
    • ​Restrições:globalol: */activities/*
    • selecione OK
  • selecione Salvar tudo

Consulte também:

3. Distribuição de Adobe Granite - Provedor Secreto de Transporte de Senha Criptografado

Configurar permissões

Depois que um usuário autorizado, um membro do grupo de usuários administrators​tiver sido criado em todas as instâncias de publicação, esse usuário autorizado deverá ser identificado como tendo permissão para sincronizar os dados do usuário do autor para publicar.

  • sobre o autor

    • fazer logon com privilégios de administrador

    • acesse o Web Console

    • localizar com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name

    • selecione a configuração existente para abrir para edição (ícone de lápis)
      Verifique property name: socialpubsync-publishUser

    • defina o nome de usuário e a senha para o usuário autorizado criado ao publicar na etapa 2

      • por exemplo, usersync-admin

4. Apache Sling Distribution Agent - Fábrica de agentes de fila

Ativar sincronização de usuário

  • ao publicar:

    • fazer logon com privilégios de administrador

    • acesse o Web Console

    • localizar Apache Sling Distribution Agent - Queue Agents Factory

      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verifique Name: socialpubsync-reverse

      • marque a caixa de seleção Enabled

      • selecione Save

    • repetir para cada instância de publicação

5. Adobe Social Sync - Fábrica de Observadores Diff

Ativar sincronização de grupos

  • em cada instância de publicação:

    • fazer logon com privilégios de administrador

    • acesse o Web Console

    • localizar Adobe Social Sync - Diff Observer Factory

      • selecione a configuração existente para abrir para edição (ícone de lápis)

        Verificar agent name: socialpubsync-reverse

      • marque a caixa de seleção Enabled

      • selecione Save

6. Apache Sling Distribution Trigger - Agendamento da Fábrica de Acionadores

(Opcional) modificar o intervalo de polling

Por padrão, o autor pesquisará as alterações a cada 30 segundos. Para alterar esse intervalo:

  • sobre o autor

    • fazer logon com privilégios de administrador

    • acesse o Web Console

    • localizar Apache Sling Distribution Trigger - Scheduled Triggers Factory

      • selecione a configuração existente para abrir para edição (ícone de lápis)

        • Verificar Name: socialpubsync-scheduled-trigger
      • defina Interval in Seconds para o intervalo desejado

      • selecione Save

Configurar para várias instâncias de publicação

A configuração padrão é para uma única instância de publicação. Como o motivo para ativar a sincronização do usuário é para sincronizar várias instâncias de publicação, como para um farm de publicação, as instâncias de publicação adicionais precisarão ser adicionadas à Fábrica de agentes de sincronização.

7. Apache Sling Distribution Agent - Fábrica de agentes de sincronização

Adicionar instâncias de publicação:

  • sobre o autor

    • fazer logon com privilégios de administrador

    • acesse o Web Console

    • localizar Apache Sling Distribution Agent - Sync Agents Factory

      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verifique Name: socialpubsync

  • Exportador
    EndpointsDeve haver um terminal de exportador para cada editor. Por exemplo, se houver 2 editores, localhost:4503 e 4504, deve haver 2 entradas:

    • https://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • https://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • Pontos de
    extremidade do importadorDeve haver um ponto de extremidade do importador para cada editor. Por exemplo, se houver 2 editores, localhost:4503 e 4504, deve haver 2 entradas:

    • https://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • https://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
  • selecione Save

8. AEM Communities User Sync Listener

(Opcional) Sincronizar nós JCR adicionais

Se houver dados personalizados que serão sincronizados em várias instâncias de publicação, então:

  • em cada instância de publicação:

    • fazer logon com privilégios de administrador

    • acesse o Web Console

      • por exemplo, https://localhost:4503/system/console/configMgr
    • localizar AEM Communities User Sync Listener

    • selecione a configuração existente para abrir para edição (ícone de lápis)
      Verifique Name: socialpubsync-scheduled-trigger

  • Tipos
    de nóEssa é a lista de tipos de nó que serão sincronizados. Qualquer tipo de nó diferente de sling:Folder precisa ser listado aqui (sling:folder é manipulado separadamente).
    Lista padrão de tipos de nó a sincronizar:

    • rep:User
    • nt:unstructured
    • nt:resource
  • Propriedades
    ignoráveisEssa é a lista de propriedades que serão ignoradas se qualquer alteração for detectada. As alterações nessas propriedades podem ser sincronizadas como um efeito colateral de outras alterações (já que a sincronização está sempre no nível do nó), mas as alterações nessas propriedades não acionarão a sincronização por si só.
    Propriedade padrão a ser ignorada:

    • cq:lastModified
  • Nós
    subcaminhos ignoráveis que serão totalmente ignorados durante a sincronização. Nada nesses subcaminhos será sincronizado a qualquer momento.
    Nós padrão a serem ignorados:

    • .tokens
    • sistema
  • Pastas distribuídasA maioria das
    pastas:são ignoradas porque a sincronização não é necessária. As poucas exceções estão listadas aqui.
    Pastas padrão para sincronizar

    • segmentos/pontuação
    • social/relações
    • atividades

9. ID de Sling Exclusivo

CAUTION

Se a Sling ID corresponder entre duas ou mais instâncias de publicação, a sincronização do grupo de usuários falhará.

Se a Sling ID for a mesma para várias instâncias de publicação em um farm de publicação, os grupos de usuários não serão sincronizados.

Para validar se todos os valores de ID de Sling diferem, em cada instância de publicação:

  1. navegue até http://<host>:<port>/system/console/status-slingsettings
  2. verifique o valor de Sling ID

Se a Sling ID de uma instância de publicação corresponder à Sling ID de qualquer outra instância de publicação, então:

  1. parar uma das instâncias de publicação com uma ID de Sling correspondente

  2. no diretório crx-quickstart/launch/felix

    • procure e exclua o arquivo chamado sling.id.file

      • por exemplo, em um sistema Linux:

        rm -i $(find . -type f -name sling.id.file)

      • por exemplo, em um sistema Windows:

        use windows explorer and search for *sling.id.file*

  3. start da instância de publicação

    • na inicialização, ele receberá uma nova ID de Sling
  4. valide se Sling ID agora é exclusiva

Repita essas etapas até que todas as instâncias de publicação tenham uma Sling ID exclusiva.

Fábrica do Criador de Pacotes do Vault

Para que as atualizações sejam sincronizadas corretamente, é necessário modificar o construtor de pacote do cofre para sincronização do usuário:

  • em cada instância de publicação AEM

  • acesse o Web Console

  • localize Apache Sling Distribution Packaging - Vault Package Builder Factory

    • Builder name: socialpubsync-vlt
  • selecione o ícone de edição

  • adicione dois Package Node Filters:

    • /home/users|-.*/.tokens
    • /home/users|-.*/rep:cache
  • tratamento de políticas:

    • para substituir os nós rep existentes:policy por novos, adicione um terceiro Filtro de Pacote:

      • /home/users|+.*/rep:policy
    • para impedir que as políticas sejam distribuídas, defina

      • Acl Handling: IGNORE

Fábrica do Criador de pacotes Vault

O Que Acontece Quando…

Perfil de Autoregistros ou Edições do Usuário em Publicar

Por padrão, os usuários e perfis criados no ambiente de publicação (autoinscrição) não aparecem no ambiente do autor.

Quando a topologia é um farm de publicação e a sincronização do usuário foi configurada corretamente, o *usuário *e perfil do usuário é sincronizado no farm de publicação usando a distribuição Sling.

Usuários ou grupos de usuários são criados usando o console de segurança

Por padrão, os dados do usuário criados no ambiente de publicação não aparecem no ambiente do autor e vice-versa.

Quando o console Administração do usuário e Segurança for usado para adicionar novos usuários no ambiente de publicação, a sincronização do usuário sincronizará os novos usuários e sua associação de grupo com outras instâncias de publicação, se necessário. A sincronização do usuário também sincronizará os grupos de usuários criados por meio do console de segurança.

Resolução de problemas

Como colocar a sincronização do usuário offline

Para colocar a sincronização do usuário offline, para que remova um editor ou sincronize manualmente os dados, a fila de distribuição deve estar vazia e silenciosa.

Para verificar o estado da fila de distribuição:

  • sobre o autor:

    • usando CRXDE Lite

      • procurar entradas em /var/sling/distribution/packages

        • nós de pasta nomeados com o padrão distrpackage_*
    • usando Gerenciador de pacotes

      • procurar pacotes pendentes (ainda não instalados)

        • nomeado com o padrão socialpubsync-vlt*
        • criado por communities-user-admin

Quando a fila de distribuição estiver vazia, desative a sincronização do usuário:

Após a conclusão do tarefa, para reativar a sincronização do usuário:

Diagnóstico de sincronização de usuário

O Diagnóstico de sincronização do usuário é uma ferramenta que verifica a configuração e tenta identificar qualquer problema.

No autor, basta navegar do console principal por Ferramentas, Operações, Diagnóstico, Diagnóstico de Sincronização do Usuário.

Basta entrar no console Diagnóstico de sincronização do usuário para exibir os resultados.

Isso é o que é exibido quando a Sincronização do usuário não está ativada:

Como executar o diagnóstico para editores

Quando o diagnóstico é executado a partir do ambiente do autor, os resultados de aprovação/falha incluirão uma seção [INFO] exibindo a lista de instâncias de publicação configuradas para confirmação.

Incluído na lista, há um URL para cada instância de publicação que executará o diagnóstico para essa instância. O parâmetro url syncUser é anexado ao URL de diagnóstico com seu valor definido para usuário de sincronização autorizado criado em Etapa 2.

Observação: antes de iniciar o URL, o usuário de sincronização autorizado já deve estar conectado a essa instância de publicação.

Configuração adicionada incorretamente

Quando a sincronização do usuário falha, o problema mais comum é que configurações adicionais foram adicionadas. Em vez disso, a *configuração padrão existente *deveria ter sido editada.

Veja a seguir visualizações de como as configurações padrão editadas devem aparecer no console da Web. Se mais de uma instância for exibida, a configuração adicionada deverá ser removida.

(autor) One Apache Sling Distribution Agent - Sync Agents Fatory

(autor) One Apache Sling Distribution Transport Credentials - Credenciais do usuário baseadas em DistributionTransportSecretProvider

(publicar) Um agente de distribuição Apache Sling - Fábrica de agentes de fila

(publicar) One Adobe Social Sync - Diff Observer Fatory

(autor) Um Apache Sling Distribution Trigger - Agendamento da Fábrica de Acionadores

Modificar Exceção de Operação Durante Processamento de Resposta

Se o seguinte estiver visível no registro:

org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.

java.lang.IllegalStateException: This tree does not exist

Em seguida, verifique se a seção 2. A opção Criar usuário autorizado foi seguida corretamente.

Esta seção descreve a criação de um usuário autorizado, que existe em todas as instâncias de publicação e a identificação deles na configuração OSGi do 'Provedor secreto' no autor. Por padrão, o usuário é admin.

O usuário autorizado deve se tornar um membro do grupo de usuários administrators e as permissões desse grupo não devem ser alteradas.

O usuário autorizado deve ter explicitamente os seguintes privilégios e restrições em todas as instâncias de publicação:

path jcr:all rep:global
/home X /atividades/
/home/users X /atividades/
/home/groups X /atividades/

Como membro do grupo administrators, o usuário autorizado deve ter os seguintes privilégios em todas as instâncias de publicação:

caminho jcr:all jcr:read rep:write
/etc/packages/sling/distribution X
/libs/sling/distribution X
/var X
/var/eventing X X
/var/sling/distribution X X

Falha na sincronização do grupo de usuários

Se a Sling ID corresponder entre duas ou mais instâncias de publicação, a sincronização do grupo de usuários falhará.

Ver seção 9. ID de Sling Exclusivo

Sincronizando manualmente usuários e grupos de usuários

Para configurar ou ativar a sincronização do usuário, vá para a etapa 1: Apache Sling Distribution Agent - Fábrica de agentes de sincronização

Quando um editor se torna indisponível

Quando uma instância de publicação ficar indisponível, ela não deverá ser removida se estiver novamente online no futuro. As alterações serão colocadas em fila para o editor e, uma vez que estejam novamente online, as alterações serão processadas.

Se a instância de publicação nunca mais estiver on-line, se estiver off-line permanentemente, ela deverá ser removida, pois a construção da fila resultará no uso notável de espaço em disco no ambiente do autor.

Quando um editor estiver inativo, o registro do autor terá exceções semelhantes a:

28.01.2016 15:57:48.475 ERROR
 [pool-12-thread-34-org_apache_sling_distribution_queue_socialpubsync_endpoint1
 (org/apache/sling/distribution/queue/socialpubsync/endpoint1)]
 org.apache.sling.distribution.agent.impl.SimpleDistributionAgent [agent][socialpubsync] could not deliver package distrpackage_1454014575838_a2b45ec8-0400-42f3-bed8-ae09b66381cb
 org.apache.sling.distribution.packaging.DistributionPackageImportException: failed in importing package ...

Como remover um editor

Para remover um editor do Apache Sling Distribution Agent - Sync Agents Fatory, a fila de distribuição deve estar vazia e silenciosa.

Nesta página