SCIM を使用したユーザーとグループ管理
※ユーザーAPIのactive属性を利用したユーザーの無効化は、12月18日(水)以降に利用可能になる予定です。
SCIM (System for Cross-domain Identity Management) は、ユーザーやそれに紐づくグループ情報の自動管理を容易にするオープンな標準規格です。セキュリオは SCIM 2.0 をサポートしており、ユーザーとグループのプロビジョニングに対応しています。
SCIM APIを利用することで、ユーザーやグループ情報をEntra IDやOktaなどのアイデンティティプロバイダから自動的に同期することができます。
サポートされているアイデンティティプロバイダ
- Microsoft Entra ID
- Okta
- OneLogin
注意:
Oktaをご利用の場合、SCIMのユーザー削除の操作を行うことは現時点では出来ません。今後対応予定です。
SCIM APIの仕様
ベースURL
SCIMを仕様してユーザーとグループを管理するには、次のベースURLをIDプロバイダーに指定します。
https://api.seculio.com/scim/v2
認証
認証には、セキュリオの設定 > SCIMページ上で発行した Bearer トークンを利用します。
SCIM APIを利用する全てのリクエストで、Authorization ヘッダーに発行した Bearer トークンを指定します。
例: Authorization: Bearer ◯◯
サポートされている SCIM ユーザー属性
SCIM ユーザー属性 | セキュリオ上のユーザー属性 | 型 | 詳細 |
id |
内部的なID |
数値 | セキュリオ上のユーザーの識別子 |
userName | メールアドレス | 文字列 | IDプロバイダー側のユーザーのユーザー名 ユーザーごとに一意である必要があります。 |
active | 状態 | ブール値 | falseに設定されている場合、ユーザーの状態を無効化します。 |
emails | メールアドレス | 文字列 | ユーザーのメールアドレス |
displayName | ユーザー名 | 文字列 | ユーザーの名前 |
name.givenName | N/A | 文字列 | ユーザーの姓 |
name.familyName | N/A | 文字列 | ユーザーの名 |
meta.created | 作成日時 | 文字列 | ユーザーの作成日時 |
meta.lastModified | 更新日時 | 文字列 | ユーザーの更新日時 |
meta.resourceType | N/A | 文字列 | User |
schemas | N/A | 文字列 | urn:ietf:params:scim:schemas:core:2.0:User |
注意:
- active 属性には現時点では対応しておらず、セキュリオのユーザーを非アクティブ状態にすることはできません。
- カスタム属性には対応していません。
- 作成されたユーザーは、セキュリオ上で設定しているデフォルトの権限が割り当てられます。
- givenNameとfamilyNameが指定された場合、スペースで結合した文字列がセキュリオのユーザー名となります。
- givenNameとfamilyNameが指定されていない場合、displayNameがセキュリオのユーザー名となります。
ユーザーAPI
目的 | HTTPメソッドとAPI |
ユーザーを検索して取得する | GET scim/v2/Users?filter=userName eq "{user_name}" |
特定のユーザーの情報を取得する | GET scim/v2/Users/{user_id} |
複数のユーザーの詳細を取得する | GET scim/v2/Users?startIndex=0&count=10 |
ユーザーを作成する | POST scim/v2/Users |
ユーザー情報の一部を更新する | PATCH scim/v2/Users/{user_id} |
ユーザー情報を更新する | PUT scim/v2/Users/{user_id} |
ユーザーを削除する | DELETE scim/v2/Users/{user_id} |
注意:
- filterのcountパラメータに指定可能な値の最大値は1,000です。
- countの指定がない場合は、1ページあたりの取得件数はデフォルトで1,000件になります。
サポートされている SCIM グループ属性
SCIM ユーザー属性 | セキュリオ上のグループ属性 | 型 | 詳細 |
id | 内部的なグループのID | 文字列 | セキュリオ上のグループの一意の識別子 |
displayName | グループ表示名 | 文字列 | セキュリオ上のグループの表示名 |
members.value | ユーザーID | 文字列 | グループ所属するユーザーのID |
members.display | ユーザー名 | 文字列 | グループに所属するユーザーの名前 |
schemas | N/A | 文字列 | urn:ietf:params:scim:schemas:core:2.0:Group |
注意:
- ネストされたグループには対応していません。
グループAPI
目的 | HTTPメソッドとAPI |
---|---|
グループの取得 | GET scim/v2/Groups?filter=displayName eq {display_name} |
特定のグループの情報を取得する | GET scim/v2/Groups/{group_id} |
複数のグループの情報を取得する | GET scim/v2/Groups?startIndex=0&count=10 |
グループを作成する | POST scim/v2/Groups |
グループを更新する | PATCH scim/v2/Groups/{group_id} |
グループを置換する | PUT scim/v2/Groups/{group_id} |
グループを削除する | DELETE scim/v2/Groups/{group_id} |
レート制限
システムが過負荷になることを防止するため、各会社毎にレート制限を設けています。この制限は調整される可能性があります。
レート制限に到達した場合、429 Too Many Requests
エラーが返却されるようになります。
ユーザーAPI
エンドポイント | 制限 (1分あたりのリクエスト数) |
---|---|
GET scim/v2/Users |
200 |
GET scim/v2/Users/{user_id} |
200 |
POST scim/v2/Users |
200 |
PATCH scim/v2/Users/{user_id} |
100 |
PUT scim/v2/Users/{user_id} |
100 |
DELETE scim/v2/Users/{user_id} |
40 |
グループAPI
エンドポイント | 制限 (1分あたりのリクエスト数) |
---|---|
GET scim/v2/Groups |
20 |
GET scim/v2/Groups/{id} |
40 |
PATCH scim/v2/Groups/{id} |
10 |
PUT scim/v2/Groups/{id} |
10 |
DELETE scim/v2/Groups/{id} |
10 |