사용자 동기화 도구 - 일반적인 오류

기업에 적용됩니다.

UST를 실행할 때 발생하는 몇 가지 일반적인 오류 및 이를 해결할 팁 목록

FileNotFoundError: [Errno 2]

샘플 콘솔 오류 출력:

FileNotFoundError: [Errno 2] 해당 파일이나 디렉터리가 없습니다: 'C:\\Users\\USER\\.pex\\install\\pycryptodome [...]'

경로가 256자를 초과하여 Windows에 표시될 수 있습니다.

팁: {{}}C:\pex{{}} 값을 사용하여 이름이 {1}PEX_ROOT{2}인 환경 변수를 작성합니다(스크립트를 C: 드라이브에서 실행하는 경우, 그렇지 않으면 일치하도록 문자 변경). 적용하려면 시스템 재시작이 필요한 경우가 있습니다.

 

can't open file 'user-sync.pex': [Errno 2]

샘플 오류 출력:

python: 'user-sync.pex' 파일을 열 수 없습니다: [Errno 2] 해당 파일 또는 디렉터리가 없습니다

팁: user-sync.pex가 있는 폴더 내에서 python 명령어 라인을 실행해야 합니다.

 

UMAPI timeout

샘플 로그 오류 출력:

2018-01-01 11:49:42 28102 WARNING umapi - UMAPI 시간 초과...서비스를 이용할 수 없습니다 (1번째 시도에서 코드 429)
2018-01-01 11:49:42 28102 WARNING umapi - 42초 후 다시 시도합니다...

: 시간 초과가 30분 미만인 경우, 이러한 경고 메시지는 1분 내에 수행할 수 있는 API 호출 할당량에 도달했을 때 수신됩니다. UST는 호출을 다시 시도할 수 있는 가속 백오프 메커니즘과 함께 제공되므로 재시도 사이의 시간을 늘립니다. 재시도가 세 번 실패하면 스크립트가 중지됩니다.

여기서의 권장 사항은 스크립트를 끝까지 실행하도록 두는 것입니다.

시간 초과가 1000초 이상인 경우, 이는 각 사용자 동기화 도구 인스턴스의 실행 빈도와 관련된 조절입니다.인스턴스가 더 자주 실행되는 것으로 관찰되면 30분에서 75분 사이로 조절됩니다.시간 초과는 UST를 일정 시간 동안 일시 중지시키지만(따라서 중요한 중단 오류는 아님), UST는 이를 인식하고 동기화를 바로 계속할 수 있습니다.

스크립트는 두 인스턴스가 동시에 실행되는 것을 인식하므로, 초기 인스턴스가 실행을 완료할 때까지 새 인스턴스를 트리거할 수 없습니다.이 경우 UST 로그에 '프로세스가 이미 진행 중'이라는 오류 메시지가 나타날 수 있습니다.

실행 빈도와 관련하여 최상의 성능을 위한 몇 가지 권장 사항은 다음과 같습니다:

  • 예약된 작업 빈도를 검토하고 최소 2시간 간격으로 반복되도록 설정합니다
  • 예약된 작업 트리거 시간을 검토하여 :00 또는 :30분에 시작되지 않도록 합니다(최대 트래픽 활동 시간 피하기)
  • 도구를 더 자주 실행해야 하는 경우, 전체 동기화 대신 푸시 전략(변경 사항의 델타)을 사용하는 UST의 가능성을 고려합니다
  • UST의 실행 시간 일정을 사용자가 프로비저닝을 필요로 하는 조직의 근무일에 맞춥니다(예: 조직이 밤에 사용자 프로비저닝을 수정할 필요가 없다면 이 시간에 동기화 작업을 실행하지 않음)

 

 

error.user.belongs_to_another_org

샘플 로그 항목:

2018-01-01 11:49:42 28102 ERROR umapi.action - Error in requestID: action_1 (User: {'user': 'myuser@domain2.com', 'requestID':'action_1'}, Command: {'createFederatedID': {'email': 'myuser@domain2.com', 'country': 'US', 'option': 'ignoreIfAlreadyExists', 'firstname': 'fname', 'lastname': 'lname'}}): code: "error.user.belongs_to_another_org" message: "다른 조직의 소유 인증 사용자를 초대할 수 없습니다"

