Show Menu
TÓPICOS×

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 suas ACLs , são armazenados no Oak Core , a camada abaixo de Oak JCR, e são acessados usando a API package-tree.htmlOak. Com atualizações raras, é razoável que os dados do usuário sejam sincronizados com outras instâncias de publicação usando a Distribuição de conteúdo Sling (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ários 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, 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 ACLs definidas no nó do usuário são incluídas na sincronização
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 publicador.
A sincronização do grupo * administradores *não é suportada, mesmo quando a sincronização do usuário 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 deve ser feita manualmente em cada instância de publicação.

Ativar sincronização de usuário

Por padrão, a sincronização do usuário é disabled .
A ativação da sincronização do usuário envolve a modificação das configurações existentes do 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.
Veja a seguir 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 Sincronização manual de usuários e grupos de usuários manualmente os dados do usuário com 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.
  2. 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
    • acessar o console da Web
    • location Apache Sling Distribution Agent - Sync Agents Factory
      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verificar name : socialpubsync
      • marcar a Enabled caixa de seleção
      • select Save

2. Criar usuário autorizado

Configurar permissões Este usuário autorizado será usado na etapa 3 para configurar a distribuição Sling no autor.
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

  • acessar CRXDE Lite
  • 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 do usuário
    • Tipo : Allow
    • Privilégios : jcr:all
    • Restrições rep:global: */activities/*
    • selecione OK
  • selecione Salvar tudo
Consulte também:

3. Distribuição do 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 ​s, for 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
    • acessar o console da Web
    • location Adobe Granite Distribution - Encrypted Password Transport Secret Provider
    • selecione a configuração existente para abrir para edição (ícone de lápis)
      Verificar property name : socialpubsync-publishUser
    • defina o nome de usuário e a senha para o usuário 2. Criar usuário autorizado autorizado criado ao publicar na etapa 2
      • for example, usersync-admin

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

Ativar sincronização de usuário
  • ao publicar :
    • fazer logon com privilégios de administrador
    • acessar o console da Web
    • location Apache Sling Distribution Agent - Queue Agents Factory
      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verificar Name : socialpubsync-reverse
      • marcar a Enabled caixa de seleção
      • select Save
    • repetir para cada instância de publicação

5. Distribuição do Adobe Granite - Fábrica de Observadores Diff

Ativar sincronização de grupos
  • em cada instância de publicação :
    • fazer logon com privilégios de administrador
    • acessar o console da Web
    • location Adobe Granite Distribution - Diff Observer Factory
      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verificar agent name : socialpubsync-reverse
      • marcar a Enabled caixa de seleção
      • select Save

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

(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
    • acessar o console da Web
    • location 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
      • definir o intervalo Interval in Seconds para o intervalo desejado
      • select 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
    • acessar o console da Web
    • location Apache Sling Distribution Agent - Sync Agents Factory
      • selecione a configuração existente para abrir para edição (ícone de lápis)
        Verificar Name : socialpubsync
  • Extremidades do exportador Deve haver um terminal de exportador para cada editor. Por exemplo, se houver 2 editores, localhost:4503 e 4504, deve haver 2 entradas:
    • http://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
    • http://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
  • Pontos de extremidade do importador Deve haver um ponto de extremidade do importador para cada editor. Por exemplo, se houver 2 editores, localhost:4503 e 4504, deve haver 2 entradas:
    • http://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
    • http://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
  • select Save

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

(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
    • acessar o console da Web
    • location AEM Communities User Sync Listener
    • selecione a configuração existente para abrir para edição (ícone de lápis)
      Verificar Name : socialpubsync-scheduled-trigger
  • Tipos de nós
    Esta é a lista de tipos de nós 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á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 por si só.
    Propriedade padrão a ser ignorada:
    • 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 serem ignorados:
    • .tokens
    • sistema
  • 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 para sincronizar
    • segmentos/pontuação
    • social/relações
    • atividades

9. ID de Sling exclusiva

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 são diferentes, em cada instância de publicação:
  1. navegar até http://<host>:<port>/system/console/status-slingsettings
  2. verifique o valor da 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. validar que a 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 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 do AEM
  • acessar o console da Web
  • localize a variável Apache Sling Distribution Packaging - Vault Package Builder Factor
    • Builder name: socialpubsync-vlt
  • selecione o ícone de edição
  • adicionar dois Package Filters :
    • /home/users|-.*/.tokens
    • /home/users|-.*/rep:cache
  • tratamento das 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

O Que Acontece Quando...

Perfil de Autoinscrição ou edição do usuário na publicação

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 o perfil do 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

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 e segurança do usuário for usado para adicionar novos usuários ao 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 remover um editor ou sincronizar dados Sincronização manual de usuários e grupos de usuários manualmente, a fila de distribuição deve estar vazia e silenciosa.
Para verificar o estado da fila de distribuição:
  • sobre o 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*
        • created by 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.
Em autor, basta navegar do console principal por meio de 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 # 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 o usuário de sincronização autorizado criado na 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 deve 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) Uma distribuição do Adobe Granite - Provedor secreto de transporte de senha criptografado

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

(publicar) Uma distribuição do Adobe Granite - Fábrica de Observadores Diff

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

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. 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 a identificação deles na configuração OSGi do 'Provedor secreto' no autor. By default, the user is admin .
O usuário autorizado deve se tornar um membro do grupo de administrators usuários 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
&ast;/atividade/&ast;
/home/users
X
&ast;/atividade/&ast;
/home/groups
X
&ast;/atividade/&ast;
Como membro do administrators grupo, o usuário autorizado deve ter os seguintes privilégios em todas as instâncias de publicação:
path
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á.

Sincronização manual de 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 1. Apache Sling Distribution Agent - Fábrica de agentes de sincronização

Quando um editor fica 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.