Quando la distribuzione è una farm di pubblicazione, i membri devono essere in grado di accedere e visualizzare i propri dati su qualsiasi nodo di pubblicazione.
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 deve restare nell’ambiente di authoring e non deve essere copiata nelle istanze di pubblicazione.
Per poter accedere agli stessi dati utente, le registrazioni e le modifiche effettuate su un’istanza di pubblicazione devono essere sincronizzate con altre istanze di pubblicazione.
A partire AEM 6.1, quando la sincronizzazione degli utenti è abilitata, i dati utente vengono automaticamente sincronizzati tra le istanze di pubblicazione nella farm e non vengono creati in fase di creazione.
I dati utente, insieme ai rispettivi ACL, sono memorizzati in Oak Core, il livello sotto Oak JCR, e sono accessibili tramite l'API Oak API. Con aggiornamenti non frequenti, è ragionevole che i dati utente siano sincronizzati con altre istanze di pubblicazione utilizzando Sling Content Distribution (distribuzione Sling).
Rispetto alla replica tradizionale, i vantaggi della sincronizzazione utente mediante la distribuzione Sling sono:
gli utenti, i profili utente e i raggruppamenti di utenti creati al momento della pubblicazione non vengono creati in fase di creazione
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 pubblicazione non originarie, eliminando il traffico non necessario
ACLsset nel nodo utente sono inclusi nella sincronizzazione
Se sono necessarie sessioni, si consiglia di utilizzare una soluzione SSO o una sessione fissa e di fare in modo che i clienti accedano se accedono a un altro editore.
La sincronizzazione del gruppo *Administrators *non è supportata, anche quando la sincronizzazione utente è abilitata. Al contrario, un'operazione di importazione delle diff verrà registrata nel registro degli errori.
Pertanto, se la distribuzione è una pubblicazione farm, se un utente viene aggiunto o rimosso dal gruppo *Administrators *, la modifica deve essere eseguita manualmente su ogni istanza di pubblicazione.
Per impostazione predefinita, la sincronizzazione utente è disabled
.
L'abilitazione della sincronizzazione utente comporta la modifica delle configurazioni OSGi esistenti.
Non è necessario aggiungere nuove configurazioni per abilitare la sincronizzazione degli utenti.
La sincronizzazione utente si basa sull’ambiente di authoring per gestire le distribuzioni dei dati utente, anche se i dati utente non vengono creati in fase di creazione. Gran parte, ma non tutti, della configurazione avviene nell’ambiente di authoring e ogni passaggio indica chiaramente se deve essere eseguita sull’autore o sulla pubblicazione.
Di seguito sono riportati i passaggi necessari per abilitare la sincronizzazione degli utenti, seguiti da una sezione Risoluzione dei problemi:
Se utenti e gruppi di utenti sono già stati creati su un editore, si consiglia di sincronizzare manualmente i dati utente a tutti gli editori prima di configurare e abilitare la sincronizzazione utente.
Una volta attivata la sincronizzazione degli utenti, vengono sincronizzati solo gli utenti e i gruppi appena creati.
Verifica che sia stato installato il codice più recente:
Abilita sincronizzazione utente
sull'autore
accesso con privilegi di amministratore
accedere alla console Web
individuare Apache Sling Distribution Agent - Sync Agents Factory
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Verifica name
: socialpubsync
selezionare la casella di controllo Enabled
select Save
Configura
autorizzazioni: questo utente autorizzato verrà utilizzato nel passaggio 3 per configurare la distribuzione Sling per l’autore.
in ogni istanza di pubblicazione
accesso con privilegi di amministratore
accedere alla console di sicurezza
creare un nuovo utente
usersync-admin
aggiungi questo utente al gruppo di utenti administrators
aggiungi ACL per questo utente a /home
Allow jcr:all
con restrizione rep:glob=*/activities/*
È necessario creare un nuovo utente.
admin
.*communities-user-admin *user*.*
crxde lite di accesso
selezionare il nodo /home
nel riquadro a destra, selezionare la scheda Access Control
selezionare il pulsante +
per aggiungere una voce ACL
Allow
jcr:all
*/activities/*
selezionare Salva tutto
Consulta anche
Configurare le autorizzazioni
Una volta creato un utente autorizzato, membro del gruppo di utenti administrators
in tutte le istanze di pubblicazione, tale utente autorizzato deve essere identificato all'autore come dotato dell'autorizzazione per sincronizzare i dati utente dall'autore alla pubblicazione.
sull'autore
accesso con privilegi di amministratore
accedere alla console Web
individuare com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Verifica property name
: socialpubsync-publishUser
impostare nome utente e password per l' utente autorizzato creato al momento della pubblicazione nel passaggio 2
usersync-admin
Abilita sincronizzazione utente
al momento della pubblicazione :
accesso con privilegi di amministratore
accedere alla console Web
individuare Apache Sling Distribution Agent - Queue Agents Factory
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Verifica Name
: socialpubsync-reverse
selezionare la casella di controllo Enabled
select Save
Ripetizione per ogni istanza di pubblicazione
Abilita sincronizzazione gruppo
in ogni istanza di pubblicazione:
accesso con privilegi di amministratore
accedere alla console Web
individuare Adobe Granite Distribution - Diff Observer Factory
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Verifica agent name
: socialpubsync-reverse
selezionare la casella di controllo Enabled
select Save
(Facoltativo) modificare l’intervallo di polling
Per impostazione predefinita, l’autore effettua il sondaggio per le modifiche ogni 30 secondi. Per modificare questo intervallo:
sull'autore
accesso con privilegi di amministratore
accedere alla console Web
individuare Apache Sling Distribution Trigger - Scheduled Triggers Factory
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Name
: socialpubsync-scheduled-trigger
impostare la Interval in Seconds
sull'intervallo desiderato
select Save
La configurazione predefinita è per una singola istanza di pubblicazione. Poiché l’abilitazione della sincronizzazione degli utenti consente di sincronizzare più istanze di pubblicazione, ad esempio per una farm di pubblicazione, è necessario aggiungere ulteriori istanze di pubblicazione alla fabbrica di sincronizzazione degli agenti.
Aggiungi istanze di pubblicazione:
sull'autore
accesso con privilegi di amministratore
accedere alla console Web
individuare Apache Sling Distribution Agent - Sync Agents Factory
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Verifica Name
: socialpubsync
Exporter
Endpoints: deve essere presente un endpoint di esportazione per ogni editore. Ad esempio, se ci sono 2 editori, localhost:4503 e 4504, dovrebbero essere 2 voci:
Endpoint importazione:
deve essere presente un endpoint di importazione per ogni editore. Ad esempio, se ci sono 2 editori, localhost:4503 e 4504, dovrebbero essere 2 voci:
select Save
(Facoltativo) Sincronizzare nodi JCR aggiuntivi
Se è necessario sincronizzare dati personalizzati tra più istanze di pubblicazione, effettuate le seguenti operazioni:
in ogni istanza di pubblicazione:
accesso con privilegi di amministratore
accedere alla console Web
individuare AEM Communities User Sync Listener
selezionate la configurazione esistente da aprire per la modifica (icona matita)
Verifica Name
: socialpubsync-scheduled-trigger
Tipi di nodo
Si tratta dell'elenco dei tipi di nodo che verranno sincronizzati. È necessario elencare qui qualsiasi tipo di nodo diverso da sling:Folder (sling:folder viene gestito separatamente).
Elenco predefinito dei tipi di nodo da sincronizzare:
Proprietà ignorabili
Si tratta dell'elenco delle proprietà che verranno ignorate in caso di rilevamento di modifiche. Le modifiche apportate a queste proprietà potrebbero essere sincronizzate come effetto collaterale di altre modifiche (poiché la sincronizzazione è sempre a livello di nodo), ma le modifiche apportate a tali proprietà non attiveranno di per sé la sincronizzazione.
Proprietà predefinita da ignorare:
Nodi ignorabili
Percorsi secondari che verranno ignorati completamente durante la sincronizzazione. Nessun elemento all'interno di questi sottotracciati verrà sincronizzato in qualsiasi momento.
Nodi predefiniti da ignorare:
Cartelle distribuite
La maggior parte delle sling:Folders vengono ignorate perché la sincronizzazione non è necessaria. Le poche eccezioni sono elencate qui.
Cartelle predefinite da sincronizzare
Se l’ID Sling corrisponde a due o più istanze di pubblicazione, la sincronizzazione dei gruppi di utenti non riesce.
Se l’ID Sling è lo stesso per più istanze pubblicate in una farm di pubblicazione, i gruppi di utenti non verranno sincronizzati.
Per verificare che tutti i valori Sling ID siano diversi, in ogni istanza di pubblicazione:
http://<host>:<port>/system/console/status-slingsettings
Se l’ID Sling di un’istanza di pubblicazione corrisponde all’ID Sling di qualsiasi altra istanza di pubblicazione, effettuate le seguenti operazioni:
arrestate una delle istanze di pubblicazione con un ID Sling corrispondente
nella directory crx-quickstart/launchpad/felix
cercare ed eliminare 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 pubblicazione
verifica che l' Sling ID sia ora univoco
Ripetete questi passaggi finché tutte le istanze di pubblicazione non dispongono di un ID Sling univoco.
Per la corretta sincronizzazione degli aggiornamenti, è necessario modificare il generatore di pacchetti vault per la sincronizzazione utente:
su ogni istanza di pubblicazione AEM
accedere alla console Web
individuare la Apache Sling Distribution Packaging - Vault Package Builder Factor
Builder name: socialpubsync-vlt
seleziona l’icona di modifica
aggiungere due Package Filters
:
/home/users|-.*/.tokens
/home/users|-.*/rep:cache
gestione criteri:
per sovrascrivere i nodi rep:policy esistenti con i nuovi, aggiungi un terzo Filtro pacchetto:
/home/users|+.*/rep:policy
per impedire la distribuzione dei criteri, impostare
Acl Handling :
IGNORE
Per impostazione predefinita, gli utenti e i profili creati nell’ambiente di pubblicazione (registrazione automatica) non vengono visualizzati nell’ambiente di authoring.
Se la topologia è una farm di pubblicazione e la sincronizzazione utente è stata configurata correttamente, i profili *utente *e utente vengono sincronizzati nella farm di pubblicazione utilizzando la distribuzione Sling.
Per impostazione predefinita, i dati utente creati nell’ambiente di pubblicazione non vengono visualizzati nell’ambiente di authoring e viceversa.
Quando si utilizza la console Amministrazione utente e sicurezza per aggiungere nuovi utenti nell'ambiente di pubblicazione, la sincronizzazione degli utenti sincronizzerà i nuovi utenti e i relativi membri del gruppo con altre istanze di pubblicazione, se necessario. La sincronizzazione utente sincronizza anche i gruppi di utenti creati tramite la console di protezione.
Per ottimizzare la sincronizzazione degli utenti, per rimuovere un editore o sincronizzare manualmente i dati, la coda di distribuzione deve essere vuota e silenziosa.
Per verificare lo stato della coda di distribuzione:
autore:
utilizzando CRXDE Lite
cercare le voci in /var/sling/distribution/packages
distrpackage_*
utilizzo di Gestione pacchetti
cercare pacchetti in sospeso (non ancora installati)
socialpubsync-vlt*
communities-user-admin
Quando la coda di distribuzione è vuota, disattivate la sincronizzazione utente:
sull'autore
Enabled
per agente di distribuzione Apache Sling - Sync Agent FactoryUna volta completate le attività, per riabilitare la sincronizzazione utente:
sull'autore
Enabled
per agente di distribuzione Apache Sling - Sync Agent FactoryDiagnostica sincronizzazione utenti è uno strumento che controlla la configurazione e tenta di identificare eventuali problemi.
Per l'autore, è sufficiente spostarsi dalla console principale attraverso Strumenti, Operazioni, Diagnosi, Diagnostica sincronizzazione utenti.
I risultati verranno visualizzati semplicemente entrando nella console Diagnostica sincronizzazione utenti.
Questo è ciò che viene visualizzato quando la sincronizzazione utente non è stata abilitata:
Quando la diagnosi viene eseguita dall'ambiente di authoring, i risultati di esito positivo/negativo includeranno una sezione [INFO] che mostra l'elenco delle istanze di pubblicazione configurate per la conferma.
Nell’elenco è incluso un URL per ogni istanza di pubblicazione che eseguirà 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 in Passaggio 2.
Nota : prima di avviare l’URL, l’ utente di sincronizzazione autorizzato deve già essere connesso a tale istanza di pubblicazione.
Quando la sincronizzazione degli utenti non funziona, il problema più comune è che sono state aggiunte configurazioni aggiuntive. Al contrario, la *configurazione esistente *predefinita dovrebbe essere stata modificata **.
Di seguito sono riportate le visualizzazioni di come dovrebbero essere visualizzate le configurazioni modificate e predefinite nella console Web. Se viene visualizzata più di un'istanza, la configurazione aggiunta deve essere rimossa.
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
Quindi verificare che la sezione 2. Create Authorized User è stato seguito correttamente.
Questa sezione descrive come creare un utente autorizzato, che esiste su tutte le istanze di pubblicazione e identificarlo nella configurazione OSGi 'Provider segreto' dell'autore. Per impostazione predefinita, l'utente è admin
.
L'utente autorizzato deve essere membro del 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 per tutte le istanze di pubblicazione:
path | jcr:all | rep:idspn |
---|---|---|
/home | X | */activity/* |
/home/users | X | */activity/* |
/home/groups | X | */activity/* |
Come membro del gruppo administrators
, l'utente autorizzato deve disporre dei seguenti privilegi su tutte le istanze di pubblicazione:
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 |
Se l’ID Sling corrisponde a due o più istanze di pubblicazione, la sincronizzazione dei gruppi di utenti non riesce.
Vedere la sezione 9. ID Sling univoco
sull’editore in cui esistono utenti e gruppi di utenti:
creare un pacchetto di /home
durante la modifica del pacchetto
/home
Overwrite
in altre istanze di pubblicazione:
Per configurare o abilitare la sincronizzazione degli utenti, andate al punto 1: Apache Sling Distribution Agent - Sync Agent Factory
Quando un'istanza di pubblicazione diventa non disponibile, non deve essere rimossa se torna in linea in futuro. Le modifiche verranno messe in coda per l'editore e, una volta che l'editore sarà nuovamente online, saranno elaborate.
Se l’istanza di pubblicazione non torna mai online, se è offline in modo permanente, deve essere rimossa perché la compilazione della coda comporterà un utilizzo notevole dello spazio su disco nell’ambiente di authoring.
Quando un editore non è attivo, nel registro dell’autore sono presenti eccezioni simili 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 ...
Per rimuovere un editore dall' agente di distribuzione Apache Sling - Sync Agent Factory, la coda di distribuzione deve essere vuota e silenziosa.
autore :
seguire passaggio 7 per rimuovere l'editore da entrambi gli elenchi server:
Exporter Endpoints
Importer Endpoints
riabilitare la sincronizzazione degli utenti
Enabled
per agente di distribuzione Apache Sling - Sync Agent Factory