: 계정을 만드는 데 사용된 도메인은 조직 내에서 요청/신뢰되지 않을 수 있습니다. Admin Console -> 설정의 활성 도메인에 대한 초록 플래그 또는 점이 표시됩니다. 그렇지 않은 경우, 도메인 요청 프로세스를 완료하면 문제를 해결할 수 있습니다.

 

 

error.user.type_mismatch

샘플 로그 항목:

2018-01-01 12:34:23 13383 ERROR umapi.action - Error in requestID: action_6 (User: {'user': ‘user@domain.com’, 'requestID': 'action_6'}, Command: {'createEnterpriseID': {'email': 'user@domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'test', 'lastname': 'user', 'country': ‘US’}}): code: "error.user.type_mismatch" message: "초대에 요청된 사용자 유형이 주장된 도메인 유형과 일치하지 않습니다"

Missing dependencies

샘플 콘솔 오류 출력:

PEX 파일 실행 실패, 다음에 대한 호환 가능한 종속성 누락:
pyyaml
cryptography
cffi
umapi-client
pycryptodome
pyldap
psutil
user-sync

:

a) 시스템에 설치한 Python 버전이 32비트 버전인지 확인합니다. 32비트를 제거하고 64비트 버전을 설치하여 문제를 해결합니다.

b) GitHub에서 다운로드한 user-sync.pex 버전이 Python 버전 및 OS 유형에 맞는지 확인합니다. 예를 들어 user-sync-v2.3-win64-py365.zip은 Windows 64비트 및 Python 3용으로 다운로드합니다.

최신 버전의 Python을 사용하는 것이 항상 좋은 것은 아닙니다. Python 버전에 일치하기 위해 .pex가 먼저 작성되며 이는 바람직합니다. 다운로드한 .zip 파일의 접미어를 따라 적합한 Python 버전을 식별합니다. 위의 예(user-sync-v2.3-win64-py365.zip)의 경우 Python 3.6.5를 식별할 수 있습니다.

 

 

개인 키 복호화 오류

샘플 로그 항목:

2018-01-01 09:52:23 7920 DEBUG umapi - umapi: 파일 C:\path\to\private.key 에서 개인 키 데이터를 읽는 중
2018-01-01 09:52:23 7920 CRITICAL main - umapi configuration.enterprise: 개인 키 복호화 오류: 비밀번호가 잘못되었거나 RSA 키 형식이 지원되지 않습니다

:

a) 문제를 빠르게 식별할 수 없는 경우, 키 쌍을 재발급하는 것이 더 빠릅니다

b) Windows에서 스크립트를 실행하는 경우 umapi_private_key_data 특성을 사용하지 마십시오. 대신 키를 암호화하고 [자격 증명 관리자]에 해당 암호를 저장합니다.

c) 키 쌍을 발급할 때 다른 형식을 사용했다면 RSA256/2048비트 길이 개인 키를 사용해 보십시오

d) connector-umapi.yml 파일에 secure_priv_key_pass_key: umapi_private_key_passphrase를 설정할 수 있습니다. 이 경우, 이 값과 연결된 값에 대한 [자격 증명 저장소]의 항목이 일치하는지 확인합니다(아래 참조).

Windows 자격 증명 관리자

 

보안 저장소에 사용자의 값이 존재하지 않습니다...

샘플 로그 항목:

2018-01-01 09:52:23 7920 CRITICAL main - umapi CRITICAL main - umapi configuration.enterprise: 보안 저장소에 사용자 "someUUIDvalue@AdobeOrg"의 "umapi_api_key" 값이 존재하지 않습니다

:

a) umapi_api_key에 대한 [자격 증명 저장소] 항목이 없을 수 있습니다. [자격 증명 저장소]에서 항목을 만듭니다. 도움말 문서는 여기에서 찾을 수 있습니다.

