User Sync Tool - Häufige Fehler

Auflistung einiger häufiger Fehler bei der Ausführung des UST und Tipps zu deren Behebung

FileNotFoundError: [Errno 2]

Beispiel für eine Konsolenfehlerausgabe:

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

Kann unter Windows aufgrund von Pfaden mit >256 Zeichen erscheinen.

Tipp: Erstellen Sie eine Umgebungsvariable namens PEX_ROOT mit dem Wert C:\pex (wenn das Skript vom Laufwerk C: aus ausgeführt wird oder ändern Sie den Buchstaben entsprechend). Manchmal ist ein Neustart des Systems erforderlich, damit die Änderung wirksam wird.

 

Datei „user-sync.pex“ kann nicht geöffnet werden: [Errno 2]

Beispiel für eine Konsolenfehlerausgabe:

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

Tipp: Vergewissern Sie sich, dass Sie die python-Befehlszeile innerhalb des Ordners ausführen, in dem sich user-sync.pex befindet.

 

UMAPI Timeout

Beispiel für eine Konsolenfehlerausgabe:

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

Tipp: Diese Warnmeldungen sind normal. Wenn er ausgelastet ist, antwortet der Server mit 429 HTTP-Code, sodass ein erneuter Versuch das Problem beheben könnte. UST verfügt über einen exponentiellen Back-Off-Mechanismus, um den Aufruf zu wiederholen, wodurch sich die Zeit zwischen den Wiederholungsversuchen verlängert. Das Skript bricht nach drei fehlgeschlagenen Wiederholungsversuchen ab.

error.user.belongs_to_another_org

Beispielprotokolleintrag (Debug-Modus):

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"

Tipp: Die Domäne, die zur Erstellung des Kontos verwendet wird, ist möglicherweise keine beanspruchte/vertrauenswürdige Domäne innerhalb Ihrer Organisationen. Eine grüne Flagge oder ein grüner Punkt sollte für die aktiven Domänen in Admin Console -> Einstellungen angezeigt werden. Wenn dies nicht der Fall ist, kann der Abschluss des Domänenanforderungsvorgangs helfen.

error.user.type_mismatch

Beispielprotokolleintrag (Debug-Modus):

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"

Tipp: Es wird versucht, einen Federated ID-Konto-Typ zu erstellen, aber das Verzeichnis wird für Enterprise-Benutzer erstellt oder umgekehrt. Suchen Sie das Attribut user_identity_type in der Datei user-sync-config.yml. Ändern Sie den Wert entsprechend dem in der Admin Consoleonsole angezeigten Verzeichnistyp (Einstellungen > Identität > Domänen > Verzeichnistyp für die gegebene Domäne).

Beispielprotokolleintrag (Debug-Modus):

Fehlende Abhängigkeiten

Beispiel für eine Konsolenfehlerausgabe:

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

Tipps:

a) Überprüfen Sie, ob es sich bei der auf Ihrem System installierten Python-Version um die 32-Bit-Version handelt. Deinstallieren Sie die 32-Bit- und installieren Sie die 64-Bit-Version, um das Problem zu beheben.

b) Prüfen Sie, ob die Version user-sync.pex, die Sie von GitHub heruntergeladen haben, mit Ihrer Python-Version und Ihrem Betriebssystemtyp übereinstimmt. Zum Beispiel user-sync-v2.3-win64-py365.zip sollte für Windows 64 Bit und Python 3 heruntergeladen werden.

Die Verwendung der neuesten Version von Python empfiehlt sich nicht immer. Stattdessen sollte die Python-Version der der .pex-Datei entsprechen. Verwenden Sie das Suffix der heruntergeladenen .zip-Datei, um festzustellen, welche Python-Version funktionieren würde. Für das obige Beispiel (user-sync-v2.3-win64-py365.zip) ist dies Python 3.6.5.

Fehler beim Entschlüsseln des privaten Schlüssels

