SCIM provisioning API
- Čtení
- 4 minut
- Kategorie
- Proton VPN for Business
Přehled
SCIM (System for Cross-domain Identity Management) Provisioning API je standardní protokol pro automatizaci zřizování a správy identit uživatelů v cloudových aplikacích. Proton toto API podporuje, což vám umožňuje vytvářet, aktualizovat, mazat a spravovat uživatelské účty a skupiny. API je založeno na specifikaci SCIM 2.0, která poskytuje společné schéma uživatelů a rozhraní RESTful API pro snadnou integraci.
Proton podporuje následující poskytovatele identit:
- Okta (https://www.okta.com/(nové okno))
- Microsoft Entra ID
Základní URL pro všechna volání z poskytovatele identit je: https://scim.proton.me/{tenentId}/v2/(nové okno). Všechny metody SCIM jsou větvemi této základní URL.
Ověřování
Token musí být při volání jakékoli z metod SCIM zahrnut v hlavičce Authorization s typem Bearer. Tento token lze vygenerovat a nahradit v sekci Single-sign-on > Automatické zřizování SCIM. Klikněte na tlačítko “Vygenerovat nový token” a vygenerovaný token zkopírujte.

Například:
GET /Users?count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Uživatelé
Základní atributy
| id | Jedinečný identifikátor pro prostředek SCIM, jako je například uživatel, který je definován službou Proton. |
| userName (vyžadováno) | Jedinečný identifikátor uživatele. Zde používáme e-mail jako userName. |
| active | Hodnota typu boolean určující, zda je uživatel aktivní. Výchozí hodnota je true. |
Operace
Získat stránkovaný seznam všech uživatelů
Požadavek
GET /Users?count=1 Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Odpověď
{
"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
}
]
}Vytvořit nového uživatele
Požadavek
POST /UsersHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Odpověď
{
"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"
}
}
Získat jednoho uživatele
Požadavek
GET /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Odpověď
{
"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"
}Smazat uživatele
Požadavek
DELETE /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Skupiny
Základní atributy
| id | Jedinečný identifikátor pro prostředek SCIM, jako je například uživatel, který je definován službou Proton. |
| displayName | Název skupiny. |
| members | Seznam členů skupiny. |
Operace
Získat seznam skupin
Požadavek
GET /Groups?startIndex=1&count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Odpověď
{
"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"
}
}
]
}Získat podrobnosti o skupině podle jejího jedinečného ID
Požadavek
GET /Groups/d27f32f6-1e03-4e34-b5b5-9b89c11ed54eHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Odpověď
{
"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"
}
}
Zpracování chyb
Odpovědi jsou formátovány podle RFC-7644, části 3.12(nové okno), a jsou doručovány se stavovým kódem HTTP, který označuje povahu chyby, a tělem odpovědi, které poskytuje podrobnější informace.
Chybová odpověď
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail": "UserName is already taken",
"status": "400"
}
Nejčastější chyby
- 400 Bad Request: Požadavek byl neplatný nebo jej nelze jiným způsobem zpracovat.
- 404 Not Found: Požadovaný prostředek nebyl nalezen.
- 409 Conflict: Požadavek nemohl být dokončen z důvodu konfliktu se současným stavem cílového prostředku.
uniqueness: Jedinečná hodnota atributu již v systému existuje.
- 500 Internal Server Error: Na straně serveru došlo k chybě.