SCIM hazırlama API’si
- Okuma süresi
- 4 dakikalık
- Kategori
- Proton VPN for Business
Genel Bakış
SCIM (System for Cross-domain Identity Management) Hazırlama API’si, bulut tabanlı uygulamalarda kullanıcı kimliklerinin oluşturulmasını ve yönetimini otomatikleştirmek için kullanılan standart bir protokoldür. Proton, kullanıcı hesapları ve grupları oluşturmanıza, güncellemenize, silmenize ve yönetmenize olanak tanıyan bu API’yi destekler. API, entegrasyon kolaylığı için ortak bir kullanıcı şeması ve RESTful API arayüzü sağlayan SCIM 2.0 spesifikasyonuna dayanır.
Proton şu kimlik sağlayıcılarını destekler:
- Okta (https://www.okta.com/(yeni pencere))
- Microsoft Entra ID
Kimlik sağlayıcısından gelen tüm çağrılar için temel URL şudur: https://scim.proton.me/{tenentId}/v2/(yeni pencere). Tüm SCIM yöntemleri bu temel URL’nin dallarıdır.
Kimlik doğrulaması
Herhangi bir SCIM yöntemi çağrılırken, kod (belirteç) Bearer türünde bir Authorization üst bilgisine dahil edilmelidir. Bu kod (belirteç), Single-sign-on > SCIM otomatik provizyon bölümünde oluşturulabilir ve değiştirilebilir. “Yeni kod oluştur” düğmesine tıklayın ve oluşturulan kodu kopyalayın.

Örneğin:
GET /Users?count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Kullanıcılar
Temel Öznitelikler
| id | Proton tarafından tanımlanan, kullanıcı gibi bir SCIM kaynağı için benzersiz tanımlayıcı. |
| kullanıcı adı (gerekli) | Kullanıcı için benzersiz bir tanımlayıcı. Burada userName olarak e-posta kullanıyoruz. |
| Etkin | Kullanıcının etkin olup olmadığını gösteren bir boolean değeridir. Varsayılan değer true şeklindedir. |
İşlemler
Tüm Kullanıcılar listesini sayfalandırılmış olarak getir
İstek
GET /Users?count=1 Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Yanıt
{
"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
}
]
}Yeni bir kullanıcı oluştur
İstek
POST /UsersHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Yanıt
{
"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"
}
}
Tek bir kullanıcıyı getir
İstek
GET /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Yanıt
{
"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"
}Bir kullanıcıyı sil
İstek
DELETE /Users/avveKyJZ_cCkUL1iBZj4_U8j1IxxxGkcso02I6xDFoyrfJSxxXLS3FToNOiwP1tNwBaaraqfKVExx3xaVcYSxQ==Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Gruplar
Temel Öznitelikler
| id | Proton tarafından tanımlanan, kullanıcı gibi bir SCIM kaynağı için benzersiz tanımlayıcı. |
| displayName | Grup için Ad. |
| üyeler | Bir grup üyesi listesi. |
İşlemler
Grup listesini al
İstek
GET /Groups?startIndex=1&count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Yanıt
{
"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"
}
}
]
}Benzersiz kimliği ile bir grubun ayrıntılarını al
İstek
GET /Groups/d27f32f6-1e03-4e34-b5b5-9b89c11ed54eHost: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}Yanıt
{
"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"
}
}
Hata Yönetimi
Yanıtlar, hatanın doğasını belirten bir HTTP durum kodu ve daha fazla Bilgiler sağlayan bir yanıt gövdesi ile sunulan ve RFC-7644 bölüm 3.12(yeni pencere) takip edilerek biçimlendirilir.
Hata Yanıtı
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail": "UserName is already taken",
"status": "400"
}
En yaygın hatalar
- 400 Hatalı İstek: İstek geçersizdi veya başka bir şekilde karşılanamıyor.
- 404 Bulunamadı: İstenen kaynak bulunamadı.
- yüzde 409 Conflict: İstek, hedef kaynağın mevcut durumuyla bir çakışma nedeniyle tamamlanamadı.
uniqueness: Benzersiz bir nitelik değeri sistemde zaten var.
- yüzde 500 Internal Server Error: Sunucu tarafında bir hata oluştu.