次の方法で共有


HR ソースからカスタム セキュリティ属性をプロビジョニングする (プレビュー)

カスタム セキュリティ属性のプロビジョニングにより、お客様は Microsoft Entra 受信プロビジョニング機能を使用してカスタム セキュリティ属性を自動的に設定できます。 このパブリック プレビューでは、人事システムなどの権限のあるソースからカスタム セキュリティ属性の値をソースできます。 カスタム セキュリティ属性のプロビジョニングでは、Workday、SAP SuccessFactors、および API 駆動型プロビジョニングを使用するその他の統合 HR システムのソースがサポートされます。 プロビジョニング ターゲットは、Microsoft Entra ID テナントです。

カスタム セキュリティ属性アーキテクチャの図。

手記

プレビューに適用される条件に基づき、お客様がパブリック プレビューを利用できるようにします。 これらの用語は、オンライン サービスのに関する Microsoft 製品の用語全体で概説されています。 通常のサービス レベル アグリーメント (SLA) はパブリック プレビューには適用されず、限られたカスタマー サポートのみが利用できます。 さらに、このプレビューでは、エンタープライズ SaaS アプリまたはオンプレミスの Active Directory 機能へのカスタム セキュリティ属性のプロビジョニングはサポートされていません。

カスタム セキュリティ属性

Microsoft Entra ID のカスタム セキュリティ属性は、Microsoft Entra オブジェクトを定義して割り当てることができるビジネス固有の属性 (キーと値のペア) です。 これらの属性は、情報の格納、オブジェクトの分類、特定の Azure リソースに対する微調整されたアクセス制御の適用に使用できます。 カスタム セキュリティ属性の詳細については、「Microsoft Entra ID のカスタム セキュリティ属性とは」を参照してください。.

前提 条件

カスタム セキュリティ属性をプロビジョニングするには、次の前提条件を満たす必要があります。

既知の制限事項

  • プロビジョニング サービスでは、String型のカスタム セキュリティ属性の設定のみがサポートされます。
  • Integer および Boolean の種類のカスタム セキュリティ属性のプロビジョニングはサポートされていません。
  • 複数値のカスタム セキュリティ属性のプロビジョニングはサポートされていません。
  • 非アクティブ化されたカスタム セキュリティ属性のプロビジョニングはサポートされていません。
  • 属性ログ閲覧者 ロールでは、プロビジョニング ログのカスタム セキュリティ属性値を表示できません。

カスタム セキュリティ属性を使用したプロビジョニング アプリの構成

開始する前に、次の 手順 に従って、Microsoft Entra ID テナントにカスタム セキュリティ属性を追加し、インバウンド プロビジョニング アプリでカスタム セキュリティ属性をマップします。

Microsoft Entra ID テナントでカスタム セキュリティ属性を定義する

Microsoft Entra 管理センターので、Protection メニューからカスタム セキュリティ属性を追加するオプションにアクセスします。 このタスクを完了するには、少なくとも 属性定義管理者 ロールが必要です。

この例には、テナントに追加できるカスタム セキュリティ属性が含まれています。 HRConfidentialData 属性セットを使用し、次の属性を追加します。

  • EEOStatus
  • FLSAStatus
  • PayGrade
  • PayScaleType

カスタム セキュリティアクティブ属性のスクリーンショット。

