Migreer gebruikers, groepen, en ACLs tussen AEM instanties
Dit artikel verstrekt diverse methodes om Gebruikers en Groepen van ACL Toestemmingen in AEM van één server aan een andere of van één AEM instantie aan een andere te migreren.
Beschrijving description
Omgeving
Adobe Experience Manager 6.5 (AEM)
Probleem/symptomen
Migreer Gebruikers en Groepen met ACL Toestemmingen in AEM van één server aan een andere of van één AEM instantie aan een andere.
Resolutie resolution
Stap 1: Vind admin en anonieme gebruikers
- Ga naar CRXDE lijstapp
/crx/de/index.jsp
en login als admin gebruiker (op het bronsysteem). - Ga naar Hulpmiddelen
=>
Vraag . - In het bodem vakje van de Vraag , ga deze vraag in om de admingebruiker te vinden:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"]
. - Klik uitvoeren , en kopieer de weg van de admin gebruikersknoop in de resultaten aan een tekstdossier.
- Herhaal stap 3 met een query voor anonieme gebruiker:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"]
. - Klik uitvoeren , en kopieer de weg van de anonieme gebruikersknoop in de resultaten aan een tekstdossier (zodat hebt u nu twee wegen, voor "admin"en voor "anoniem"). Bijvoorbeeld:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- Admin user on the source system/home/users/K/Kj1406Qo9IDODc_nk5Ib
- anonieme gebruiker op het bronsysteem
Stap 2: Gebruikers en groepen migreren (met pakketten)
Als gebruikers niet automatisch zijn geïmporteerd via LDAP/SAML-verificatie of Crx2Oak (stap 2A hierboven), kunt u gebruikers en groepen verpakken.
In dit geval maakt u twee afzonderlijke pakketten op het oude systeem (met uitzondering van beheerders en anonieme gebruikers buiten de verpakking).
Voer de volgende stappen uit:
-
Kopieer de weg van de anonieme en admin gebruikersknopen van de resultaten in Stap 1 ( Stap 1: Vind admin en anonieme gebruikers ) hierboven.
Bijvoorbeeld:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- de gebruiker beheren op het systeem waar u het pakket maakt, of/home/users/K/Kj1406Qo9IDODc_nk5Ib
- anonieme gebruiker op het systeem waar u het pakket maakt -
Ga naar de Manager van het Pakket ,
http://host:port/crx/packmgr/index.jsp
, en login als admin. -
Creeer pakket gebruikers.
-
Voeg een filter aan het pakket toe config voor
/home/users
met deze sluit regels (op de/home/users
filter) uit: (Nota: De lijst zou kunnen moeten veranderen als het product ** groepen/gebruikers van de AEM toevoegt/verwijdert)- exclusief /home/users/.*/.tokens
- exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- /home/users/K/Kj1406Qo9IDODc_nk5Ib
- exclusief /home/users/a/admin
- exclusief /home/users/a/anoniem
- exclusief /home/users/system
- exclude /home/users/geometrixx
- exclusief /home/users/media
- exclusief /home/users/projects
- exclusief /home/users/mac
-
Maak het pakket.
-
Download het pakket.
-
Pak het ZIP-bestand van het pakket uit op de computer:
jar -xvf users.zip META-INF/vault/filter.xml
-
Open het bestand
META-INF/vault/filter.xml
in een teksteditor. -
Voeg wijze = samenvoegen aan de
<filter ...>
markering toe, bijvoorbeeld:code language-none <?xml version="1.0" encoding="UTF-8"?> <workspaceFilter version="1.0"> <filter root="/home/users" mode="merge"> <exclude pattern="/home/users/.*/.tokens"/> <exclude pattern="/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv"/> <exclude pattern="/home/users/K/Kj1406Qo9IDODc_nk5Ib"/> <exclude pattern="/home/users/a/admin"/> <exclude pattern="/home/users/a/anonymous"/> <exclude pattern="/home/users/system"/> <exclude pattern="/home/users/geometrixx"/> <exclude pattern="/home/users/media"/> <exclude pattern="/home/users/projects"/> <exclude pattern="/home/users/mac"/> </filter> </workspaceFilter>
-
Pak de gewijzigde inhoud van het pakket opnieuw in zodat deze de wijziging bevat.
jar -uvf users.zip META-INF/vault/filter.xml
-
Creeer het pakket van de a groepen dat een filterregel
/home/groups
bevat. -
Herhaal stap 1-10 voor het groepspakket.
-
(Verbetering slechts) als het uitvoeren van migratie aan een nieuwere AEM versie, een nieuwe lokale AEM instantie van de oude versie ( met
nosamplecontent
) installeren, en zowel het gebruikerspakket, als het groepspakket installeren, daar. Voer vervolgens een upgrade ter plekke uit naar de nieuwe versie op die instantie. Hiermee worden de gebruikers geconverteerd naar de nieuwe Oak-weergave. Na de upgrade op de locatie herverpakken de gebruikers opnieuw om ze naar de gewenste geüpgrade instantie te verzenden. Doe het zelfde voor de gebruikersgroepen. -
Installeer het gebruikerspakket op het nieuwe systeem.
-
Installeer het groepspakket op het nieuwe systeem.
-
Als u van een oudere AEM versie aan 6.3 migreert, ga naar
/useradmin
UI en voeg de gebruiker replicatie-ontvanger aan de beheerders groep toe.
Stap 3. ACL's migreren
(NOTA: Het gemaakte pakket zou ACLs slechts moeten omvatten die nodig zijn) Merk op dat de machine waar u deze bevelen in werking stelt Mac OS, Linux, of Vensters (gebruikend Cygwin) moet zijn met krullen, python, en geïnstalleerde SDK van Java.
-
Ga naar
http://src-aem-host:port/crx/packmgr/index.jsp,
en login als admin. -
Creeer een pakket genoemd ACL-migratie.
-
Klik uitgeven knoop.
-
Selecteer het Geavanceerde lusje en de reeks AC Behandelende wijze aan Fusie.
-
Opslaan.
-
Maak het pakket en download het.
-
Voer in het bestandssysteem deze opdracht uit op het pakket om het
META-INF/vault/filter.xml
-bestand te extraheren:jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml
-
Voer deze opdracht in dezelfde map uit om een JSON-bestand van de ACL-paden onder
/content
te downloaden van de broninstantie (stel de gebruikersnaam, het wachtwoord en de correcte host in):curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/content//element(*,rep:ACL)&showResults=true' > data.json
-
Maak een bestand
generate-package-filter.py
en plak de onderliggende pythoncode:\code language-none import json from pprint import pprint with open ('data.json') as data_file: data = json.load(data_file) print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>") print("<workspaceFilter version=\"1.0\">") form item in data[ "results"] : print("<filter root=\"{path}\" />" . format(path=item[ "path"] )) print("</workspaceFilter>")
-
Voer het pythonscript uit vanuit dezelfde map als waarin
data.json
is gemaakt en sla de uitvoer op inMETA-INF/vault/filter.xml
(vervang de bestaande inhoud vanfilter.xml
):python generate-packge-filter.py > META-INF/vault/filter.xml
-
Gebruik deze opdracht om de
filter.xml
in het ZIP-bestand bij te werken:jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml
-
Upload het ZIP-bestand naar het pakketbeheer voor de broninstantie:
http://src-aem-host:port/crx/packmgr/index.jsp
-
Klik bouwen of herbouwt om het pakket te bouwen.
-
Download het pakket van de bron AEM server.
-
Upload het pakket naar het pakketbeheer van de AEM server:
http://dst-aem-host:port/crx/packmgr/index.jsp
-
Klik installeren om het te installeren.
-
Herhaal stap 8-16 voor alle andere paden die de opdracht Padkrullen wijzigen. De ACL's worden dan bijvoorbeeld onder
/etc
in plaats van onder/content
geplaatst:
curl -u admin:admin 'http://aemhost/crx/de/query.jsp?' -G --data-urlencode '_dc=1507011481908&_charset_=utf-8&type=xpath&stmt=/jcr:root/etc//element(*,rep:ACL)&showResults=true' > data.json