Beispielprotokolleintrag (Debug-Modus):

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

Tipps:

a) Manchmal kann der private Schlüssel ungestellte Zeichen oder versehentlich eingefügte leere Zeilen enthalten. Versuchen Sie, die leeren Zeilen zu entfernen oder das Paar privater und öffentlicher Schlüssel neu zu generieren.

b) Verwenden Sie das Attribut umapi_private_key_data nicht, wenn Sie das Skript unter Windows ausführen. Verschlüsseln Sie stattdessen den Schlüssel und speichern Sie das Kennwort im Credential Manager.

c) Nutzen Sie einen privaten Schlüssel der Länge RSA256 /2048bits, wenn Sie ein anderes Format verwenden.

d) Es ist möglich, dass Sie secure_priv_key_pass_key: umapi_private_key_passphrase innerhalb der Datei connector-umapi.yml eingerichtet haben. Stellen Sie in diesem Fall sicher, dass der Eintrag im Credential Store für diesen und die zugehörigen Werte übereinstimmen (siehe unten).

Windows Credential Manager

Kein Wert im sicheren Speicher für Benutzer...

Beispielprotokolleintrag (Debug-Modus):

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"

Tipps:

a) Der Eintrag „Credentials Store“ für umapi_api_key fehlt möglicherweise. Erstellen Sie den Eintrag im Credentials Store. Die Hilfedokumentation finden Sie hier.

b) Es kann sein, dass der Wert zum Credentials Store unter einem anderen Benutzerkonto hinzugefügt wurde. Für den aktuell verbundenen Benutzer fehlt dieser Eintrag jedoch. Fügen Sie ihn ggf. hinzu oder wechseln Sie die Benutzerkonten.

error.internal.exceptionflys / error.unauthorized


		
	





Beispiel für eine Konsolenfehlerausgabe:

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"}"

Tipp: Es kann sein, dass in Admin Console -> Einstellungen -> Authentifizierungseinstellungen eine andere Option als Am einfachsten für Benutzer gewählt wurde (Kennwort läuft nie ab). Wenn die Option Sicherer oder Am sichersten aktiviert ist, kann das Kennwort des technischen Kontos, das mit der Integration verknüpft ist, ablaufen.

Um das Problem zu beheben, sollte eine neue Integration geschaffen werden. Stellen Sie sicher, dass die Metadaten auch in der Datei connector-umapi.yml erneuert werden.

Es wurde eine Fehlerbehebung dafür angewendet, aber es kann Integrationen betreffen, die vor Oktober 2018 erstellt wurden.

Neue Verbindung konnte nicht hergestellt werden [Errno 10061]

Beispiel für eine Konsolenfehlerausgabe:

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',))

Tipp:

Es hängt damit zusammen, dass UST keine Verbindung zu den öffentlichen API-Endpunkten herstellen kann. Lokale Einstellungen können den Zugriff  aufgrund von Firewall-Regeln, Proxy-Blockierungsverkehr, Kontoeinstellungen für den Internetzugang und mehr verhindern.

In manchen Situationen kann es hilfreich sein, diese beiden Umgebungsvariablen hinzuzufügen:

http_proxy und verknüpfter Wert des Formats  http://<host proxy>:<port>

https_proxy und verknüpfter Wert des Formats https://<host proxy>:<port>

In anderen Fällen kann es helfen, den Zugang zu diesen Endpunkten zuzulassen:

ims-na1.adobelogin.com:443

usermanagement.adobe.io:443

Dies kann nur lokal behoben werden, indem der Zugang zu den oben genannten Endpunkten für das laufende Konto freigegeben wird.

Die Metaskope im JWT sind keine Teilmenge der Metaskope in der Bindung

Beispielprotokolleintrag (Debug-Modus):

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"}

