User Sync Tool - 常見錯誤

列示執行 UST 時的部分常見錯誤和解決錯誤的相關提示

FileNotFoundError: [Errno 2]

主控台錯誤輸出範例:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\USER\\.pex\\install\\pycryptodome [...]'

可能會顯示在 Windows 上,因為路徑多於 256 個字元。

提示:建立名為 PEX_ROOT 的環境變數,且具備 C:\pex 值 (如果從 C: 磁碟機執行指令碼,或變更字母使其相符)。有時必須重新啟動系統才能使其生效。

 

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

主控台錯誤輸出範例:

python: can't open file 'user-sync.pex': [Errno 2] No such file or directory

提示:務必在 user-sync.pex 所在資料夾內執行 python 命令列。

 

UMAPI timeout

主控台錯誤輸出範例:

2018-01-01 11:49:42 28102 WARNING umapi - UMAPI timeout...service unavailable (code 429 on try 1)
2018-01-01 11:49:42 28102 WARNING umapi - Next retry in 42 seconds...

提示:顯示上述警告訊息很正常。伺服器忙碌時,會回覆 429 HTTP 代碼,此時重試可能就能解決此問題。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: "Illegal to invite user from another organization's owned auth src"

提示:建立帳戶所使用的網域可能不是您組織所宣告擁有/信任的網域。「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: "The user type requested for the invite does not match the claimed domain type"

提示:嘗試建立 Federated ID 類型帳戶,但針對企業用途建立目錄,或者相反。在 user-sync-config.yml 檔案中搜尋 user_identity_type 屬性。根據 Admin Console 中顯示的目錄類型 (「設定 > 身分 > 網域 > 該網域的『目錄類型』值」) 修改此值。

記錄項目範例 (偵錯模式):

Missing dependencies

主控台錯誤輸出範例:

Failed to execute PEX file, missing compatible dependencies for:
pyyaml
cryptography
cffi
umapi-client
pycryptodome
pyldap
psutil
user-sync

提示:

a) 確認系統上安裝的 Python 版本是否為 32 位元版本。解除安裝 32 位元版本並安裝 64 位元版本,以修正此問題。

b) 確認從 GitHub 下載的 user-sync.pex 版本是否符合您的 Python 版本和作業系統類型。例如,若是使用 Windows 64 位元和 Python 3,需下載 user-sync-v2.3-win64-py365.zip

使用最新 Python 版本不一定就是好辦法。不妨試著比對 Python 版本 (最初建立的 .pex)。依照所下載 .zip 檔案的尾碼,分辨適合的 Python 版本。舉上方範例為例 (user-sync-v2.3-win64-py365.zip),可知該範例適合使用 Python 3.6.5。

Error decrypting private key

記錄項目範例 (偵錯模式):

2018-01-01 09:52:23 7920 DEBUG umapi - umapi: reading private key data from file C:\path\to\private.key
2018-01-01 09:52:23 7920 CRITICAL main - umapi configuration.enterprise: Error decrypting private key, either the password is wrong or: RSA key format is not supported

提示:

a) 私人金鑰有時出現未標示日期的字元或意外插入的空行。嘗試移除空行或重新產生私人和公開金鑰。

b) 如果是在 Windows 中執行指令碼,請勿使用 umapi_private_key_data 屬性。請改為將金鑰加密,並儲存「認證管理員」內的密碼。

c) 如果是使用其他格式,請嘗試使用 RSA256 /2048 位元長的私人金鑰。

d) 您可能已在 connector-umapi.yml 檔案內設定 secure_priv_key_pass_key: umapi_private_key_passphrase。在此情況下,請確認此認證的「認證存放區」中的項目與相關值相符 (請參閱下方)。

Windows 認證管理員

No value in secure storage for user...

記錄項目範例 (偵錯模式):

2018-01-01 09:52:23 7920 CRITICAL main - umapi CRITICAL main - umapi configuration.enterprise: No value in secure storage for user "someUUIDvalue@AdobeOrg", key "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 月前建立的整合項目可能會受到影響。

Failed to establish a new connection [Errno 10061]

主控台錯誤輸出範例:

ConnectionError: HTTPSConnectionPool(host='usermanagement.adobe.io', port=443): Max retries exceeded with url: /v2/usermanagement/users/someUUID@AdobeOrg/0?directOnly=True (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000027B9630>: Failed to establish a new connection: [Errno 10061] No connection could be made because the target machine actively refused it',))

提示:

這與 UST 無法連結公用 API 端點有關。本機設定可能因防火牆規則、代理封鎖流量、帳戶的網際網路存取設定等情形而存取受限。

部分情況下,新增下列兩個環境變數或許會有幫助:

http_proxyhttp://<host proxy>:<port> 格式的相關值

https_proxyhttps://<host proxy>:<port> 格式的相關值

其他情況下,允許系統存取下列端點可能會有幫助:

ims-na1.adobelogin.com:443

usermanagement.adobe.io:443

唯有為使用中的帳戶清除上述端點的存取權,才能在本機上解決此問題。

The metascopes in the JWT are not a subset of the metascopes in the binding

記錄項目範例 (偵錯模式):

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: {"error_description":"The metascopes in the JWT are not a subset of the metascopes in the binding.","error":"invalid_scope"}

提示:存取您在 https://console.adobe.io/projects 建立的整合項目,並查看左側功能表所列示的 API。務必將 User Management API 新增為服務 (顯示在清單中)。

找不到組織和技術帳戶組合的有效繫結

記錄項目範例 (偵錯模式):

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: {"error_description":"No valid bindings were found for organization and technical account combination","error":"invalid_token"}

提示:

A) 這可能是因為 connector-umapi.yml 檔案中的 tech_acct 值並非對應至 https://console.adobe.io 整合項目的技術帳戶 ID 值。確認目前整合項目的技術帳戶 ID 值,並複製到此檔案。