受信プロビジョニング アプリでカスタム セキュリティ属性をマップする

  1. アプリケーション管理者属性プロビジョニング管理者 ロールのアクセス許可の両方を持つユーザーとして、Microsoft Entra 管理 センターにサインインします。

  2. エンタープライズ アプリケーションに移動し、受信プロビジョニング アプリを開きます。

  3. [プロビジョニング] 画面を開きます。

    プロビジョニングの概要画面のスクリーンショット。

    手記

    このガイダンスでは、Microsoft Entra ID への API 駆動型プロビジョニングの画面キャプチャを表示します。 Workday または SuccessFactors プロビジョニング アプリを使用している場合は、Workday と SuccessFactors に関連する属性と構成が表示されます。

  4. [プロビジョニングの編集] を選択します。

    プロビジョニングの編集画面のスクリーンショット。

  5. 属性マッピング を選択して、属性マッピング画面を開きます。

    属性マッピング画面のスクリーンショット。

  6. 機密性の高い HR データを格納するソース属性を定義し、[詳細オプションの表示] ボックスをオンにして属性一覧を開きます。

  7. API の [属性の編集] リスト 選択して、テストする属性を特定します。

    API の属性リストの編集画面のスクリーンショット。

    • SCIM スキーマ名前空間 (urn:ietf:params:scim:schemas:extension:microsoft:entra:csa) を定義して、Inbound Provisioning API を使用してカスタム セキュリティ属性のプロビジョニングをテストします。 次の属性を必ず含めます。

      • urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:EEOStatus
      • urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:FLSAStatus
      • urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayGrade
      • urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayScaleType

    SCIM スキーマ名前空間オプションのスクリーンショット。

    手記

    SCIM ペイロード内の機密 HR データを表すために、独自の SCIM スキーマ名前空間を定義できます。 urn:ietf:params:scim:schemas:extensionで始まるかどうかを確認します。

    • HR ソースとして Workday または SuccessFactors を使用している場合は、API 式を使用して属性リストを更新して、格納する HR データをカスタム セキュリティ属性リストに取得します。

    • SuccessFactors から同じ HR データのセットを取得する場合は、次の API 式を使用します。

      • $.employmentNav.results[0].jobInfoNav.results[0].eeoClass
      • $.employmentNav.results[0].jobInfoNav.results[0].flsaStatus
      • $.employmentNav.results[0].jobInfoNav.results[0].payGradeNav.name
      • $.employmentNav.results[0].jobInfoNav.results[0].payScaleType

    選択できる API 式のスクリーンショット。

  8. スキーマの変更を保存します。

  9. 属性マッピング 画面で、[新しいマッピングを追加] を選択します。

    [新しいマッピングの追加] オプションのスクリーンショット。

    • カスタム セキュリティ属性は、CustomSecurityAttributes.<AttributeSetName>_<AttributeName>形式で表示されます。
  10. 次のマッピングを追加し、変更を保存します。

    API ソース属性 Microsoft Entra ID ターゲット属性
    urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:EEOStatus CustomSecurityAttributes.HRConfidentialData_EEOStatus
    urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:FLSAStatus カスタムセキュリティ属性.HR(人事)機密データ_FLSAステータス
    urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayGrade カスタムセキュリティ属性.HR機密データ_給与等級
    urn:ietf:params:scim:schemas:extension:microsoft:entra:csa:PayScaleType CustomSecurityAttributes.HRConfidentialData_PayScaleType

カスタム セキュリティ属性のプロビジョニングをテストする

HR ソース属性をカスタム セキュリティ属性にマップしたら、次のメソッドを使用して、カスタム セキュリティ属性データのフローをテストします。 選択する方法は、プロビジョニング アプリの種類によって異なります。

  • ジョブで Workday または SuccessFactors をソースとして使用する場合は、オンデマンド プロビジョニング 機能を使用して、カスタム セキュリティ属性のデータ フローをテストします。
  • ジョブで API 駆動型プロビジョニングを使用する場合は、SCIM 一括ペイロードをジョブの bulkUpload API エンドポイントに送信します。

SuccessFactors プロビジョニング アプリを使用してテストする

この例では、次に示すように、SAP SuccessFactors 属性がカスタム セキュリティ属性にマップされます。

SAP 属性マッピング オプションのスクリーンショット。

  1. SuccessFactors プロビジョニング ジョブを開き、プロビジョン オンデマンドを選択します。

Microsoft Entra ID の概要とオンデマンドプロビジョニングの選択のスクリーンショット。

  1. [ユーザー の選択] ボックスに、テストするユーザーの personIdExternal 属性を入力します。

    プロビジョニング ログには、設定したカスタム セキュリティ属性が表示されます。

    [変更された属性] 画面のスクリーンショット。

    手記

    カスタム セキュリティ属性のソースとターゲットの値は、プロビジョニング ログで編集されます。

  2. ユーザーの Microsoft Entra ID プロファイル カスタム セキュリティ属性の画面で、そのユーザーに設定された実際の値を表示できます。 このデータを表示するには、少なくとも 属性割り当て管理者 または属性割り当て閲覧者 ロール 必要があります。

    カスタム セキュリティ属性画面の [割り当てられた値] 列のスクリーンショット。

