Microsoft Entraプロビジョニングでは、対応するソース属性が null または空の場合に、既存のターゲット属性値をクリアできます。 "null 値のプロビジョニング" とも呼ばれるこの機能は、レコードのシステムから値が削除され、対応する値もターゲット システムから削除する必要がある場合に便利です。
Note
属性値のクリアは現在プレビュー段階です。 プレビューに適用される条件に基づき、お客様がプレビューを利用できるようにします。 これらの用語は、 オンライン サービスに関する Microsoft 製品の用語全体で概説されています。
属性値をクリアするための構成は、サポートされているプロビジョニング統合全体で一貫しています。 ただし、ソース スキーマ エディターとソース システムが null 値を表す方法は、統合によって異なる場合があります。
プレビューのスコープと制限事項
- 属性値のクリアは、次の API 駆動型の受信プロビジョニング向けにプレビューとして利用できます。
- Microsoft Entra ID。
- オンプレミスの Active Directory。
- 属性値のクリアは、単一値属性でのみサポートされます。
- この機能は、 カスタム セキュリティ属性のプロビジョニングに対して有効にすることができます。
- 現在、属性値のクリアはサポートされていません。
- アプリケーションの外部向けプロビジョニング シナリオ。
- Workday または SAP SuccessFactors からの受信プロビジョニング。
- 複数値属性のクリアはサポートされていません。
属性値のクリア方法
属性値のクリアは既定で無効になっており、オプトイン機能です。 属性値をクリアするには、2 ゲートセーフガード メカニズムを使用して、偶発的なデータ損失を防ぎます。 ソース属性とそれに対応するターゲット マッピングの両方に対して、 オプション Flow null 値 を有効にする必要があります。
| ソース値 | クリアが有効な場合の結果 |
|---|---|
| 属性には空でない値があります。 | プロビジョニング サービスは、構成された属性マッピングを使用して値を評価します。 |
| 属性に null または空の値があります。 | 更新中、プロビジョニング サービスは、マップされたターゲット属性から既存の値をクリアします。 |
| API 駆動型のプロビジョニングでは、null フローが有効になっている属性を省略するとします。 | 更新中、プロビジョニング サービスは属性を空として扱い、マップされた既存のターゲット値をクリアします。 |
ユーザーの作成時に、null、空、または省略されたソース値は、 null の場合に既定値を構成しない限り、ターゲット属性を設定しません。 既定値は作成時にのみ適用されます。 更新中、プロビジョニング サービスは、作成時の既定値を適用するのではなく、ターゲット値をクリアします。
Note
空または null のソース値が既存のターゲット値を削除する必要がある属性に対してのみ、属性値のクリアを構成します。 ユーザーの照合または作成に必要な属性に対しては有効にしないでください。
前提条件
開始する前に次の点を確認します。
- 少なくとも アプリケーション管理者 ロールがあります。
- プロビジョニング アプリケーションとその属性マッピングを構成しました。
- ソース属性はプロビジョニング アプリケーション スキーマに存在し、ターゲット属性マッピングがあります。 詳細については、「Microsoft Entra属性マッピングのカスタマイズ」を参照してください。
オンプレミスの Active Directory への API 駆動型インバウンド プロビジョニングでは、追加のロールとサーバーの前提条件を確認してから、プロビジョニング エージェントと Active Directory 接続を構成します。
ソース属性の null 値フローを有効にする
まず、null 値をフローするようにソース スキーマ属性を構成します。 ソース スキーマ エディターの名前は、プロビジョニング統合によって異なります。
- 少なくともアプリケーション管理者としてMicrosoft Entra 管理センターにサインインします。
- Entra ID>エンタープライズアプリケーションに移動します。
- プロビジョニング アプリケーションを検索して選択します。
- プロビジョニング>属性マッピング を選択します。
- 構成するオブジェクトの属性マッピングを開きます。
- [ 詳細オプション] を展開し、ソース属性リストを編集するオプションを選択します。 オプション名は、ソース システムまたはコネクタを識別します。
- [フローの null 値] 列で、マッピングされたターゲット属性をクリアできる各ソースの属性のチェック ボックスをオンにします。
- 保存を選びます。
ターゲット マッピングで null 値フローを有効にする
次に、対応する各ターゲット属性マッピングに対して null 値フローを有効にします。
- [属性マッピング] ページに戻ります。
- クリアするターゲット属性のマッピングを選択します。
- フローの null 値 を選択します。
- [ OK] を 選択してマッピング エディターを閉じます。
- [ 保存] を 選択して属性マッピングを保存します。
- null 値を受け入れる必要があるすべてのターゲット属性に対して、これらの手順を繰り返します。
両方の設定が必要です。 ソース スキーマ属性またはターゲット マッピングに対して Flow の null 値 が選択されていない場合、プロビジョニング サービスはターゲット属性をクリアするために null または空のソース値を使用しません。
API 駆動型のプロビジョニングの例
次の例では、API ドリブンの受信プロビジョニングを構成して属性値をクリアし、 /bulkUpload 要求で null または空の値を送信する方法を示します。
ソース スキーマで null 値フローを有効にする
API ドリブン プロビジョニングの場合は、[ 詳細オプション] を展開し、[ API ユーザー属性の編集] を選択します。
[フローの null 値] 列を見つけて、null または空の値を送信できるソース属性を選択します。 次の例では、SCIM 拡張属性のdivisionとdepartmentに対して Flow null 値が有効になっています。 この設定は、これらの属性の null 値または空の値を処理し、null フローのターゲット属性マッピングを評価するようにプロビジョニング サービスに指示します。
Note
ソース属性でのみオプションを有効にしても、ターゲット値はクリアされません。次のセクションで説明するように、ターゲット マッピングでは null 値フローも許可する必要があります。
ターゲット マッピングで null 値フローを有効にする
対応する各ターゲット属性マッピングを開き、[ フローの null 値] を選択します。 次の例では、ソース SCIM 拡張属性departmentをActive Directory属性departmentにマップし、フローの null 値を有効にして、ソース SCIM 属性が null または空の場合、department属性値がActive Directoryでクリアされるようにします。
null または空の値を送信する
/bulkUpload要求に属性を含め、その値を JSON nullまたは空の文字列に設定します。
Important
API 駆動型プロビジョニングの場合、 Flow null 値 を有効にすると、部分ペイロードの処理方法が変わります。 たとえば、null フローが有効になっているソース属性を省略すると、プロビジョニング サービスはマップされたターゲット値をクリアします。 したがって、不完全または部分的なソース ペイロードは、既存の属性値を意図せずにクリアする可能性があります。 ベスト プラクティスとして、完全同期と差分同期の両方について、すべての一括要求に完全なソース ユーザー レコードを含め、明示的な JSON null または空の文字列を使用して確定的なクリアを要求します。
次の抜粋は、一致したユーザーの既存の department と division 値をクリアします。
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:BulkRequest"
],
"Operations": [
{
"method": "POST",
"bulkId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"path": "/Users",
"data": {
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:User",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
],
"externalId": "701984",
"userName": "bjensen@example.com",
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
"department": null,
"division": ""
}
}
}
],
"failOnErrors": null
}
プロビジョニング アプリ スキーマのソース属性名を使用します。
externalIdなど、構成に必要な一致する属性が要求に含まれていることを確認します。
要求を送信する手順については、「Graph Explorer を使用した API 主導の受信プロビジョニングのクイック スタート 」または cURL を使用した API 駆動型受信プロビジョニングのクイック スタートを参照してください。
属性がクリアされたことを確認する
プロビジョニング サービスが要求を処理したら、プロビジョニング ログとターゲット ディレクトリの結果を確認します。
プロビジョニング アプリで、[ プロビジョニング ログ] を選択します。
ユーザーのプロビジョニング イベントを開きます。
[ 変更されたプロパティ ] タブを選択します。
ターゲット属性に空の新しい値が表示されていることを確認します。
属性がターゲット システムのオブジェクトに値を持たなくなったことを確認します。
このオンプレミスの Active Directory例では、API ソース属性divisionターゲット属性companyにマップされます。
オンプレミスの Active Directoryの場合、プロビジョニング サービスは空の文字列を書き込む代わりに属性値を削除します。
属性値のクリアに関するトラブルシューティング
ターゲット属性がクリアされない場合は、次のガイダンスを使用します。
| Issue | Resolution |
|---|---|
| null または空の値は無視されます。 | ソース スキーマ属性とターゲット マッピングの両方に対して Flow の null 値 が選択されていることを確認します。 |
| 間違ったターゲット属性がクリアされます。 | 属性マッピングを確認し、ソース属性が予想されるターゲット属性にマップされていることを確認します。 |
| ソースでは、null の代わりにプレースホルダー値が使用されます。 | プレースホルダーではなく null または空の値を返すようにソース統合を構成するか、プロビジョニングする前にプレースホルダーを変換します。 |
| API 駆動型のプロビジョニング要求では、属性はクリアされません。 | 明示的な JSON null または空の文字列値を使用します。 子属性の省略に依存する場合は、含まれている複雑なオブジェクトまたはコレクション要素がペイロードに残っていることを確認します。 また、ペイロード一致属性によって既存のターゲット ユーザーが識別されることを確認します。 |
| API 駆動型のプロビジョニング要求によって、属性が予期せずクリアされます。 | 属性がペイロードから省略されていないことを確認します。 既存のターゲット値を保持したい場合は、その現在の空でない値を含めてください。 |