b) 也可能是因為整合項目的公開憑證到期。請先更新私人和公開金鑰。接著,上傳公開金鑰,並以新的私人金鑰取代舊金鑰。確認 connector-umapi.yml 檔案內的路徑,以指向正確檔案。

c) 確認是否為正確組織完成整合。在 https://console.adobe.io/integrations 選取左上角下拉式清單中的「組織」。接著,確認該使用中整合項目的技術帳戶 ID 值,以及其他中繼資料 (組織 ID、密碼和用戶端 ID)。

SSL: CERTIFICATE_VERIFY_FAILED

記錄項目範例 (偵錯模式):

2017-07-07 09:01:37 4916 CRITICAL main - UMAPI connection to org id 'someUUIDvalue@AdobeOrg' failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)

提示:這是因為代理伺服器 (本機環境設定) 上可能啟用了 SSL 檢查機制

解決方法 1:取得防火牆 PEM 格式的 CA 憑證 (假設其名稱為 thecert.crt)。若是使用 DER 格式,請使用 openssl 命令將其轉換為 PEM:

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

附註:如果不確定 .crt 檔案是否已為 PEM 格式,請先執行下列命令列,確認何者執行失敗。

openssl x509 -text -inform DER -in thecert.crt
openssl x509 -text -inform PEM -in thecert.crt

如果 DER 無法執行,表示您已有 PEM 格式的檔案,此時請將 thecert.crt 重新命名為 thecert.pem,或者使用上方第一個 openssl 命令列,將其轉換為 PEM。

接著,建立名為 REQUESTS_CA_BUNDLE 的環境變數,並將其值設為 thecert.pem 檔案的路徑。

解決方法 2:在 Windows 上,確認執行工具的驅動程式,是否與安裝作業系統和 Python 的驅動程式不同。若兩者不同,系統會無法觸及信任的根 CA 憑證套件在有該作業系統的磁碟機上移動整段指令碼,不失為解決方法。如果無法使用此方法,應將內含所有受信任之根 CA 的 cacert 檔案,設為 REQUESTS_CA_BUNDLE 環境變數的目標。如果要以代理程式檢查 SSL 流量,必須在 cacert.pem 檔案內複製根 CA 憑證內容,以查驗憑證。

附註:若是以預設安裝 Python,憑證套件會存放於 C:\Python36\Lib\site-packages\certifi\cacert.pem

解決方法 3:針對 API 端點 ims-na1.adobelogin.com 和 usermanagement.adobe.io,在代理端停用 SSL 檢查

No group found [...]

記錄項目範例 (偵錯模式):

2018-01-01 09:01:37 4916 WARNING ldap - No group found for: 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: "error.group.not_found" message: "Group my_group_name was not found"

提示:Adobe 端沒有上方輸出內容中的使用者群組 group_name,因此請建立此群組。如果要設定 PLC 的名稱,而非使用者群組的名稱,請查看此文件頁面,取得更清楚的說明。

image not found

記錄項目範例 (偵錯模式):

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 可在此特定情況下修正此錯誤。

Could not create person for type 2 or 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: "error.internal.create_failed" message: "Could not create person for type 2 or 3. Renga result is NOT_ALLOWED, Resource is externally managed and token is missing the GROUP_SOURCE_UPDATE purpose."

有時 @claimed-domain.com 會由其他已設定 Azure 或 Google 連結器的組織持有,以管理將帳戶同步至 Admin Console 的作業。此網域會託管給其他使用 User Sync Tool 同步 @claimed-domain.com 格式帳戶的組織。

原因:User Sync Tool 向 LDAP 伺服器擷取
user@claimed-domain.com 帳戶,以在次要組織中建立帳戶時,記錄訊息就會顯示。然而,此帳戶尚未透過 Azure 或 Google 連結器建立/同步至主要組織。

提示:嘗試在使用 Azure 或 Google 連結器的組織中建立/同步 user@claimed-domain.com 帳戶,然後在受信任的組織中使用 UST 再次同步。

Unexpected LDAP failure reading [...]

記錄項目範例 (偵錯模式):

2018-09-05 10:58:08 96329 6348 CRITICAL main - Unexpected LDAP failure reading group info: {'desc': 'Referral', 'info': 'Referral:\nldap://domain.local/DC=sub,DC=domain,DC=local'}

可能原因:探討的群組位於子網域中,但 host 值為根網域之一。

提示:將 host 值變更為可找到使用者群組的任一子網域。如果探討的使用者或群組位於根網域和其子網域,請在根網域使用全域目錄連接埠。將子網域中的群組修改為「通用」而非「全域」。host 值使用全域目錄的範例:ldap://domain.local:3268 ldaps://domain.local:3269

在最後這種情況中,如果使用全域目錄連接埠,請確認 base_dn 值沒有值:

base_dn: ""

 Adobe

更快、更輕鬆地獲得協助

新的使用者?