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.
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
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.
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.
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:
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á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
Configurar
permissõesEste usuário autorizado será usado na etapa 3 para configurar a distribuição 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 grupo de usuários administrators
adicionar ACL para este usuário em /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
selecionar nó /home
no painel direito, selecione a guia Access Control
selecione o botão +
para adicionar uma entrada ACL
Allow
jcr:all
*/activities/*
selecione Salvar tudo
Consulte também:
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
usersync-admin
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
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
(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)
Name
: socialpubsync-scheduled-trigger
defina Interval in Seconds
para o intervalo desejado
selecione 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 é 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.
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
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
(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
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:
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:
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:
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
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:
http://<host>:<port>/system/console/status-slingsettings
Se a Sling ID de uma instância de publicação corresponder à Sling ID de qualquer outra instância de publicação, então:
parar uma das instâncias de publicação com uma ID de Sling correspondente
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*
start da instância de publicação
valide se Sling ID agora é exclusiva
Repita essas etapas até que todas as instâncias de publicação tenham uma Sling ID exclusiva.
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
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.
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.
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
distrpackage_*
usando Gerenciador de pacotes
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
para Apache Sling Distribution Agent - Sync Agents FatoryApós a conclusão do tarefa, para reativar a sincronização do usuário:
sobre o autor
Enabled
para Apache Sling Distribution Agent - Sync Agents FatoryO 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:
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.
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.
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 |
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
no editor em que 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 ativar 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 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 ...
Para remover um editor do Apache Sling Distribution Agent - Sync Agents Fatory, a fila de distribuição deve estar vazia e silenciosa.
sobre o autor:
siga etapa 7 para remover o editor das duas listas do servidor:
Exporter Endpoints
Importer Endpoints
reativar sincronização do usuário
Enabled
para Apache Sling Distribution Agent - Sync Agents Fatory