b) 값이 다른 사용자 계정의 [자격 증명 저장소]에 추가되었을 수 있습니다. 그러나 현재 연결된 사용자의 경우 이 항목이 없습니다. 필요한 경우 추가하거나 사용자 계정을 전환합니다.

 

 

error.internal.exceptionflys / error.unauthorized

샘플 오류 출력:

umapi_client.error.RequestError: Request Error (401): {"lastPage":false,"result":"error.internal.exceptionflys","message":"Failed to exchange token"}

OR

"umapi_client.error.RequestError: Request Error (401): {"lastPage":false,"result":"error.unauthorized","message":"Failed to authenticate provided token"}"

: Admin Console -> 설정 -> 인증 설정에서 사용자를 위한 가장 쉬운 옵션(암호가 만료되지 않음) 이외의 옵션을 선택한 경우일 수 있습니다. 더 안전함 또는 가장 안전함 옵션을 사용하는 경우, 통합에 링크된 기술 계정의 암호가 만료될 수 있습니다.

이 문제를 해결하려면 통합을 새로 만들어야 합니다. 메타데이터가 connector-umapi.yml 파일에서도 갱신되었는지 확인합니다.

수정 사항이 배포되었지만 2018년 10월 이전에 만들어진 통합에 영향을 줄 수 있습니다.

 

 

새 연결을 설정하지 못했습니다 [Errno 10061]

샘플 오류 출력:

ConnectionError: HTTPSConnectionPool(host='usermanagement.adobe.io', port=443): 다음 URL에 대한 최대 재시도 횟수 초과: /v2/usermanagement/users/someUUID@AdobeOrg/0?directOnly=True (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000027B9630>: 새 연결을 설정하지 못했습니다: [Errno 10061] 대상 컴퓨터에서 연결을 거부하여 연결할 수 없습니다',))

:

UST에서 공용 API 끝점에 연결할 수 없는 것과 관련이 있습니다. 방화벽 규칙, 프록시 차단 트래픽, 인터넷 액세스를 위한 계정 설정 등의 로컬 설정으로 인해 액세스가 되지 않을 수 있습니다.

일부 상황에서는 https_proxy 환경 변수를 다음과 같은 값으로 추가하는 것이 도움이 될 수 있습니다:

http://<proxyAddress>:<port> 또는 https://<proxyAddress>:<port>

다른 경우, 이러한 끝점에 대한 액세스를 허용하면 도움이 될 수 있습니다.

ims-na1.adobelogin.com:443

usermanagement.adobe.io:443

실행 중인 계정에 대해 위의 끝점에 대한 액세스를 지워 로컬에서만 해결할 수 있습니다.

 

 

JWT에 포함된 메타스코프가 바인딩에 정의된 메타스코프의 부분집합이 아닙니다

샘플 로그 항목:

2017-07-07 09:01:37 4916 CRITICAL main - Connection to org [...] at endpoint https://usermanagement.adobe.io/v2/usermanagement failed: Unable to authorise against https://ims-na1.adobelogin.com/ims/exchange/jwt: Response Code: 400, Response Text: {&quot;error_description&quot;:&quot;The metascopes in the JWT are not a subset of the metascopes in the binding.&quot;,&quot;error&quot;:&quot;invalid_scope&quot;}

팁: https://developer.adobe.com/console/projects에서 만든 통합에 액세스하여 API가 나열된 왼쪽 메뉴를 확인합니다. [사용자 관리 API]가 서비스로 추가되었는지 확인합니다(목록에 나타남). 

 

No valid bindings were found for organization and technical account combination

샘플 로그 항목(디버그 모드):

2017-07-07 09:01:37 4916 CRITICAL main - UMAPI connection to org id 'someUUIDvalue@AdobeOrg' failed: Unable to authorize against https://ims-na1.adobelogin.com/ims/exchange/jwt:
Response Code: 400, Response Text: {&quot;error_description&quot;:&quot;No valid bindings were found for organization and technical account combination&quot;,&quot;error&quot;:&quot;invalid_token&quot;}

:

a) connector-umapi.yml 파일 내 tech_acct 값이 https://developer.adobe.com/console/projects의 통합에 있는 기술 계정 ID 값과 다른 값을 나타내는 경우 발생할 수 있습니다. 현재 통합에서 기술 계정 ID 값을 확인하고 이 파일로 복사합니다.

