SCIM-provisionerings-API
- Lästid
- 4 min
Översikt
SCIM-provisionerings-API (System for Cross-domain Identity Management) är ett standardprotokoll för att automatisera provisionering och hantering av användaridentiteter i molnbaserade applikationer. Proton har stöd för detta API, vilket gör att du kan skapa, uppdatera, ta bort och hantera användarkonton och grupper. API:et är baserat på SCIM 2.0-specifikationen, som tillhandahåller ett gemensamt användarschema och ett RESTful API-gränssnitt för enkel integration.
Proton stödjer följande identitetsleverantörer:
- Okta (https://www.okta.com/(nytt fönster))
- Microsoft Entra ID
Bas-URL för alla anrop från identitetsleverantören är: https://scim.proton.me/{tenentId}/v2/(nytt fönster). Alla SCIM-metoder är grenar av denna bas-URL.
Autentisering
Token måste inkluderas i en Authorization-rubrik med typen Bearer när någon av SCIM-metoderna anropas. Denna token kan genereras och ersättas under sektionen Single-sign-on > SCIM automatisk provisionering. Klicka på knappen “Generera ny token” och kopiera den genererade token.

Till exempel:
GET /Users?count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Användare
Kärnattribut
| id | En unik identifierare för en SCIM-resurs, såsom en användare, som definieras av Proton. |
| användarnamn (obligatoriskt) | En unik identifierare för användaren. Här använder vi e-post som användarnamn. |
| aktiv | Ett booleskt värde som anger om användaren är aktiv. Standardvärdet är sant. |
Åtgärder
Hämta en paginerad lista över alla användare
Begäran
GET /Users?count=1 Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Svar
{
"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
}
]
}Skapa en ny användare
Begäran
POST /UsersHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Svar
{
"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"
}
}
Hämta en enskild användare
Begäran
GET /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Svar
{
"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"
}Ta bort en användare
Begäran
DELETE /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Grupper
Kärnattribut
| id | En unik identifierare för en SCIM-resurs, såsom en användare, som definieras av Proton. |
| displayName | Namn för gruppen. |
| medlemmar | En lista över gruppmedlemmar. |
Åtgärder
Hämta lista över grupper
Begäran
GET /Groups?startIndex=1&count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Svar
{
"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"
}
}
]
}Hämta en grupps detaljer genom dess unika ID
Begäran
GET /Groups/d27f32f6-1e03-4e34-b5b5-9b89c11ed54eHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Svar
{
"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"
}
}
Felhantering
Svaren är formaterade enligt RFC-7644 avsnitt 3.12(nytt fönster) och levereras med en HTTP-statuskod som indikerar felets natur samt en svarskropp som tillhandahåller mer detaljer.
Felsvar
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail": "UserName is already taken",
"status": "400"
}
De vanligaste felen
- 400 Bad Request: Förfrågan var ogiltig eller kan inte betjänas på annat sätt.
- 404 Not Found: Den efterfrågade resursen kunde inte hittas.
- 409 Conflict: Begäran kunde inte slutföras på grund av en konflikt med målresursens nuvarande tillstånd.
uniqueness: Ett unikt attributvärde finns redan i systemet.
- 500 Internal Server Error: Ett fel uppstod på serversidan.