ข้ามไปยังเนื้อหาหลัก

การจัดการสิทธิ์ (Permission) และทรัพยากร (Resource)

ใช้องค์กรเป็นทรัพยากรและนำเทมเพลตองค์กรไปใช้เพื่อปกป้องมัน ตัวอย่างเช่น แต่ละองค์กรมีเอกสารของตนเองภายในผู้เช่า (tenant) เฉพาะผู้ใช้ที่มีบทบาท (Role) ที่เหมาะสมเท่านั้นที่สามารถแก้ไขหรือ ลบเอกสารเหล่านั้นได้

ดูรายละเอียดที่ สิทธิ์ขององค์กร (Organization permissions)

ใช้การควบคุมการเข้าถึงตามบทบาทขององค์กร (RBAC) เพื่อจัดการสิทธิ์ของผู้ใช้

ด้วยการตั้งค่าข้างต้น คุณสามารถส่งคำเชิญผ่านอีเมล และผู้ที่ได้รับเชิญสามารถเข้าร่วมองค์กรพร้อมบทบาทที่กำหนดไว้

ผู้ใช้ที่มีบทบาทองค์กรต่างกันจะมีขอบเขต (Scopes / Permissions) ที่แตกต่างกันในโทเค็นองค์กรของตน ทั้งแอปฝั่งไคลเอนต์และบริการฝั่งแบ็กเอนด์ของคุณควรตรวจสอบขอบเขตเหล่านี้เพื่อกำหนดฟีเจอร์ที่มองเห็นได้และการกระทำที่อนุญาต

จัดการการอัปเดตขอบเขต (Scope) ในโทเค็นองค์กร

ส่วนนี้ครอบคลุมหัวข้อขั้นสูงเกี่ยวกับการจัดการเทมเพลตองค์กรและสถานการณ์การอนุญาต (Authorization) หากคุณยังไม่คุ้นเคยกับแนวคิดเหล่านี้ โปรดอ่าน การอนุญาต (Authorization) และ เทมเพลตองค์กร (Organization template) ก่อน

การจัดการการอัปเดตขอบเขตในโทเค็นองค์กรประกอบด้วย:

เพิกถอนขอบเขตที่มีอยู่

ตัวอย่างเช่น การลดระดับแอดมินเป็นสมาชิกทั่วไปควรลบขอบเขตออกจากผู้ใช้ ในกรณีนี้ ให้ล้างแคชโทเค็นองค์กรและดึงโทเค็นใหม่ด้วยโทเค็นรีเฟรช ขอบเขตที่ลดลงจะสะท้อนทันทีในโทเค็นองค์กรที่ออกใหม่

ให้ขอบเขตใหม่

สามารถแบ่งออกเป็นสองกรณี:

ให้ขอบเขตใหม่ที่มีอยู่แล้วในระบบยืนยันตัวตนของคุณ

คล้ายกับการเพิกถอนขอบเขต หากขอบเขตที่ให้ใหม่ได้ถูกลงทะเบียนไว้กับเซิร์ฟเวอร์ยืนยันตัวตนแล้ว ให้ออกโทเค็นองค์กรใหม่และขอบเขตใหม่จะสะท้อนทันที

ให้ขอบเขตใหม่ที่เพิ่งเพิ่มเข้ามาในระบบยืนยันตัวตนของคุณ

ในกรณีนี้ ให้เรียกกระบวนการเข้าสู่ระบบใหม่หรือขอความยินยอมใหม่ (re-consent) เพื่ออัปเดตโทเค็นองค์กรของผู้ใช้ เช่น เรียกใช้เมธอด signIn ใน Logto SDK

ตรวจสอบสิทธิ์แบบเรียลไทม์และอัปเดตโทเค็นองค์กร

Logto มี Management API สำหรับดึงสิทธิ์ของผู้ใช้ในองค์กรแบบเรียลไทม์

เปรียบเทียบขอบเขตในโทเค็นองค์กรของผู้ใช้กับสิทธิ์แบบเรียลไทม์เพื่อดูว่าผู้ใช้ถูกเลื่อนขั้นหรือลดขั้นหรือไม่

  • หากถูกลดขั้น ให้ล้างแคชโทเค็นองค์กร และ 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) และเปลี่ยนเส้นทางกลับมายังแอปของคุณโดยอัตโนมัติพร้อมขอบเขตที่อัปเดตในโทเค็นองค์กรของผู้ใช้