必要なデータを集めた あと、Entra でのプロビジョニングを完了するには、次の手順を行います。
- Entra 管理センターを開き、Applications > Enterprise Applications を選択します。
- Microsoft Entra Gallery で New application > Create your own application を選択し、名前を付けます。
- Integrate any other application you don't find in the gallery (Non-gallery) を選択します。
- アプリケーションを Create します。
- 作成したアプリケーション内で、サイドバーの Manage から Provisioning を選択します。
- New configuration を選択し、Tenant URL に
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/scim/v2を入力します。<ACCOUNT_ID>は自分のアカウント ID に置き換えます。 - SCIM プロビジョニング API トークンの値を Secret token に貼り付けます。
- Test Connection を選択し、設定を Save します。
- 作成したアプリケーションで、サイドバーの Manage から Users and groups を選択します。
- アプリケーションにユーザーとグループを割り当てます ↗。
- ユーザーを割り当てたら、サイドバーの Provisioning を開き、Start Provisioning を選択します。
- 同期されたユーザーとグループを確認するには、サイドバーの Provisioning logs を開きます。Cloudflare の Audit Logs を確認 することもできます。
Cloudflare の SCIM 連携では、アカウントごとに外部アプリケーションが 1 つ必要です。アカウントが複数ある場合は、セットアップの一部を自動化すると時間を短縮でき、Entra の管理 UI で作業する時間も減らせます。
ギャラリー以外のアプリケーションの作成と、プロビジョニング URL および API キーの追加は API でスクリプト化できます。残りの手順は、要件と IdP の設定に依存します。
1. アクセストークンを取得する
Entra のアクセストークンを取得します。次の例は Azure CLI を使っています。
# Using azure-cli
az login
az account get-access-token --resource https://graph.microsoft.com
(payload with accessToken returned)2. テンプレートから新しいアプリケーションを作成する
テンプレート ID 8adf8e6e-67b2-4cf2-a259-e3dc5476c621 は、Entra のドキュメントでギャラリー以外のアプリを作成するときに推奨されているテンプレートです。<accessToken> と displayName を自分の値に置き換えます。
curl -X POST 'https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <accessToken>' \
--data-raw '{
"displayName": "Entra API create application test"
}'{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.applicationServicePrincipal",
"application": {
"id": "343a8552-f9d9-471c-b677-d37062117cc8", //
"appId": "03d8207b-e837-4be9-b4e6-180492eb3b61",
"applicationTemplateId": "8adf8e6e-67b2-4cf2-a259-e3dc5476c621",
"createdDateTime": "2025-01-30T00:37:44Z",
"deletedDateTime": null,
"displayName": "Entra API create application test",
"description": null,
// ... snipped rest of large application payload
},
"servicePrincipal": {
"id": "a8cb133d-f841-4eb9-8bc9-c8e9e8c0d417", // Note this ID for the subsequent request
"deletedDateTime": null,
"accountEnabled": true,
"appId": "03d8207b-e837-4be9-b4e6-180492eb3b61",
"applicationTemplateId": "8adf8e6e-67b2-4cf2-a259-e3dc5476c621",
"appDisplayName": "Entra API create application test",
// ...snipped rest of JSON payload
}
}3. プロビジョニング ジョブを作成する
プロビジョニングを有効にするには、ジョブも作成します。直前のリクエストで得た SERVICE_PRINCIPAL_ID を次のリクエストで使います。SCIM の templateId は Entra が提供するテンプレートです。
curl -X POST 'https://graph.microsoft.com/v1.0/servicePrincipals/<SERVICE_PRINCIPAL_ID>/synchronization/jobs' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <accessToken>' \
--data-raw '{
"templateId": "scim"
}'{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#servicePrincipals('a8cb133d-f841-4eb9-8bc9-c8e9e8c0d417')/synchronization/jobs/$entity",
"id": "scim.5b223a2cc249463bbd9a791550f11c76.03d8207b-e837-4be9-b4e6-180492eb3b61",
"templateId": "scim",
"schedule": {
"expiration": null,
"interval": "PT40M",
"state": "Disabled"
},
}
// ... snipped rest of JSON payload4. SCIM プロビジョニング URL と API トークンを設定する
次に、Tenant URL(Cloudflare の SCIM エンドポイント)と API トークン(SCIM Provisioning API Token)を設定します。
<accessToken>、<ACCOUNT_ID>、<SCIM_PROVISIONING_API_TOKEN_VALUE> を自分の値に置き換えます。
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <accessToken>' \
--data-raw '{
"value": [
{
"key": "BaseAddress",
"value": "https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/scim/v2"
},
{
"key": "SecretToken",
"value": "<SCIM_PROVISIONING_API_TOKEN_VALUE>"
}
]
}'以上が終わったら、Entra 側では次の作業を続けます。
- グループとプロビジョニングの追加設定
- 設定を更新したあと、テストして保存する
- 設定完了後のプロビジョニング