Sincronização de usuário user-synchronization

Introdução introduction

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

Usuários e grupos de usuários (dados do usuário) criados no ambiente de publicação não são necessários no ambiente de criação.

A maioria dos dados do usuário criados no ambiente do autor destina-se a permanecer no ambiente do autor e não ser copiada para as instâncias de Publicação.

O registro e as modificações feitas em uma instância de publicação devem 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 de usuários é ativada, os dados do usuário são sincronizados automaticamente nas instâncias de Publicação no farm e não são criados no autor.

Distribuição Sling sling-distribution

Os dados do usuário, juntamente com suas ACLs, são armazenados no Oak Core, a camada abaixo do Oak JCR, e são acessados usando a API do Oak. Com atualizações pouco frequentes, é razoável que os dados do usuário sejam sincronizados com outras instâncias de Publicação usando a Distribuição de conteúdo de sling (distribuição de sling).

Os benefícios da sincronização de usuários usando a distribuição Sling, em comparação à replicação tradicional, são:

  • usuários, perfis de usuários e grupos de usuários criados em Publicar não são criados em Autor

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

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

  • ACLs definidas no nó do usuário estã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 adesiva e solicitar que os clientes façam logon se forem alternados para outra instância de publicação.
CAUTION
Não há suporte para a sincronização do grupo administradores, mesmo quando a sincronização de usuário está habilitada. Em vez disso, uma falha ao "importar o diferencial" é registrada no log de erros.
Portanto, quando a implantação for 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 enable-user-sync

NOTE
Por padrão, a sincronização do usuário é disabled.
A habilitação da sincronização de usuários envolve a modificação de configurações OSGi existentes.
Nenhuma nova configuração deve ser adicionada como resultado da ativação da sincronização do usuário.

A sincronização de usuários 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 ocorre no ambiente de criação e cada etapa identifica claramente se deve ser executada no Autor ou na Publicação.

Veja a seguir as etapas necessárias para habilitar a sincronização de usuários, seguida pela seção Solução de problemas:

Pré-requisitos prerequisites

  1. Se usuários e grupos de usuários já tiverem sido criados em uma instância de Publicação, é recomendável sincronizar manualmente os dados do usuário em todas as instâncias de Publicação antes de configurar e habilitar a sincronização de usuários.

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

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

​1. Apache Sling Distribution Agent - Fábrica de agentes de sincronização apache-sling-distribution-agent-sync-agents-factory

Habilitar sincronização de usuário

  • no autor

    • entrar com privilégios de administrador

    • acessar o Console da Web

    • localizar Apache Sling Distribution Agent - Sync Agents Factory

      • selecione a configuração existente para abri-la para edição (ícone de lápis)
        Verificar name: socialpubsync

      • marque a caixa de seleção Enabled

      • selecionar Save

Agente de distribuição de Apache Sling

​2. Criar usuário autorizado createauthuser

Configurar permissões

O usuário autorizado é usado na etapa 3 para configurar a distribuição do Sling no Author.

CAUTION
Um novo usuário deve ser criado.
  • O usuário padrão atribuído é admin.