API 駆動型プロビジョニング アプリを使用してテストする

  1. カスタム セキュリティ属性の値を含む SCIM 一括要求ペイロードを作成します。

    SCIM 一括要求ペイロード コードのスクリーンショット。

    • 完全な SCIM ペイロードにアクセスするには、SCIM ペイロードのサンプル参照してください。
  2. プロビジョニング ジョブの概要ページから、bulkUpload API URL をコピーします。

    ペイロードのプロビジョニング API エンドポイントのスクリーンショット。

  3. Graph エクスプローラー または cURLを使用し、SCIM ペイロードを bulkUpload API エンドポイントにポストします。

    ペイロードの API 要求と応答のスクリーンショット。

    • SCIM ペイロード形式でエラーがない場合は、承認済み 状態が表示されます。
    • 数分待ってから、API 駆動型プロビジョニング ジョブのプロビジョニング ログを確認します。
  4. カスタム セキュリティ属性は、次の例のように表示されます。

    カスタム セキュリティ属性エントリのスクリーンショット。

    手記

    カスタム セキュリティ属性のソースとターゲットの値は、プロビジョニング ログで編集されます。 ユーザーに設定された実際の値を表示するには、ユーザーの Microsoft Entra ID プロファイルに移動します。
    カスタム セキュリティ属性 画面でデータを表示します。 このデータを表示するには、少なくとも属性割り当て管理者ロールまたは属性割り当て閲覧者ロールが必要です。

    ユーザーの [カスタム セキュリティ属性] 画面のスクリーンショット。

カスタム セキュリティ属性を使用した SCIM ペイロードのサンプル

この SCIM 一括要求のサンプルには、カスタム セキュリティ属性にマップできる拡張 urn:ietf:params:scim:schemas:extension:microsoft:entra:csa の下にカスタム フィールドが含まれています。

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
    "Operations": [{
            "method": "POST",
            "bulkId": "897401c2-2de4-4b87-a97f-c02de3bcfc61",
            "path": "/Users",
            "data": {
                "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
                    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
                    "urn:ietf:params:scim:schemas:extension:microsoft:entra:csa"],
                "id": "2819c223-7f76-453a-919d-413861904646",
                "externalId": "701984",
                "userName": "bjensen@example.com",
                "name": {
                    "formatted": "Ms. Barbara J Jensen, III",
                    "familyName": "Jensen",
                    "givenName": "Barbara",
                    "middleName": "Jane",
                    "honorificPrefix": "Ms.",
                    "honorificSuffix": "III"
                },
                "displayName": "Babs Jensen",
                "nickName": "Babs",
                "emails": [{
                        "value": "bjensen@example.com",
                        "type": "work",
                        "primary": true
                    }
                ],
                "addresses": [{
                        "type": "work",
                        "streetAddress": "234300 Universal City Plaza",
                        "locality": "Hollywood",
                        "region": "CA",
                        "postalCode": "91608",
                        "country": "USA",
                        "formatted": "100 Universal City Plaza\nHollywood, CA 91608 USA",
                        "primary": true
                    }
                ],
                "phoneNumbers": [{
                        "value": "555-555-5555",
                        "type": "work"
                    }
                ],
                "userType": "Employee",
                "title": "Tour Guide",
                "preferredLanguage": "en-US",
                "locale": "en-US",
                "timezone": "America/Los_Angeles",
                "active": true,
                "password": "t1meMa$heen",
                "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                    "employeeNumber": "701984",
                    "costCenter": "4130",
                    "organization": "Universal Studios",
                    "division": "Theme Park",
                    "department": "Tour Operations",
                    "manager": {
                        "value": "89607",
                        "$ref": "../Users/26118915-6090-4610-87e4-49d8ca9f808d",
                        "displayName": "John Smith"
                    }
                },
                "urn:ietf:params:scim:schemas:extension:microsoft:entra:csa": {
                    "EEOStatus":"Semi-skilled",
                    "FLSAStatus":"Non-exempt",
                    "PayGrade":"IC-Level5",
                    "PayScaleType":"Revenue-based"
                }
            }
        }, {
            "method": "POST",
            "bulkId": "897401c2-2de4-4b87-a97f-c02de3bcfc61",
            "path": "/Users",
            "data": {
                "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User",
                    "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
                    "urn:ietf:params:scim:schemas:extension:microsoft:entra:csa" ],
                "id": "2819c223-7f76-453a-919d-413861904646",
                "externalId": "701985",
                "userName": "Kjensen@example.com",
                "name": {
                    "formatted": "Ms. Kathy J Jensen, III",
                    "familyName": "Jensen",
                    "givenName": "Kathy",
                    "middleName": "Jane",
                    "honorificPrefix": "Ms.",
                    "honorificSuffix": "III"
                },
                "displayName": "Kathy Jensen",
                "nickName": "Kathy",
                "emails": [{
                        "value": "kjensen@example.com",
                        "type": "work",
                        "primary": true
                    }
                ],
                "addresses": [{
                        "type": "work",
                        "streetAddress": "100 Oracle City Plaza",
                        "locality": "Hollywood",
                        "region": "CA",
                        "postalCode": "91618",
                        "country": "USA",
                        "formatted": "100 Oracle City Plaza\nHollywood, CA 91618 USA",
                        "primary": true
                    }
                ],
                "phoneNumbers": [{
                        "value": "555-555-5545",
                        "type": "work"
                    }
                ],
                "userType": "Employee",
                "title": "Tour Lead",
                "preferredLanguage": "en-US",
                "locale": "en-US",
                "timezone": "America/Los_Angeles",
                "active": true,
                "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": {
                    "employeeNumber": "701984",
                    "costCenter": "4130",
                    "organization": "Universal Studios",
                    "division": "Theme Park",
                    "department": "Tour Operations",
                    "manager": {
                        "value": "89607",
                        "$ref": "../Users/26118915-6090-4610-87e4-49d8ca9f808d",
                        "displayName": "John Smith"
                    }
                },
                "urn:ietf:params:scim:schemas:extension:microsoft:entra:csa": {
                    "EEOStatus":"Skilled",
                    "FLSAStatus":"Exempt",
                    "PayGrade":"Manager-Level2",
                    "PayScaleType":"Profit-based"
                }
                
            }
        }
    ],
    "failOnErrors": null
}