b) 통합에서 가져온 공개 인증서가 만료되어 발생할 수도 있습니다. 개인 및 공개 키를 갱신합니다. 그런 다음 공개 키를 업로드하고 이전 개인 키를 새 키로 바꿉니다. 적절한 파일을 가리키도록connector-umapi.yml 파일 내의 경로를 확인합니다.

c) 올바른 조직에 대한 통합이 이루어졌는지 확인합니다. https://developer.adobe.com/console/projects의 왼쪽 상단에 있는 드롭다운 목록에서 조직을 선택합니다. 그런 다음 다른 메타데이터(조직 ID, 암호 및 클라이언트 ID)와 함께 활성 통합에 대한 기술 계정 ID 값을 확인합니다.

 

 

SSL: CERTIFICATE_VERIFY_FAILED

샘플 로그 항목:

2017-07-07 09:01:37 4916 CRITICAL main - 조직 ID 'someUUIDvalue@AdobeOrg'에 대한 UMAPI 연결에 실패했습니다: [SSL: CERTIFICATE_VERIFY_FAILED] 인증서 검증 실패 (_ssl.c:661)

: 로컬 프록시 서버에서 SSL 검사가 활성화되어 있어 발생한 문제입니다

솔루션 1: 프록시의 CA 인증서를 PEM 형식으로 가져옵니다(해당 이름이 thecert.crt라고 가정). DER 형식을 사용하는 경우 openssl 명령을 사용하여 PEM으로 변환합니다.

openssl x509 -inform DER -in thecert.crt -out thecert.pem -outform PEM

참고: 인증서 내용을 확인하고
-----BEGIN CERTIFICATE----- 와 -----END CERTIFICATE----- 줄 사이에 base64로 인코딩된 문자열이 있다면 PEM 형식의 파일입니다.

그런 다음 REQUESTS_CA_ BUNDLE이라는 환경 변수를 만들고 이 값을 tecert.pem 파일의 경로로 설정합니다.

솔루션 2: Windows에서 도구를 OS와 Python이 설치된 드라이브가 아닌 다른 드라이브에서 실행할 경우 이 오류가 발생할 수 있습니다. OS가 있는 드라이브에 있는 전체 스크립트를 이동하는 것이 해결책이 될 수 있습니다. 이렇게 할 수 없는 경우, 신뢰할 수 있는 모든 루트 CA를 포함하는 cacert.pem 파일을 다른 드라이브로 복사하고 그 경로를 REQUESTS_CA_BUNDLE 환경 변수의 입력값으로 사용해야 합니다. 프록시에서 SSL 트래픽을 검사하는 경우, 루트 CA 인증서의 내용을 cacert.pem 파일 내에 복사해야 프록시 인증서를 신뢰할 수 있습니다.

참고: 기본 Python 설치 시 C:\Python36\Lib\site-packages\certifi\cacert.pem에 인증서 번들이 포함됩니다.

솔루션 3: API 끝점 ims-na1.adobelogin.com 및 usermanagement.adobe.io에 대한 프록시 측의 SSL 검사를 비활성화합니다.

 

 

그룹 찾을 수 없음 [...]

샘플 로그 항목:

2018-01-01 09:01:37 4916 WARNING ldap - 해당 그룹을 찾을 수 없음: Name_Of_The_Group

:

a) 이 그룹이 동일한 이름의 LDAP에 없습니다. 그룹의 올바른 LDAP 이름을 추가하여 수정합니다.

b) 선언된 base_dn에서 그룹을 검색할 수 없습니다(connector-ldap.yml 파일 참조). 언급된 그룹을 포함하려면 base_dn 값을 해당 그룹을 포함하도록 변경합니다(base_dn이 넓게 설정되지 않고 일부 OU를 가리키는 경우 주로 발생).

 

error.group.not_found