Como adicionar ACL addacls

  • acessar o CRXDE Lite

  • selecionar nó /home

  • no painel direito, selecione a guia Access Control

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

    • Entidade de Segurança: pesquisar usuário criado para sincronização de usuário
    • TipoAllow
    • Privilégios: jcr:all
    • Restrições rep:glob: */activities/*
    • selecione OK
  • selecione Salvar tudo

Adicionar Janela ACL

Consulte também:

​3. Distribuição do Adobe Granite - Provedor secreto de transporte de senha criptografada adobegraniteencpasswrd

Configurar permissões

Depois que um usuário autorizado, membro do grupo de usuários administrators, é criado em todas as instâncias de Publicação, o usuário autorizado deve ser identificado no Autor como tendo permissão para sincronizar dados do usuário de Autor para Publicação.

  • em Autor

    • entrar com privilégios de administrador

    • acessar o Console da Web

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

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

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

      • por exemplo, usersync-admin

Provedor de Segredo de Transporte de Senha Criptografado

​4. Apache Sling Distribution Agent - Fábrica de agentes de fila apache-sling-distribution-agent-queue-agents-factory

Habilitar sincronização de usuário

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

    • entrar com privilégios de administrador

    • acessar o Console da Web

    • localizar Apache Sling Distribution Agent - Queue Agents Factory

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

      • marque a caixa de seleção Enabled

      • selecionar Save

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

Fábrica de Agentes de Fila

​5. Adobe Social Sync - Diff Observer Fatory diffobserver

Habilitar sincronização de grupo

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

    • entrar com privilégios de administrador

    • acessar o Console da Web

    • localizar Adobe Social Sync - Diff Observer Factory

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

        Verificar agent name: socialpubsync-reverse

      • marque a caixa de seleção Enabled

      • selecionar Save

Fábrica de Observadores de Diferenças

​6. Acionador de distribuição do Apache Sling - Fábrica de acionadores programados apache-sling-distribution-trigger-scheduled-triggers-factory

(Opcional) modificar intervalo de sondagem

Por padrão, o Autor pesquisa alterações a cada 30 segundos. Para alterar esse intervalo:

  • em Autor

    • entrar com privilégios de administrador

    • acessar o Console da Web

    • localizar Apache Sling Distribution Trigger - Scheduled Triggers Factory

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

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

      • selecionar Save

Fábrica de Gatilhos Agendada

Configurar para várias instâncias de publicação configure-for-multiple-publish-instances

A configuração padrão é para uma única instância de publicação. Como o motivo para habilitar a sincronização de usuários é sincronizar várias instâncias de Publicação, como em um farm de publicação, as instâncias de Publicação adicionais devem ser adicionadas ao Alocador de Agentes de Sincronização.

​7. Apache Sling Distribution Agent - Fábrica de agentes de sincronização apache-sling-distribution-agent-sync-agents-factory-1

Adicionar instâncias de publicação:

  • em Autor

Fábrica de Agentes de Sincronização

  • Pontos de Extremidade do Exportador
    Deve haver um endpoint exportador para cada instância de publicação. Por exemplo, se houver duas instâncias de Publicação, localhost:4503 e 4504, deverá haver duas 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 Importador
    Deve haver um endpoint de importador para cada instância de publicação. Por exemplo, se houver duas instâncias de Publicação, localhost:4503 e 4504, deverá haver duas entradas:

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

​8. ID exclusiva do Sling unique-sling-id

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

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

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

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

Verificando o valor da ID do Sling

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

  1. interrompa uma das instâncias Publicar que tenha uma Sling ID 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. iniciar a instância de publicação

    • na inicialização, uma nova ID do Sling é atribuída a ele
  4. valide se a ID do Sling agora é exclusiva

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

Fábrica do Package Builder do Vault vault-package-builder-factory

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

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

  • acessar o Console da Web

  • localizar o Apache Sling Distribution Packaging - Vault Package Builder Factory

    • Builder name: socialpubsync-vlt
  • selecionar o ícone editar

  • adicione dois Package Node Filters:

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

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

      • /home/users|+.*/rep:policy
    • para impedir a distribuição de políticas, defina

      • Acl Handling: IGNORE

Fábrica do Construtor de Pacotes do Vault

O Que Acontece Quando… what-happens-when

O usuário se registra ou edita o perfil ao publicar user-self-registers-or-edits-profile-on-publish

Por design, os usuários e perfis criados no ambiente de publicação (autorregistro) não aparecem no ambiente de criação.

Quando a topologia é um farm de publicação e a sincronização de usuário foi configurada corretamente, o usuário e o perfil de usuário são sincronizados 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 users-or-user-groups-are-created-using-security-console

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

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

Resolução de problemas troubleshooting

Como colocar a sincronização de usuários off-line how-to-take-user-sync-offline

Para colocar a sincronização de usuários offline, para remover uma instância de Publicação ou sincronizar dados manualmente, a fila de distribuição deve estar vazia e silenciosa.

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

  • em Autor:

    • usando o CRXDE Lite

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

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

      • procurar pacotes pendentes (ainda não instalados)

        • nomeado com o padrão socialpubsync-vlt*

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

