本ドキュメントは、セキュリオ とIdP間でのユーザープロビジョニングを可能にするオープン標準の System for Cross-Domain Identity Management (SCIM)の仕様を記載しています。
SCIM APIの実装は、SCIM 2.0プロトコルに準拠しています。
ユーザ属性
属性 | 型 |
id | int |
string | |
name | string |
(削除予定) companyid | int |
(削除予定) count | int |
active | Boolean |
グループ属性
属性 | 型 |
id |
int |
displayName |
string |
members |
Multi-valued |
SCIM APIへのアクセス
SCIM Base URLは「https://api.seculio.com/scim/v1」となっています。
また、SCIM APIへのすべてのリクエストでは、Authorization
ヘッダーにBearer
トークンを指定する必要があります。
Authorization: Bearer ○○
Bearer
トークンは、Seculio上のSCIM設定ページで取得可能です。
ユーザAPI
HTTPメソッド | URL | 詳細 |
GET |
https://api.seculio.com/scim/v1/Users/ |
ユーザリストの取得 |
GET |
https://api.seculio.com/scim/v1/Users/{ユーザ`id`} |
ユーザの取得 |
POST |
https://api.seculio.com/scim/v1/Users/ |
ユーザの作成 |
PATCH |
https://api.seculio.com/scim/v1/Users/{ユーザ`id`} |
ユーザの更新(単一値の属性) |
PUT |
https://api.seculio.com/scim/v1/Users/{ユーザ`id`} |
ユーザの更新(複数値の属性) |
DELETE |
未対応 (現在、SCIMによるユーザの削除はできません) |
ユーザリストの取得
ユーザリストの取得時、URLパラメータにcountを指定すると、指定されたユーザ数のリストを取得することが可能です。
※ Seculio上のユーザ数が指定された数値以下の場合、全ユーザのリストが取得可能です。
※ countが未設定の場合は、最大1000ユーザのリストが取得可能です。
以下の例では、500ユーザのリストを取得できます。
HTTPメソッド | URL |
GET | https://api.seculio.com/scim/v1/Users/?count=500 |
レスポンスステータス
Status: 200 OK
リクエスト例
なし
レスポンス例
{
"totalResults": 2
"itemsPerPage": 2
"startIndex": 1
"schemas":
"urn:ietf:params:scim:schemas:core:2.0:userInfo"
"Resources":
{
"schemas":
"urn:ietf:params:scim:schemas:core:2.0:userInfo"
"id": "1"
"email": "test1@example.com"
"name": "Test1 LRM"
"active": true
}
{
"schemas":
"urn:ietf:params:scim:schemas:core:2.0:userInfo"
"id": "2"
"email": "test2@example.com" "name": "Test2 LRM"
"active": true
}
}
ユーザの取得
HTTPメソッド | URL |
GET | https://api.seculio.com/scim/v1/Users/{ユーザ`id`} |
レスポンスステータス
Status: 200 OK
リクエスト例
なし
レスポンス例 (修正予定)
{ "totalResults": 1, "itemsPerPage": 1, "startIndex": 1, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "id": 1, "email": "test@example.com", "name": "taro yamada", "companyid": 1, "count": 1, "active": true, "created_at": "xxxx-xx-xx xx:xx:xx", "updated_at": "xxxx-xx-xx xx:xx:xx" } ], "count": 1, "id": 1 }
ユーザの作成
HTTPメソッド | URL |
POST | https://api.seculio.com/scim/v1/Users/ |
レスポンスステータス
Status: 201 Created
リクエスト例
{ "schemas":[ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "userName":"Username", "name":{"givenName":"GivenName","familyName":"FamilyName"}, "emails":[ { "primary":true, "value":"test@example.com", "type":"work" } ], "displayName":"{{GivenName}} {{FamilyName}}", "active":true }
レスポンス例 (修正予定)
{ "totalResults": 1, "itemsPerPage": 1, "startIndex": 0, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "id": 1, "email": "test@example.com", "name": "GivenName FamilyName", "companyid": 1, "count": 1, "active": true, "created_at": "xxxx-xx-xx xx:xx:xx", "updated_at": "xxxx-xx-xx xx:xx:xx" } ], "count": 1, "id": 1 }
ユーザの更新(単一値の属性)
HTTPメソッド | URL |
PATCH | https://api.seculio.com/scim/v1/Users/{ユーザ`id`} |
レスポンスステータス
Status: 200 OK
リクエスト例
{
"schemas": [
"urn:ietf:params:scim:schemas:core:2.0:userInfo"
],
"Operations": [
{
"op": "Replace",
"path": "name.familyName",
"value": "FamilyName"
},
{
"op": "Replace",
"path": "name.givenName",
"value": "GivenName"
},
{
"op": "Replace",
"path": "emails[type eq \"work\"].value",
"value": "test@example.com"
}
]
}
レスポンス例 (修正予定)
{ "totalResults": 1, "itemsPerPage": 1, "startIndex": 0, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "id": 1, "email": "test@example.com", "name": "GivenName FamilyName", "companyid": 1, "count": 1, "active": true, "created_at": "xxxx-xx-xx xx:xx:xx", "updated_at": "xxxx-xx-xx xx:xx:xx" } ], "count": 1, "id": 1 }
ユーザの更新(複数値の属性)
HTTPメソッド | URL |
PUT | https://api.seculio.com/scim/v1/Users/{ユーザ`id`} |
レスポンスステータス
Status: 200 OK
リクエスト例
{ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "userName": "test@example.com", "name": { "givenName": "GivenName", "familyName": "FamilyName" }, "emails": [ { "primary": true, "value": "test@example.com", "type": "work" } ], "displayName": "GivenName FamilyName", "active": true }
レスポンス例 (修正予定)
{ "totalResults": 1, "itemsPerPage": 1, "startIndex": 0, "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:userInfo" ], "id": 1, "email": "test@example.com", "name": "GivenName FamilyName", "companyid": 1, "count": 1, "active": true, "created_at": "xxxx-xx-xx xx:xx:xx", "updated_at": "xxxx-xx-xx xx:xx:xx" } ], "count": 1, "id": 1 }
グループAPI
グループプロビジョニングについては、実装に向けて鋭意開発中です。
ご不便をお掛けしますが、リリースをお待ち下さい。
Rate Limits
Users Endpoints
エンドポイント | 制限 (1分あたりのリクエスト) | バースト |
---|---|---|
GET /scim/v1/Users | 300 | 50 |
GET /scim/v1/Users/{id} | 300 | 50 |
POST /scim/v1/Users | 120 | 20 |
PUT /scim/v1/Users/{id} | 120 | 20 |