User Sync Tool の一般的なエラーと解決方法を確認します。
このページでは、User Sync Tool の実行時に発生する可能性のある一般的なエラーと、それぞれの解決手順を説明します。ツールの概要とセットアップ、設定、コマンドリファレンスの場所については、User Sync Tool のセットアップを参照してください。
インストールと環境
これは、パスが 256 文字を超えた場合に Windows で表示されることがあります。PEX_ROOT という名前の環境変数を作成し、値を C:\pex に設定してください。C: 以外のドライブからスクリプトを実行する場合は、一致するようにドライブレターを変更してください。変更を有効にするためにシステムの再起動が必要な場合があります。
user-sync.pex が配置されているフォルダー内から python コマンドラインを実行してください。
- システムにインストールされている Python のバージョンが 32 ビットかどうかを確認してください。32 ビット版をアンインストールし、64 ビット版をインストールしてください。
- GitHub からダウンロードした user-sync.pex のバージョンが、Python のバージョンとオペレーティングシステムと一致するかどうかを確認してください。たとえば、Windows 64 ビットと Python 3 の場合は user-sync-v2.3-win64-py365.zip をダウンロードしてください。最新の Python を使用するのではなく、.pex がビルドされた Python バージョンに一致させてください。.zip のサフィックスはバージョンを識別します。user-sync-v2.3-win64-py365.zip の場合、それは Python 3.6.5 です。
このエラーは macOS High Sierra で User Sync Tool v2.3 と Python 3.7.0 を使用して記録されました。このシナリオでは、ターミナルで brew install openssl を実行することで解決されました。
接続、タイムアウト、スロットリング
タイムアウトが 30 分未満の場合、1 分間で許可されている API 呼び出しの割り当て量に達すると、これらの警告が表示されます。ツールは指数バックオフメカニズムを使用して再試行し、再試行間の時間を増加させ、3回の試行失敗後に停止します。スクリプトを最後まで実行してください。
タイムアウトが 1000 秒を超える場合、スロットリングは各 User Sync Tool インスタンスの実行頻度に関連しています。実行頻度が高すぎるインスタンスは、30 分から 75 分間スロットリングされます。タイムアウトはツールを一定期間一時停止するだけで、その後ツールは回復して同期を続行します。
ツールは 2 つのインスタンスが同時に開始されることを検出するため、最初のインスタンスが完了するまで新しいインスタンスは実行されません。この場合、ログにプロセスが既に進行中であることを示すメッセージが表示される可能性があります。
最適なパフォーマンスを得るには、以下の実行頻度の推奨事項に従ってください:
- スケジュールされたタスクを少なくとも 2 時間間隔で繰り返すように設定してください。
- ピークトラフィックを避けるため、:00 または :30 の分刻みで開始しないようにスケジュールされたタスクのトリガーを設定してください。
- ツールをより頻繁に実行する必要がある場合は、完全同期の代わりにプッシュ戦略(変更のデルタ)の使用を検討してください。
- ツールの実行スケジュールを組織の就業日に合わせてください。たとえば、組織がその時間にプロビジョニングを変更する必要がない場合は、夜間に同期ジョブを実行しないでください。
ツールがパブリック API エンドポイントに接続できません。ファイアウォールルール、トラフィックをブロックするプロキシ、またはアカウントのインターネットアクセス設定などのローカル設定によって、アクセスが妨げられる可能性があります。https_proxy 環境変数を http://<proxyAddress>:<port> または https://<proxyAddress>:<port> などの値で追加すると役立ちます。その他の場合は、これらのエンドポイントへのアクセスを許可してください:ims-na1.adobelogin.com:443 および usermanagement.adobe.io:443。これは、実行アカウントのこれらのエンドポイントへのアクセスをクリアすることによってのみローカルで解決できます。
ローカルプロキシサーバーでの SSL インスペクションが原因です。
解決策 1: PEM 形式でプロキシのルート CA 証明書を取得してください(例:thecert.crt)。DER 形式の場合は、次の openssl コマンドで PEM に変換してください:openssl x509 -inform DER -in thecert.crt -out thecert.pem -outform PEM。PEM ファイルは -----BEGIN CERTIFICATE----- と -----END CERTIFICATE----- の行の間に base64 エンコードされた文字列を表示します。REQUESTS_CA_BUNDLE という名前の環境変数を作成し、その値を thecert.pem のパスに設定してください。
解決策 2: Windows では、ツールがオペレーティングシステムと Python がインストールされているドライブとは異なるドライブから実行されている場合に、このエラーが発生する可能性があります。スクリプト全体をオペレーティングシステムがあるドライブに移動してください。それができない場合は、信頼できるルート 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 インスペクションを無効にします。
認証と資格情報
umapi_api_key の資格情報ストア エントリが見つからない可能性があります。資格情報ストアにエントリを作成します。OS レベル ストレージに資格情報を保存に関する User Sync Tool ドキュメントを参照してください。
値が別のユーザー アカウントの下で資格情報ストアに追加されている一方で、現在接続されているユーザーのエントリが見つからない可能性もあります。エントリを追加するか、ユーザー アカウントを切り替えてください。
- 問題を迅速に特定できない場合は、キー ペアを再発行してください。
- Windows でスクリプトを実行するときは、umapi_private_key_data 属性を使用しないでください。代わりに、キーを暗号化して、パスワードを Credential Manager に保存してください。
- キー ペアの発行に別の形式を使用した場合は、RSA 256、2048 ビット プライベート キーを試してください。
- connector-umapi.yml ファイルで secure_priv_key_pass_key: umapi_private_key_passphrase を設定している可能性があります。資格情報ストア内の対応するエントリとその関連値が一致していることを確認してください。
Adobe Admin Console で、設定 → 認証設定に移動します。「ユーザーにとって最も簡単(パスワードは期限切れになりません)」以外のオプションが選択されている可能性があります。「より安全」または「最も安全」オプションでは、統合にリンクされているテクニカル アカウントのパスワードが期限切れになることがあります。これを修正するには、新しい統合を作成し、connector-umapi.yml ファイル内のメタデータを更新してください。この問題の修正がデプロイされましたが、2018 年 10 月以前に作成された統合に影響する可能性があります。
- connector-umapi.yml ファイルの tech_acct 値が、Adobe Developer Console の統合内のテクニカル アカウント ID と異なる可能性があります。現在の統合で技術アカウント ID を確認し、ファイルにコピーします。
- 統合からの公開証明書が期限切れの可能性があります。秘密キーと公開キーを更新し、公開キーをアップロードして、古い秘密キーを新しいものに置き換えます。connector-umapi.yml ファイル内のパスが正しいファイルを指していることを確認します。
- 統合が正しい組織に対するものであることを確認します。Adobe Developer Console の左上隅のドロップダウンから組織を選択し、アクティブな統合の技術アカウント ID を他のメタデータ(組織 ID、シークレット、クライアント ID)と一緒に確認します。
このエラーは古い統合で表示されます。Adobe Developer Console で、同じ目的で使用されている既存のものと並行して新しい統合(またはプロジェクト)を作成します。新しい統合では新しい資格情報が提供されるため、connector-umapi.yml ファイルでそれらを更新します。キーペア(秘密キーと公開キー)が再発行される可能性が高いため、新しい秘密キーで既存のものを置き換える必要があります。
LDAP とグループ
- そのグループは LDAP にその正確な名前で存在しません。グループの正しい LDAP 名を追加します。
- グループが宣言された base_dn(connector-ldap.yml ファイルを参照)の下で検出できません。グループを含めるように base_dn 値を変更します。これは主に base_dn が可能な限り広範囲ではなく特定の OU を指している場合に発生します。
出力内のユーザーグループ group_name は Adobe 側に存在しません。作成してください。ユーザーグループではなく製品ライセンス構成(PLC)の名前を設定しようとした場合は、エンタープライズ版ディレクトリでの対応するグループの作成に関する User Sync Tool ドキュメントを参照してください。
対象のグループがサブドメインにある可能性がある一方で、host 値がルートドメインの 1 つになっています。host 値をユーザーグループが見つかるサブドメインに変更します。ユーザーまたはグループがルートドメインとそのサブドメインの両方にある場合は、ルートドメインでグローバルカタログポートを使用し、サブドメイングループを Global ではなく Universal に変更します。グローバルカタログを使用するホスト値の例:ldap://domain.local:3268 または ldaps://domain.local:3269。グローバル カタログ ポートを使用する場合は、base_dn を空の値に設定します:base_dn: ""。
ユーザーとアカウント作成
アカウントの作成に使用されたドメインが、組織内で要求または信頼されていない可能性があります。Adobe Admin Console の「設定」でプライマリ ドメインには緑色のフラグまたはドットが表示されます。表示されない場合は、ドメイン要求プロセスを完了することで解決できます。
Federated ID アカウントの作成が試行されましたが、ディレクトリは Enterprise ID 用に作成されているか、その逆です。user-sync-config.yml ファイル内の user_identity_type 属性を見つけてください。Adobe Admin Console に表示されるディレクトリ タイプと一致するように値を設定します(「設定」、「Identity」、「ドメイン」の順に選択し、ドメインの「Directory type」値を確認)。
時として @claimed-domain.com ドメインは、アカウントを Admin Console と同期するために Azure または Google コネクターを設定した別の組織によって所有されており、そのドメインは @claimed-domain.com 形式のアカウントを同期するために User Sync Tool を使用する別の組織に信頼されています。このメッセージは、ツールが LDAP サーバーから user@claimed-domain.com アカウントを抽出してセカンダリ組織で作成しようとしたときに表示されますが、Azure または Google コネクターを通じてメイン組織でアカウントがまだ作成または同期されていません。Azure または Google コネクターを使用する組織で user@claimed-domain.com アカウントを作成または同期してから、受託者組織で User Sync Tool を使用して同期を再試行してください。
この一般的なエラーには複数の原因がありますが、通常の問題は、作成アクションで使用されるドメインが Azure または Google 同期設定下にあることです。確認するには、システム管理者アカウントで Adobe Admin Console にログインし、「設定」に移動して、ドメインを保持するディレクトリを選択し、「同期」タブを選択します。Sync Sourceカードが存在する場合、修正方法は同期の継続方法によって異なります。
- Azure または Google コネクターが同期を行う場合は、Sync Source 設定を続行し、User Sync Tool を完全に削除します。
- User Sync Tool が同期を行う場合は、「設定に移動」を選択してから、ページの下部にある「同期を削除」を選択します。その後、ツールは通常どおり実行されます。
「Sync Source」カードが存在しない場合、現在のツールは、ドメインが別の Console(所有組織)から委託されている Console に対して実行されている可能性があります。その組織で Azure または Google 同期がオンになっている場合があり、これがこのエラーの原因となります。最初に所有 Console でアカウントを同期してから、ツールを使用して現在の Console でアカウントを作成してください。
これらのいずれも該当しない場合は、エンタープライズ版サポートにお問い合わせください。