既定では、API 駆動型プロビジョニング アプリは、標準の SCIM Core ユーザー スキーマと Enterprise ユーザー スキーマの一部である属性の処理をサポートします。 レコードのシステムには、API 駆動型プロビジョニングの一部として含めたいカスタム属性が含まれている場合があります。 この高度なチュートリアルでは、API 駆動型プロビジョニング アプリを拡張して、追加のカスタム属性を処理する方法について説明します。
注
この高度なシナリオを試す前に、すぐに使用できるプロビジョニング アプリの構成が期待どおりに動作することを、Graph エクスプローラー、cURL のいずれかの API クライアントを使用して確認することをお勧めします。
サンプル シナリオ
API 駆動型プロビジョニング アプリの構成が完了しました。 構成したプロビジョニング アプリでは、標準の SCIM Core ユーザー スキーマと Enterprise ユーザー スキーマの一部である属性が正常に使われており、また、Microsoft Entra ID ではユーザーが正常にプロビジョニングされています。 そこで、2 つのカスタム属性 HireDate
と JobCode
を HR システムからインバウンド プロビジョニング API エンドポイントに送信したいとします。 これら 2 つのカスタム属性を、Microsoft Entra 属性 employeeHireDate
と jobTitle
にマップする必要があります。
手順 1 - プロビジョニング アプリ スキーマを拡張する
この手順では、標準の SCIM スキーマに含まれていない 2 つの属性 "HireDate" と "JobCode" をプロビジョニング アプリに追加し、それらをプロビジョニング データ フローで使用します。
- アプリケーション管理者以上の権限で Microsoft Entra 管理センターにサインインします。
- Entra ID>エンタープライズアプリケーションに移動します。
- API 駆動型プロビジョニング アプリを開きます。
- [プロビジョニング] ブレードを開きます。
- [プロビジョニングの編集] ボタンをクリックします。
-
[マッピング] セクション を展開し、属性マッピングのリンクをクリックします。
-
[属性マッピング] ページを下へスクロールします。
[詳細オプションの表示] を選択し、[API 属性リストの編集] リンクを クリックします。
- [属性リストの編集] ページの一番下までスクロールします。
- 次の 2 つの属性を SCIM スキーマ拡張機能としてリストに追加します。 独自の SCIM スキーマ名前空間を使用できます。
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
- 変更を保存します
注
プロビジョニング アプリにいくつかの属性のみを追加する場合は、Microsoft Entra 管理センターを使用してスキーマを拡張します。 より多くのカスタム属性 (たとえば 20 以上の属性など) を追加する場合は、上記の手動プロセスを自動化する CSV2SCIM PowerShell スクリプトの UpdateSchema
モードを使用することをお勧めします。
手順 2 - カスタム属性をマップする
次に、これらの拡張をプロビジョニング アプリ属性マッピングに追加しましょう。
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:HireDate
属性をemployeeHireDate
にマップします。 OK をクリックします。
次に、
title
の既存のマッピングを選択し、それをクリックしてマッピングを編集します。属性マッピングを編集して、
urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode
Microsoft Entra 属性の一部としてjobTitle
を含む式にします。Join("", [title], "(", [urn:ietf:params:scim:schemas:extension:contoso:1.0:User:JobCode], ")")
この式マッピングでは、
title
が "Tour Lead" でJobCode
が "TL-1001" の場合、Microsoft Entra 属性jobTitle
は "Tour Lead (TL-1001)" に設定されます。属性マッピングを保存します。
手順 3 - カスタム属性を含む一括要求をアップロードする
- API クライアント (Graph エクスプローラー/cURL) を開きます。
- カスタム属性を含む一括要求をコピーして貼り付けます。
- プロビジョニング API エンドポイント URL にこの一括要求を送信します。
- しばらくすると、プロビジョニング ログをチェックして、属性の変更を確認できます。
- Microsoft Entra ユーザー プロファイルの変更も確認できます。
Employee hire date
の値は、テナントのタイム ゾーンを反映します。
付録
カスタム属性を含む一括要求
この一括要求には、上記の手順で構成されたカスタム属性が含まれます。
要求本文
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"],
"Operations": [
{
"method": "POST",
"bulkId": "701984",
"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:contoso:1.0:User"],
"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,
"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",
"displayName": "John Smith"
}
},
"urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
"HireDate": "2021-05-01T00:00:00-05:00",
"JobCode": "TG-1001"
}
}
},
{
"method": "POST",
"bulkId": "701985",
"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:contoso:1.0:User"],
"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": "701984",
"displayName": "Barbara Jensen"
}
},
"urn:ietf:params:scim:schemas:extension:contoso:1.0:User": {
"HireDate": "2022-07-15T00:00:00-05:00",
"JobCode": "TL-1003"
}
}
}
],
"failOnErrors": null
}