Microsoft Entra Connect Sync: userCertificate 属性によって発生する LargeObject エラーの処理
Microsoft Entra ID では、userCertificate 属性に 15 証明書の値の上限が適用されます。 Microsoft Entra Connect が 15 を超える値を持つオブジェクトを Microsoft Entra ID にエクスポートした場合、Microsoft Entra ID は、LargeObject エラーと共にメッセージを返します。
"プロビジョニングされたオブジェクトが大きすぎます。 このオブジェクトの属性値の数をトリミングします。 この操作は、次の同期サイクルで再試行されます。..."
LargeObject エラーは、他の AD 属性によって発生する可能性があります。 原因が userCertificate 属性であることを確認するには、オンプレミス AD または Synchronization Service Manager メタバース検索でオブジェクトに対して検証します。
LargeObject エラーを含むテナント内のオブジェクトの一覧を取得するには、次のいずれかの方法を使用します。
テナントで Microsoft Entra Connect Health for sync が有効になっている場合は、同期エラー レポート を参照できます。
[Synchronization Service Manager 操作] タブ、最新の Microsoft Entra へのエクスポート操作を選択した場合に LargeObject エラーが発生したオブジェクトの一覧が表示されます。
軽減策のオプション
LargeObject エラーが解決されるまで、同じオブジェクトに対する他の属性の変更を Microsoft Entra ID にエクスポートすることはできません。 このエラーを解決するには、次のオプションを検討してください。
Microsoft Entra Connect をビルド 1.1.524.0 以降にアップグレードします。 Microsoft Entra Connect ビルド 1.1.524.0 では、属性に 15 を超える値がある場合、属性 userCertificate と userSMIMECertificate をエクスポートしないように、既定の同期規則が更新されました。 Microsoft Entra Connect をアップグレードする方法の詳細については、「Microsoft Entra Connect: 以前のバージョンから最新のにアップグレードする」
記事を参照してください。 Microsoft Entra Connect で 15 を超える証明書値を持つオブジェクトの実際の値ではなく、
null 値をエクスポートする を実装します。 このオプションは、15 を超える値を持つオブジェクトの証明書値を Microsoft Entra ID にエクスポートする必要がない場合に適しています。 この同期規則を実装する方法の詳細については、次のセクション userCertificate 属性のエクスポートを制限する同期規則の実装を参照してください。送信同期規則 組織で使用されなくなった値を削除して、オンプレミス AD オブジェクトの証明書の値の数を減らします (15 以下)。 これは、有効期限が切れている証明書または未使用の証明書が属性の肥大化の原因になっている場合に適しています。 Remove-ADSyncToolsExpiredCertificates
コマンドレットを使用すると、オンプレミス AD で期限切れの証明書を検索、バックアップ、削除できます。 証明書を削除する前に、組織内のパブリックKey-Infrastructure 管理者に確認することをお勧めします。 userCertificate 属性が Microsoft Entra ID にエクスポートされないように Microsoft Entra Connect を構成します。 一般に、この属性は特定のシナリオを有効にするために Microsoft Online Services によって使用される可能性があるため、このオプションはお勧めしません。 具体的には次のとおりです。
User オブジェクトの userCertificate 属性は、メッセージの署名と暗号化のために Exchange Online および Outlook クライアントによって使用されます。 この機能の詳細については、メッセージ署名と暗号化については、S/MIME
記事を参照してください。 Computer オブジェクトの userCertificate 属性は、Windows 10 のオンプレミス ドメイン参加済みデバイスが Microsoft Entra ID に接続できるようにするために、Microsoft Entra ID によって使用されます。 この機能の詳細については、「Windows 10 エクスペリエンス用にドメイン参加済みデバイスを Microsoft Entra ID に接続する」の記事を参照してください。
userCertificate 属性のエクスポートを制限する同期規則の実装
userCertificate 属性によって発生する LargeObject エラーを解決するには、15 を超える証明書値がオブジェクトの実際の値ではなく、
重要
null 値をエクスポートすると、以前に Microsoft Entra ID に正常にエクスポートされた証明書の値が削除されます。
手順は次のように要約できます。
- 同期スケジューラを無効にし、進行中の同期がないことを確認します。
- userCertificate 属性の既存の送信同期規則を見つけます。
- 必要な送信同期規則を作成します。
- LargeObject エラーが発生している既存のオブジェクトに対する新しい同期規則を確認します。
- LargeObject エラーが発生した残りのオブジェクトに新しい同期規則を適用します。
- Microsoft Entra ID へのエクスポートを待機している予期しない変更がないことを確認します。
- 変更を Microsoft Entra ID にエクスポートします。
- 同期スケジューラを再度有効にします。
手順 1: 同期スケジューラを無効にし、進行中の同期がないことを確認する
意図しない変更が Microsoft Entra ID にエクスポートされないように、新しい同期規則の実装中に同期が行われないようにします。 組み込みの同期スケジューラを無効にするには:
Microsoft Entra Connect サーバーで PowerShell セッションを開始します。
コマンドレットを実行してスケジュールされた同期を無効にする:
Set-ADSyncScheduler -SyncCycleEnabled $false
手記
上記の手順は、組み込みのスケジューラを使用する Microsoft Entra Connect の新しいバージョン (1.1.xxx.x) にのみ適用されます。 Windows タスク スケジューラを使用する古いバージョン (1.0.xxx.x) の Microsoft Entra Connect を使用している場合、または独自のカスタム スケジューラ (一般的ではない) を使用して定期的な同期をトリガーする場合は、それに応じて無効にする必要があります。
STARTメニューから同期サービスに移動して、Synchronization Service Manager を起動します。
[操作] タブに移動し、ステータスが 「進行中」 の操作がないことを確認します。
手順 2: userCertificate 属性の既存の送信同期規則を見つける
User オブジェクトの userCertificate 属性を Microsoft Entra ID にエクスポートするように有効にされ、構成されている既存の同期規則が存在する必要があります。 この同期規則を見つけて、その
「スタート」メニューから同期規則エディターを開き、「同期規則エディター」を起動します。
次の値を使用して検索フィルターを構成します。
属性 価値 方向 アウトバウンド MV オブジェクトの種類 Person コネクタ Microsoft Entra コネクタの名前 コネクタ オブジェクトの種類 user MV 属性 userCertificate Microsoft Entra コネクタで OOB (標準) の同期ルールを使用して、User オブジェクトの userCertificate 属性をエクスポートする場合は、「Out to Microsoft Entra ID – User ExchangeOnline」ルールに戻す必要があります。
この同期規則の 優先順位 値をメモしておきます。
同期規則を選択し、[
編集] を選択します。 [予約ルールの確認の編集] ポップアップ ダイアログ
で、[なし] 選択します。 (この同期規則に変更を加えるつもりはありません。 編集画面で、[スコープ フィルターの ] タブを選択します。
スコープ フィルターの構成をメモしておきます。 OOB 同期規則を使用している場合、2 つの句を含む 1 つのスコープ フィルター グループが存在する必要があります。これには、以下が含まれます。
属性 オペレーター 価値 ソースオブジェクトタイプ EQUAL 利用者 cloudMastered NOTEQUAL 正しい
手順 3: 必要な送信同期規則を作成する
新しい同期規則には、同じスコープ フィルターと、既存の同期規則よりも高い優先順位が設定されている必要があります。 これにより、新しい同期規則が既存の同期規則と同じオブジェクト セットに適用され、userCertificate 属性の既存の同期規則がオーバーライドされます。 同期規則を作成するには:
同期規則エディターで、[新しい規則 の追加] ボタン
選択します。 [説明] タブで、次の構成を指定します。
属性 価値 細部 名前 名前 を指定する 例: "Out to Microsoft Entra ID – Custom override for userCertificate" 説明 説明を入力 たとえば、「userCertificate 属性に 15 を超える値がある場合は、NULL をエクスポートします」と 接続システム 「Microsoft Entra Connector」を選択します 接続システム オブジェクトの種類 user メタバース オブジェクト型 person リンクの種類 Join 優先順位 1 から 99 までの数値を選択 選択した数は、既存の同期規則では使用しないでください。また、既存の同期規則よりも値が小さい (したがって、優先順位が高い) 必要があります。 スコープ フィルター タブに移動し、既存の同期規則で使用されているのと同じスコープ フィルターを実装します。
結合規則 タブをスキップします。
[変換] タブに移動し、次の構成を使用して新しい変換を追加します。
属性 価値 フローの種類 式 ターゲット属性 userCertificate ソース属性 次の式のを使用します: IIF(IsNullOrEmpty([userCertificate]), NULL, IIF((Count([userCertificate])> 15),AuthoritativeNull,[userCertificate]))
[ の追加] ボタンを選択して同期規則を作成します。
手順 4: LargeObject エラーが発生した既存のオブジェクトに対する新しい同期規則を確認する
これは、他のオブジェクトに適用する前に、LargeObject エラーが発生した既存の AD オブジェクトで作成された同期規則が正しく動作していることを確認するためです。
- Synchronization Service Manager の [操作] タブに移動します。
- 最新の Microsoft Entra へのエクスポート操作を選択し、LargeObject エラーのあるオブジェクトの 1 つを選択します。
- [コネクタ スペース オブジェクトのプロパティ] ポップアップ画面で、[プレビュー] ボタンを選択します。
- [プレビュー] ポップアップ画面で、[完全同期] を選択し、[コミット プレビュー] を選択します。
- [プレビュー] 画面と [コネクタ スペース オブジェクトのプロパティ] 画面を閉じます。
- Synchronization Service Manager の [コネクタ] タブに移動します。
- [Microsoft Entra ID] コネクタを右クリックし、[実行...]を選択します。
- [コネクタの実行] ポップアップで、[エクスポート ステップ] を選択し、[OK] を選択します。
- Microsoft Entra ID へのエクスポートが完了するのを待ち、この特定のオブジェクトに LargeObject エラーが発生していないことを確認します。
手順 5: LargeObject エラーが発生した残りのオブジェクトに新しい同期規則を適用する
同期規則が追加されたら、AD コネクタで完全同期手順を実行する必要があります。
- Synchronization Service Manager の [コネクタ] タブに移動します。
- AD コネクタを右クリックし、「実行...」を選択します。
- [コネクタの実行] ポップアップで、完全同期 ステップ を選択し、[OK] を選択します。
- 完全同期の手順が完了するまで待ちます。
- 複数の AD コネクタがある場合は、残りの AD コネクタに対して上記の手順を繰り返します。 通常、複数のオンプレミス ディレクトリがある場合は、複数のコネクタが必要です。
手順 6: Microsoft Entra ID へのエクスポートを待機している予期しない変更がないことを確認する
- Synchronization Service Manager の [コネクタ] タブに移動します。
- [Microsoft Entra ID] コネクタを右クリックし、[コネクタ スペースの検索] を選択します。
- コネクタスペース検索のポップアップで、次の手順を実行します。
- [スコープ] を [保留中のエクスポート] に設定します。
- 3 つのチェックボックスすべてをオンにしてください。の追加、の変更、の削除を含みます。
- [検索] ボタンを選択すると、変更が Microsoft Entra ID にエクスポートされるのを待っているすべてのオブジェクトが返されます。
- 予期しない変更がないことを確認します。 特定のオブジェクトの変更を調べるには、オブジェクトをダブルクリックします。
手順 7: 変更を Microsoft Entra ID にエクスポートする
変更を Microsoft Entra ID にエクスポートするには:
- Synchronization Service Manager の [コネクタ] タブに移動します。
- [Microsoft Entra ID] コネクタを右クリックし、[実行...]を選択します。
- [コネクタの実行] ポップアップで、[エクスポート] ステップを選択し、[OK]を選択します。
- Microsoft Entra ID へのエクスポートが完了するのを待ち、LargeObject エラーがそれ以上ないことを確認します。
手順 8: 同期スケジューラを再度有効にする
問題が解決したら、組み込みの同期スケジューラを再度有効にします。
- PowerShell セッションを開始します。
- コマンドレットを実行してスケジュールされた同期を再度有効にする:
Set-ADSyncScheduler -SyncCycleEnabled $true
手記
上記の手順は、組み込みのスケジューラを使用する Microsoft Entra Connect の新しいバージョン (1.1.xxx.x) にのみ適用されます。 Windows タスク スケジューラを使用する古いバージョン (1.0.xxx.x) の Microsoft Entra Connect を使用している場合、または独自のカスタム スケジューラ (一般的ではない) を使用して定期的な同期をトリガーする場合は、それに応じて無効にする必要があります。
次の手順
詳細について知る オンプレミスのIDをMicrosoft Entra IDと統合する方法。