การจัดการสิทธิ์ (Permission) และทรัพยากร (Resource)
ใช้องค์กรเป็นทรัพยากรและนำเทมเพลตองค์กรไปใช้เพื่อปกป้องมัน ตัวอย่างเช่น แต่ละองค์กรมีเอกสารของตนเองภายในผู้เช่า (tenant) เฉพาะผู้ใช้ที่มีบทบาท (Role) ที่เหมาะสมเท่านั้นที่สามารถแก้ไขหรือ ลบเอกสารเหล่านั้นได้
ดูรายละเอียดที่ สิทธิ์ขององค์กร (Organization permissions)
ใช้การควบคุมการเข้าถึงตามบทบาทขององค์กร (RBAC) เพื่อจัดการสิทธิ์ของผู้ใช้
ด้วยการตั้งค่าข้างต้น คุณสามารถส่งคำเชิญผ่านอีเมล และผู้ที่ได้รับเชิญสามารถเข้าร่วมองค์กรพร้อมบทบาทที่กำหนดไว้
ผู้ใช้ที่มีบทบาทองค์กรต่างกันจะมีขอบเขต (Scopes / Permissions) ที่แตกต่างกันในโทเค็นองค์กรของตน ทั้งแอปฝั่งไคลเอนต์และบริการฝั่งแบ็กเอนด์ของคุณควรตรวจสอบขอบเขตเหล่านี้เพื่อกำหนดฟีเจอร์ที่มองเห็นได้และการกระทำที่อนุญาต
จัดการการอัปเดตขอบเขต (Scope) ในโทเค็นองค์กร
ส่วนนี้ครอบคลุมหัวข้อขั้นสูงเกี่ยวกับการจัดการเทมเพลตองค์กรและสถานการณ์การอนุญาต (Authorization) หากคุณยังไม่คุ้นเคยกับแนวคิดเหล่านี้ โปรดอ่าน การอนุญาต (Authorization) และ เทมเพลตองค์กร (Organization template) ก่อน
การจัดการการอัปเดตขอบเขตในโทเค็นองค์กรประกอบด้วย:
เพิกถอนขอบเขตที่มีอยู่
ตัวอย่างเช่น การลดระดับแอดมินเป็นสมาชิกทั่วไปควรลบขอบเขตออกจากผู้ใช้ ในกรณีนี้ ให้ล้างแคชโทเค็นองค์กรและดึงโทเค็นใหม่ด้วยโทเค็นรีเฟรช ขอบเขตที่ลดลงจะสะท้อนทันทีในโทเค็นองค์กรที่ออกใหม่
ให้ขอบเขตใหม่
สามารถแบ่งออกเป็นสองกรณี:
ให้ขอบเขตใหม่ที่มีอยู่แล้วในระบบยืนยันตัวตนของคุณ
คล้ายกับการเพิกถอนขอบเขต หากขอบเขตที่ให้ใหม่ได้ถูกลงทะเบียนไว้กับเซิร์ฟเวอร์ยืนยันตัวตนแล้ว ให้ออกโทเค็นองค์กรใหม่และขอบเขตใหม่จะสะท้อนทันที
ให้ขอบเขตใหม่ที่เพิ่งเพิ่มเข้ามาในระบบยืนยันตัวตนของคุณ
ในกรณีนี้ ให้เรียกกระบวนการเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่ (re-consent) เพื่ออัปเดตโทเค็นองค์กรของผู้ใช้ เช่น เรียกใช้เมธอด signIn ใน Logto SDK
ตรวจสอบสิทธิ์แบบเรียลไทม์และอัปเดตโทเค็นองค์กร
Logto มี Management API สำหรับดึงสิทธิ์ของผู้ใช้ในองค์กรแบบเรียลไทม์
GET /api/organizations/{id}/users/{userId}/scopes(API references)
เปรียบเทียบขอบเขตในโทเค็นองค์กรของผู้ใช้กับสิทธิ์แบบเรียลไทม์เพื่อดูว่าผู้ใช้ถูกเลื่อนขั้นหรือลดขั้นหรือไม่
-
หากถูกลดขั้น ให้ล้างแคชโทเค็นองค์กร และ SDK จะออกโทเค็นใหม่พร้อมขอบเขตที่อัปเดตโดยอัตโนมัติ
const { clearAccessToken } = useLogto();
...
// หากขอบเขตที่ดึงแบบเรียลไทม์มีน้อยกว่าขอบเขตในโทเค็นองค์กร
await clearAccessToken();กรณีนี้ไม่ต้องเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่ โทเค็นองค์กรใหม่จะถูกออกโดยอัตโนมัติผ่าน Logto SDK
-
หากมีขอบเขตใหม่ถูกเพิ่มเข้ามาในระบบยืนยันตัวตนของคุณ ให้เรียกกระบวนการเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่เพื่ออัปเดตโทเค็นองค์กรของผู้ใช้ เช่น ด้วย React SDK:
const { clearAllTokens, signIn } = useLogto();
...
// หากขอบเขตที่ดึงแบบเรียลไทม์มีขอบเขตใหม่มากกว่าขอบเขตในโทเค็นองค์กร
await clearAllTokens();
signIn({
redirectUri: '<your-sign-in-redirect-uri>',
prompt: 'consent',
});โค้ดข้างต้นจะนำทางไปยังหน้าขอความยินยอม (consent screen) และเปลี่ยนเส้นทางกลับมายังแอปของคุณโดยอัตโนมัติพร้อมขอบเขตที่อัปเดตในโทเค็นองค์กรของผู้ใช้