หน้าแรก Proton

API การจัดสรรผู้ใช้ของ SCIM

เวลาอ่าน
2 นาที
หมวดหมู่
Proton VPN for Business

ภาพรวม

SCIM (System for Cross-domain Identity Management) Provisioning API เป็นโปรโตคอลมาตรฐานสำหรับการทำให้การจัดเตรียมและการจัดการข้อมูลระบุตัวตนของผู้ใช้ในแอปพลิเคชั่นบนคลาวด์เป็นไปโดยอัตโนมัติ Proton รองรับ API นี้ ซึ่งช่วยให้สามารถสร้าง อัปเดต ลบ และจัดการบัญชีผู้ใช้และกลุ่มได้ API นี้อิงตามข้อกำหนด SCIM 2.0 ซึ่งมีโครงสร้างข้อมูลระบุตัวตนของผู้ใช้ทั่วไปและอินเทอร์เฟซ RESTful API เพื่อความง่ายในการรวมระบบ

Proton รองรับผู้ให้บริการข้อมูลระบุตัวตนดังต่อไปนี้:

URL พื้นฐานสำหรับการเรียกทั้งหมดจากผู้ให้บริการข้อมูลระบุตัวตน คือ: https://scim.proton.me/{tenantId}/v2/(หน้าต่างใหม่). เมธอด SCIM ทั้งหมดเป็นสาขาย่อยของ URL พื้นฐานนี้

การยืนยันตัวตน

ต้องระบุโทเค็นในส่วนหัว Authorization โดยมีชนิดเป็น Bearer เมื่อเรียกใช้งานวิธีการ SCIM ใดๆ โทเค็นนี้สามารถสร้างและแทนที่ได้ในส่วน Single-sign-on > SCIM automatic provisioning คลิกที่ปุ่ม “สร้างโทเคนใหม่” และคัดลอกโทเค็นที่สร้างขึ้น

ตัวอย่างเช่น:

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

ผู้ใช้งาน

คุณลักษณะหลัก

idตัวระบุที่ไม่ซ้ำกันสำหรับทรัพยากร SCIM เช่น ผู้ใช้ ซึ่งกำหนดโดย Proton
ชื่อผู้ใช้งาน (ต้องกรอก)ตัวระบุที่ไม่ซ้ำกันสำหรับผู้ใช้ ในที่นี้เราใช้อีเมลเป็นชื่อผู้ใช้งาน
เปิดใช้งานค่าบูลีนที่ระบุว่าผู้ใช้เปิดใช้งานอยู่หรือไม่ ค่าเริ่มต้นคือ 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"
			}
		}
	]
}

เรียกดูรายละเอียดของกลุ่มโดยใช้รหัสเฉพาะของกลุ่มนั้น

คำขอ

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: เกิดข้อผิดพลาดขึ้นที่ฝั่งเซิร์ฟเวอร์

ไม่พบสิ่งที่คุณกำลังค้นหาใช่หรือไม่?

ติดต่อทั่วไปcontact@proton.me
ติดต่อสื่อมวลชนmedia@proton.me
ติดต่อฝ่ายกฎหมายlegal@proton.me
ติดต่อฝ่ายพันธมิตรpartners@proton.me