Proton-hjemmeside

SCIM-provisionerings-API

Læsetid
4 min
Kategori
Proton VPN for Business

Oversigt

SCIM-provisionerings-API’en (System for Cross-domain Identity Management) er en standardprotokol til automatisering af provisionering og administration af brugeridentiteter i skybaserede applikationer. Proton understøtter denne API, hvilket giver Dem mulighed for at oprette, opdatere, slette og administrere brugerkonti og -grupper. API’en er baseret på SCIM 2.0-specifikationen, som giver et fælles brugerskema og et RESTful-API-interface for at lette integrationen.

Proton understøtter følgende identitetsudbydere:

Base-URL’en for alle kald fra identitetsudbyderen er: https://scim.proton.me/{tenentId}/v2/(nyt vindue). Alle SCIM-metoder er grene af denne base-URL.

Godkendelse

Tokenet skal inkluderes i en Authorization-header med typen Bearer, når De kalder en af SCIM-metoderne. Dette token kan genereres og erstattes i afsnittet Enkeltlogon > Automatisk SCIM-provisionering. Klik på knappen “Generer nyt token”, og kopiér det genererede token.

For eksempel:

GET /Users?count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}

Brugere

Kerneattributter

idEn unik identifikator for en SCIM-ressource, såsom en bruger, der er defineret af Proton.
userName (påkrævet)En unik identifikator for brugeren. Her bruger vi e-mail som userName.
activeEn boolsk værdi, der angiver, om brugeren er aktiv. Standarden er true.

Handlinger

Hent en pagineret liste over alle brugere

Anmodning

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
		}
	]
}

Opret en ny bruger

Anmodning

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"
	}
}

Hent en enkelt bruger

Anmodning

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"
}

Slet en bruger

Anmodning

DELETE /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}

Grupper

Kerneattributter

idEn unik identifikator for en SCIM-ressource, såsom en bruger, der er defineret af Proton.
displayNameNavn på gruppen.
membersEn liste over gruppemedlemmer.

Handlinger

Hent liste over grupper

Anmodning

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"
			}
		}
	]
}

Hent en gruppes detaljer via dens unikke ID

Anmodning

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"
	}
}

Fejlhåndtering

Svarene er formateret i henhold til RFC-7644, afsnit 3.12(nyt vindue), og leveres med en HTTP-statuskode, der angiver fejlens karakter, og en svarkrop, der giver flere detaljer.

Fejlsvar

{
	"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
	"detail": "UserName is already taken",
	"status": "400"
}

De mest almindelige fejl

  • 400 Bad Request: Anmodningen var ugyldig eller kan ikke behandles på anden måde.
  • 404 Not Found: Den anmodede ressource kunne ikke findes.
  • 409 Conflict: Anmodningen kunne ikke fuldføres på grund af en konflikt med den aktuelle tilstand for målressourcen.
    • uniqueness: En unik attributværdi eksisterer allerede i systemet.
  • 500 Internal Server Error: Der opstod en fejl på serversiden.