Sincronización de usuarios user-synchronization
Introducción introduction
Cuando la implementación es un publicar granja, los miembros deben poder iniciar sesión y ver sus datos en cualquier nodo de publicación.
Los usuarios y grupos de usuarios (datos de usuario) creados en el entorno de publicación no son necesarios en el entorno de creación.
La mayoría de los datos de usuario creados en el entorno de creación están pensados para permanecer en el entorno de creación y no se copian en las instancias de publicación.
El registro y las modificaciones realizadas en una instancia de publicación deben sincronizarse con otras instancias de publicación para que tengan acceso a los mismos datos de usuario.
A partir de AEM 6.1, cuando la sincronización de usuarios está habilitada, los datos de usuario se sincronizan automáticamente en las instancias de publicación de la granja y no se crean en el autor.
Distribución de Sling sling-distribution
Los datos de usuario, junto con sus ACL, se almacenan en la variable Oak Core, la capa debajo de Oak JCR y se accede a ella mediante la variable API de Oak. Con actualizaciones poco frecuentes, es razonable que los datos de usuario se sincronicen con otras instancias de publicación mediante Distribución de contenido de Sling (Distribución de Sling).
Los beneficios de la sincronización de usuarios mediante la distribución Sling, en comparación con la replicación tradicional, son:
-
usuarios, perfiles de usuario y grupos de usuarios creadas en la publicación no se crean en el autor
-
La distribución de Sling establece propiedades en eventos jcr, lo que permite actuar dentro de los oyentes de eventos del lado de publicación sin preocuparse por los bucles de replicación infinitos
-
La distribución de Sling solo envía datos de usuario a instancias de publicación que no sean de origen, eliminando así el tráfico innecesario
-
ACL configurado en el nodo de usuario se incluyen en la sincronización
Habilitar sincronización de usuarios enable-user-sync
disabled
.La sincronización de usuarios depende del entorno de creación para administrar las distribuciones de datos de usuario, aunque los datos de usuario no se creen en el autor. Gran parte de la configuración, pero no toda, se realiza en el entorno de creación y cada paso identifica claramente si se va a realizar en el autor o la publicación.
A continuación se indican los pasos necesarios para habilitar la sincronización de usuarios, seguidos de una Resolución de problemas sección:
Requisitos previos prerequisites
-
Si los usuarios y grupos de usuarios ya se han creado en un publicador, se recomienda sincronizar manualmente los datos de usuario se envían a todos los editores antes de configurar y habilitar la sincronización de usuarios.
Una vez habilitada la sincronización de usuarios, solo se sincronizan los usuarios y grupos recién creados.
-
Asegúrese de que se ha instalado el código más reciente:
1. Agente de distribución Apache Sling: fábrica de agentes de sincronización apache-sling-distribution-agent-sync-agents-factory
Habilitar sincronización de usuarios
-
en author
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4502/system/console/configMgr
-
localizar
Apache Sling Distribution Agent - Sync Agents Factory
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
Verificar
name
:socialpubsync
-
seleccione
Enabled
casilla de verificación -
select
Save
-
-
2. Crear usuario autorizado createauthuser
Configuración de permisos
Este usuario autorizado se utilizará en el paso 3 para configurar la distribución de Sling en el autor.
-
en cada instancia de publicación
-
iniciar sesión con privilegios de administrador
-
acceda al Consola de seguridad
- por ejemplo, http://localhost:4503/useradmin
-
crear un nuevo usuario
- por ejemplo,
usersync-admin
- por ejemplo,
-
agregue este usuario al
administrators
grupo de usuarios -
agregar ACL para este usuario a /home
Allow jcr:all
con restricciónrep:glob=*/activities/*
-
- El usuario predeterminado asignado es
admin
. - No use
*communities-user-admin *user*.*
Cómo añadir ACL addacls
-
CRXDE Lite de acceso
- por ejemplo, http://localhost:4503/crx/de
-
select
/home
node -
en el panel derecho, seleccione
Access Control
ficha -
seleccione
+
para agregar una entrada ACL- Principal: buscar usuarios creados para sincronización de usuarios
- Tipo:
Allow
- Privilegios:
jcr:all
- Restricciones rep
*/activities/*
- select OK
-
select Guardar todo
Consulte también
- Gestión de derechos de acceso
- Sección Resolución de problemas Modificar excepción de operación durante el procesamiento de respuestas.
3. Distribución de Adobe Granite: proveedor secreto de transporte de contraseña cifrada adobegraniteencpasswrd
Configuración de permisos
Una vez que sea un usuario autorizado, un miembro de administrators
grupo de usuarios, se ha creado en todas las instancias de publicación, que el usuario autorizado debe identificarse como autor con permiso para sincronizar datos de usuario de autor a publicación.
-
en author
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4502/system/console/configMgr
-
localizar
com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
Verificar
property name
:socialpubsync-publishUser
-
establezca el nombre de usuario y la contraseña en la variable usuario autorizado creado al publicar en el paso 2
- por ejemplo,
usersync-admin
- por ejemplo,
-
4. Agente de distribución Apache Sling: fábrica de agentes de cola apache-sling-distribution-agent-queue-agents-factory
Habilitar sincronización de usuarios
-
al publicar :
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4503/system/console/configMgr
-
localizar
Apache Sling Distribution Agent - Queue Agents Factory
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
Verificar
Name
:socialpubsync-reverse
-
seleccione
Enabled
casilla de verificación -
select
Save
-
-
repetir para cada instancia de publicación
-
5. Distribución de Adobe Granite - Fábrica de Observadores de Diff diffobserver
Habilitar la sincronización de grupos
-
en cada instancia de publicación :
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4503/system/console/configMgr
-
localizar
Adobe Granite Distribution - Diff Observer Factory
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
Verificar
agent name
:socialpubsync-reverse
-
seleccione
Enabled
casilla de verificación -
select
Save
-
-
6. Déclencheur de distribución de Apache Sling: fábrica de Déclencheur programados apache-sling-distribution-trigger-scheduled-triggers-factory
(Opcional) modificar el intervalo de sondeo
De forma predeterminada, el autor sondeará los cambios cada 30 segundos. Para modificar este intervalo :
-
en author
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4502/system/console/configMgr
-
localizar
Apache Sling Distribution Trigger - Scheduled Triggers Factory
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
- Verificar
Name
:socialpubsync-scheduled-trigger
- Verificar
-
configure la variable
Interval in Seconds
al intervalo deseado -
select
Save
-
-
Configurar para varias instancias de publicación configure-for-multiple-publish-instances
La configuración predeterminada es para una única instancia de publicación. Como el motivo para habilitar la sincronización de usuarios es sincronizar varias instancias de publicación, como para un conjunto de servidores de publicación, las instancias de publicación adicionales deberán agregarse a la fábrica de agentes de sincronización.
7. Agente de distribución Apache Sling: fábrica de agentes de sincronización apache-sling-distribution-agent-sync-agents-factory-1
Añadir instancias de publicación :
-
en author
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4502/system/console/configMgr
-
localizar
Apache Sling Distribution Agent - Sync Agents Factory
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
Verificar
Name
:socialpubsync
-
-
-
Puntos finales del exportador
Debe haber un punto final de exportador para cada publicador. Por ejemplo, si hay 2 editores, localhost:4503 y 4504, debe haber 2 entradas:- http://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
- http://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
-
Puntos finales del importador
Debe haber un extremo del importador para cada publicador. Por ejemplo, si hay 2 editores, localhost:4503 y 4504, debe haber 2 entradas:- http://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
- http://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
-
select
Save
8. Listener de sincronización de usuarios de AEM Communities aem-communities-user-sync-listener
(Opcional) Sincronizar nodos JCR adicionales
Si hay datos personalizados que se desea sincronizar en varias instancias de publicación, entonces:
-
en cada instancia de publicación:
-
iniciar sesión con privilegios de administrador
-
acceda al Consola web
- por ejemplo, http://localhost:4503/system/console/configMgr
-
localizar
AEM Communities User Sync Listener
-
seleccione la configuración existente para abrirla y editarla (icono de lápiz)
Verificar
Name
:socialpubsync-scheduled-trigger
-
-
Tipos de nodo
Esta es la lista de tipos de nodos que se sincronizarán. Cualquier tipo de nodo que no sea sling:Folder debe aparecer aquí (sling:folder se gestiona de forma independiente).
Lista predeterminada de tipos de nodos para sincronizar:
- rep:Usuario
- nt:unstructured
- nt:resource
-
Propiedades ignorables
Esta es la lista de propiedades que se ignorarán si se detecta algún cambio. Los cambios realizados en estas propiedades pueden sincronizarse como un efecto secundario de otros cambios (ya que la sincronización siempre se realiza en el nivel de nodo), pero los cambios realizados en estas propiedades no provocarán por sí mismos la sincronización de déclencheur.
Propiedad predeterminada para ignorar:
- cq:lastModified
-
Nodos ignorables
Subrutas que se ignorarán por completo durante la sincronización. Nada debajo de estas subrutas se sincronizará en cualquier momento.
Nodos predeterminados para ignorar:
- .tokens
- system
-
Carpetas distribuidas
La mayoría de las carpetas sling:Folders se ignoran porque la sincronización no es necesaria. Las pocas excepciones se enumeran aquí.
Carpetas predeterminadas para sincronizar
- segmentos/puntuación
- social/relaciones
- actividades
9. ID de Sling único unique-sling-id
Si el ID de Sling es el mismo para varias instancias de publicación en un conjunto de servidores de publicación, los grupos de usuarios no se sincronizarán.
Para validar que todos los valores de ID de Sling difieren, en cada instancia de publicación :
- buscar
http://<host>:<port>/system/console/status-slingsettings
- compruebe el valor de Sling ID
Si el ID de Sling de una instancia de publicación coincide con el ID de Sling de cualquier otra instancia de publicación, entonces:
-
detener una de las instancias de publicación que tenga un ID de Sling coincidente
-
en el directorio crx-quickstart/launchpad/felix
-
buscar y eliminar el archivo denominado sling.id.file
-
por ejemplo, en un sistema Linux:
rm -i $(find . -type f -name sling.id.file)
-
por ejemplo, en un sistema Windows:
use windows explorer and search for *sling.id.file*
-
-
-
iniciar la instancia de publicación
- al inicio, se le asignará un nuevo ID de Sling
-
valide que la variable Sling ID ahora es único
Repita estos pasos hasta que todas las instancias de publicación tengan un ID de Sling único.
Fábrica de generador de paquetes de almacenamiento vault-package-builder-factory
Para que las actualizaciones se sincronicen correctamente, es necesario modificar el creador de paquetes bóveda para la sincronización de usuarios :
-
en cada instancia de publicación AEM
-
acceda al Consola web
- por ejemplo, http://localhost:4503/system/console/configMgr
-
localice el
Apache Sling Distribution Packaging - Vault Package Builder Factor
Builder name: socialpubsync-vlt
-
seleccione el icono de edición
-
añadir dos
Package Filters
:/home/users|-.*/.tokens
/home/users|-.*/rep:cache
-
administración de directivas :
-
para sobrescribir los nodos rep:policy existentes con otros nuevos, agregue un tercer filtro de paquetes :
/home/users|+.*/rep:policy
-
para evitar que las políticas se distribuyan, establezca
Acl Handling :
IGNORE
-
Qué sucede cuando… what-happens-when
El usuario se registra automáticamente o edita el perfil al publicar user-self-registers-or-edits-profile-on-publish
Por diseño, los usuarios y perfiles creados en el entorno de publicación (registro propio) no aparecen en el entorno de creación.
Cuando la topología es un publicar granja y la sincronización de usuarios se ha configurado correctamente, el *usuario *y perfil de usuario se sincroniza en la granja de publicación mediante la distribución Sling.
Los usuarios o grupos de usuarios se crean mediante la Consola de seguridad users-or-user-groups-are-created-using-security-console
Por diseño, los datos de usuario creados en el entorno de publicación no aparecen en el entorno de creación y viceversa.
Cuando la variable Administración de usuarios y seguridad se utiliza para agregar nuevos usuarios en el entorno de publicación, la sincronización de usuarios sincroniza a los nuevos usuarios y su pertenencia a grupos con otras instancias de publicación, si es necesario. La sincronización de usuarios también sincronizará los grupos de usuarios creados mediante la consola de seguridad.
Solución de problemas troubleshooting
Cómo desconectar la sincronización de usuarios how-to-take-user-sync-offline
Para desactivar la sincronización de usuarios, para quitar un publicador o sincronizar manualmente datos, la cola de distribución debe estar vacía y en silencio.
Para comprobar el estado de la cola de distribución:
-
sobre autor:
-
using CRXDE Lite
-
buscar entradas en
/var/sling/distribution/packages
- nodos de carpeta con el patrón
distrpackage_*
- nodos de carpeta con el patrón
-
-
using Administrador de paquetes
-
buscar paquetes pendientes (aún no instalados)
- con el patrón
socialpubsync-vlt*
- creado por
communities-user-admin
- con el patrón
-
-
Cuando la cola de distribución esté vacía, desactive la sincronización de usuarios :
-
en author
- *desmarque *el
Enabled
casilla de verificación Agente de distribución Apache Sling: fábrica de agentes de sincronización
- *desmarque *el
Una vez completadas las tareas, para volver a habilitar la sincronización de usuarios :
-
en author
- compruebe el
Enabled
casilla de verificación Agente de distribución Apache Sling: fábrica de agentes de sincronización
- compruebe el
Diagnóstico de sincronización de usuario user-sync-diagnostics
Diagnóstico de sincronización de usuarios es una herramienta que comprueba la configuración e intenta identificar cualquier problema.
En el autor, simplemente navegue desde la consola principal a través de Herramientas, Operaciones, Diagnóstico, Diagnóstico de sincronización de usuarios.
Al entrar simplemente en la consola Diagnóstico de sincronización de usuarios se mostrarán los resultados.
Esto es lo que se muestra cuando la sincronización de usuarios no se ha habilitado :
Cómo ejecutar diagnósticos para editores how-to-run-diagnostics-for-publishers
Cuando el diagnóstico se ejecuta desde el entorno de creación, los resultados de aprobación/error incluirán un [INFORMACIÓN] muestra la lista de instancias de publicación configuradas para su confirmación.
En la lista se incluye una dirección URL para cada instancia de publicación que ejecutará los diagnósticos para esa instancia. El parámetro de URL syncUser
se anexa a la URL de diagnóstico con su valor establecido en la variable usuario de sincronización autorizado creado en Paso 2.
Nota : antes de iniciar la dirección URL, la variable usuario de sincronización autorizado ya debe haber iniciado sesión en esa instancia de publicación.
Configuración añadida incorrectamente improperconfig
Cuando la sincronización de usuarios no funciona, el problema más común es que se han realizado configuraciones adicionales added. En su lugar, se debería haber configurado *la configuración predeterminada existente editado.
A continuación se muestran las vistas de cómo aparecen las configuraciones predeterminadas editadas en la consola web. Si aparece más de una instancia, se debe eliminar la configuración añadida.
(autor) Un agente de distribución Apache Sling: fábrica de agentes de sincronización author-one-apache-sling-distribution-agent-sync-agents-factory
(autor) Distribución de un Adobe Granite: proveedor secreto de transporte cifrado de contraseña author-one-adobe-granite-distribution-encrypted-password-transport-secret-provider
(publicación) Un agente de distribución Apache Sling: fábrica de agentes de cola publish-one-apache-sling-distribution-agent-queue-agents-factory
(publicación) Distribución de un Adobe Granite - Fábrica de Observadores de Diff publish-one-adobe-granite-distribution-diff-observer-factory
(autor) Un Déclencheur de distribución de Apache Sling: fábrica de Déclencheur programados author-one-apache-sling-distribution-trigger-scheduled-triggers-factory
Modificar excepción de operación durante el procesamiento de respuestas modify-operation-exception-during-response-processing
Si lo siguiente está visible en el registro :
org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.
java.lang.IllegalStateException: This tree does not exist
A continuación, compruebe que la sección 2. Crear usuario autorizado se siguió correctamente.
En esta sección se describe la creación de un usuario autorizado, que existe en todas las instancias de publicación, y la identificación de estos en la configuración OSGi de "Proveedor secreto" del autor. De forma predeterminada, el usuario es admin
.
El usuario autorizado debe hacerse miembro de la función administrators
los permisos y grupos de usuarios de ese grupo no deben modificarse.
El usuario autorizado debe tener explícitamente los siguientes privilegios y restricciones en todas las instancias de publicación :
Como miembro de administrators
, el usuario autorizado debe tener los siguientes privilegios en todas las instancias de publicación :
Error en la sincronización del grupo de usuarios user-group-sync-failed
Si el ID de Sling coincide entre dos o más instancias de publicación, la sincronización de grupos de usuarios fallará.
Consulte la sección 9. ID único de Sling
Sincronización manual de usuarios y grupos de usuarios manually-syncing-users-and-user-groups
-
en el editor en el que existen usuarios y grupos de usuarios :
-
crear un paquete de
/home
-
al editar el paquete
- Ficha Filtros : Añadir filtro : Ruta raíz:
/home
- Pestaña Avanzado : Manejo de CA :
Overwrite
- Ficha Filtros : Añadir filtro : Ruta raíz:
-
-
en otras instancias de publicación :
Para configurar o habilitar la sincronización de usuarios, vaya al paso 1: Agente de distribución Apache Sling: fábrica de agentes de sincronización
Cuando un publicador deja de estar disponible when-a-publisher-becomes-unavailable
Cuando una instancia de publicación deja de estar disponible, no se debe eliminar si vuelve a estar en línea en el futuro. Los cambios se pondrán en cola para el editor y una vez que vuelva a estar en línea, se procesarán.
Si la instancia de publicación nunca volverá a estar en línea, si está sin conexión de forma permanente, debe eliminarse, ya que la acumulación de colas dará como resultado un uso notable del espacio en disco en el entorno de creación.
Cuando un editor está inactivo, el registro de autor tendrá excepciones similares 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 ...
Cómo quitar un publicador how-to-remove-a-publisher
Para quitar un publicador de la Agente de distribución Apache Sling: fábrica de agentes de sincronización, la cola de distribución debe estar vacía y en silencio.
-
en author :
-
seguir paso 7 para eliminar el publicador de ambas listas de servidores :
Exporter Endpoints
Importer Endpoints
-
volver a habilitar la sincronización de usuarios
- compruebe el
Enabled
casilla de verificación Agente de distribución Apache Sling: fábrica de agentes de sincronización
- compruebe el