Tipp: Greifen Sie auf die von Ihnen erstellte Integration unterhttps://console.adobe.io/projects zu und überprüfen Sie das linke Menü, in dem die APIs aufgeführt sind. Stellen Sie sicher, dass die Benutzerverwaltungs-API als Dienst hinzugefügt wird (erscheint in der Liste). 

Es wurden keine gültigen Bindungen für die Kombination von Organisation und technischem Konto gefunden

Beispielprotokolleintrag (Debug-Modus):

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"}

Tipps:

a) Dies kann dadurch verursacht werden, dass der Wert tech_acct in der Datei connector-umapi.yml einem anderen Wert als der technischen Konto-ID innerhalb der Integration unterhttps://console.adobe.io entspricht. Überprüfen Sie den technischen Konto-ID-Wert aus der aktuellen Integration und kopieren Sie ihn in diese Datei.

b) Die Ursache kann auch sein, dass das öffentliche Zertifikat aus der Integration abgelaufen ist. Erneuern Sie den privaten und öffentlichen Schlüssel. Laden Sie dann den öffentlichen Schlüssel hoch, und ersetzen Sie den alten privaten Schlüssel durch den neuen Schlüssel. Überprüfen Sie den Pfad innerhalb der Datei connector-umapi.yml, um auf die richtige Datei zu verweisen.

c) Prüfen Sie, ob die Integration für die richtige Organisation durchgeführt wird. Wählen Sie die Organisation in der Dropdown-Liste in der oberen linken Ecke unter https://console.adobe.io/integrations. Überprüfen Sie dann den technischen Konto-ID-Wert für die aktive Integration zusammen mit den anderen Metadaten (Org-ID, Geheimnis und Kunden-ID).

SSL: CERTIFICATE_VERIFY_FAILED

Beispielprotokolleintrag (Debug-Modus):

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)

Tipp: Das liegt daran, dass möglicherweise eine SSL-Prüfung auf dem Proxy-Server aktiviert ist (Einstellung der lokalen Umgebung)

Lösung 1: Rufen Sie das CA-Zertifikat der Firewall im PEM-Format ab (unter der Annahme, dass der Name thecert.crt lautet). Wenn das DER-Format verwendet wird, wandeln Sie es mit dem Befehl openssl in PEM um:

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

Hinweis: Wenn Sie nicht sicher sind, ob die .crt-Datei bereits im PEM-Format vorliegt oder nicht, führen Sie zuerst diese Befehlszeilen aus und prüfen Sie, welche davon fehlschlägt.

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

Falls DER fehlschlägt, haben Sie die Datei bereits im PEM-Format, also benennen Sie die Datei thecert.crt in thecert.pem um, andernfalls wandeln Sie sie mit der ersten openssl-Befehlszeile oben in PEM um.

Erstellen Sie als Nächstes eine Umgebungsvariable mit dem Namen REQUESTS_CA_BUNDLE und legen Sie ihren Wert als Pfad zur Datei thecert.pem fest.

Lösung 2: Unter Windows für Fälle, in denen das Werkzeug von einem anderen Treiber als dem, auf dem das Betriebssystem und Python installiert ist, ausgeführt wird. In diesem Fall kann es das Bündel der vertrauenswürdigen Root-CA-Zertifikate nicht erreichen. Das Verschieben des gesamten Skripts auf das Laufwerk, auf dem das Betriebssystem vorhanden ist, kann eine Lösung sein. Wenn dies keine Option ist, sollte die Cacert-Datei, die alle vertrauenswürdigen Root-CAs enthält, als Ziel für die env-Variable REQUESTS_CA_BUNDLE verwendet werden. Wenn ein Proxy den SSL-Verkehr inspiziert, muss der Inhalt des Root-CA-Zertifikats in die Datei cacert.pem kopiert werden, um die Zertifikate zu überprüfen.

Hinweis: Bei einer standardmäßigen Python-Installation befindet sich das Zertifikatsbündel unter C: \Python36\Lib\site-Pakete\certifi\cacert.pem.

