Quando la distribuzione è un farm di pubblicazione, i membri devono essere in grado di accedere e visualizzare i propri dati su qualsiasi nodo 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 pubblicazione.
Per poter accedere agli stessi dati utente, la registrazione e le modifiche effettuate su un’istanza Publish devono essere sincronizzate con altre istanze 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 nell’ambiente di authoring.
I dati utente, insieme ai relativi ACL, sono archiviati in Oak Core, il livello sotto Oak JCR e sono accessibili utilizzando API Oak. Con aggiornamenti non frequenti, è ragionevole sincronizzare i dati utente con altre istanze Publish utilizzando Distribuzione dei contenuti 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 create al momento della pubblicazione non vengono create al momento dell’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 Publish non originarie, eliminando il traffico non necessario
ACL impostati nel nodo utente sono inclusi nella sincronizzazione
Se sono necessarie sessioni, si consiglia di utilizzare una soluzione SSO o una sessione permanente e chiedere ai clienti di effettuare l’accesso se passano a un’altra istanza Publish.
Sincronizzazione del amministratori il gruppo non è supportato, anche quando la sincronizzazione utente è abilitata. Al contrario, nel registro degli errori viene registrato un errore di "importazione delle differenze".
Pertanto, quando la distribuzione è una farm di pubblicazione, se un utente viene aggiunto o rimosso dalla amministratori , la modifica deve essere eseguita manualmente su ogni istanza Publish.
Per impostazione predefinita, la sincronizzazione utente è disabled
.
Per abilitare la sincronizzazione degli utenti è necessario modificare esistente Configurazioni OSGi.
Non è possibile aggiungere nuove configurazioni abilitando la sincronizzazione degli utenti.
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 Risoluzione dei problemi sezione:
Una volta abilitata la sincronizzazione degli utenti, vengono sincronizzati solo gli utenti e i gruppi appena creati.
Abilita sincronizzazione utenti
all’autore
accedi con privilegi di amministratore
accedere a Console web
individuare Apache Sling Distribution Agent - Sync Agents Factory
seleziona la configurazione esistente in modo da poterla aprire per la modifica (icona a forma di matita) Verifica name
: socialpubsync
seleziona la Enabled
casella di controllo
seleziona Save
Configurare le autorizzazioni
L’utente autorizzato viene utilizzato nel passaggio 3 per configurare la distribuzione Sling in Author.
su ogni istanza Publish
accedi con privilegi di amministratore
accedere a Console di sicurezza
creare un utente
usersync-admin
aggiungi questo utente a administrators
gruppo utenti
aggiungi ACL per questo utente a /home
Allow jcr:all
con restrizione rep:glob=*/activities/*
Creare un nuovo utente.
admin
.communities-user-admin user.
access CRXDE Liti
seleziona /home
nodo
nel riquadro a destra, selezionare Access Control
scheda
per aggiungere una voce ACL, selezionare +
pulsante
Allow
jcr:all
*/activities/*
seleziona Salva tutto
Consulta anche
Configurare le autorizzazioni
Una volta che un utente autorizzato è membro di administrators
gruppo di utenti: viene creato in tutte le istanze Publish, l’utente autorizzato deve essere identificato in Author come autorizzato a sincronizzare i dati utente da Author a Publish.
all’autore
accedi con privilegi di amministratore
accedere a Console web
individuare com.adobe.granite.distribution.core.impl.CryptoDistributionTransportSecretProvider.name
per aprire per la modifica, seleziona la configurazione esistente (icona a forma di matita) Verifica property name
: socialpubsync-publishUser
imposta il nome utente e la password su utente autorizzato creato al momento della pubblicazione nel passaggio 2
usersync-admin
Abilita sincronizzazione utenti
su ogni istanza Publish:
accedi con privilegi di amministratore
accedere a Console web
individuare Apache Sling Distribution Agent - Queue Agents Factory
per aprire per la modifica, seleziona la configurazione esistente (icona a forma di matita) Verifica Name
: socialpubsync-reverse
seleziona la Enabled
casella di controllo
seleziona Save
repeat per ogni istanza Publish
Abilita sincronizzazione gruppi
su ogni istanza Publish:
accedi con privilegi di amministratore
accedere a Console web
individuare Adobe Social Sync - Diff Observer Factory
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
Verifica agent name
: socialpubsync-reverse
seleziona la Enabled
casella di controllo
seleziona Save
(Facoltativo) modifica intervallo di polling
Per impostazione predefinita, l’autore esegue il polling delle modifiche ogni 30 secondi. Per modificare questo intervallo:
all’autore
accedi con privilegi di amministratore
accedere a Console web
individuare Apache Sling Distribution Trigger - Scheduled Triggers Factory
per aprire per la modifica, seleziona la configurazione esistente (icona matita)
Name
: socialpubsync-scheduled-trigger
imposta Interval in Seconds
all'intervallo desiderato
seleziona Save
La configurazione predefinita è per una singola istanza Publish. Poiché il motivo per abilitare la sincronizzazione degli utenti è quello di sincronizzare più istanze di pubblicazione, ad esempio per una farm di pubblicazione, è necessario aggiungere le istanze di pubblicazione aggiuntive alla factory degli agenti di sincronizzazione.
Aggiungi istanze di pubblicazione:
all’autore
accedi con privilegi di amministratore
accedere a Console web
individuare Apache Sling Distribution Agent - Sync Agents Factory
Name
: socialpubsync
Endpoint esportazione
Deve essere presente un endpoint di esportazione per ogni istanza Publish. Ad esempio, se sono presenti 2 istanze Publish, localhost:4503 e 4504, devono essere presenti 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 Publish. Ad esempio, se sono presenti 2 istanze Publish, localhost:4503 e 4504, devono essere presenti due voci:
https://localhost:4503/libs/sling/distribution/services/importers/socialpubsync
https://localhost:4504/libs/sling/distribution/services/importers/socialpubsync
seleziona Save
(Facoltativo) Sincronizza nodi JCR aggiuntivi
Se sono presenti dati personalizzati da sincronizzare tra più istanze Publish:
su ogni istanza Publish:
accedi con privilegi di amministratore
accedere a Console web
https://localhost:4503/system/console/configMgr
individuare AEM Communities User Sync Listener
per aprire per la modifica, seleziona la configurazione esistente (icona a forma di matita) Verifica Name
: 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:
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:
Nodi ignorabili
Percorsi secondari ignorati durante la sincronizzazione. In questi percorsi secondari non viene sincronizzato in alcun momento.
Nodi predefiniti da ignorare:
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
Se l’ID Sling corrisponde tra due o più istanze Publish, la sincronizzazione dei gruppi di utenti non riesce.
Se l’ID Sling è lo stesso per più istanze Publish in una farm di pubblicazione, i gruppi di utenti non vengono sincronizzati.
Per verificare che tutti i valori degli ID Sling siano diversi, per ogni istanza Publish:
http://<host>:<port>/system/console/status-slingsettings
Se l’ID Sling di un’istanza Publish corrisponde all’ID Sling di qualsiasi altra istanza 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 Publish
verificare che ID Sling è ora univoco
Ripeti questi passaggi fino a quando tutte le istanze Publish non hanno un ID Sling univoco.
Per sincronizzare correttamente gli aggiornamenti, è necessario modificare il generatore di pacchetti di Vault per la sincronizzazione utente:
su ogni istanza di pubblicazione AEM
accedere a Console web
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
Per progettazione, gli utenti e i profili creati nell’ambiente di pubblicazione (registrazione autonoma) non vengono visualizzati nell’ambiente di authoring.
Quando la topologia è farm di pubblicazione e la sincronizzazione utente è stata configurata correttamente, il utente e profilo utente viene sincronizzato nella farm di pubblicazione utilizzando la distribuzione Sling.
Per progettazione, i dati utente creati nell’ambiente di pubblicazione non vengono visualizzati nell’ambiente di authoring e viceversa.
Quando Amministrazione utenti e sicurezza viene utilizzata per aggiungere nuovi utenti nell’ambiente di pubblicazione; se necessario, la sincronizzazione utente sincronizza i nuovi utenti e la loro appartenenza al gruppo con altre istanze di pubblicazione. La sincronizzazione degli utenti sincronizza anche i gruppi di utenti creati tramite la console di sicurezza.
Per portare la sincronizzazione utente offline, passare a rimuovere un’istanza 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 CRXDE Liti
cerca voci in /var/sling/distribution/packages
distrpackage_*
utilizzo Gestione pacchetti
cerca pacchetti in sospeso (non ancora installati)
socialpubsync-vlt*
communities-user-admin
Quando la coda di distribuzione è vuota, disabilita la sincronizzazione utente:
all’autore
Enabled
casella di controllo per Agente di distribuzione Apache Sling - Factory agenti di sincronizzazioneAl termine delle attività, per riattivare la sincronizzazione utente:
all’autore
Enabled
casella di controllo per Agente di distribuzione Apache Sling - Factory agenti di sincronizzazioneDiagnostica sincronizzazione utenti è uno strumento che controlla la configurazione e tenta di identificare eventuali problemi.
Per gli autori, è sufficiente passare dalla console principale alle Strumenti, operazioni, diagnostica, diagnostica sincronizzazione utenti.
I risultati vengono visualizzati semplicemente inserendo la console Diagnostica sincronizzazione utenti.
Questo viene visualizzato quando Sincronizzazione utente non è stata abilitata:
Quando la diagnostica viene eseguita dall’ambiente di authoring, i risultati superati/non superati includono [INFO] sezione in cui viene visualizzato l’elenco delle istanze Publish configurate per la conferma.
Nell’elenco è incluso un URL per ogni istanza Publish che esegue la diagnostica per tale istanza. Parametro URL syncUser
viene aggiunto all'URL di diagnostica con il relativo valore impostato su utente di sincronizzazione autorizzato creato in Passaggio 2.
Nota: prima di avviare l’URL, il utente di sincronizzazione autorizzato deve già essere connesso a tale istanza Publish.
Quando la sincronizzazione utente non funziona, il problema più comune è che configurazioni aggiuntive erano aggiunto. Invece, la configurazione predefinita esistente avrebbe dovuto essere modificato.
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.
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
Verifica quindi che la sezione 2. Crea utente autorizzato è stato seguito correttamente.
Questa sezione descrive come creare un utente autorizzato, presente in tutte le istanze Publish, e come identificarlo nella configurazione OSGi "Provider segreto" nell’ambiente di authoring. Per impostazione predefinita, l’utente è admin
.
L’utente autorizzato deve diventare membro del administrators
Il gruppo utenti e le autorizzazioni per tale gruppo non devono essere modificati.
L’utente autorizzato deve disporre esplicitamente dei seguenti privilegi e restrizioni su tutte le istanze Publish:
percorso | jcr:all | rep:glob |
---|---|---|
/home | X | */attività/* |
/home/users | X | */attività/* |
/home/groups | X | */attività/* |
In qualità di membro del administrators
L’utente autorizzato deve disporre dei seguenti privilegi su tutte le istanze Publish:
percorso | jcr:all | jcr:read | rep:scrittura |
---|---|---|---|
/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 tra due o più istanze Publish, la sincronizzazione del gruppo di utenti non riesce.
Vedere la sezione 9. ID Sling univoco
nelle istanze Publish in cui esistono utenti e gruppi di utenti:
creare un pacchetto di /home
durante la modifica del pacchetto
/home
Overwrite
su altre istanze Publish:
Per configurare o abilitare la sincronizzazione utente, andare al passaggio 1: Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione
Quando un’istanza Publish non è più disponibile, non deve essere rimossa se ritorna online in futuro. Le modifiche vengono inserite in coda per l'istanza Publish e, quando questa è di nuovo online, vengono elaborate.
Se l’istanza 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 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 ...
Per rimuovere un'istanza Publish da Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione, la coda di distribuzione deve essere vuota e silenziosa.
su Autore:
seguire passaggio 7 per rimuovere l’istanza Publish da entrambi gli elenchi di server:
Exporter Endpoints
Importer Endpoints
riabilita sincronizzazione utenti
Enabled
casella di controllo per Agente di distribuzione Apache Sling - Factory agenti di sincronizzazione