UST の実行時に発生する一般的なエラーとその解決のヒントについて説明します。
FileNotFoundError: [Errno 2]
FileNotFoundError: [Errno 2] 次のファイルまたはディレクトリが見つかりません: 'C:\\Users\\USER\\.pex\\install\\pycryptodome [...]'
Windows でファイルのパスが 256 文字を超えている場合に表示されます。
ヒント:PEX_ROOT という名前の環境変数を作成し、C:\pex という値を設定します(スクリプトを C: ドライブから実行している場合。他のドライブから実行している場合は、ドライブ文字を変更してください)。 変更を有効にするために、システムの再起動が必要になることがあります。
can't open file 'user-sync.pex': [Errno 2]
python: ファイル 'user-sync.pex' を開けません: [Errno 2] そのようなファイルまたはディレクトリはありません
ヒント:user-sync.pex のあるフォルダーから python コマンドラインを実行してください。
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 では、呼び出しの再試行に指数バックオフのアルゴリズムを使用しているため、再試行を繰り返すたびに、再試行の間隔が長くなります。 スクリプトは、3 回試行に失敗すると停止します。
ここでの推奨事項は、スクリプトを最後まで実行させることです。
タイムアウトが1000秒を超える場合、これは各User Sync Toolインスタンスの実行頻度に関連するスロットリングです。インスタンスがより頻繁に実行されていることが観察された場合、30分から75分の間でスロットリングされます。タイムアウトはUSTを一定期間保留するだけですが(重大な停止エラーではありません)、USTは回復して同期を直後に継続することができます。
スクリプトは2つのインスタンスが同時に起動されたことを認識するため、最初のインスタンスの実行が完了するまで新しいインスタンスをトリガーすることはできません。この場合、USTログに「プロセスがすでに進行中です」というエラーメッセージが表示される可能性があります。
実行頻度に関して、最高のパフォーマンスを得るためのいくつかの推奨事項を以下に示します:
- スケジュールされたタスクの頻度を見直し、少なくとも2時間間隔で繰り返すように設定されていることを確認します
- スケジュールされたタスクのトリガー時間を見直し、:00または:30の分マークで開始しないようにします(ピークトラフィックの活動を避けます)
- ツールをより頻繁に実行する必要がある場合は、フル同期の代わりにプッシュ戦略(変更のデルタ)を使用したUSTの可能性を検討します
- USTの実行時間スケジュールを、ユーザーがプロビジョニングを必要とする組織の勤務日に合わせます(例:組織が夜間にユーザープロビジョニングを変更する必要がない場合、この時間帯に同期ジョブを実行しないでください)
error.user.belongs_to_another_org
2018-01-01 11:49:42 28102 ERROR umapi.action - リクエストID: action_1 でエラーが発生しました(ユーザー: {'user': 'myuser@domain2.com', 'requestID':'action_1'}, コマンド: {'createFederatedID': {'email': 'myuser@domain2.com', 'country': 'US', 'option': 'ignoreIfAlreadyExists', 'firstname': 'fname', 'lastname': 'lname'}}): コード: "error.user.belongs_to_another_org" メッセージ: "別の組織が所有する認証ソースからユーザーを招待することは違法です"
ヒント:アカウントの作成に使用したドメインが組織内で要求または信頼されていない可能性があります。Admin Console の「設定」で、アクティブなドメインには緑色のフラグまたはドットが付いています。このフラグまたはドットが表示されていない場合は、要求プロセスを完了すると問題が解決します。
2018-01-01 12:34:23 13383 ERROR umapi.action - リクエストID: action_6 でエラーが発生しました(ユーザー: {'user': 'user@domain.com', 'requestID': 'action_6'}, コマンド: {'createEnterpriseID': {'email': 'user@domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'test', 'lastname': 'user', 'country': 'US'}}): コード: "error.user.type_mismatch" メッセージ: "招待に要求されたユーザータイプが、要求されたドメインタイプと一致しません"
ヒント:federatedID タイプのアカウントを作成しようとしていますが、Enterprise のディレクトリが作成されています(あるいは、その逆の場合)。user-sync-config.yml ファイルで user_identity_type 属性を検索します。 Admin Console に表示されているディレクトリの種類に従って値を変更します(設定/ID/ドメイン/ディレクトリの種類の順に移動して、ドメインの値を確認します)。
PEXファイルの実行に失敗しました。以下の互換性のある依存関係が見つかりません:
pyyaml
cryptography
cffi
umapi-client
pycryptodome
pyldap
psutil
user-sync
ヒント:
a) システムにインストールされている Python のバージョンが 32 ビット版かどうかを確認します。 32 ビット版がインストールされている場合は、それをアンインストールして 64 ビット版をインストールします。
b) GitHub からダウンロードした user-sync.pex のバージョンが、Python のバージョン、OS の種類と一致しているかどうか確認します。 例えば、Windows 64 ビットおよび Python 3 用には、user-sync-v2.3-win64-py365.zip をダウンロードします。
Python の最新バージョンが必ずしも最適だとは限りません。 まず、.pex がビルドされた Python のバージョンを試してください。 対応する Python のバージョンは、ダウンロードした .zip ファイルの接尾辞で確認できます。 上の例(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 が設定されている可能性があります。 設定されている場合は、これらの値と資格情報ストアのエントリが一致していることを確認してください(以下を参照)。
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: リクエストエラー(401):{"lastPage":false,"result":"error.internal.exceptionflys","message":"トークンの交換に失敗しました"}
または
"umapi_client.error.RequestError: リクエストエラー(401):{"lastPage":false,"result":"error.unauthorized","message":"提供されたトークンの認証に失敗しました"}"
ヒント: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 (原因:NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x00000000027B9630>: 新しい接続の確立に失敗しました:[Errno 10061] ターゲットマシンが接続を拒否したため、接続を確立できませんでした',))
ヒント:
この問題は UST がパブリック API エンドポイントに接続できないと発生します。 ファイアウォール ルール、プロキシによるトラフィックのブロック、インターネットアクセスのアカウント設定などにより、ローカル設定でアクセスできない場合があります。
状況によっては、https_proxy 環境変数に以下のような値を追加すると解決する場合があります:
http://<プロキシアドレス>:<ポート> または https://<プロキシアドレス>:<ポート>
また、次のエンドポイントへのアクセスを許可すると、問題が解決する場合があります。
ims-na1.adobelogin.com:443
usermanagement.adobe.io:443
ローカルで解決するには、実行中のアカウントで上記のエンドポイントへのアクセスをクリアする必要があります。
2017-07-07 09:01:37 4916 重大な main - エンドポイントhttps://usermanagement.adobe.io/v2/usermanagementでの組織 [...] への接続に失敗しました:https://ims-na1.adobelogin.com/ims/exchange/jwt:に対する認証ができません。応答コード:400、応答テキスト:{"error_description":"JWTのメタスコープがバインディングのメタスコープのサブセットではありません。","error":"invalid_scope"}
ヒント:https://developer.adobe.com/console/projects で作成した統合にアクセスして、API が表示されている左側のメニューを確認します。ユーザー管理 API がサービスとして追加されていること(リストに表示されていること)を確認します。
組織と技術アカウントの組み合わせに対して有効なバインディングが見つかりませんでした
2017-07-07 09:01:37 4916 重大な main - 組織ID 'someUUIDvalue@AdobeOrg' へのUMAPI接続に失敗しました:https://ims-na1.adobelogin.com/ims/exchange/jwt:に対する認証ができません。
応答コード:400、応答テキスト:{"error_description":"組織と技術アカウントの組み合わせに対して有効なバインディングが見つかりませんでした","error":"invalid_token"}
ヒント:
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 重大な 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 という名前の環境変数を作成し、thecert.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 警告 ldap - グループが見つかりません: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 エラー umapi.action - リクエストID: action_1 でエラーが発生しました(ユーザー:{'user': 'myuser@domain.com', 'useAdobeID': true, 'requestID': 'action_1'}、コマンド:{'add': {'product': ['group_name']}}):コード:"error.group.not_found" メッセージ:"グループ my_group_name が見つかりませんでした"
ヒント:上記の出力のユーザーグループ group_name が Adobe 側に存在しません。グループを作成してください。 ユーザーグループではなく PLC の名前を設定する場合は、このドキュメントページを参照して、より詳しい説明を参照してください。
2018-09-05 10:58:08 96329 重大な main - エンドポイントhttps://usermanagement.adobe.io/v2/usermanagementでの組織 some_Org_UUID@AdobeOrg への接続に失敗しました: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): ライブラリがロードされていません:/usr/local/opt/openssl/lib/libssl.1.0.0.dylib
参照元:/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
理由:イメージが見つかりません
2018-09-05 10:58:08 96329 情報 main - ========== 実行終了(User Sync バージョン:2.3)(合計時間:0:00:00)
ヒント:このエラーは、macOS High Sierra 上で UST v2.3 を使用し、Python 3.7.0 を利用した際に記録されました。ターミナルで brew install openssl を実行することで、この特定のシナリオが解決しました。
タイプ 2 または 3 のユーザーを作成できませんでした [...]
2019-07-28 07:17:51 2220 エラー umapi.action - リクエストID: action_1 でエラーが発生しました(ユーザー:{'user': 'user@claimed-domain.com', 'requestID': 'action_1'}、コマンド:{'createFederatedID': {'email': 'user@claimed-domain.com', 'option': 'updateIfAlreadyExists', 'firstname': 'First', 'lastname': 'Last', 'country': 'US'}}):コード:"error.internal.create_failed" メッセージ:"タイプ2または3のユーザーを作成できませんでした。Rengaの結果は NOT_ALLOWED です。リソースは外部で管理されており、トークンに GROUP_SOURCE_UPDATE の目的が欠けています。」
@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 を使用して受託者の組織との同期を再試行してください。
LDAP 読み取り時に予期しないエラーが発生しました [...]
2018-09-05 10:58:08 96329 6348 重大な main - グループ情報の読み取り中に予期せぬLDAP障害が発生しました:{'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: ""
error.organization.invalid_id
2020-08-20 12:00:00 1892 エラー main - 未処理の例外
raise RequestError(result)
umapi_client.error.RequestError: リクエストエラー(401):{"lastPage":false,"result":"error.organization.invalid_id",
"message":"UNAUTHORIZED"}
このエラーは古い統合で見られました。
解決策:既存の統合(またはプロジェクト)の隣に、同じ目的で使用する新しい統合(またはプロジェクト)を https://developer.adobe.com/console/projects で作成します。新しい統合は新しい認証情報を提供するので、connector-umapi.ymlファイルでそれらを更新してください。keypair(秘密鍵/公開鍵)を再発行する必要がある可能性が高いため、新しい秘密鍵で既存のものを置き換える必要があります。
createFederatedIDタイプのユーザーを作成できませんでした
2021-01-01 18:00:00 14063 ERROR umapi.action - リクエストID:action_19 でエラーが発生しました(ユーザー:{'user': 'some_user', 'domain': some.domain', 'requestID': 'action_19'}、コマンド:{'createFederatedID': {'email': 'some_user@some.domain', 'option': 'ignoreIfAlreadyExists', 'firstname': 'FName', 'lastname': 'LName, 'country': 'GB'}}):コード:"error.internal.create_failed" メッセージ:"createFederatedID タイプのユーザーを作成できませんでした"
これは複数の原因に対する一般的なエラーですが、通常の問題は、作成アクションで使用されたドメインが Azure または Google 同期設定の影響下にあることです。
確認方法:システム管理者アカウントで Admin Console にログインし、設定メニューをクリックし、ドメインを保持しているディレクトリ内をクリックし、同期メニュータブをクリックします。
同期メニューに同期ソースカードが表示されていますか?
はいの場合、修正方法は同期をどのように継続するかによって異なります:
-> Azure または Google コネクタが同期を行う場合は、同期ソースのセットアップを続行し、UST を完全に削除します
-> UST が同期を行う場合は、「設定に移動」ボタンをクリックし、ページの下部にある「同期の削除」ボタンをクリックします。その後、UST は通常通り実行されるはずです
いいえの場合、現在の UST が、問題のドメインが別のコンソール(所有組織)から委託されているコンソールに対して実行されている可能性があります。この別の組織で Azure または Google の同期が有効になっており、現在のエラーにつながる可能性があります。この場合の修正方法は、まず所有組織/コンソールでアカウントを同期し、その後 UST を使用して現在のコンソールでアカウントを作成/追加することです。
上記のいずれの状況も現在のシナリオに当てはまらない場合は、エンタープライズサポートに連絡するのが最善です。