การจัดเตรียมผู้ใช้ด้วย SCIM
การกำหนดค่าการจัดเตรียมผู้ใช้ด้วย SCIM
ScribbleMaps รองรับ SCIM 2.0 (System for Cross-domain Identity Management) สำหรับการจัดเตรียมและยกเลิกการจัดเตรียมผู้ใช้โดยอัตโนมัติ ซึ่งช่วยให้คุณซิงค์ผู้ใช้จากผู้ให้บริการข้อมูลประจำตัว (IdP) ของคุณไปยัง ScribbleMaps โดยอัตโนมัติ เพื่อให้สมาชิกทีมตรงกับไดเรกทอรีขององค์กรคุณอยู่เสมอ
การจัดเตรียมผู้ใช้ด้วย SCIM พร้อมใช้งานที่ team.scribblemaps.com และใช้งานได้ฟรีทั้งหมด
สารบัญ
- SCIM คืออะไร
- ก่อนเริ่มต้น
- ขั้น 1: เปิดใช้งาน SCIM ใน ScribbleMaps
- ขั้น 2: สร้าง Bearer Token
- ขั้น 3: กำหนดค่าผู้ให้บริการข้อมูลประจำตัวของคุณ
- ขั้น 4: ตั้งค่าการกำหนดผลิตภัณฑ์เริ่มต้น
- ขั้น 5: ทดสอบและกำหนดผู้ใช้
- คู่มือเฉพาะผู้ให้บริการ
- การดำเนินการ SCIM ที่รองรับ
- การจัดการวงจรชีวิตผู้ใช้
- การแก้ไขปัญหา
SCIM คืออะไร
SCIM (System for Cross-domain Identity Management) เป็นมาตรฐานเปิดที่ช่วยให้คุณทำสิ่งต่อไปนี้ได้โดยอัตโนมัติ:
- จัดเตรียมผู้ใช้ - สร้างบัญชี ScribbleMaps โดยอัตโนมัติเมื่อมีการกำหนดผู้ใช้ใน IdP ของคุณ
- อัปเดตผู้ใช้ - ซิงค์ข้อมูลผู้ใช้ (ชื่อ, อีเมล) ให้ตรงกันอยู่เสมอ
- ยกเลิกการจัดเตรียมผู้ใช้ - ปิดใช้งานบัญชีโดยอัตโนมัติเมื่อผู้ใช้ถูกนำออกจาก IdP ของคุณ
- จัดการบทบาท - กำหนดผู้ใช้ให้เป็นบทบาทผู้ดูแลระบบหรือสมาชิกผ่านการเป็นสมาชิกกลุ่ม
SCIM ทำงานร่วมกับ SSO (SAML/OIDC) เพื่อให้การจัดการวงจรชีวิตข้อมูลประจำตัวสมบูรณ์
ก่อนเริ่มต้น
- คุณต้องเป็น เจ้าของทีม จึงจะกำหนดค่า SCIM ได้
- คุณต้องมีสิทธิ์เข้าถึงคอนโซลผู้ดูแลระบบของผู้ให้บริการข้อมูลประจำตัวของคุณ
- IdP ของคุณต้องรองรับ SCIM 2.0 (Okta, Microsoft Entra ID, OneLogin, JumpCloud ฯลฯ)
- เราแนะนำให้กำหนดค่า SSO ก่อน SCIM เพื่อประสบการณ์การใช้งานที่ดีที่สุด
ขั้น 1: เปิดใช้งาน SCIM ใน ScribbleMaps
- เข้าสู่ระบบที่ team.scribblemaps.com
- ไปที่ SCIM Provisioning (แถบด้านซ้าย)
- สลับ Enable SCIM เป็น ON
หมายเหตุ: คุณต้องสร้าง Bearer Token ก่อน SCIM จึงจะเปิดใช้งานได้อย่างสมบูรณ์
ขั้น 2: สร้าง Bearer Token
Bearer Token ใช้ยืนยันตัวตนของผู้ให้บริการข้อมูลประจำตัวของคุณกับ ScribbleMaps
- ในหน้าการตั้งค่า SCIM ให้คลิก สร้าง Token
- คัดลอก Token ทันทีและเก็บไว้อย่างปลอดภัย
หมายเหตุด้านความปลอดภัยที่สำคัญ:
- Token จะแสดงเพียงครั้งเดียว - หากคุณทำหาย คุณจะต้องสร้างใหม่
- ปฏิบัติต่อ Token นี้เหมือนรหัสผ่าน - ทุกคนที่มี Token สามารถจัดการผู้ใช้ของทีมคุณได้
- คุณสามารถเพิกถอนและสร้าง Token ใหม่ได้ทุกเมื่อหากถูกบุกรุก
- การเพิกถอน Token จะหยุดการดำเนินการ SCIM ทั้งหมดทันทีจนกว่าจะกำหนดค่า Token ใหม่
ขั้น 3: กำหนดค่าผู้ให้บริการข้อมูลประจำตัวของคุณ
ใช้รายละเอียดต่อไปนี้เพื่อกำหนดค่า ScribbleMaps เป็นแอปพลิเคชัน SCIM ใน IdP ของคุณ:
| การตั้งค่า | ค่า |
|---|---|
| SCIM Base URL | https://api.scribblemaps.com/scim/v2 |
| วิธีการยืนยันตัวตน | HTTP Header / Bearer Token |
| หัวเรื่อง Authorization | Bearer YOUR_TOKEN_HERE |
| ตัวระบุที่ไม่ซ้ำ |
userName (ที่อยู่อีเมล) |
เอกสารอ้างอิงจุดปลายทาง SCIM
| จุดปลายทาง | วัตถุประสงค์ |
|---|---|
/scim/v2/Users |
การจัดเตรียมและจัดการผู้ใช้ |
/scim/v2/Groups |
การจัดการบทบาท/การเป็นสมาชิกกลุ่ม |
/scim/v2/ServiceProviderConfig |
ความสามารถของ SCIM (การค้นหา) |
/scim/v2/ResourceTypes |
ประเภททรัพยากรที่รองรับ (การค้นหา) |
/scim/v2/Schemas |
สคีมาของผู้ใช้และกลุ่ม (การค้นหา) |
ขั้น 4: ตั้งค่าการกำหนดผลิตภัณฑ์เริ่มต้น (ไม่บังคับ)
คุณสามารถกำหนดไลเซนส์ผลิตภัณฑ์ให้ผู้ใช้โดยอัตโนมัติเมื่อมีการจัดเตรียมผ่าน SCIM:
- ในหน้าการตั้งค่า SCIM ให้ค้นหา Default Product Assignment
- เลือกผลิตภัณฑ์:
- ไม่มี - สร้างผู้ใช้โดยไม่มีผลิตภัณฑ์ (กำหนดด้วยตนเองภายหลัง)
- Viewer - สิทธิ์ดูอย่างเดียว
- Pro Basic - ฟีเจอร์การแก้ไขมาตรฐาน
- Pro Business - เข้าถึงฟีเจอร์ทั้งหมด
- คลิก บันทึก
หมายเหตุ: ผู้ใช้จะได้รับผลิตภัณฑ์ก็ต่อเมื่อมีที่นั่งว่าง หากไม่มีที่นั่งว่าง ผู้ใช้จะถูกสร้างขึ้นแต่ไม่ถูกกำหนดผลิตภัณฑ์
ขั้น 5: ทดสอบและกำหนดผู้ใช้
- ในผู้ให้บริการข้อมูลประจำตัวของคุณ ให้ใช้ฟีเจอร์ Test Connection เพื่อตรวจสอบการเชื่อมต่อ SCIM
- กำหนดผู้ใช้ทดสอบให้กับแอปพลิเคชัน ScribbleMaps ใน IdP ของคุณ
- ตรวจสอบว่าผู้ใช้ปรากฏในรายชื่อสมาชิกทีม ScribbleMaps ของคุณ
- เมื่อยืนยันแล้ว ให้กำหนดผู้ใช้หรือกลุ่มเพิ่มเติมตามต้องการ
คู่มือเฉพาะผู้ให้บริการ
Okta
- ใน Okta Admin Console ไปที่ Applications > Browse App Catalog
- ค้นหา "SCIM 2.0 Test App (Header Auth)" หรือสร้างแอป SCIM แบบกำหนดเอง
- ไปที่แท็บ Provisioning > Configure API Integration
- เลือก Enable API integration
- กำหนดค่า:
-
SCIM 2.0 Base URL:
https://api.scribblemaps.com/scim/v2 - OAuth Bearer Token: วาง SCIM Token ของ ScribbleMaps ของคุณ
-
SCIM 2.0 Base URL:
- คลิก Test API Credentials เพื่อตรวจสอบ
- ไปที่ Provisioning > To App และเปิดใช้งาน:
- Create Users
- Update User Attributes
- Deactivate Users
- ไปที่แท็บ Assignments เพื่อกำหนดผู้ใช้หรือกลุ่ม
Microsoft Entra ID (Azure AD)
- ใน Azure Portal ไปที่ Microsoft Entra ID > Enterprise Applications
- เลือกแอปพลิเคชัน ScribbleMaps ของคุณ (หรือสร้างใหม่)
- ไปที่ Provisioning > เริ่มต้นใช้งาน
- ตั้งค่า Provisioning Mode เป็น Automatic
- ภายใต้ Admin Credentials:
-
Tenant URL:
https://api.scribblemaps.com/scim/v2 - Secret Token: วาง SCIM Token ของ ScribbleMaps ของคุณ
-
Tenant URL:
- คลิก Test Connection เพื่อตรวจสอบ
- กำหนดค่า Mappings สำหรับแอตทริบิวต์ผู้ใช้
- ตั้งค่า Provisioning Status เป็น On
- ไปที่ Users and groups เพื่อกำหนดผู้ใช้
OneLogin
- ใน OneLogin Admin ไปที่ Applications > Add App
- ค้นหา "SCIM Provisioner with SAML (SCIM v2 Core)" หรือที่คล้ายกัน
- ไปที่แท็บ Configuration
- กำหนดค่า:
-
SCIM Base URL:
https://api.scribblemaps.com/scim/v2 - SCIM Bearer Token: วาง SCIM Token ของ ScribbleMaps ของคุณ
-
SCIM Base URL:
- ไปที่แท็บ Provisioning และเปิดใช้งานการจัดเตรียม
- ไปที่แท็บ Users เพื่อกำหนดผู้ใช้
JumpCloud
- ใน JumpCloud Admin ไปที่ SSO Applications
- คลิก + เพื่อเพิ่มแอปพลิเคชันใหม่
- เลือก Custom SCIM
- กำหนดค่า:
-
Base URL:
https://api.scribblemaps.com/scim/v2 - Token Key: วาง SCIM Token ของ ScribbleMaps ของคุณ
- Authentication: Bearer Token
-
Base URL:
- คลิก Test Connection
- กำหนดค่าการแมปแอตทริบิวต์
- กำหนดกลุ่มผู้ใช้ให้กับแอปพลิเคชัน
การดำเนินการ SCIM ที่รองรับ
การดำเนินการกับผู้ใช้
| การดำเนินการ | วิธีการ | รองรับ | คำอธิบาย |
|---|---|---|---|
| แสดงรายการผู้ใช้ | GET /Users | ใช่ | ดึงข้อมูลผู้ใช้ทั้งหมดพร้อมการแบ่งหน้าและตัวกรอง |
| ดึงข้อมูลผู้ใช้ | GET /Users/{id} | ใช่ | ดึงข้อมูลผู้ใช้เฉพาะรายตาม ID |
| สร้างผู้ใช้ | POST /Users | ใช่ | จัดเตรียมผู้ใช้ใหม่ |
| แทนที่ผู้ใช้ | PUT /Users/{id} | ใช่ | อัปเดตแอตทริบิวต์ผู้ใช้ทั้งหมด |
| อัปเดตผู้ใช้ | PATCH /Users/{id} | ใช่ | อัปเดตแอตทริบิวต์ผู้ใช้บางส่วน |
| ลบผู้ใช้ | DELETE /Users/{id} | ใช่ | ปิดใช้งานผู้ใช้ (soft delete) |
การดำเนินการกับกลุ่ม
| การดำเนินการ | วิธีการ | รองรับ | คำอธิบาย |
|---|---|---|---|
| แสดงรายการกลุ่ม | GET /Groups | ใช่ | ส่งคืนกลุ่มบทบาทผู้ดูแลระบบและสมาชิก |
| ดึงข้อมูลกลุ่ม | GET /Groups/{id} | ใช่ | ดึงข้อมูลกลุ่มพร้อมรายชื่อสมาชิก |
| อัปเดตกลุ่ม | PATCH /Groups/{id} | ใช่ | เพิ่ม/นำสมาชิกออกจากกลุ่มบทบาท |
| สร้างกลุ่ม | POST /Groups | ไม่ | ไม่รองรับ (บทบาทถูกกำหนดตายตัว) |
แอตทริบิวต์ผู้ใช้ที่รองรับ
| แอตทริบิวต์ SCIM | ฟิลด์ ScribbleMaps | จำเป็น |
|---|---|---|
userName |
ที่อยู่อีเมล | ใช่ |
externalId |
ตัวระบุ IdP ภายนอก | ไม่ |
name.givenName |
ชื่อ | ไม่ |
name.familyName |
นามสกุล | ไม่ |
displayName |
ชื่อที่แสดง | ไม่ |
active |
สถานะบัญชี | ไม่ |
emails[].value |
ที่อยู่อีเมล | ไม่ |
ตัวกรองที่รองรับ
| ตัวกรอง | ตัวอย่าง |
|---|---|
| กรองตามอีเมล | userName eq "[email protected]" |
| กรองตาม external ID | externalId eq "12345" |
| กรองตามสถานะ | active eq true |
การจัดการวงจรชีวิตผู้ใช้
เมื่อมีการจัดเตรียมผู้ใช้
- บัญชีสมาชิกทีมใหม่ถูกสร้างขึ้นใน ScribbleMaps
- ข้อมูลผู้ใช้ (ชื่อ, อีเมล) ถูกเติมจาก IdP ของคุณ
- หากกำหนดค่าผลิตภัณฑ์เริ่มต้นไว้และมีที่นั่งว่าง ไลเซนส์จะถูกกำหนดให้โดยอัตโนมัติ
- ผู้ใช้สามารถเข้าสู่ระบบผ่าน SSO ได้ทันที (หากกำหนดค่าไว้)
เมื่อมีการอัปเดตผู้ใช้
- แอตทริบิวต์ผู้ใช้ (ชื่อ, ชื่อที่แสดง) ถูกอัปเดตให้ตรงกับ IdP ของคุณ
- การเปลี่ยนแปลงอีเมลจะถูกซิงค์ (เว้นแต่ผู้ใช้ได้เชื่อมโยงบัญชีของตน)
เมื่อมีการยกเลิกการจัดเตรียมผู้ใช้
- บัญชีของผู้ใช้ถูกปิดใช้งาน (soft delete)
- ไลเซนส์ผลิตภัณฑ์ทั้งหมดถูกนำออก ทำให้ที่นั่งว่าง
- เซสชันที่ใช้งานอยู่ทั้งหมดถูกทำให้ใช้ไม่ได้ทันที
- ผู้ใช้ไม่สามารถเข้าสู่ระบบได้อีก
- ข้อมูลผู้ใช้และแผนที่จะถูกเก็บรักษาไว้ (ไม่ถูกลบ)
- บัญชีสามารถเปิดใช้งานอีกครั้งได้หากผู้ใช้ถูกจัดเตรียมใหม่
การจัดการบทบาทผ่านกลุ่ม
ScribbleMaps เปิดเผยกลุ่มบทบาทสองกลุ่มผ่าน SCIM:
| ID กลุ่ม | บทบาท | สิทธิ์ |
|---|---|---|
admin |
ผู้ดูแลระบบ | จัดการการตั้งค่าทีม ผู้ใช้ และการเรียกเก็บเงิน |
member |
สมาชิก | สิทธิ์เข้าถึงของสมาชิกทีมมาตรฐาน |
หากต้องการกำหนดผู้ใช้เป็นผู้ดูแลระบบ ให้เพิ่มผู้ใช้เข้ากลุ่ม admin ผ่าน SCIM PATCH ไม่สามารถแก้ไขบทบาท เจ้าของ ผ่าน SCIM ได้
การแก้ไขปัญหา
ปัญหาที่พบบ่อย
"401 Unauthorized" หรือ "Invalid token"
- ตรวจสอบว่า Bearer Token ถูกต้องและยังไม่ถูกเพิกถอน
- ตรวจสอบว่าส่ง Token ในหัวเรื่อง Authorization เป็น
Bearer YOUR_TOKEN - ตรวจสอบว่า Token หมดอายุแล้วหรือไม่ (หากมีการตั้งวันหมดอายุ)
- สร้าง Token ใหม่หากจำเป็น
"409 Conflict" - ผู้ใช้มีอยู่แล้ว
- มีผู้ใช้ที่ใช้อีเมลนั้นอยู่ในทีมของคุณแล้ว
- หากผู้ใช้ที่มีอยู่ถูกปิดใช้งาน SCIM จะเปิดใช้งานผู้ใช้นั้นอีกครั้งโดยอัตโนมัติ
- ตรวจสอบที่อยู่อีเมลซ้ำใน IdP ของคุณ
"400 Bad Request" - ขาดฟิลด์ที่จำเป็น
- ตรวจสอบว่ามี
userName(อีเมล) อยู่ในคำขอ - ตรวจสอบว่ารูปแบบอีเมลถูกต้อง
- ตรวจสอบการกำหนดค่าการแมปแอตทริบิวต์ของ IdP ของคุณ
สร้างผู้ใช้แล้วแต่ไม่ได้กำหนดผลิตภัณฑ์
- ตรวจสอบว่ามีการกำหนดค่าผลิตภัณฑ์เริ่มต้นในการตั้งค่า SCIM หรือไม่
- ตรวจสอบว่าคุณมีที่นั่งว่างสำหรับผลิตภัณฑ์เริ่มต้น
- สามารถกำหนดผลิตภัณฑ์ให้ผู้ใช้ด้วยตนเองได้ใน Team Settings
การเปลี่ยนแปลงผู้ใช้ไม่ซิงค์
- IdP บางรายซิงค์ตามกำหนดเวลา (เช่น ทุก 40 นาทีสำหรับ Azure AD)
- ลองบังคับซิงค์ด้วยตนเองใน IdP ของคุณ
- ตรวจสอบว่า SCIM ยังคงเปิดใช้งานอยู่และ Token ยังใช้งานได้
การทดสอบการเชื่อมต่อล้มเหลว
- ตรวจสอบว่า SCIM Base URL คือ
https://api.scribblemaps.com/scim/v2ทุกประการ - ตรวจสอบให้แน่ใจว่าไม่มีเครื่องหมายทับท้ายหรือการพิมพ์ผิด
- ตรวจสอบว่าเครือข่าย/ไฟร์วอลล์ของคุณอนุญาต HTTPS ขาออกไปยัง api.scribblemaps.com
ต้องการความช่วยเหลือ
หากคุณประสบปัญหากับการจัดเตรียมผู้ใช้ด้วย SCIM โปรดติดต่อทีมสนับสนุนของเราพร้อมข้อมูลต่อไปนี้:
- ชื่อทีมของคุณ
- ผู้ให้บริการข้อมูลประจำตัวที่คุณใช้
- ข้อความแสดงข้อผิดพลาดจากบันทึกการจัดเตรียมของ IdP ของคุณ
- ภาพหน้าจอการกำหนดค่า SCIM ของคุณ (ปกปิด Token)
เราพร้อมช่วยให้คุณกำหนดค่าการจัดเตรียมผู้ใช้ด้วย SCIM สำหรับองค์กรของคุณ
อัปเดตล่าสุด