AEM 인스턴스 간에 사용자, 그룹 및 ACL 마이그레이션

이 문서에서는 AEM에서 ACL 권한이 있는 사용자 및 그룹을 한 서버에서 다른 서버로 또는 한 AEM 인스턴스에서 다른 인스턴스로 마이그레이션하는 다양한 방법을 제공합니다.

설명 description

환경

Adobe Experience Manager 6.5 (AEM)

문제/증상

AEM에서 ACL 권한이 있는 사용자 및 그룹을 한 서버에서 다른 서버로 또는 한 AEM 인스턴스에서 다른 인스턴스로 마이그레이션합니다.

해결 방법 resolution

1단계: 관리자 및 익명 사용자 찾기

  1. CRXDE 라이트 앱 /crx/de/index.jsp(으)로 이동한 다음 소스 시스템에서 관리자 사용자(으)로 로그인합니다.
  2. 도구(으)로 이동 => 쿼리.
  3. 하단 쿼리 상자에 이 쿼리를 입력하여 관리자 /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"]을(를) 찾습니다.
  4. 실행 을 클릭하고 결과에 있는 관리자 노드의 경로를 텍스트 파일에 복사합니다.
  5. 익명 사용자 /jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"]에 대한 쿼리로 3단계를 반복합니다.
  6. 실행 을 클릭하고 결과에 있는 익명 사용자 노드의 경로를 텍스트 파일에 복사합니다. 이제 "admin"과 "anonymous"의 경로가 있습니다. 예:
    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv – 소스 시스템의 관리자
    /home/users/K/Kj1406Qo9IDODc_nk5Ib – 소스 시스템의 익명 사용자

2단계: 사용자 및 그룹 마이그레이션(패키지 사용)

LDAP/SAML 인증 또는 Crx2Oak(위의 2A 단계)를 통해 사용자를 자동으로 가져오지 못한 경우 사용자와 그룹을 패키징할 수 있습니다.

이 경우 이전 시스템에서 두 개의 별도 패키지를 만듭니다(관리자 및 기본 익명 사용자 제외).

다음 단계를 수행하십시오.

  1. 위의 1단계(1단계: 관리자 및 익명 사용자 찾기) 결과에서 익명 및 관리자 사용자 노드의 경로를 복사합니다.

    예:

    /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv - 패키지를 만드는 시스템의 관리자 또는

    /home/users/K/Kj1406Qo9IDODc_nk5Ib - 패키지를 만드는 시스템의 익명 사용자

  2. 패키지 관리자, http://host:port/crx/packmgr/index.jsp(으)로 이동한 다음 관리자(으)로 로그인합니다.

  3. 패키지 사용자 ​를 만듭니다.

  4. /home/users 필터에서 이러한 제외 규칙으로 /home/users의 패키지 구성에 필터 추가: (참고: AEM에서 그룹/사용자를 추가/제거 ​하는 경우 목록을 변경해야 할 수 있습니다.)

    1. /home/users/ 를 제외합니다.*/.tokens
    2. /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv 제외
    3. exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
    4. /home/users/a/admin 제외
    5. exclude /home/users/a/anonymous
    6. exclude /home/users/system
    7. /home/users/geometrixx 제외
    8. /home/users/media 제외
    9. /home/users/projects 제외
    10. /home/users/mac 제외
  5. 패키지를 빌드합니다.

  6. 패키지를 다운로드합니다.

  7. 컴퓨터에서 패키지 zip 파일의 압축 풀기: jar -xvf users.zip META-INF/vault/filter.xml

  8. 텍스트 편집기에서 파일 META-INF/vault/filter.xml를 엽니다.

  9. <filter ...> 태그에 모드 = merge ​을(를) 추가합니다. 예:

    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. 변경 사항이 포함되도록 수정된 패키지 콘텐츠를 다시 압축합니다.

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

  11. 필터 규칙 /home/groups이(가) 포함된 그룹 패키지를 만듭니다.

  12. 그룹 패키지에 대해 1~10단계를 반복합니다.

  13. (업그레이드만 해당) 최신 AEM 버전으로 마이그레이션을 수행하는 경우 이전 버전(nosamplecontent 포함)의 새로운 로컬 AEM 인스턴스 을(를) 설치하고 사용자 패키지와 그룹 패키지를 모두 설치하십시오. 그런 다음 해당 인스턴스에서 새 버전으로 바로 업그레이드를 수행합니다. 그러면 사용자가 새 Oak 표시로 변환됩니다. 즉각적으로 업그레이되면 사용자를 다시 패키징하여 업그레이드된 인스턴스로 복사합니다. 사용자 그룹에 대해서도 동일한 작업을 수행합니다.

    . 새 시스템에 사용자 패키지를 설치합니다.. 새 시스템에 그룹 패키지를 설치합니다.. 이전 AEM 버전에서 6.3으로 마이그레이션하는 경우 /useradmin UI로 이동하여 사용자 복제 수신기를 관리자 그룹에 추가하십시오.

**### 3단계. ACL 마이그레이션(참고: 작성된 패키지에는 필요한 ACL만 포함되어야 함) 이러한 명령을 실행하는 컴퓨터는 curl, python 및 Java SDK가 설치된 Mac OS, Linux 또는 Windows(Cygwin 사용)여야 합니다.1) http://src-aem-host:port/crx/packmgr/index.jsp,(으)로 이동한 다음 관리자(으)로 로그인합니다.

  1. 이름이 ACL-migration ​인 패키지를 만듭니다.

  2. 편집 단추를 클릭합니다.

  3. 고급 탭을 선택하고 AC 처리 모드병합(으)로 설정합니다.

  4. 저장.

  5. 패키지를 빌드하고 다운로드합니다.

  6. 파일 시스템에서 패키지에서 이 명령을 실행하여 META-INF/vault/filter.xml 파일을 추출합니다.

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

  7. 동일한 디렉터리에서 이 명령을 실행하여 소스 인스턴스의 /content 아래에 있는 ACL 경로의 json 파일을 다운로드합니다(사용자 이름, 암호 및 올바른 호스트 설정).

    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

  8. generate-package-filter.py 파일을 만들고 그 안에 아래의 python 코드를 붙여 넣습니다.\

    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>")
    
  9. data.json이(가) 만들어진 동일한 폴더에서 python 스크립트를 실행하고 출력을 META-INF/vault/filter.xml에 저장합니다(filter.xml의 기존 콘텐츠 대체).

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

  10. 이 명령을 사용하여 zip 파일 내에서 filter.xml를 업데이트합니다.

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

  11. zip 파일을 원본 인스턴스 패키지 관리자에 업로드합니다. http://src-aem-host:port/crx/packmgr/index.jsp

  12. 빌드 또는 다시 빌드 를 클릭하여 패키지를 빌드합니다.

  13. 소스 AEM 서버에서 패키지를 다운로드합니다.

  14. 대상 AEM 서버의 패키지 관리자에 패키지를 업로드합니다. http://dst-aem-host:port/crx/packmgr/index.jsp

  15. 설치 를 클릭하여 설치합니다.

  16. 경로 curl 명령을 변경하는 다른 경로에 대해 8~16단계를 반복합니다. 예를 들어 /content 대신에 /etc 아래에서 ACL을 가져옵니다.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