Migrera användare, grupper och åtkomstkontrollistor mellan AEM instanser
Den här artikeln innehåller olika metoder för att migrera användare och grupper med ACL-behörigheter i AEM från en server till en annan eller från en AEM till en annan.
Beskrivning description
Miljö
Adobe Experience Manager 6.5 (AEM)
Problem/symtom
Migrera användare och grupper med ACL-behörigheter i AEM från en server till en annan eller från en AEM till en annan.
Upplösning resolution
Steg 1: Hitta administratörer och anonyma användare
- Gå till CRXDE lite-appen
/crx/de/index.jspoch logga in som admin-användare (i källsystemet). - Gå till Verktyg
=>Fråga. - I den nedre rutan Fråga anger du den här frågan för att hitta administratörsanvändaren:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"]. - Klicka på Kör och kopiera sökvägen till administratörsanvändarnoden i resultatet till en textfil.
- Upprepa steg 3 med en fråga för anonym användare:
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"]. - Klicka på Kör och kopiera sökvägen till den anonyma användarnoden i resultaten till en textfil (så nu har du två sökvägar, en för"admin" och en för"anonym"). Exempel:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv- adminanvändare i källsystemet/home/users/K/Kj1406Qo9IDODc_nk5Ib- anonym användare i källsystemet
Steg 2: Migrera användare och grupper (med paket)
Om användare inte importerades automatiskt via LDAP/SAML-autentisering eller Crx2Oak (steg 2A ovan) kan du paketera användare och grupper.
I det här fallet skapar du två separata paket i det gamla systemet (förutom admin och anonyma användare som inte finns med i paketet).
Följ de här stegen:
-
Kopiera sökvägen för anonyma noder och administratörsanvändarnoder från resultaten i steg 1 (Steg 1: Hitta admin- och anonyma användare) ovan.
Exempel:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv- admin-användare på datorn där du skapar paketet, eller/home/users/K/Kj1406Qo9IDODc_nk5Ib- anonym användare på datorn där du skapar paketet -
Gå till Package Manager,
http://host:port/crx/packmgr/index.jspoch logga in som admin. -
Skapa paketet användare.
-
Lägg till ett filter i paketkonfigurationen för
/home/usersmed följande exkluderingsregler (för filtret/home/users): (Obs! Listan kan behöva ändras om produkten lägger till/tar bort grupper/användare från AEM)- exclude /home/users/.*/.tokens
- exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
- exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
- exclude /home/users/a/admin
- exclude /home/users/a/anonymous
- exclude /home/users/system
- exclude /home/users/geometrixx
- exclude /home/users/media
- exclude /home/users/projects
- exclude /home/users/mac
-
Skapa paketet.
-
Ladda ned paketet.
-
Zippa upp paketzip-filen på datorn:
jar -xvf users.zip META-INF/vault/filter.xml -
Öppna filen
META-INF/vault/filter.xmli en textredigerare. -
Lägga till läge = merge i taggen
<filter ...>, till exempel: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> -
Zippa upp det ändrade innehållet i paketet igen så att det innehåller ändringen.
jar -uvf users.zip META-INF/vault/filter.xml -
Skapa ett grupppaket som innehåller en filterregel
/home/groups. -
Upprepa steg 1-10 för grupppaketet.
-
(Endast uppgradering) Om du utför migrering till en senare AEM version installerar du en ny lokal AEM av den gamla versionen ( med
nosamplecontent) och installerar både användarpaketet och grupppaketet där. Utför sedan en uppgradering på plats till den nya versionen på den instansen. Detta konverterar användarna till den nya Oak-representationen. Efter uppgraderingen på plats packar du om användarna för att portera dem till den uppgraderade instansen. Gör samma sak för användargrupperna. -
Installera användarpaketet på den nya datorn.
-
Installera grupppaketet på den nya datorn.
-
Om du migrerar från en äldre AEM till 6.3 går du till användargränssnittet för
/useradminoch lägger till användarreplikeringsmottagaren i gruppen administrators.
Steg 3. Migrera åtkomstkontrollistor
(Obs! Paketet som skapas ska bara innehålla de åtkomstkontrollistor som behövs.) Observera att datorn där du kör kommandona måste vara Mac OS, Linux eller Windows (med Cygwin) med bol, python och Java SDK installerat.
-
Gå till
http://src-aem-host:port/crx/packmgr/index.jsp,och logga in som admin. -
Skapa ett paket med namnet ACL-migrering.
-
Klicka på knappen Redigera.
-
Välj fliken Avancerat och ställ in AC-hanteringsläget till Sammanfogning.
-
Spara.
-
Bygg paketet och ladda ned det.
-
Kör det här kommandot på paketet för att extrahera filen
META-INF/vault/filter.xmli filsystemet:jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml -
I samma katalog kör du det här kommandot för att hämta en JSON-fil med ACL-sökvägarna under
/contentfrån källinstansen (ange användarnamn, lösenord och korrekt värd):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 -
Skapa en fil
generate-package-filter.pyoch klistra in pytonkoden nedan:\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>") -
Kör python-skriptet från samma mapp där
data.jsonskapades och spara utdata iMETA-INF/vault/filter.xml(ersätter det befintliga innehållet ifilter.xml):python generate-packge-filter.py > META-INF/vault/filter.xml -
Använd det här kommandot för att uppdatera
filter.xmli zip-filen:jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml -
Överför zip-filen till källinstansens pakethanterare:
http://src-aem-host:port/crx/packmgr/index.jsp -
Klicka på Skapa eller Återskapa för att skapa paketet.
-
Hämta paketet från AEM.
-
Överför paketet till mål-AEM-serverns pakethanterare:
http://dst-aem-host:port/crx/packmgr/index.jsp -
Klicka på Installera för att installera det.
-
Upprepa steg 8-16 för alla andra banor som ändrar kommandot för banvändning. Detta skulle till exempel få åtkomstkontrollistorna under
/etci stället för/content:
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