SCIM प्रोविज़निंग एपीआई
- पढ़ने का समय
- 2 मिनट
- श्रेणी
- Proton VPN for Business
अवलोकन
SCIM (System for Cross-domain Identity Management) प्रोविज़निंग एपीआई एक स्टैंडर्ड प्रोटोकॉल है, जो क्लाउड-आधारित एप्लीकेशन में उपयोगकर्ता पहचान के प्रोविज़निंग और प्रबंधन को स्वचालित करता है। Proton इस एपीआई को सहायता देता है, जिससे आप उपयोगकर्ता खाते और ग्रुप बना, अपडेट कर, मिटा और संभाल सकते हैं। यह एपीआई SCIM 2.0 स्पेसिफिकेशन पर आधारित है, जो आसान एकीकरण के लिए एक सामान्य यूज़र स्कीमा और RESTful एपीआई इंटरफेस देता है।
Proton इन पहचान प्रदाताओं को सहायता देता है:
- Okta (https://www.okta.com/(नई विंडो))
- Microsoft Entra ID
पहचान प्रदाता से सभी कॉल के लिए बेस यूआरएल है: https://scim.proton.me/{tenantId}/v2/(नई विंडो)। सभी SCIM मेथड्स इसी बेस यूआरएल की शाखाएं हैं।
सत्यापन
किसी भी SCIM मेथड को कॉल करते समय टोकन को Bearer टाइप वाले Authorization हैडर में शामिल किया जाना ज़रूरी है। यह टोकन Single-sign-on > SCIM automatic provisioning सेक्शन में उत्पन्न और बदला जा सकता है। “नया टोकन उत्पन्न करें” बटन पे क्लिक करें और उत्पन्न किए गए टोकन को कॉपी करें।

उदाहरण के लिए:
GET /Users?count=10Host: scim.proton.meAccept: application/scim+jsonAuthorization: Bearer {token}यूज़र
कोर एट्रिब्यूट्स
| id | SCIM रिसोर्स, जैसे उपयोगकर्ता, के लिए एक यूनीक आइडेंटिफ़ायर, जिसे Proton ने डिफ़ाइन किया है। |
| userName (ज़रूरी) | उपयोगकर्ता के लिए एक यूनीक आइडेंटिफ़ायर। यहां हम ईमेल को userName के रूप में इस्तेमाल करते हैं। |
| सक्रिय | एक बूलियन, जो बताता है कि उपयोगकर्ता सक्रिय है या नहीं। डिफॉल्ट 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 | SCIM रिसोर्स, जैसे उपयोगकर्ता, के लिए एक यूनीक आइडेंटिफ़ायर, जिसे Proton ने डिफ़ाइन किया है। |
| displayName | ग्रुप के लिए नाम। |
| सदस्य | ग्रुप के सदस्यों की सूची। |
ऑपरेशन्स
ग्रुप की सूची पाएं
रिक्वेस्ट
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"
}
}
एरर हैंडलिंग
रिस्पॉन्स RFC-7644 सेक्शन 3.12(नई विंडो) के मुताबिक फॉर्मैट किए जाते हैं, जिनमें एक HTTP स्टेटस कोड होता है, जो एरर की प्रकृति बताता है, और एक रिस्पॉन्स बॉडी होती है, जो अधिक जानकारी देती है।
एरर रिस्पॉन्स
{
"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: सर्वर साइड पे एक एरर आया।