AEM 인스턴스 간에 사용자, 그룹 및 ACL 마이그레이션
이 문서에서는 AEM에서 ACL 권한이 있는 사용자 및 그룹을 한 서버에서 다른 서버로 또는 한 AEM 인스턴스에서 다른 인스턴스로 마이그레이션하는 다양한 방법을 제공합니다.
설명 description
환경
Adobe Experience Manager 6.5 (AEM)
문제/증상
AEM에서 ACL 권한이 있는 사용자 및 그룹을 한 서버에서 다른 서버로 또는 한 AEM 인스턴스에서 다른 인스턴스로 마이그레이션합니다.
해결 방법 resolution
1단계: 관리자 및 익명 사용자 찾기
- CRXDE 라이트 앱
/crx/de/index.jsp(으)로 이동한 다음 소스 시스템에서 관리자 사용자(으)로 로그인합니다. - 도구(으)로 이동
=>쿼리. - 하단 쿼리 상자에 이 쿼리를 입력하여 관리자
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="admin"]을(를) 찾습니다. - 실행 을 클릭하고 결과에 있는 관리자 노드의 경로를 텍스트 파일에 복사합니다.
- 익명 사용자
/jcr:root/home/users//element(*,rep:User)[ @rep:principalName="anonymous"]에 대한 쿼리로 3단계를 반복합니다. - 실행 을 클릭하고 결과에 있는 익명 사용자 노드의 경로를 텍스트 파일에 복사합니다. 이제 "admin"과 "anonymous"의 경로가 있습니다. 예:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv– 소스 시스템의 관리자/home/users/K/Kj1406Qo9IDODc_nk5Ib– 소스 시스템의 익명 사용자
2단계: 사용자 및 그룹 마이그레이션(패키지 사용)
LDAP/SAML 인증 또는 Crx2Oak(위의 2A 단계)를 통해 사용자를 자동으로 가져오지 못한 경우 사용자와 그룹을 패키징할 수 있습니다.
이 경우 이전 시스템에서 두 개의 별도 패키지를 만듭니다(관리자 및 기본 익명 사용자 제외).
다음 단계를 수행하십시오.
-
위의 1단계(1단계: 관리자 및 익명 사용자 찾기) 결과에서 익명 및 관리자 사용자 노드의 경로를 복사합니다.
예:
/home/users/Q/QY5FIMXeQIbGpwZtQ3Dv- 패키지를 만드는 시스템의 관리자 또는/home/users/K/Kj1406Qo9IDODc_nk5Ib- 패키지를 만드는 시스템의 익명 사용자 -
패키지 관리자,
http://host:port/crx/packmgr/index.jsp(으)로 이동한 다음 관리자(으)로 로그인합니다. -
패키지 사용자 를 만듭니다.
-
/home/users필터에서 이러한 제외 규칙으로/home/users의 패키지 구성에 필터 추가: (참고: AEM에서 그룹/사용자를 추가/제거 하는 경우 목록을 변경해야 할 수 있습니다.)- /home/users/ 를 제외합니다.*/.tokens
- /home/users/Q/QY5FIMXeQIbGpwZtQ3Dv 제외
- exclude /home/users/K/Kj1406Qo9IDODc_nk5Ib
- /home/users/a/admin 제외
- exclude /home/users/a/anonymous
- exclude /home/users/system
- /home/users/geometrixx 제외
- /home/users/media 제외
- /home/users/projects 제외
- /home/users/mac 제외
-
패키지를 빌드합니다.
-
패키지를 다운로드합니다.
-
컴퓨터에서 패키지 zip 파일의 압축 풀기:
jar -xvf users.zip META-INF/vault/filter.xml -
텍스트 편집기에서 파일
META-INF/vault/filter.xml를 엽니다. -
<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> -
변경 사항이 포함되도록 수정된 패키지 콘텐츠를 다시 압축합니다.
jar -uvf users.zip META-INF/vault/filter.xml -
필터 규칙
/home/groups이(가) 포함된 그룹 패키지를 만듭니다. -
그룹 패키지에 대해 1~10단계를 반복합니다.
-
(업그레이드만 해당) 최신 AEM 버전으로 마이그레이션을 수행하는 경우 이전 버전(
nosamplecontent포함)의 새로운 로컬 AEM 인스턴스 을(를) 설치하고 사용자 패키지와 그룹 패키지를 모두 설치하십시오. 그런 다음 해당 인스턴스에서 새 버전으로 바로 업그레이드를 수행합니다. 그러면 사용자가 새 Oak 표시로 변환됩니다. 즉각적으로 업그레이되면 사용자를 다시 패키징하여 업그레이드된 인스턴스로 복사합니다. 사용자 그룹에 대해서도 동일한 작업을 수행합니다.. 새 시스템에 사용자 패키지를 설치합니다.. 새 시스템에 그룹 패키지를 설치합니다.. 이전 AEM 버전에서 6.3으로 마이그레이션하는 경우
/useradminUI로 이동하여 사용자 복제 수신기를 관리자 그룹에 추가하십시오.
**### 3단계. ACL 마이그레이션(참고: 작성된 패키지에는 필요한 ACL만 포함되어야 함) 이러한 명령을 실행하는 컴퓨터는 curl, python 및 Java SDK가 설치된 Mac OS, Linux 또는 Windows(Cygwin 사용)여야 합니다.1) http://src-aem-host:port/crx/packmgr/index.jsp,(으)로 이동한 다음 관리자(으)로 로그인합니다.
-
이름이 ACL-migration 인 패키지를 만듭니다.
-
편집 단추를 클릭합니다.
-
고급 탭을 선택하고 AC 처리 모드 를 병합(으)로 설정합니다.
-
저장.
-
패키지를 빌드하고 다운로드합니다.
-
파일 시스템에서 패키지에서 이 명령을 실행하여
META-INF/vault/filter.xml파일을 추출합니다.jar -xvf ACL-migration-1.0.zip META-INF/vault/filter.xml -
동일한 디렉터리에서 이 명령을 실행하여 소스 인스턴스의
/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 -
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>") -
data.json이(가) 만들어진 동일한 폴더에서 python 스크립트를 실행하고 출력을META-INF/vault/filter.xml에 저장합니다(filter.xml의 기존 콘텐츠 대체).python generate-packge-filter.py > META-INF/vault/filter.xml -
이 명령을 사용하여 zip 파일 내에서
filter.xml를 업데이트합니다.jar -uvf ACL-migration-1.0.zip META-INF/vault/filter.xml -
zip 파일을 원본 인스턴스 패키지 관리자에 업로드합니다.
http://src-aem-host:port/crx/packmgr/index.jsp -
빌드 또는 다시 빌드 를 클릭하여 패키지를 빌드합니다.
-
소스 AEM 서버에서 패키지를 다운로드합니다.
-
대상 AEM 서버의 패키지 관리자에 패키지를 업로드합니다.
http://dst-aem-host:port/crx/packmgr/index.jsp -
설치 를 클릭하여 설치합니다.
-
경로 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**