クイックスタート: 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 Enterprise ユーザー スキーマ を使用して 一括要求をコピーし、
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 Enterprise ユーザー スキーマを使用した一括要求
次に示す一括要求では、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
}
次の手順
- 受信プロビジョニング API に関する問題のトラブルシューティング
- API 主導の受信プロビジョニング についてよく寄せられる質問
- PowerShell を使用したクイック スタート
- Azure Logic Apps を使用したクイック スタート