ハイブリッド ユーザーのカスタム セキュリティ属性をプロビジョニングする

ハイブリッド ユーザーは、最初にオンプレミスの Active Directory で人事システムからプロビジョニングされた後、Entra Connect Sync または Cloud Sync を使用して Microsoft Entra ID に同期されます。カスタム セキュリティ属性はハイブリッド ユーザーに割り当てることができます。これらの属性は、ハイブリッド ユーザーの Microsoft Entra ID プロファイルにのみ存在します。

このセクションでは、ハイブリッド ユーザーのカスタム セキュリティ属性を自動プロビジョニングするためのプロビジョニング トポロジについて説明します。 信頼できる HR ソースとして Workday が使用されます。 ただし、SuccessFactors と API 主導のプロビジョニングでも、同じトポロジを使用できます。

たとえば、あなたは、ID のレコードの人事システムとして Workday を使用するとします。 Workday から提供されるハイブリッド ユーザーにカスタム セキュリティ属性を設定するには、次の 2 つのプロビジョニング アプリを構成します。

  • Workday からオンプレミス Active Directory へのプロビジョニング: このプロビジョニング アプリは、オンプレミスの Active Directory でハイブリッド ユーザーを作成および更新します。 Workday からの通常の属性のみを処理します。
  • Workday から Microsoft Entra ID へのプロビジョニング: このプロビジョニング アプリを更新操作のみを処理し、カスタム セキュリティ属性のみをターゲット属性として含むように属性マッピングを制限するように構成します。

このトポロジでは、エンドツーエンドのフローのしくみを次に示します。

ハイブリッド ユーザーに対するカスタム セキュリティ属性マッピングのしくみのフロー図。

  1. Workday-to-AD プロビジョニング アプリは、Workday からコア ユーザー プロファイルをインポートします。
  2. アプリは、従業員 ID を一致する識別子として使用して、オンプレミスの Active Directory でユーザー アカウントを作成または更新します。
  3. Microsoft Entra Connect Sync/Cloud Sync は、ユーザー プロファイルを Microsoft Entra ID に同期します。
  4. Workday ライトバックを構成した場合、メールまたは電話番号の情報が Workday に書き戻されます。
  5. Workday から Microsoft Entra ID へのプロビジョニング アプリは、更新のみを処理し、機密属性をカスタム セキュリティ属性として設定するように構成されています。 [詳細オプションの表示] の下にあるスキーマ エディターを使用して、このシナリオに関係のない accountEnabledisSoftDeleted などの既定の属性マッピングを削除します。

ハイブリッド ユーザーの属性マッピングのスクリーンショット。

