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 コマンドラインを実行してください。
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 では、呼び出しの再試行に指数バックオフのアルゴリズムを使用しているため、再試行を繰り返すたびに、再試行の間隔が長くなります。スクリプトは、3 回再試行に失敗すると停止します。
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 の「設定」で、アクティブなドメインには緑色のフラグまたはドットが付いています。このフラグまたはドットが表示されていない場合は、要求プロセスを完了すると問題が解決します。
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"
ヒント:federatedID タイプのアカウントを作成しようとしていますが、Enterprise のディレクトリが作成されています(あるいは、その逆の場合)。user-sync-config.yml ファイルで user_identity_type 属性を検索します。Admin Console に表示されているディレクトリの種類に従って値を変更します(設定/ID/ドメイン/ディレクトリの種類の順に移動して、ドメインの値を確認します)。
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 のバージョン、OS の種類と一致しているかどうか確認します。例えば、user-sync-v2.3-win64-py365.zip は、Windows 64 ビット版、Python 3 を使用している環境用です。
Python の最新バージョンが必ずしも最適だとは限りません。まず、.pex がビルドされた Python のバージョンを試してください。対応する Python のバージョンは、ダウンロードした .zip ファイルの接尾辞で確認できます。上の例(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 が設定されている可能性があります。設定されている場合は、これらの値と資格情報ストアのエントリが一致していることを確認してください(以下を参照)。
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 エンドポイントに接続できないと発生します。ファイアウォール ルール、プロキシによるトラフィックのブロック、インターネットアクセスのアカウント設定などにより、ローカル設定でアクセスできない場合があります。
次の 2 つの環境変数を追加することで問題が解決する場合があります。
http_proxy。値の形式:http://<host proxy>:<port>
https_proxy。値の形式:https://<host proxy>:<port>
また、次のエンドポイントへのアクセスを許可すると、問題が解決する場合があります。
ims-na1.adobelogin.com:443
usermanagement.adobe.io:443
ローカルで解決するには、実行中のアカウントで上記のエンドポイントへのアクセスをクリアする必要があります。
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 が表示されている左側のメニューを確認します。ユーザー管理 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: {"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:ファイアウォールの CA 証明書を PEM 形式で取得します(名前は 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 で、OS と Python がインストールされているドライブとは異なるドライブからツールを実行している可能性があります。この場合、信頼されたルート CA 証明書のバンドルに到達できません。OS が存在するドライブにスクリプト全体を移動すると、問題が解決する場合があります。問題が解決しない場合は、信頼できるルート CA をすべて含む cacert ファイルを 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 - No group found for: Name_Of_The_Group
ヒント:
a) このグループと同じ名前のグループが LDAP に存在しません。グループの正しい LDAP 名を追加して問題を修正してください。
b) 宣言された base_dn でグループが見つかりません(connector-ldap.yml ファイルを参照)。前述のグループが含まれるように base_dn の値を変更します(この問題は主に base_dn が一部の OU を参照している場合に発生します)。
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"
ヒント:上記の出力のユーザーグループ 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)
ヒント:このエラーは、macOS High Sierraで UST v2.3 と Python 3.7.0 を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 ツールで @claimed-domain.com 形式のアカウントを同期します。
原因:User Sync ツールが 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'}
原因:目的のグループがサブドメインにあり、ホスト値がルートドメインの 1 つと一致しています。
ヒント:host の値をユーザーグループが存在するサブドメインの 1 つに変更します。目的のユーザーまたはグループがルートドメインとサブドメインの両方に存在する場合は、ルートドメインのグローバルカタログポートを使用します。サブドメインのグループを Global ではなく Universal に変更します。グローバルカタログを使用するホスト値の例:ldap://domain.local:3268 または ldaps://domain.local:3269
この最後のシナリオでグローバルカタログポートを使用する場合は、次のように base_dn 値に値がないことを確認します。
base_dn: ""