cURL を使用した API 駆動インバウンド プロビジョニングのクイックスタート
はじめに
cURL は、API 開発者によって使用される一般的で無料のオープンソースのコマンドライン ツールであり、Windows 10/11 で既定で使用できます。 このチュートリアルでは、cURL を使用した API 駆動インバウンド プロビジョニングをすばやくテストする方法について説明します。
前提条件
- API 駆動インバウンド プロビジョニング アプリの構成を完了している。
- サービス プリンシパルの構成を完了していて、プリンシパルがインバウンド プロビジョニング API にアクセスできる。 このチュートリアルで使用するサービス プリンシパル アプリの
ClientId
とClientSecret
を書き留めておいてください。
ユーザー データを受信プロビジョニング API にアップロードする
- インバウンド プロビジョニング API にアクセスできるサービス プリンシパルの client_id と client_secret を取得します。
- OAuth client_credentials 許可フローを使用してアクセス トークンを取得します。 変数
[yourClientId]
、[yourClientSecret]
、[yourTenantId]
を自分の設定に適用できる値で置き換え、次の cURL コマンドを実行します。 生成されたアクセス トークン値をコピーしますcurl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=[yourClientId]&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=[yourClientSecret]&grant_type=client_credentials" "https://login.microsoftonline.com/[yourTenantId]/oauth2/v2.0/token"
- SCIM エンタープライズ ユーザー スキーマによる一括要求をコピーし、その内容を
scim-bulk-upload-users.json
というファイルに保存します。 - 変数
[InboundProvisioningAPIEndpoint]
を、プロビジョニング アプリに関連付けられているプロビジョニング API エンドポイントで置き換えます。 前の手順の[AccessToken]
値を使用し、次の curl コマンドを実行して、一括要求をプロビジョニング API エンドポイントにアップロードします。curl -v "[InboundProvisioningAPIEndpoint]" -d @scim-bulk-upload-users.json -H "Authorization: Bearer [AccessToken]" -H "Content-Type: application/scim+json"
- アップロードが成功すると、HTTP 202 Accepted 応答コードを受け取ります。
- プロビジョニング サービスは一括要求ペイロードの処理を直ちに開始し、インバウンド プロビジョニング アプリのプロビジョニング ログにアクセスすることでプロビジョニングの詳細を確認できます。
一括要求ペイロードの処理を確認する
少なくともアプリケーション管理者 として Microsoft Entra 管理センター にログインしてください。
[Microsoft Entra ID] ->[アプリケーション] - >[エンタープライズ アプリケーション] の順に移動します。
すべてのアプリケーションで、検索フィルター テキスト ボックスを使用して、API 駆動プロビジョニング アプリケーションを見つけて開きます。
[プロビジョニング] ブレードを開きます。 ランディング ページに最後の実行の状態が表示されます。
[プロビジョニング ログの表示] をクリックして、プロビジョニング ログ ブレードを開きます。 または、メニュー オプションの [監視] -> [プロビジョニング ログ] をクリックすることもできます。
プロビジョニング ログ内の任意のレコードをクリックして、追加の処理の詳細を表示します。
プロビジョニング ログの詳細画面に、特定のユーザーに対して実行されたすべての手順が表示されます。
- [API からインポート] ステップで、一括要求から抽出されたユーザー データの詳細を確認します。
- [ユーザーのマッチ] ステップには、マッチする識別子に基づいて、すべてのユーザー マッチの詳細が表示されます。 ユーザー マッチが発生した場合、プロビジョニング サービスは更新操作を実行します。 ユーザー マッチがない場合、プロビジョニング サービスは作成操作を実行します。
- [ユーザーがスコープ内にいるかの確認] ステップには、スコープ フィルター評価の詳細が表示されます。 既定では、すべてのユーザーが処理されます。 スコープ フィルターを設定した場合 (たとえば、販売部門に属するユーザーのみを処理するなど)、このステップにはスコープ フィルターの評価の詳細が表示されます。
- [ユーザーのプロビジョニング] ステップでは、最終的な処理ステップと、ユーザー アカウントに適用された変更が呼び出されます。
- [変更されたプロパティ] タブを使用して、属性の更新を表示します。
付録
SCIM エンタープライズ ユーザー スキーマを使用した一括要求の詳細については、このセクションを参照してください。
SCIM エンタープライズ ユーザー スキーマによる一括要求
下に示す一括要求では、SCIM 標準コア ユーザー スキーマとエンタープライズ ユーザー スキーマを使用しています。
要求本文
{
"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",
"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": "100 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"
}
}
}
},
{
"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": "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": "701985",
"costCenter": "4130",
"organization": "Universal Studios",
"division": "Theme Park",
"department": "Tour Operations",
"manager": {
"value": "701984",
"displayName": "Barbara Jensen"
}
}
}
}
],
"failOnErrors": null
}