SCIMプロビジョニングAPI
- 閲覧中
- 2 分
- カテゴリー
- Proton VPN for Business
概要
SCIM(System for Cross-domain Identity Management)プロビジョニングAPIは、クラウドベースのアプリにおけるユーザー情報のプロビジョニングと管理を自動化するための標準プロトコルです。ProtonはこのAPIをサポートしており、これによりお客様はユーザーアカウントやグループの作成、更新、削除、管理を行うことができます。このAPIはSCIM 2.0仕様に基づいており、統合を容易にするための共通のユーザースキーマとRESTful APIインターフェースを提供します。
Protonは以下のIDプロバイダーをサポートしています:
- Okta (https://www.okta.com/(新しいウィンドウ))
- Microsoft Entra ID
IDプロバイダー からのすべての呼び出しのベースURLは、 https://scim.proton.me/{tenentId}/v2/(新しいウィンドウ)です。 すべてのSCIMメソッドはこのベースURLのブランチ(サブパス)となります。
認証
いずれかのSCIMメソッドを呼び出す際、トークンは種類が Bearerの Authorization ヘッダーに含まれている必要があります。このトークンは、「シングルサインオン」>「SCIM自動プロビジョニング」セクションで生成および置換できます。「新規トークンの生成」ボタンをクリックし、生成されたトークンをコピーしてください。

例えば:
GET /Users?count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
ユーザー
主要属性
| id | Protonによって定義される、ユーザーなどのSCIMリソースの一意の識別子。 |
| userName(必須) | ユーザーの一意の識別子。ここでは、メールアドレスをuserNameとして使用します。 |
| active | ユーザーが有効であるかどうかを示す真偽値(boolean)です。デフォルトはtrueです。 |
操作
ページ分割されたすべてのユーザーのリストを取得する
リクエスト
GET /Users?count=1 Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
レスポンス
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 1,
"itemsPerPage": 1,
"startIndex": 1,
"Resources": [
{
"id": "avveKyJZ_cCkULxxxZj4_U8j1IwqaGkcso02I6bDFoyrfJSqqXLS3FToNOiwP1tNwBaaraqfKVE993xaVcYSxQ==",
"userName": "test@sso.protonhub.org",
"active": true
}
]
}コピーしました
新規ユーザーを作成する
リクエスト
POST /UsersHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
レスポンス
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "avveKyJZ_cCkULxxxZj4_U8j1IwqaGkcso02I6bDFoyrfJSqqXLS3FToNOiwP1tNwBaaraqfKVE993xaVcYSxQ==",
"userName": "test@sso.protonhub.org",
"active": true,
"meta": {
"resourceType": "User",
"created": "2024-07-25T04:39:27Z",
"lastModified": "2024-07-25T04:39:27Z",
"location": "https://scim.proton.me/{tenent-id}/v2/Users/avveKyJZ_cCkULxxxZj4_U8j1IwqaGkcso02I6bDFoyrfJSqqXLS3FToNOiwP1tNwBaaraqfKVE993xaVcYSxQ==",
"version": "1"
}
}
コピーしました
単一のユーザーを取得する
リクエスト
GET /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
レスポンス
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==",
"userName": "test@sso.protonhub.org",
"active": true,
"meta": {
"resourceType": "User",
"created": "2024-07-24T06:22:20Z",
"lastModified": "2024-07-24T06:22:20Z",
"location": "https://scim.proton.me/{tenentId}/v2/Users/avveKyJZ_cCkUL1iBZj4_U8j1IwqaGkcso02I6bDFoyrfJSqqXLS3FToNOiwP1tNwBaaraqfKVE993xaVcYSxQ==",
"version": "1"
},
"externalId": "00uganxwluxxxxxxxxxx"
}コピーしました
ユーザーを削除する
リクエスト
DELETE /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
グループ
主要属性
| id | Protonによって定義される、ユーザーなどのSCIMリソースの一意の識別子。 |
| displayName | グループの名前。 |
| members | グループメンバーのリスト。 |
操作
グループのリストを取得する
リクエスト
GET /Groups?startIndex=1&count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
レスポンス
{
"schemas": [
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
],
"totalResults": 0,
"itemsPerPage": 100,
"startIndex": 1,
"Resources": [
{
"id": "d27f32f6-1e03-4e34-b5b5-9b89c11ed54e",
"displayName": "Admins",
"members": [
{
"value": "2819c223-7f76-453a-919d-413861904646",
"display": "John Doe"
}
],
"meta": {
"resourceType": "Group",
"created": "2024-07-25T05:10:22Z",
"lastModified": "2024-07-25T05:10:22Z",
"location": "https://scim.proton.me/{tenentId}/v2/Groups/d27f32f6-1e03-4e34-b5b5-9b89c11ed54e"
}
}
]
}コピーしました
一意のIDからグループの詳細を取得する
リクエスト
GET /Groups/d27f32f6-1e03-4e34-b5b5-9b89c11ed54eHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}コピーしました
レスポンス
{
"id": "d27f32f6-1e03-4e34-b5b5-9b89c11ed54e",
"displayName": "Admins",
"members": [{ "value": "2819c223-7f76-453a-919d-xxxxxxxxxxxx", "display": "John Doe" }],
"meta": {
"resourceType": "Group",
"created": "2024-07-25T05:10:22Z",
"lastModified": "2024-07-25T05:10:22Z",
"location": "https://scim.proton.me/{tenentId}/v2/Groups/d27f32f6-1e03-4e34-b5b5-9b89c11ed54e"
}
}
コピーしました
エラー処理
レスポンスは、エラーの性質を示すHTTPステータスコードと、より詳細な情報を提供するレスポンスボディを伴って返され、 RFC-7644のセクション3.12(新しいウィンドウ) に従ってフォーマットされます。
エラーレスポンス
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail": "UserName is already taken",
"status": "400"
}
コピーしました
最も一般的なエラー
- 400 Bad Request: リクエストが無効であるか、または処理できません。
- 404 Not Found: リクエストされたリソースが見つかりませんでした。
- 409 Conflict: ターゲットリソースの現在の状態と競合するため、リクエストを完了できませんでした。
uniqueness: 一意の属性値がシステム内にすでに存在します。
- 500 Internal Server Error: サーバー側でエラーが発生しました。