Lösung 3: Deaktivieren Sie die SSL-Prüfung auf der Proxy-Seite für die API-Endpunkte ims-na1.adobelogin.com und usermanagement.adobe.io

Keine Gruppe gefunden [...]

Beispielprotokolleintrag (Debug-Modus):

2018-01-01 09:01:37 4916 WARNING ldap - No group found for: Name_Of_The_Group

Tipps:

a) Diese Gruppe existiert nicht in LDAP mit diesem genauen Namen. Korrigieren Sie es, indem Sie den korrekten LDAP-Namen der Gruppe hinzufügen

b) Die Gruppe ist unter der deklarierten base_dn nicht auffindbar (siehe Datei connector-ldap.yml). Ändern Sie den Wert base_dn so, dass er die erwähnte Gruppe enthält (dies geschieht hauptsächlich, wenn base_dn  auf eine bestimmte OU verweist).

error.group.not_found

Beispielprotokolleintrag (Debug-Modus):

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"

Tipp: Der Gruppenname der Benutzergruppe group_name in der obigen Ausgabe existiert auf der Adobe-Seite nicht, erstellen Sie ihn also ruhig. Wenn die Absicht war, den Namen einer SPS statt den einer Benutzergruppe festzulegen, dann finden Sie auf dieser Dokumentationsseite eine visuellere Beschreibung.

Bild nicht gefunden

Beispielprotokolleintrag (Debug-Modus):

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) 

Tipp: Dieser Fehler wurde auf einem MacOS High Sierra aufgezeichnet, wenn UST v2.3 mit  Python 3.7.0 verwendet wurde. Durch Ausführen von brew install openssl innerhalb des Terminals wurde dieser Fehler für dieses spezielle Szenario behoben.

Person für Typ 2 oder 3 konnte nicht erstellt werden [...]

Beispielprotokolleintrag (Debug-Modus):

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

Manchmal ist die Website @claimed-domain.com  Eigentum einer anderen Organisation, die einen Azure- oder Google Connector eingerichtet hat, um die Synchronisierung von Konten mit der Admin Console zu verwalten. Dieselbe Domäne wird dann einer anderen Organisation anvertraut, die mit dem User Sync Tool Konten des Formats @claimed-domain.com zu synchronisieren.

Ursache: Die protokollierte Meldung erscheint, wenn das Sync-Tool das Konto
 user@claimed-domain.com von einem LDAP-Server extrahiert, um es in der sekundären Organisation zu erstellen. Das Konto wurde jedoch noch nicht über Azure oder den Google-Konnektor in der Hauptorganisation erstellt/synchronisiert.

Tipp: Versuchen Sie, das Konto user@claimed-domain.com  in der Organisation mit deme Azure- oder Google-Konnektor zu erstellen/zu synchronisieren, und versuchen Sie dann erneut die Synchronisierung mit dem UST in der Trustee Org.

Unerwarteter LDAP-Fehler beim Lesen von [...]

Beispielprotokolleintrag (Debug-Modus):

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'}

Mögliche Ursache: Die relevante(n) Gruppe(n) befinden sich in einer Unterdomäne, aber der Host-Wert ist eine der Root-Domänen.

Tipp: Ändern Sie den Host-Wert auf eine der Unterdomänen, in denen Benutzergruppen gefunden werden können. Wenn sich Benutzer oder Interessengruppen sowohl in der Root-Domäne als auch in deren Unterdomäne(n) befinden, verwenden Sie den globalen Katalog-Port auf der Root-Domäne. Ändern Sie die Gruppen in der/den Unterdomäne(n) in Universal anstatt Global. Beispiel für einen Host-Wert mit globalem Katalog: ldap://domain.local:3268 oder ldaps://domain.local:3269

Wenn in diesem letzten Szenario der globale Katalogport verwendet wird, stellen Sie sicher, dass der Wert base_dn keinen Wert annimmt:

base_dn: ""

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?