紹介
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 管理センターに、少なくともアプリケーション管理者としてログインします。
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
}