この構成では、オンプレミスの Active Directory から Microsoft Entra ID に同期されるハイブリッド ユーザーにカスタム セキュリティ属性が割り当てられます。

手記

上記の構成では、特定の順序で完了するために 3 つの異なる同期サイクルに依存しています。 ハイブリッド ユーザー プロファイルが Microsoft Entra ID で使用できない場合、Workday-to-Microsoft Entra ID プロビジョニング ジョブが実行されると、更新操作は失敗し、次の実行中に再試行されます。 API 駆動型プロビジョニングから Microsoft Entra ID アプリを使用している場合は、カスタム セキュリティ属性更新プログラムの実行タイミングをより適切に制御できます。

カスタム セキュリティ属性のプロビジョニングに対する API アクセス許可

このプレビュー機能では、次の新しい Graph API アクセス許可が導入されています。 この機能を使用すると、サインインしているユーザーに代わって、カスタム セキュリティ属性マッピングを含むプロビジョニング アプリ スキーマに直接アクセスして変更できます。

  1. CustomSecAttributeProvisioning.ReadWrite.All: このアクセス許可は、カスタム セキュリティ属性を含む属性マッピングを読み書きする機能を呼び出し元アプリに付与します。 カスタム セキュリティ属性マッピングを含むプロビジョニング アプリを編集するには、Application.ReadWrite.OwnedBySynchronization.ReadWrite.All、または Application.ReadWrite.All (最小から最高の特権) を持つこのアクセス許可が必要です。 このアクセス許可を使用すると、カスタム セキュリティ属性を含む完全なスキーマを取得し、カスタム セキュリティ属性を使用してスキーマを更新またはリセットできます。

  2. CustomSecAttributeProvisioning.Read.All: このアクセス許可は、呼び出し元アプリに属性マッピングとカスタム セキュリティ属性を含むプロビジョニング ログを読み取る機能を付与します。 保護されたリソースのカスタム セキュリティ属性の名前と値を表示するには、Synchronization.Read.All または Application.Read.All (最小から最高の特権) を持つこのアクセス許可が必要です。

アプリに CustomSecAttributeProvisioning.ReadWrite.All アクセス許可または CustomSecAttributeProvisioning.Read.All アクセス許可がない場合、カスタム セキュリティ属性を含むプロビジョニング アプリにアクセスまたは変更することはできません。 代わりに、エラー メッセージまたは編集されたデータが表示されます。

カスタム セキュリティ属性のプロビジョニングのトラブルシューティング

問題 トラブルシューティングの手順
カスタム セキュリティ属性が ターゲット属性のマッピング ドロップダウン リスト に表示されません。 - カスタム セキュリティ属性をサポートするプロビジョニング アプリにカスタム セキュリティ属性を追加していることを確認します。
- ログインしているユーザーに、属性プロビジョニング管理者 (編集アクセス用) または属性プロビジョニング閲覧者 (ビュー アクセス用) ロールが割り当てられていることを確認します。
プロビジョニング アプリ スキーマをリセットまたは更新すると、エラーが返されます。 HTTP 403 Forbidden - InsufficientAccountPermission Provisioning schema has custom security attributes. The account does not have sufficient permissions to perform this operation. ログインしているユーザーに、属性プロビジョニング管理者ロールが割り当てられていることを確認します。
属性マッピングに存在するカスタム セキュリティ属性を削除できません。 ログインしているユーザーに、属性プロビジョニング管理者ロールが割り当てられていることを確認します。
属性マッピング テーブルには、ソース属性とターゲット属性の下に文字列 redacted が表示される行があります。 この動作は、ログインしているユーザーが 属性プロビジョニング管理者 または 属性プロビジョニング閲覧者 のロールを持っていない場合、設計どおりのものです。 これらのロールのいずれかを割り当てると、カスタム セキュリティ属性マッピングが表示されます。
エラー The provisioning service does not support setting custom security attributes of type boolean and integer. Unable to set CSA attribute返されました。 プロビジョニング アプリ属性マッピングから整数/ブール型のカスタム セキュリティ属性を削除します。
エラー The provisioning service does not support setting custom security attributes that are deactivated. Unable to set CSA attribute <attribute name>返されました。 非アクティブ化されたカスタム セキュリティ属性を更新しようとしました。 プロビジョニング アプリ属性マッピングから非アクティブ化されたカスタム セキュリティ属性を削除します。

次の手順

属性マッピングのカスタマイズ