Quando a implantação é uma publicar farm, os membros do precisam fazer logon e ver seus dados em qualquer nó de publicação.
Usuários e grupos de usuários (dados de usuários) 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 de criação tem o objetivo de permanecer no ambiente de criação 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 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 é ativada, os dados do usuário são sincronizados automaticamente entre as instâncias de publicação no farm e não são criados no autor.
Os dados do usuário, juntamente com seus ACLssão armazenadas no Oak Core, a camada abaixo do JCR do Oak e são acessadas usando o API Oak. Com atualizações infrequentes, é razoável que os dados do usuário sejam sincronizados com outras instâncias de publicação usando Distribuição de conteúdo Sling (Distribuição Sling).
Os benefícios da sincronização de usuários usando a distribuição do Sling, em comparação com a 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 do Sling define propriedades em eventos jcr, permitindo agir dentro de ouvintes de eventos do lado da publicação sem preocupação com loops de replicação infinitos
A distribuição do Sling envia apenas dados do usuário para instâncias de publicação não originárias, eliminando tráfego desnecessário
ACLs definidos no nó do usuário são incluídos na sincronização
Se as sessões forem necessárias, é recomendável usar uma solução SSO ou usar uma sessão fixa e fazer com que os clientes façam logon se mudarem para outra instância de publicação.
Sincronização da administradores não é suportado, mesmo quando a sincronização do usuário está ativada. Em vez disso, uma falha em 'importar o diff' será registrada no log de erros.
Portanto, quando a implantação é um farm de publicação, se um usuário for adicionado ou removido do administradores , a modificação deve ser feita manualmente em cada instância de publicação.
Por padrão, a sincronização do usuário é disabled
.
A habilitação da sincronização de usuários envolve modificar existente Configurações 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 de criação para gerenciar as distribuições de dados do usuário, mesmo que os dados do usuário não sejam criados no autor. Muitas, mas não todas, das configurações ocorrem no ambiente de criação e cada etapa identifica claramente se elas devem ser executadas no autor ou na publicação.
A seguir estão as etapas necessárias para habilitar a sincronização do usuário, seguido por um Solução de problemas seção:
Quando a sincronização do usuário estiver ativada, somente os usuários e grupos recém-criados serão sincronizados.
Ativar sincronização de usuários
sobre o autor
fazer logon com privilégios de administrador
acesse o Console da Web
localizar Apache Sling Distribution Agent - Sync Agents Factory
selecione a configuração existente a ser aberta para edição (ícone de lápis) Verificar name
: socialpubsync
selecione o Enabled
caixa de seleção
select Save
Configurar permissões
Esse usuário autorizado será usado na etapa 3 para configurar a distribuição do Sling no autor.
em cada instância de publicação
fazer logon com privilégios de administrador
acesse o Console de segurança
criar um novo usuário
usersync-admin
adicionar este usuário ao administrators
grupo de usuários
adicionar ACL a este usuário para /home
Allow jcr:all
com restrição rep:glob=*/activities/*
Um novo usuário deve ser criado.
admin
.communities-user-admin user.
CRXDE Lite de acesso
select /home
nó
no painel direito, selecione o Access Control
guia
selecione o +
botão para adicionar uma entrada ACL
Allow
jcr:all
*/activities/*
select Salvar tudo
Consulte também:
Configurar permissões
Uma vez que um usuário autorizado, um membro da administrators
grupo de usuários, criado em todas as instâncias de publicação, que o usuário autorizado deve ser identificado no autor 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 Console da Web
localizar com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
selecione 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 como usuário autorizado criado na publicação na etapa 2
usersync-admin
Ativar sincronização de usuários
em cada instância de publicação:
fazer logon com privilégios de administrador
acesse o Console da Web
localizar Apache Sling Distribution Agent - Queue Agents Factory
selecione 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
select Save
repetição para cada instância de publicação
Ativar sincronização de grupos
em cada instância de publicação:
fazer logon com privilégios de administrador
acesse o Console da Web
localizar Adobe Social Sync - Diff Observer Factory
selecione 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
select Save
(Opcional) modificar o intervalo de sondagem
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 Console da Web
localizar Apache Sling Distribution Trigger - Scheduled Triggers Factory
selecione a configuração existente a ser aberta para edição (ícone de lápis)
Name
: socialpubsync-scheduled-trigger
defina as Interval in Seconds
para o intervalo desejado
select Save
A configuração padrão é para uma única instância de publicação. Como o motivo para ativar a sincronização do usuário é 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.
Adicionar instâncias de publicação:
sobre o autor
fazer logon com privilégios de administrador
acesse o Console da Web
localizar Apache Sling Distribution Agent - Sync Agents Factory
Name
: socialpubsync
Endpoints do exportador
Deve haver um ponto de extremidade 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 ponto de extremidade 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
select Save
(Opcional) Sincronizar nós JCR adicionais
Se houver dados personalizados que desejam ser 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 Console da Web
https://localhost:4503/system/console/configMgr
localizar AEM Communities User Sync Listener
selecione a configuração existente a ser aberta para edição (ícone de lápis) Verificar Name
: socialpubsync-scheduled-trigger
Tipos de nó
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 serem sincronizados:
Propriedades Ignoráveis
Esta é a lista de propriedades que será ignorada 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:
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:
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
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 da ID do Sling são diferentes, em cada instância de publicação:
http://<host>:<port>/system/console/status-slingsettings
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:
pare uma das instâncias de publicação que tenha uma ID do Sling correspondente
no diretório crx-quickstart/launchpad/felix
pesquise 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*
inicie a instância de publicação
valide que a variável Sling ID agora é exclusivo
Repita essas etapas até que todas as instâncias de publicação tenham uma ID do Sling exclusiva.
Para que as atualizações sejam sincronizadas corretamente, é necessário modificar o construtor de pacotes de cofre para sincronização do usuário:
em cada instância de publicação de AEM
acesse o Console da Web
localize o Apache Sling Distribution Packaging - Vault Package Builder Factory
Builder name: socialpubsync-vlt
selecione 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 evitar que as políticas sejam distribuídas, defina
Acl Handling:
IGNORE
Por design, usuários e perfis criados no ambiente de publicação (autoregistro) não aparecem no ambiente do autor.
Quando a topologia for uma publicar farm e a sincronização do usuário foi configurada corretamente, a variável usuário e perfil de usuário é sincronizado no farm de publicação usando a distribuição do Sling.
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 do usuário sincronizará os novos usuários e a associação do grupo a outras instâncias de publicação, se necessário. A sincronização de usuários também sincronizará os grupos de usuários criados pelo console de segurança.
Para colocar a sincronização do usuário offline, para remover uma instância de publicação ou sincronizar dados manualmente, a fila de distribuição deve estar vazia e quieta.
Para verificar o estado da fila de distribuição:
sobre o autor:
usar CRXDE Lite
procurar entradas em /var/sling/distribution/packages
distrpackage_*
procurar pacotes pendentes (ainda não instalados)
socialpubsync-vlt*
communities-user-admin
Quando a fila de distribuição estiver vazia, desative a sincronização do usuário:
sobre o autor
Enabled
caixa de seleção para Apache Sling Distribution Agent - Fábrica de agentes de sincronizaçãoDepois que as tarefas forem concluídas, para reativar a sincronização do usuário:
sobre o autor
Enabled
caixa de seleção para Apache Sling Distribution Agent - Fábrica de agentes de sincronizaçãoO User Sync Diagnostics é uma ferramenta que verifica a configuração e tenta identificar qualquer problema.
Ao criar, basta navegar do console principal por Ferramentas, Operações, Diagnóstico, Diagnóstico de Sincronização do Usuário.
Basta entrar no console do Diagnóstico de sincronização do usuário para exibir os resultados.
O que é exibido quando a Sincronização de usuários não foi habilitada:
Quando o diagnóstico é executado a partir do ambiente do autor, os resultados de aprovação/falha incluirão um [INFO] exibindo a lista de instâncias de publicação configuradas para confirmação.
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 do diagnóstico com seu valor definido como usuário de sincronização autorizado criado em Etapa 2.
Observação: 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.
Quando a sincronização do usuário falha, o problema mais comum é que configurações adicionais eram adicionado. Em vez disso, a *configuração *padrão existente deveria ter sido editado.
A seguir estão as exibiçõ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.
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 como criar um usuário autorizado, que existe em todas as instâncias de publicação e identificá-lo na configuração OSGi do "Provedor secreto" no autor. Por padrão, o usuário é admin
.
O usuário autorizado deve se tornar membro do administrators
grupo de usuários e 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:
path | jcr:all | rep: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 |
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
em instâncias de publicação nas quais os usuários e grupos de usuários existem:
criar um pacote de /home
ao editar o pacote
/home
Overwrite
em outras instâncias de publicação:
Para configurar ou habilitar a sincronização do usuário, vá para a etapa 1: Apache Sling Distribution Agent - Fábrica de agentes de sincronização
Quando uma instância de publicação se tornar indisponível, ela não deverá ser removida se estiver novamente online no futuro. As alterações serão colocadas em fila para a instância de publicação e, uma vez que elas estiverem novamente online, as alterações serão processadas.
Se a instância de publicação nunca voltar a ficar online, se estiver offline permanentemente, ela deverá ser removida, pois a construção de 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 ...
Para remover uma instância de publicação do Apache Sling Distribution Agent - Fábrica de agentes de sincronização, a fila de distribuição deve estar vazia e quieta.
sobre o autor:
seguir etapa 7 para remover a instância de publicação de ambas as listas de servidores:
Exporter Endpoints
Importer Endpoints
reativar sincronização de usuários
Enabled
caixa de seleção para Apache Sling Distribution Agent - Fábrica de agentes de sincronização