Sincronização de usuário

Introdução

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

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 instâncias de publicação.

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 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

Os dados do usuário, juntamente com seus ACLs, são armazenados no Oak Core, a camada abaixo do Oak JCR, e são acessadas usando o 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 Distribuição de conteúdo do Sling (Distribuição 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ário e grupos de usuários criados na publicação não são criados no 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 apenas dados do usuário para instâncias de publicação não originárias, eliminando o tráfego desnecessário

  • ACLs definidos no nó do usuário são incluídos na sincronização

OBSERVAÇÃO

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.

ATENÇÃO

Sincronização do administradores grupo não é suportado, mesmo quando a sincronização do usuário está habilitada. Em vez disso, uma falha ao "importar o diferencial" será registrada no log de erros.

Portanto, quando a implantação for um farm de publicação, se um usuário for adicionado ou removido da variável administradores , a modificação deve ser feita manualmente em cada instância de publicação.

Habilitar Sincronização de Usuário

OBSERVAÇÃO

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

A habilitação da sincronização de usuários envolve a modificação existente Configurações do OSGi.

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.

A seguir estão as etapas necessárias para habilitar a sincronização de usuários, seguidas por uma Solução de problemas seção:

Pré-requisitos

  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 ativar 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 foi instalado:

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

Habilitar sincronização de usuário

  • no autor

    • entrar com privilégios de administrador

    • acesse o Console da Web

    • localizar Apache Sling Distribution Agent - Sync Agents Factory

      • selecionar a configuração existente a ser aberta para edição (ícone de lápis) Verificar name: socialpubsync

      • selecione o Enabled caixa de seleção

      • selecionar Save

2. Criar usuário autorizado

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

ATENÇÃO

Um novo usuário deve ser criado.

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

Como adicionar ACL

  • CRXDE Lite de acesso

  • selecionar /home

  • no painel direito, selecione a Access Control guia

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

    • Principal: pesquisar usuário criado para sincronização de usuários
    • Tipo: Allow
    • Privilégios: jcr:all
    • Restrições rep:glob: */activities/*
    • selecionar OK
  • selecionar Salvar tudo

Consulte também:

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

Configurar permissões

Quando um usuário autorizado, um membro da administrators grupo de usuários, foi criado em todas as instâncias de publicação, esse usuário autorizado deve ser identificado no autor como tendo permissão para sincronizar dados do usuário do autor para publicação.

  • no autor

    • entrar com privilégios de administrador

    • acesse o Console da Web

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

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

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

      • por exemplo, usersync-admin

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

Habilitar sincronização de usuário

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

    • entrar com privilégios de administrador

    • acesse o Console da Web

    • localizar Apache Sling Distribution Agent - Queue Agents Factory

      • selecionar a configuração existente a ser aberta para edição (ícone de lápis) Verificar Name: socialpubsync-reverse

      • selecione o Enabled caixa de seleção

      • selecionar Save

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

5. Adobe Social Sync - Diff Observer Fatory

Habilitar sincronização de grupo

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

    • entrar com privilégios de administrador

    • acesse o Console da Web

    • localizar Adobe Social Sync - Diff Observer Factory

      • selecionar a configuração existente a ser aberta para edição (ícone de lápis)

        Verificar agent name: socialpubsync-reverse

      • selecione o Enabled caixa de seleção

      • selecionar Save

6. Acionador de distribuição do Apache Sling - Fábrica de acionadores programados

(Opcional) modificar intervalo de pesquisa

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

  • no autor

    • entrar com privilégios de administrador

    • acesse o Console da Web

    • localizar Apache Sling Distribution Trigger - Scheduled Triggers Factory

      • selecionar a configuração existente a ser aberta para edição (ícone de lápis)

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

      • selecionar 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 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 precisarão ser adicionadas ao Sync Agents Fatory.

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

Adicionar instâncias de publicação:

  • no autor

    • entrar com privilégios de administrador

    • acesse o Console da Web

    • localizar Apache Sling Distribution Agent - Sync Agents Factory

      • selecionar a configuração existente a ser aberta para edição (ícone de lápis) Verificar Name: socialpubsync

  • Endpoints do exportador
    Deve haver um terminal de exportador para cada instância de publicação. Por exemplo, se houver 2 instâncias de publicação, localhost:4503 e 4504, deverá haver 2 entradas:

    • https://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • https://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • Endpoints do importador
    Deve haver um endpoint de importador para cada instância de publicação. Por exemplo, se houver 2 instâncias de publicação, localhost:4503 e 4504, deverá haver 2 entradas:

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

8. Ouvinte de sincronização de usuário do AEM Communities

(Opcional) Sincronizar nós JCR adicionais

Se houver dados personalizados que você deseja sincronizar em várias instâncias de publicação, então:

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

    • entrar com privilégios de administrador

    • acesse o Console da Web

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

    • selecionar a configuração existente a ser aberta para edição (ícone de lápis) Verificar Name: socialpubsync-scheduled-trigger

  • Tipos de nós
    Esta é 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 serem sincronizados:

    • rep:Usuário
    • nt:unstructured
    • nt:resource
  • Propriedades ignoráveis
    Esta é 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 sozinhas.
    Propriedade padrão a ignorar:

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

    • .tokens
    • system
  • Pastas Distribuídas
    A maioria das sling:Folders é ignorada porque a sincronização não é necessária. As poucas exceções estão listadas aqui.
    Pastas padrão a serem sincronizadas

    • segmentos/pontuação
    • social/relacionamentos
    • atividades

9. ID exclusiva do Sling

ATENÇÃO

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 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 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 ID do Sling

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 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, ele receberá uma nova ID do Sling
  4. validar que o ID do Sling agora é único

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

Fábrica do Package Builder do Vault

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

  • acesse o Console da Web

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

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

  • adicionar 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 Package Builder do Vault

O Que Acontece Quando…

O usuário se registra ou edita o perfil ao publicar

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 é uma publicar farm e a sincronização do usuário tiver sido configurada corretamente, a variável 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 design, os dados do usuário criados no ambiente de publicação não aparecem no ambiente de criação e vice-versa.

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

Resolução de problemas

Como colocar a sincronização de usuários off-line

Para colocar a sincronização do usuário off-line, 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:

  • no autor:

    • usar CRXDE Lite

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

        • nós de pasta nomeados com o padrão distrpackage_*
    • usar 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, 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

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

Na criação, basta navegar do console principal até Ferramentas, Operações, Diagnóstico, Diagnóstico de sincronização de usuário.

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:

Como executar diagnósticos para instâncias de publicação

Quando o diagnóstico for executado no ambiente do autor, os resultados de aprovação/falha incluirão uma [INFORMAÇÕES] 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 executará o diagnóstico para essa instância. O parâmetro de URL syncUser é anexado ao URL de diagnóstico com o valor definido como usuário de sincronização autorizado criado em Etapa 2.

Nota: antes de iniciar o URL, a variável 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 de usuários falha ao funcionar, o problema mais comum é que configurações adicionais foram adicionado. Em vez disso, a configuração padrão *existente *deve ter sido editado.

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) One Apache Sling Distribution Agent - Fábrica de agentes de sincronização

(autor) Credenciais de transporte de distribuição do Apache Sling - credenciais do usuário com base em DistributionTransportSecretProvider

(publicar) Um Agente de distribuição de sling do Apache - Fábrica de agentes de fila

(publicar) One Adobe Social Sync - Diff Observer Fatory

(autor) Um acionador de distribuição do Apache Sling - Fábrica de acionadores programados

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

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 2. Criar usuário autorizado foi seguido corretamente.

Esta seção descreve como criar um usuário autorizado, que existe em todas as instâncias de publicação, e identificá-lo na configuração OSGi "Provedor secreto" no autor. Por padrão, o admin.

O usuário autorizado deve se tornar membro do administrators o grupo de usuários 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 representante:glob
/home X */atividades/*
/home/users X */atividades/*
/home/groups X */atividades/*

Como membro do 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 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. ID exclusiva do Sling

Sincronizando usuários e grupos de usuários manualmente

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

Quando uma instância de publicação se torna indisponível

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 serão colocadas em fila para a instância de publicação e, quando estiver online novamente, as alterações serão processadas.

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

Quando uma instância de publicação estiver inativa, o log 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 uma instância de publicação

Para remover uma instância de publicação da Apache Sling Distribution Agent - Fábrica de agentes de sincronização, a fila de distribuição deve estar vazia e silenciosa.

Nesta página