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

  1. Gå till CRXDE lite-appen /crx/de/index.jsp och logga in som admin-användare (i källsystemet).
  2. Gå till Verktyg => Fråga.
  3. 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"].
  4. Klicka på Kör och kopiera sökvägen till administratörsanvändarnoden i resultatet till en textfil.
  5. Upprepa steg 3 med en fråga för anonym användare: /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"].
  6. 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:

  1. 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

  2. Gå till Package Manager, http://host:port/crx/packmgr/index.jsp och logga in som admin.

  3. Skapa paketet användare.

  4. Lägg till ett filter i paketkonfigurationen för /home/users med 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)

    1. exclude /home/users/.*/.tokens
    2. exclude /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. exclude /home/users/a/admin
    5. exclude /home/users/a/anonymous
    6. exclude /home/users/system
    7. exclude /home/users/geometrixx
    8. exclude /home/users/media
    9. exclude /home/users/projects
    10. exclude /home/users/mac
  5. Skapa paketet.

  6. Ladda ned paketet.

  7. Zippa upp paketzip-filen på datorn: jar -xvf users.zip META-INF/vault/filter.xml

  8. Öppna filen META-INF/vault/filter.xml i en textredigerare.

  9. 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>
    
  10. Zippa upp det ändrade innehållet i paketet igen så att det innehåller ändringen.

    jar -uvf users.zip META-INF/vault/filter.xml

  11. Skapa ett grupppaket som innehåller en filterregel /home/groups.

  12. Upprepa steg 1-10 för grupppaketet.

  13. (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.

  14. Installera användarpaketet på den nya datorn.

  15. Installera grupppaketet på den nya datorn.

  16. Om du migrerar från en äldre AEM till 6.3 går du till användargränssnittet för /useradmin och 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.

  1. Gå till http://src-aem-host:port/crx/packmgr/index.jsp, och logga in som admin.

  2. Skapa ett paket med namnet ACL-migrering.

  3. Klicka på knappen Redigera.

  4. Välj fliken Avancerat och ställ in AC-hanteringsläget till Sammanfogning.

  5. Spara.

  6. Bygg paketet och ladda ned det.

  7. Kör det här kommandot på paketet för att extrahera filen META-INF/vault/filter.xml i filsystemet:

    jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml

  8. I samma katalog kör du det här kommandot för att hämta en JSON-fil med ACL-sökvägarna under /content frå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

  9. Skapa en fil generate-package-filter.py och 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>")
    
  10. Kör python-skriptet från samma mapp där data.json skapades och spara utdata i META-INF/vault/filter.xml (ersätter det befintliga innehållet i filter.xml):

    python generate-packge-filter.py > META-INF/vault/filter.xml

  11. Använd det här kommandot för att uppdatera filter.xml i zip-filen:

    jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml

  12. Överför zip-filen till källinstansens pakethanterare: http://src-aem-host:port/crx/packmgr/index.jsp

  13. Klicka på Skapa eller Återskapa för att skapa paketet.

  14. Hämta paketet från AEM.

  15. Överför paketet till mål-AEM-serverns pakethanterare: http://dst-aem-host:port/crx/packmgr/index.jsp

  16. Klicka på Installera för att installera det.

  17. Upprepa steg 8-16 för alla andra banor som ändrar kommandot för banvändning. Detta skulle till exempel få åtkomstkontrollistorna under /etc i 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

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f