Quando as tarefas forem concluídas, para reativar a sincronização de usuários:

Diagnóstico de sincronização de usuário user-sync-diagnostics

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

No Autor, basta navegar pelo console principal através de Ferramentas, Operações, Diagnóstico, Diagnóstico de Sincronização de Usuários.

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

Isso é exibido quando a Sincronização de Usuário não foi habilitada:

Aviso de que o Diagnóstico de Sincronização de Usuário não está habilitado

Como executar diagnósticos para instâncias de publicação how-to-run-diagnostics-for-publish-instances

Quando o diagnóstico é executado do ambiente do autor, os resultados aprovados/reprovados incluem uma seção [INFO] exibindo a lista de instâncias de Publicação configuradas para confirmação.

Está incluído na lista um URL para cada instância de publicação que executa o diagnóstico para essa instância. O parâmetro de URL syncUser está anexado à URL de diagnóstico com seu valor definido para o usuário de sincronização autorizado criado em Etapa 2.

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

Diagnóstico para Instâncias de Publicação

Configuração adicionada incorretamente configuration-improperly-added

Quando a sincronização de usuários falha ao funcionar, 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 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) Um agente de distribuição Apache Sling - fábrica de agentes de sincronização author-one-apache-sling-distribution-agent-sync-agents-factory

Modo de exibição de configurações padrão editado no Console da Web

(Autor) Credenciais de transporte de distribuição do Apache Sling - Credenciais do usuário com base em DistributionTransportSecretProvider author-one-apache-sling-distribution-transport-credentials-user-credentials-based-distributiontransportsecretprovider

Modo de exibição de configurações padrão editado no Console da Web

(Publicar) Um agente de distribuição Apache Sling - fábrica de agentes de fila publish-one-apache-sling-distribution-agent-queue-agents-factory

Modo de exibição de configurações padrão editado no Console da Web

(Publicar) One Adobe Social Sync - Diff Observer Fatory publish-one-adobe-social-sync-diff-observer-factory

Modo de exibição de configurações padrão editado no Console da Web

(Autor) Um acionador de distribuição do Apache Sling - Fábrica de acionadores programados author-one-apache-sling-distribution-trigger-scheduled-triggers-factory

Modo de exibição de configurações padrão editado no Console da Web

Modificar Exceção de Operação Durante o Processamento de Resposta modify-operation-exception-during-response-processing

Se o seguinte estiver visível no log:

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. Criar Usuário Autorizado foi seguido corretamente.

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

O usuário autorizado deve se tornar membro do grupo de usuários administrators e as permissões para esse 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:

caminho
jcr:all
rep:glob
/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 user-group-sync-failed

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

Consulte a seção 9. Identificador exclusivo do Sling

Sincronizando usuários e grupos de usuários manualmente manually-syncing-users-and-user-groups

Para configurar ou habilitar a sincronização de usuários, vá para a etapa 1: Agente de Distribuição Apache Sling - Fábrica de Agentes de Sincronização

Quando uma instância de publicação se torna indisponível when-a-publish-instance-becomes-unavailable

Quando uma instância de publicação se tornar indisponível, ela não deverá ser removida se estiver online novamente no futuro. As alterações são enfileiradas para a instância de Publicação e, quando ela voltar a ficar online, as alterações são processadas.

Se a instância de Publicação nunca voltar a ficar online, se estiver offline permanentemente, ela deverá ser removida, pois o acúmulo da fila resulta no uso notável de espaço em disco no ambiente do Autor.

Quando uma instância de Publicação está inativa, o log do Autor tem exceções semelhantes ao seguinte:

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 uma instância de publicação how-to-remove-a-publish-instance

Para remover uma instância de Publicação do Apache Sling Distribution Agent - Sync Agents Fatory, a fila de distribuição deve estar vazia e silenciosa.

recommendation-more-help
51c6a92d-a39d-46d7-8e3e-2db9a31c06a2