Sincronizzazione utente user-synchronization
Introduzione introduction
Quando la distribuzione è una farm di pubblicazione, i membri devono essere in grado di accedere e visualizzare i propri dati su qualsiasi nodo di Publish.
Gli utenti e i gruppi di utenti (dati utente) creati nell’ambiente di pubblicazione non sono necessari nell’ambiente di authoring.
La maggior parte dei dati utente creati nell’ambiente di authoring devono rimanere nell’ambiente di authoring e non devono essere copiati nelle istanze di Publish.
Per poter accedere agli stessi dati utente, la registrazione e le modifiche effettuate su un’istanza di Publish devono essere sincronizzate con le altre istanze di Publish.
A partire da AEM 6.1, quando la sincronizzazione utente è abilitata, i dati utente vengono sincronizzati automaticamente tra le istanze Publish nella farm e non vengono creati durante l’authoring.
Distribuzione Sling sling-distribution
I dati utente, insieme ai relativi ACL, sono archiviati nel Oak Core, il livello inferiore a Oak JCR, e sono accessibili utilizzando l'API Oak. Con aggiornamenti non frequenti, è ragionevole sincronizzare i dati utente con altre istanze di Publish utilizzando Distribuzione contenuto Sling (distribuzione Sling).
Rispetto alla replica tradizionale, la sincronizzazione degli utenti con la distribuzione Sling offre i seguenti vantaggi:
-
utenti, profili utente e gruppi di utenti creati in Publish non creati nell'istanza di authoring
-
La distribuzione Sling imposta le proprietà negli eventi JCR, consentendo di agire all’interno dei listener di eventi lato pubblicazione senza preoccuparsi di cicli di replica infiniti
-
La distribuzione Sling invia solo i dati utente alle istanze di Publish non originarie, eliminando il traffico non necessario
-
Gli ACL impostati nel nodo utente sono inclusi nella sincronizzazione
Abilita sincronizzazione utenti enable-user-sync
disabled
.La sincronizzazione degli utenti si basa sull’ambiente di authoring per gestire le distribuzioni dei dati utente, anche se i dati utente non vengono creati nell’ambiente di authoring. Gran parte della configurazione, ma non tutte, si svolge nell’ambiente di authoring e ogni passaggio identifica chiaramente se deve essere eseguita su Author o Publish.
Di seguito sono riportati i passaggi necessari per abilitare la sincronizzazione utente, seguiti da una sezione Risoluzione dei problemi:
Prerequisiti prerequisites
- Se utenti e gruppi di utenti sono già stati creati in un'istanza di Publish, si consiglia di sincronizzare manualmente i dati utente in tutte le istanze di Publish prima di configurare e abilitare la sincronizzazione utente.
Una volta abilitata la sincronizzazione degli utenti, vengono sincronizzati solo gli utenti e i gruppi appena creati.
- Verifica che sia installato il codice più recente:
1. Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione apache-sling-distribution-agent-sync-agents-factory
Abilita sincronizzazione utenti
-
su autore
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio, https://localhost:4502/system/console/configMgr
-
individua
Apache Sling Distribution Agent - Sync Agents Factory
-
seleziona la configurazione esistente per aprirla per la modifica (icona a forma di matita)
Verificaname
:socialpubsync
-
selezionare la casella di controllo
Enabled
-
seleziona
Save
-
-
2. Crea utente autorizzato createauthuser
Configurare le autorizzazioni
L’utente autorizzato viene utilizzato nel passaggio 3 per configurare la distribuzione Sling in Author.
-
su ogni istanza di Publish
-
accedi con privilegi di amministratore
-
accedere a Console sicurezza
- ad esempio, https://localhost:4503/useradmin
-
creare un utente
- ad esempio,
usersync-admin
- ad esempio,
-
aggiungi questo utente al gruppo di utenti
administrators
-
aggiungi ACL per questo utente a /home
Allow jcr:all
con restrizionerep:glob=*/activities/*
-
- Utente predefinito assegnato:
admin
. - Non utilizzare
communities-user-admin user.
Come aggiungere ACL addacls
-
access CRXDE Lite
- ad esempio, https://localhost:4503/crx/de
-
seleziona
/home
nodo -
nel riquadro destro selezionare la scheda
Access Control
-
per aggiungere una voce ACL, selezionare il pulsante
+
- Entità: ricerca utente creato per sincronizzazione utenti
- Tipo:
Allow
- Privilegi:
jcr:all
- Limitazioni
rep:glob
:*/activities/*
- seleziona OK
-
seleziona Salva tutto
Consulta anche
- Gestione diritti di accesso
- Risoluzione dei problemi nella sezione Modifica eccezione operazione durante l'elaborazione della risposta.
3. Adobe Granite Distribution - Provider segreto di trasporto con password crittografata adobegraniteencpasswrd
Configurare le autorizzazioni
Una volta creato un utente autorizzato membro del gruppo utenti administrators
in tutte le istanze di Publish, l'utente autorizzato deve essere identificato in Autore come autorizzato a sincronizzare i dati utente da Autore a Publish.
-
su autore
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio, https://localhost:4502/system/console/configMgr
-
individua
com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
-
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
Verificaproperty name
:socialpubsync-publishUser
-
imposta il nome utente e la password per l'utente autorizzato creato in Publish nel passaggio 2
- ad esempio,
usersync-admin
- ad esempio,
-
4. Agente di distribuzione Apache Sling - Factory agenti coda apache-sling-distribution-agent-queue-agents-factory
Abilita sincronizzazione utenti
-
su ogni istanza di Publish:
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio, https://localhost:4503/system/console/configMgr
-
individua
Apache Sling Distribution Agent - Queue Agents Factory
-
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
VerificaName
:socialpubsync-reverse
-
selezionare la casella di controllo
Enabled
-
seleziona
Save
-
-
repeat per ogni istanza di Publish
-
5. Sincronizzazione Adobe Social - Diff Observer Factory diffobserver
Abilita sincronizzazione gruppo
-
su ogni istanza di Publish:
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio, https://localhost:4503/system/console/configMgr
-
individua
Adobe Social Sync - Diff Observer Factory
-
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
Verifica
agent name
:socialpubsync-reverse
-
selezionare la casella di controllo
Enabled
-
seleziona
Save
-
-
6. Trigger di distribuzione Apache Sling - Fabbrica dei trigger pianificati apache-sling-distribution-trigger-scheduled-triggers-factory
(Facoltativo) modifica intervallo di polling
Per impostazione predefinita, l’autore esegue il polling delle modifiche ogni 30 secondi. Per modificare questo intervallo:
-
su autore
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio, https://localhost:4502/system/console/configMgr
-
individua
Apache Sling Distribution Trigger - Scheduled Triggers Factory
-
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
- Verifica
Name
:socialpubsync-scheduled-trigger
- Verifica
-
imposta
Interval in Seconds
sull'intervallo desiderato -
seleziona
Save
-
-
Configurazione per più istanze Publish configure-for-multiple-publish-instances
La configurazione predefinita è per una singola istanza di Publish. Poiché il motivo per abilitare la sincronizzazione degli utenti è quello di sincronizzare più istanze di Publish, ad esempio per una farm di pubblicazione, è necessario aggiungere le ulteriori istanze di Publish alla factory degli agenti di sincronizzazione.
7. Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione apache-sling-distribution-agent-sync-agents-factory-1
Aggiungi istanze Publish:
-
su autore
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio, https://localhost:4502/system/console/configMgr
-
individua
Apache Sling Distribution Agent - Sync Agents Factory
- per aprire per la modifica, seleziona la configurazione esistente (icona matita)
VerificaName
:socialpubsync
- per aprire per la modifica, seleziona la configurazione esistente (icona matita)
-
-
Endpoint esportazione
Deve essere presente un endpoint di esportazione per ogni istanza di Publish. Se ad esempio sono presenti 2 istanze di Publish, localhost:4503 e 4504, è necessario inserire due voci:https://localhost:4503/libs/sling/distribution/services/exporters/socialpubsync-reverse
https://localhost:4504/libs/sling/distribution/services/exporters/socialpubsync-reverse
-
Endpoint importazione
Deve essere presente un endpoint di importazione per ogni istanza di Publish. Se ad esempio sono presenti 2 istanze di Publish, localhost:4503 e 4504, è necessario inserire due voci:https://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
https://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
-
seleziona
Save
8. Listener di sincronizzazione utenti di AEM Communities aem-communities-user-sync-listener
(Facoltativo) Sincronizza nodi JCR aggiuntivi
Se sono presenti dati personalizzati da sincronizzare tra più istanze di Publish:
-
su ogni istanza di Publish:
-
accedi con privilegi di amministratore
-
accedere alla console Web
- ad esempio,
https://localhost:4503/system/console/configMgr
- ad esempio,
-
individua
AEM Communities User Sync Listener
-
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
VerificaName
:socialpubsync-scheduled-trigger
-
-
Tipi di nodo
Elenco dei tipi di nodo sincronizzati. Qualsiasi tipo di nodo diverso da sling:Folder deve essere elencato qui (sling:folder viene gestito separatamente).
Elenco predefinito di tipi di nodo da sincronizzare:- rep:Utente
- nt:unstructured
- nt:resource
-
Proprietà ignorabili
Elenco di proprietà che vengono ignorate se viene rilevata una modifica. Le modifiche a queste proprietà potrebbero essere sincronizzate come effetto collaterale di altre modifiche (poiché la sincronizzazione è sempre a livello di nodo), ma le modifiche a queste proprietà non attivano di per sé la sincronizzazione.
Proprietà predefinita da ignorare:- cq:lastModified
-
Nodi ignorabili
Percorsi secondari ignorati durante la sincronizzazione. In questi percorsi secondari non viene sincronizzato in alcun momento.
Nodi predefiniti da ignorare:- .token
- sistema
-
Cartelle distribuite
La maggior parte di sling:Folders viene ignorata perché la sincronizzazione non è necessaria. Le poche eccezioni sono elencate qui.
Cartelle predefinite da sincronizzare- segmenti/punteggio
- social/relazioni
- attività
9. ID Sling univoco unique-sling-id
Se l’ID Sling è lo stesso per più istanze di Publish in una farm di pubblicazione, i gruppi di utenti non vengono sincronizzati.
Per verificare che tutti i valori degli ID Sling siano diversi, in ogni istanza di Publish:
- passa a
http://<host>:<port>/system/console/status-slingsettings
- verifica il valore di Sling ID
Se l’ID Sling di un’istanza di Publish corrisponde all’ID Sling di qualsiasi altra istanza di Publish:
-
arresta una delle istanze Publish con un ID Sling corrispondente
-
nella directory crx-quickstart/launchpad/felix
-
cerca ed elimina il file denominato sling.id.file
-
ad esempio, su un sistema Linux®:
rm -i $(find . -type f -name sling.id.file)
-
ad esempio, in un sistema Windows:
use windows explorer and search for *sling.id.file*
-
-
-
avviare l’istanza di Publish
- all’avvio viene assegnato un nuovo ID Sling
-
verifica che Sling ID sia univoco
Ripeti questi passaggi fino a quando tutte le istanze di Publish non avranno un ID Sling univoco.
Generatore pacchetti Vault - Fabbrica vault-package-builder-factory
Per sincronizzare correttamente gli aggiornamenti, è necessario modificare il generatore di pacchetti di Vault per la sincronizzazione utente:
-
su ogni istanza di AEM Publish
-
accedere alla console Web
- ad esempio, https://localhost:4503/system/console/configMgr
-
individuare
Apache Sling Distribution Packaging - Vault Package Builder Factory
Builder name: socialpubsync-vlt
-
seleziona l’icona modifica
-
aggiungi due
Package Node Filters
:/home/users|-.*/.tokens
/home/users|-.*/rep:cache
-
gestione delle policy:
-
per sovrascrivere i nodi rep:policy esistenti con quelli nuovi, aggiungete un terzo filtro pacchetto:
/home/users|+.*/rep:policy
-
per impedire la distribuzione dei criteri, impostare
Acl Handling:
IGNORE
-
Cosa Succede Quando… what-happens-when
Autoregistrazione utente o modifica profilo su Publish user-self-registers-or-edits-profile-on-publish
Per progettazione, gli utenti e i profili creati nell’ambiente di pubblicazione (registrazione autonoma) non vengono visualizzati nell’ambiente di authoring.
Se la topologia è una farm di pubblicazione e la sincronizzazione utente è stata configurata correttamente, il profilo utente utente e utente viene sincronizzato nella farm di pubblicazione utilizzando la distribuzione Sling.
Gli utenti o i gruppi di utenti vengono creati utilizzando la console Sicurezza users-or-user-groups-are-created-using-security-console
Per progettazione, i dati utente creati nell’ambiente di pubblicazione non vengono visualizzati nell’ambiente di authoring e viceversa.
Se necessario, quando si utilizza la console Amministrazione utenti e sicurezza per aggiungere nuovi utenti nell'ambiente di pubblicazione, la sincronizzazione utenti sincronizza i nuovi utenti e l'appartenenza ai gruppi con altre istanze di Publish. La sincronizzazione degli utenti sincronizza anche i gruppi di utenti creati tramite la console di sicurezza.
Risoluzione dei problemi troubleshooting
Come portare offline User Sync how-to-take-user-sync-offline
Per portare la sincronizzazione utente offline, per rimuovere un'istanza di Publish o sincronizzare manualmente i dati, la coda di distribuzione deve essere vuota e silenziosa.
Per verificare lo stato della coda di distribuzione:
-
su Autore:
-
utilizzo di CRXDE Liti
-
cerca voci in
/var/sling/distribution/packages
- nodi cartella denominati con il pattern
distrpackage_*
- nodi cartella denominati con il pattern
-
-
utilizzo di Gestione pacchetti
-
cerca pacchetti in sospeso (non ancora installati)
- denominato con il pattern
socialpubsync-vlt*
- creato da
communities-user-admin
- denominato con il pattern
-
-
Quando la coda di distribuzione è vuota, disabilita la sincronizzazione utente:
-
all’autore
- *deselezionare *la casella di controllo
Enabled
per Apache Sling Distribution Agent - Sync Agents Factory
- *deselezionare *la casella di controllo
Al termine delle attività, per riattivare la sincronizzazione utente:
-
all’autore
- selezionare la casella di controllo
Enabled
per Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione
- selezionare la casella di controllo
Diagnostica sincronizzazione utenti user-sync-diagnostics
Diagnostica sincronizzazione utenti è uno strumento che controlla la configurazione e tenta di identificare eventuali problemi.
In fase di creazione, è sufficiente passare dalla console principale tramite Strumenti, Operazioni, Diagnosi, Diagnostica sincronizzazione utenti.
I risultati vengono visualizzati semplicemente inserendo la console Diagnostica sincronizzazione utenti.
Questo viene visualizzato quando Sincronizzazione utente non è stata abilitata:
Eseguire la diagnostica per le istanze di Publish how-to-run-diagnostics-for-publish-instances
Quando la diagnostica viene eseguita dall'ambiente di authoring, i risultati del superamento/fallimento includono una sezione [INFO] che mostra l'elenco delle istanze di Publish configurate per la conferma.
Nell’elenco è incluso un URL per ogni istanza di Publish che esegue la diagnostica per tale istanza. Il parametro URL syncUser
viene aggiunto all'URL di diagnostica con il relativo valore impostato sull'utente di sincronizzazione autorizzato creato nel passaggio 2.
Nota: prima di avviare l'URL, l'utente di sincronizzazione autorizzato deve avere già effettuato l'accesso all'istanza di Publish.
Configurazione aggiunta in modo errato configuration-improperly-added
Quando la sincronizzazione utente non funziona, il problema più comune è che sono state aggiunte configurazioni aggiuntive. La configurazione *predefinita esistente deve essere stata modificata.
Di seguito sono riportate le visualizzazioni delle configurazioni predefinite modificate da visualizzare nella console Web. Se compaiono più istanze, la configurazione aggiunta deve essere rimossa.
(Autore) Un agente di distribuzione Apache Sling - Sync Agents Factory author-one-apache-sling-distribution-agent-sync-agents-factory
(Autore) Una credenziale trasporto distribuzione Apache Sling - Credenziali utente basate su DistributionTransportSecretProvider author-one-apache-sling-distribution-transport-credentials-user-credentials-based-distributiontransportsecretprovider
(Publish) Un agente di distribuzione Apache Sling - Queue Agents Factory publish-one-apache-sling-distribution-agent-queue-agents-factory
(Publish) Sincronizzazione One Adobe Social - Diff Observer Factory publish-one-adobe-social-sync-diff-observer-factory
(Autore) Un trigger di distribuzione Apache Sling - Factory di trigger pianificati author-one-apache-sling-distribution-trigger-scheduled-triggers-factory
Modifica eccezione operazione durante l'elaborazione della risposta modify-operation-exception-during-response-processing
Se nel registro è visibile quanto segue:
org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing.
java.lang.IllegalStateException: This tree does not exist
Verificare quindi che la sezione 2. La creazione dell'utente autorizzato è stata seguita correttamente.
Questa sezione descrive la creazione di un utente autorizzato, presente in tutte le istanze di Publish, e la loro identificazione nella configurazione OSGi "Provider segreto" nell’ambiente di authoring. Per impostazione predefinita, l'utente è admin
.
L'utente autorizzato deve essere incluso nel gruppo di utenti administrators
e le autorizzazioni per tale gruppo non devono essere modificate.
L’utente autorizzato deve disporre esplicitamente dei seguenti privilegi e restrizioni su tutte le istanze di Publish:
Come membro del gruppo administrators
, l'utente autorizzato deve disporre dei seguenti privilegi su tutte le istanze di Publish:
Sincronizzazione gruppo utenti non riuscita user-group-sync-failed
Se l’ID Sling corrisponde tra due o più istanze di Publish, la sincronizzazione del gruppo di utenti non riesce.
Vedere la sezione 9. ID Sling univoco
Sincronizzazione manuale di utenti e gruppi di utenti manually-syncing-users-and-user-groups
-
sulle istanze di Publish in cui esistono utenti e gruppi di utenti:
-
crea un pacchetto di
/home
-
durante la modifica del pacchetto
- Scheda Filtri: Aggiungi filtro: Percorso principale:
/home
- Scheda Avanzate: Gestione AC:
Overwrite
- Scheda Filtri: Aggiungi filtro: Percorso principale:
-
-
su altre istanze di Publish:
Per configurare o abilitare la sincronizzazione utente, andare al passaggio 1: Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione
Quando un’istanza di Publish non è più disponibile when-a-publish-instance-becomes-unavailable
Quando un’istanza di Publish diventa non disponibile, non deve essere rimossa se ritorna online in futuro. Le modifiche vengono messe in coda per l’istanza di Publish e, quando è nuovamente online, vengono elaborate.
Se l’istanza di Publish non torna mai online o se è offline in modo permanente, deve essere rimossa perché l’accumulo della coda determina un notevole utilizzo di spazio su disco nell’ambiente di authoring.
Quando un’istanza di Publish è inattiva, il registro di authoring presenta eccezioni simili alle seguenti:
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 ...
Come rimuovere un’istanza di Publish how-to-remove-a-publish-instance
Per rimuovere un'istanza di Publish dall'Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione, la coda di distribuzione deve essere vuota e invisibile all'utente.
-
su Autore:
-
segui il passaggio 7 per rimuovere l'istanza di Publish da entrambi gli elenchi di server:
Exporter Endpoints
Importer Endpoints
-
riabilita sincronizzazione utenti
- selezionare la casella di controllo
Enabled
per Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione
- selezionare la casella di controllo