샘플 로그 항목:

2018-01-01 11:25:45 1 ERROR umapi.action - Error in requestID: action_1 (User: {'user': 'myuser@domain.com', 'useAdobeID': True, 'requestID': 'action_1'}, Command: {'add': {'product': ['group_name']}}): code: &quot;error.group.not_found&quot; message: &quot;그룹 my_group_name을 찾을 수 없습니다&quot;

: 위의 출력에 있는 user-group group_name은 Adobe 측에 없으므로 이 항목을 만듭니다. 사용자 그룹 대신 PLC의 이름을 설정하려는 경우에는 문서 페이지에서 자세한 설명을 참조하십시오.

 

이미지 찾을 수 없음

샘플 로그 항목:

2018-09-05 10:58:08 96329 CRITICAL main - Connection to org some_Org_UUID@AdobeOrg at endpoint https://usermanagement.adobe.io/v2/usermanagement failed: dlopen(/Users/user/.pex/install/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl.f77d5cc74b0deef9f1df7eacfe5f5ea57ed94a63/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl/cryptography/hazmat/bindings/_openssl.abi3.so, 2): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
 Referenced from: /Users/user/.pex/install/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl.f77d5cc74b0deef9f1df7eacfe5f5ea57ed94a63/cryptography-2.3-cp37-cp37m-macosx_10_12_x86_64.whl/cryptography/hazmat/bindings/_openssl.abi3.so
 Reason: image not found
2018-09-05 10:58:08 96329 INFO main - ========== End Run (User Sync version: 2.3) (Total time: 0:00:00) 

: 이 오류는 Python 3.7.0을 사용하는 UST v2.3 사용 시 macOS High Sierra에 기록됩니다. 터미널에서 brew install openssl을 실행하면 이 특정 시나리오에서 문제가 해결되었습니다.

 

 

type 2 또는 type 3에 해당하는 사용자를 생성할 수 없습니다 [...]

샘플 로그 항목:

2019-07-28 07:17:51 2220 ERROR umapi.action - Error in requestID: action_1 (User: {'user': 'user@claimed-domain.com', 'requestID': 'action_1'}, Command: {'createFederatedID': {'email': 'user@claimed-domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'First', 'lastname': 'Last', 'country': 'US'}}): code: &quot;error.internal.create_failed&quot; message: &quot;type 2 또는 type 3에 해당하는 사용자를 생성할 수 없습니다. Renga 결과가 NOT_ALLOWED입니다. 리소스가 외부에서 관리되고 있으며 토큰에 GROUP_SOURCE_UPDATE 목적이 누락되었습니다.&quot;

경우에 따라, @claimed-domain.com을 Azure 또는 Google 커넥터를 설정한 다른 조직이 소유하여 Admin Console에 대한 계정 동기화를 관리합니다. 이 동일한 도메인은 @claimed-domain.com 형식의 계정을 동기화하기 위해 [사용자 동기화 도구]를 사용하는 다른 조직에 위임됩니다.

원인: 로그된 메시지는 동기화 도구가 LDAP 서버에서
user@claimed-domain.com 계정을 추출할 때 보조 조직에 이를 생성하기 위해 표시됩니다. 하지만 계정이 아직 Azure 또는 Google 커넥터를 통해 주 조직에 생성/동기화되지 않습니다.

팁: Azure 또는 Google 커넥터를 사용하여 조직에서 user@claimed-domain.com 계정을 만든 후 트러스티 조직에서 UST와 다시 동기화하십시오.

 

 

LDAP에서 읽는 중 예기치 못한 오류가 발생했습니다 [...]

샘플 로그 항목:

2018-09-05 10:58:08 96329 6348 CRITICAL main - 그룹 정보를 읽는 중 예기치 못한 LDAP 오류가 발생했습니다: {'desc': 'Referral', 'info': 'Referral:\nldap://domain.local/DC=sub,DC=domain,DC=local'}

가능한 원인: 관심 그룹은 하위 도메인에 있지만 호스트 값이 루트 도메인 중 하나입니다.

: 호스트 값을 사용자 그룹을 찾을 수 있는 하위 도메인 중 하나로 변경합니다. 사용자 또는 관심 그룹이 루트 도메인과 하위 도메인 모두에 있는 경우 루트 도메인의 글로벌 카탈로그 포트를 사용합니다. 하위 도메인의 그룹을 전역이 아닌 범용으로 수정합니다. 글로벌 카탈로그를 사용하는 호스트 값의 예:  ldap://domain.local:3268 또는 ldaps://domain.local:3269

이 마지막 시나리오에서 글로벌 카탈로그 포트가 사용되는 경우 base_dn 값에 값을 사용하지 않는지 확인하십시오.

base_dn: ""

 

error.organization.invalid_id

샘플 로그 항목:

2020-08-20 12:00:00 1892 ERROR main - Unhandled exception
    raise RequestError(result)
umapi_client.error.RequestError: Request Error (401): {&quot;lastPage&quot;:false,&quot;result&quot;:&quot;error.organization.invalid_id&quot;,
&quot;message&quot;:&quot;UNAUTHORIZED&quot;}

이 오류는 오래된 통합에서 발생했습니다.

해결 방법: https://developer.adobe.com/console/projects에서 기존 통합 옆에 동일한 목적으로 사용할 새로운 통합(또는 프로젝트)을 생성하세요.새로운 통합은 새로운 자격 증명을 제공할 것이므로 connector-umapi.yml 파일에서 이를 업데이트해야 합니다.keypair(개인/공개 키)를 재발급해야 할 가능성이 높으므로 새로운 개인 키로 기존 키를 교체해야 합니다.

 

 

createFederatedID 유형의 사용자를 생성할 수 없습니다

샘플 로그 항목:

2021-01-01 18:00:00 14063 ERROR umapi.action - Error in requestID: action_19 (User: {'user': 'some_user', 'domain': some.domain', 'requestID': 'action_19'}, Command: {'createFederatedID': {'email': 'some_user@some.domain', 'option': 'ignoreIfAlreadyExists', 'firstname': 'FName', 'lastname': 'LName, 'country': 'GB'}}): code: &quot;error.internal.create_failed&quot; message: &quot;createFederatedID 유형의 사용자를 생성할 수 없습니다&quot;

이는 여러 가지 원인에 대한 일반적인 오류이지만, 주로 생성 작업에 사용된 도메인이 Azure 또는 Google 동기화 설정의 영향을 받고 있는 경우에 발생합니다.

확인 방법: 시스템 관리자 계정으로 admin console에 로그인한 후, [설정] 메뉴를 클릭하고, 해당 도메인이 포함된 디렉터리 내부를 클릭한 다음, [동기화] 메뉴 탭을 클릭합니다.

[동기화] 메뉴에 동기화 소스 카드가 있습니까?

인 경우, 동기화를 어떻게 계속할지에 따라 해결 방법이 달라집니다:

-> Azure 또는 Google 커넥터가 동기화를 수행해야 하는 경우, 동기화 소스 설정을 계속하고 UST를 완전히 제거하세요.

-> UST가 동기화를 수행해야 하는 경우, "설정으로 이동" 버튼을 클릭한 다음 페이지 하단의 "동기화 제거" 버튼을 클릭하세요. 이후 UST가 정상적으로 실행되기 시작할 것입니다.

아니요인 경우, 현재 UST가 해당 도메인이 다른 콘솔(소유 기업)에서 위임된 콘솔에서 실행되고 있을 수 있습니다. 이 다른 기업에서 Azure 또는 Google 동기화가 켜져 있어 현재 오류가 발생할 수 있습니다. 이 경우 해결 방법은 먼저 소유 기업/콘솔에서 계정을 동기화한 다음, UST를 사용하여 현재 콘솔에서 계정을 생성/추가하는 것입니다.

위의 상황 중 어느 것도 현재 시나리오에 맞지 않는다면, 기업 지원팀에 문의하는 것이 가장 좋습니다.

 

Adobe, Inc.

쉽고 빠르게 지원 받기

신규 사용자이신가요?