SCIM APIリファレンス
SCIM APIリファレンス
このページでは、ユーザーおよびグループのプロビジョニングのためにaxeアカウントが公開するSCIM 2.0エンドポイントを記録しています。多くの場合、アイデンティティプロバイダーのSCIMコネクターがこれらのエンドポイントを呼び出します。このリファレンスは、カスタム統合を構築するチームや動作を直接検証するチームのためのものです。
axeはSCIM 2.0標準(RFC 7643 / RFC 7644)を実装しています。このページは、axe特有の動作に焦点を当てています。一般的なプロトコルについては、SCIM仕様書を参照してください。
基本URLと認証
すべてのエンドポイントは、地域またはプライベートの基本URL上の/api/scim/v2で提供されます。
https://axe.deque.com/api/scim/v2すべてのリクエストは、SCIM APIキーで認証してください。
-H "X-API-Key: <API_KEY>"
# or
-H "Authorization: <API_KEY>"キーと基本URLを取得するには、前提条件とセットアップを参照してください。
慣例
- コンテンツタイプ:
application/json - エラー応答はSCIMエラースキーマを使用します:
{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"], "detail": "<message>", "status": <code> } - ページネーション(ユーザー):
startIndex(1から始まる)およびcount(1~100)。 - フィルタリング(ユーザー、グループ):
filterをeq演算子を使用して、例えばuserName eq "user@example.com"。
ユーザー
ユーザーのリスト
GET /api/scim/v2/Usersエンタープライズのメンバーを返します。ページネーションとフィルタリングをサポートしています。
filterが提供されている場合、検索はエンタープライズに限定されません:一致するがメンバーでないユーザーがactive: falseと共に返されます。結果をメンバーとして扱うのではなく、activeを確認してください。フィルタされたリクエストは常に最大で1つのリソースを返し、countとstartIndexは無視されます。
クエリパラメータ
| パラメータ | タイプ | 説明 |
|---|---|---|
filter |
文字列 | オプション。例えば、userName eq "user@example.com" または externalId eq "<id>"。 |
startIndex |
整数 | オプション。最初の結果の1から始まるインデックス。デフォルトは1です。 |
count |
整数 | オプション。ページごとの結果、1~100。 |
例
curl -H "X-API-Key: $KEY" \
"https://axe.deque.com/api/scim/v2/Users?count=10&startIndex=1"レスポンス 200 OK
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 42,
"itemsPerPage": 10,
"startIndex": 1,
"Resources": [
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "5f3e...c2",
"userName": "user@example.com",
"active": true,
"name": { "givenName": "Alex", "familyName": "Doe" },
"emails": [
{ "primary": true, "value": "user@example.com", "type": "work", "display": "user@example.com" }
],
"groups": [
{ "value": "grp-1", "display": "Axe Monitor", "$ref": "/Groups/grp-1" }
],
"meta": { "resourceType": "User", "location": "/Users/5f3e...c2" }
}
]
}エラー
| ステータス | detail |
|---|---|
| 400 | Count must be between 1-100 |
ユーザーの取得
GET /api/scim/v2/Users/{id}axeユーザーIDで単一のユーザーを返します。activeがエンタープライズのメンバーシップを反映します。
レスポンス 200 OK — ユーザーリソース(上記参照)。
エラー
| ステータス | detail |
|---|---|
| 404 | User not found |
ユーザーの作成
POST /api/scim/v2/Usersユーザーをプロビジョニングします:axeアカウントを作成し、エンタープライズに追加し、招待メールを送信します。ボディ内のgroups値は無視されます — 製品アクセスはPATCH /Groupsを介して別途割り当ててください。
リクエストボディ
| フィールド | 必須 | 説明 |
|---|---|---|
schemas |
✅ | urn:ietf:params:scim:schemas:core:2.0:User を含める必要があります。 |
userName |
✅ | ユーザーのメールアドレス。 |
name.givenName |
✅ | 名前。 |
name.familyName |
✅ | 名字。 |
emails |
✅ | 正確に 1 つの primary: true エントリーを持つ配列。 |
active |
✅ | true はユーザーを企業に追加します。 |
externalId |
— | ディレクトリの一意の識別子(推奨)。 |
例
curl -X POST -H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "user@example.com",
"name": { "givenName": "Alex", "familyName": "Doe" },
"emails": [{ "type": "work", "value": "user@example.com", "primary": true }],
"active": true
}' \
"https://axe.deque.com/api/scim/v2/Users"応答 201 Created — 作成されたユーザーリソース。
エラー
| ステータス | detail |
|---|---|
| 400 | Validation errors: Exactly one primary e-mail is required at 'emails'.(一般的なエラーエンベロープ、SCIM エラースキーマではありません) |
| 400 | A primary email is required but was not found in the emails array |
| 400 | User email domain does not match enterprise root group |
| 400 | Enterprise does not have an identity provider configured |
| 409 | User is already a member of an enterprise |
ユーザーの置き換え
PUT /api/scim/v2/Users/{id}ユーザーの名前とメールアドレスが更新されます。
リクエスト本文
| フィールド | 必須 | 説明 |
|---|---|---|
schemas |
✅ | urn:ietf:params:scim:schemas:core:2.0:User を含める必要があります。 |
id |
✅ | ユーザーのAxeユーザーID(UUID)。パス内の {id} に一致する必要があります。 |
name.givenName |
✅ | 名前。 |
name.familyName |
✅ | 名字。 |
emails |
✅ | ユーザーのメールを含む配列。正確に一つのエントリーが primary: true を持たなければなりません。 |
name.middleName |
— | ミドルネーム。 |
meta |
— | 受け入れられて無視されます;meta はサーバーによって割り当てられます。 |
応答 200 OK — 更新されたユーザーリソース。
エラー
| ステータス | detail |
|---|---|
| 404 | User not found |
| 403 | User is a member of multiple enterprises |
| 403 | User is not a member of this enterprise |
| 400 | No primary email found in the provided emails array |
| 409 | A user with this email already exists |
ユーザーの有効化または無効化
PATCH /api/scim/v2/Users/{id}企業のメンバーシップを設定します。active: trueによってユーザーが企業に追加され、active: falseによってユーザーが準備解除されます(メンバーシップが削除され、アカウントは保持されます)。
リクエストボディ
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "replace", "value": { "active": false } }
]
}レスポンス 204 No Content
エラー
| ステータス | detail |
|---|---|
| 404 | User not found |
| 400 | Cannot remove the last admin from the enterprise |
ユーザーの準備解除
DELETE /api/scim/v2/Users/{id}ユーザーを企業から削除します(ソフト削除 — アカウントは保持されます)。
レスポンス 204 No Content
エラー
| ステータス | detail |
|---|---|
| 404 | User not found |
| 400 | Cannot remove the last admin from the enterprise |
グループ
グループは製品のサブスクリプション(製品のシートを付与する)またはチーム(ユーザーを整理する)のいずれかです。SCIM と axeアカウントの連携方法をご覧ください。
グループの一覧
GET /api/scim/v2/Groupsあなたの企業のすべての製品のサブスクリプションとチームを返します。このエンドポイントにはページ分割がありません。
クエリパラメータ
| パラメータ | タイプ | 説明 |
|---|---|---|
filter |
文字列 | オプション。displayName eq "<name>"。厳密に一致し、チーム名や製品名に対して大文字小文字を区別する — /UsersでのuserNameフィルタは大文字小文字を区別しません。 |
レスポンス 200 OK
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 5,
"startIndex": 1,
"itemsPerPage": 5,
"Resources": [
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
"id": "grp-1",
"displayName": "Axe Monitor",
"members": [
{ "value": "5f3e...c2", "display": "user@example.com", "$ref": "/Users/5f3e...c2" }
]
}
]
}グループを取得
GET /api/scim/v2/Groups/{id}レスポンス 200 OK — グループリソース。
エラー
| ステータス | detail |
|---|---|
| 404 | Group not found |
グループを作成
POST /api/scim/v2/Groupsチームを作成します。displayNameが企業がアクティブなサブスクリプションを持つ製品の名前に正確に一致する場合、チームは作成されません — 代わりに既存の製品サブスクリプショングループが返されます(201、それに付随するidおよびLocation)、リクエストボディ内のmembersは無視されます。そのグループのメンバーシップはPATCH /Groups/{id}を通じて管理してください。
一致は大文字小文字を区別し、正確です。名前がサブスクリプションがではないアクティブである製品と一致する場合、その名前を持つ通常のチームが作成されます — 製品シートは付与されません。
リクエストボディ
| フィールド | 必須 | 説明 |
|---|---|---|
schemas |
✅ | urn:ietf:params:scim:schemas:core:2.0:Groupを含める必要があります。 |
displayName |
✅ | チーム名(空白ではない、128文字以内)。 |
members |
— | オプションの配列(最大1000)。 |
レスポンス 201 Created — 作成されたグループリソース、Location ヘッダー付き。
エラー
| ステータス | detail |
|---|---|
| 400 | The group was not created because some users are not members of the enterprise. User IDs: ... |
| 409 | A group with this displayName already exists |
グループメンバーシップの更新
PATCH /api/scim/v2/Groups/{id}メンバーを追加または削除します。サブスクリプショングループの場合、製品のシートを付与または取り消します。チームグループの場合、チームメンバーシップを変更します。
リクエストボディ
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
"Operations": [
{ "op": "add", "path": "members", "value": [ { "value": "5f3e...c2" } ] }
]
}メンバーを削除するには、pathと一緒にop: "remove"を使用してください。replaceと空の配列を使用すると、すべてのメンバーが削除されます。
レスポンス 204 No Content
エラー
| ステータス | detail |
|---|---|
| 404 | Group not found |
| 404 | Product not found |
| 402 | Enterprise subscription out of seats |
| 400 | Some users were not added to the group because they are not members of the enterprise. User IDs: ... |
| 400 | Path is required for remove operations |
グループの削除
DELETE /api/scim/v2/Groups/{id}チームを削除します。製品サブスクリプショングループに対する削除リクエストは無視されます(204を返します)。
レスポンス 204 No Content
エラー
| ステータス | detail |
|---|---|
| 404 | Group not found |
グループの更新(サポートされていません)
PUT /api/scim/v2/Groups/{id}サポートされていません。405 Method not allowedを返します。メンバーシップを変更するにはPATCHを使用してください。
ディスカバリーエンドポイント
これらは自動コネクタ設定をサポートします。すべてが200 OKを返します。
| エンドポイント | 戻り値 |
|---|---|
GET /api/scim/v2/ServiceProviderConfig |
サポートされている機能(パッチ、最大100件の結果でのフィルタリング;バルクとソートはサポートされていません)。 |
GET /api/scim/v2/Schemas |
ユーザーとグループのスキーマ定義。 |
GET /api/scim/v2/Schemas/{id} |
URNによる単一のスキーマ。未知の場合は404 "Schema not found"。 |
GET /api/scim/v2/ResourceTypes |
ユーザーとグループのリソースタイプ。 |
GET /api/scim/v2/ResourceTypes/{id} |
単一のリソースタイプ。未知の場合は404 "Resource type not found"。 |
