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

เทมเพลตองค์กร (Organization template)

เทมเพลตองค์กร (Organization template) ใน Logto กำหนดชุดบทบาท (Roles) และสิทธิ์ (Permissions) ที่สอดคล้องกันสำหรับทุกองค์กร (tenant) ในผลิตภัณฑ์ SaaS ของคุณ โดยการรวมศูนย์นิยามเหล่านี้ คุณสามารถบังคับใช้นโยบายความปลอดภัย เปิดใช้งานการเริ่มต้นใช้งานที่ขยายได้ และรับประกันประสบการณ์ผู้ใช้ที่ยอดเยี่ยมในทุกองค์กร

ข้อมูล:

หากคุณไม่ได้สร้างแอปพลิเคชันแบบหลายผู้เช่า (multi-tenant) หรือไม่ต้องการบทบาท/สิทธิ์เฉพาะองค์กร สามารถข้ามส่วนนี้ได้ บทบาทและสิทธิ์ระดับโกลบอลของ Logto เพียงพอสำหรับแอปพลิเคชันแบบผู้เช่าเดียวหรือที่ไม่อิงองค์กร

เทมเพลตองค์กรคืออะไร?

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

  • ทำไมต้องใช้เทมเพลต?
    • บังคับใช้นโยบายควบคุมการเข้าถึงที่เหมือนกันสำหรับทุกองค์กร
    • ทำให้การเริ่มต้นใช้งานสำหรับ tenant และสมาชิกทีมใหม่ง่ายขึ้น
    • ทำให้การอัปเดตและตรวจสอบ RBAC (การควบคุมการเข้าถึงตามบทบาท) ง่ายขึ้นเมื่อผลิตภัณฑ์เติบโต

แนวคิดหลัก

  • บทบาทองค์กร (Organization roles): กลุ่มของสิทธิ์ที่มอบให้กับผู้ใช้หรือไคลเอนต์ M2M (machine-to-machine) ภายในองค์กร บทบาทกำหนดว่า “ใครสามารถทำอะไร” ในแต่ละองค์กร
  • สิทธิ์องค์กร (Organization permissions): การกระทำที่ละเอียด (ไม่ใช่ API) เช่น ฟีเจอร์ UI หรือ business logic ที่สามารถกำหนดให้กับบทบาทได้
  • ทรัพยากร API (API resources): จุดเชื่อมต่อ/บริการ API ที่ได้รับการปกป้องด้วยสิทธิ์ บทบาทองค์กรสามารถเชื่อมโยงกับทรัพยากร API เพื่อการเข้าถึง API ที่อยู่ในขอบเขตองค์กร
  • การแมปบทบาท-สิทธิ์ (Role-permission mapping): แต่ละบทบาทองค์กรในเทมเพลตสามารถแมปกับสิทธิ์หนึ่งรายการหรือมากกว่าได้
  • การเผยแพร่เทมเพลต (Template propagation): การเปลี่ยนแปลงเทมเพลตจะอัปเดตบทบาทและสิทธิ์ที่มีในทุกองค์กร
บันทึก:

บทบาทและสิทธิ์ขององค์กร (รวมถึงสิทธิ์ของทรัพยากร API) แตกต่างจากบทบาทและสิทธิ์ระดับโกลบอล อย่างไรก็ตาม ทรัพยากร API และสิทธิ์ของมันถูกนิยามแบบรวมศูนย์และสามารถอ้างอิงได้ทั้งในบริบทโกลบอลและองค์กร

เปรียบเทียบกับบทบาทและสิทธิ์ระดับโกลบอล

เปรียบเทียบประเภทบทบาท

ประเภทบทบาทสามารถมีสิทธิ์ทรัพยากร API ได้หรือไม่?สามารถมีสิทธิ์องค์กร (ไม่ใช่ API) ได้หรือไม่?
โกลบอลได้ไม่ได้
องค์กรได้ได้

เปรียบเทียบประเภทสิทธิ์

ประเภทสิทธิ์นิยามในกำหนดให้บทบาทโกลบอลได้หรือไม่?กำหนดให้บทบาทองค์กรได้หรือไม่?
ทรัพยากร APIเอนทิตีทรัพยากร APIได้ได้
องค์กรเทมเพลตองค์กรไม่ได้ได้

โครงสร้างของเทมเพลตองค์กร

เทมเพลตองค์กรประกอบด้วย:

  • บทบาท (Roles): เช่น Admin, Member, Viewer, Billing
  • สิทธิ์องค์กร (Organization permissions): เช่น invite:member, manage:billing, view:analytics
  • เมทริกซ์บทบาท-สิทธิ์ (Role-permission matrix): การแมปว่าสิทธิ์ใด (รวมถึงสิทธิ์องค์กรและสิทธิ์ทรัพยากร API) ถูกมอบหมายโดยแต่ละบทบาท

ภาพรวม

ภาพรวมเทมเพลตองค์กร

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

แต่ละองค์กรที่สร้างใน Logto จะมีชุดบทบาทและสิทธิ์เดียวกันนี้ และผู้ใช้/ไคลเอนต์สามารถถูกกำหนดบทบาทต่อองค์กรได้ตามต้องการ

ใช้เทมเพลตองค์กรในผลิตภัณฑ์ของคุณ

เทมเพลตองค์กรของ Logto ถูกออกแบบมาสำหรับแอป SaaS แบบหลายผู้เช่าสมัยใหม่ที่:

  • แต่ละองค์กรควรมีตัวเลือกบทบาทและสิทธิ์เหมือนกันสำหรับการเริ่มต้นใช้งาน การทำงานร่วมกัน และการจัดการ
  • คุณต้องการหลีกเลี่ยงการกำหนดบทบาท/สิทธิ์ด้วยตนเองสำหรับแต่ละองค์กรใหม่
  • RBAC ที่สอดคล้องกันมีความสำคัญต่อการปฏิบัติตามข้อกำหนด ความปลอดภัย และความเชื่อมั่นของลูกค้า
  • คุณต้องการพัฒนาการควบคุมการเข้าถึงตามการเปลี่ยนแปลงของผลิตภัณฑ์โดยไม่กระทบองค์กรที่มีอยู่

ตัวอย่างการใช้งาน

  • ผลิตภัณฑ์ SaaS ที่มี workspace, ทีม หรือบริษัท (แต่ละอันเป็น tenant)
  • แพลตฟอร์มที่มีบทบาท admin/member/viewer แบบละเอียดต่อองค์กร
  • ผลิตภัณฑ์ที่มีทั้งสิทธิ์ API และไม่ใช่ API

แนวปฏิบัติที่ดี & การจัดการเวอร์ชัน

  • ให้บทบาทและสิทธิ์ขับเคลื่อนด้วยธุรกิจ: ใช้ชื่อที่ชัดเจนและสื่อถึงการกระทำจริง (ไม่ใช่แค่ endpoint ทางเทคนิค)
  • หลีกเลี่ยงการกระจายบทบาท/สิทธิ์มากเกินไป: เริ่มต้นแบบเรียบง่าย เพิ่มบทบาท/สิทธิ์ใหม่เมื่อจำเป็นจริง ๆ เท่านั้น
  • สื่อสารการเปลี่ยนแปลง: แจ้งผู้ใช้/ผู้ดูแลระบบหากตัวเลือกบทบาทหรือสิทธิ์ในองค์กรของพวกเขากำลังจะเปลี่ยนแปลง
  • พัฒนาเทมเพลต: เมื่อผลิตภัณฑ์เติบโต คุณสามารถอัปเดตเทมเพลตได้ตลอดเวลา ทุกองค์กรจะได้รับบทบาท/สิทธิ์ใหม่โดยอัตโนมัติ
  • การจัดการเวอร์ชัน (ไม่บังคับ): สำหรับการเปลี่ยนแปลงใหญ่ ควรพิจารณาจัดการเวอร์ชันของเทมเพลตและสื่อสารแผนการย้ายข้อมูลกับลูกค้า

การจัดการเทมเพลตองค์กรของคุณ

คุณสามารถจัดการเทมเพลตองค์กรได้จาก Console → Organization template หรือผ่าน Logto Management API

  • สร้างบทบาท: เพิ่มบทบาทผู้ใช้และบทบาท M2M ในเทมเพลตของคุณ แต่ละบทบาทจะมีให้กับทุกองค์กรใน Logto tenant ของคุณ
  • สร้างสิทธิ์: กำหนดสิทธิ์สำหรับทั้งทรัพยากร API และการกระทำที่ไม่ใช่ API (ในแอป)
  • แก้ไขเมทริกซ์บทบาท-สิทธิ์: กำหนดสิทธิ์ให้กับบทบาทผ่าน Logto Console หรือ Management API
  • อัปเดตหรือลบบทบาท/สิทธิ์: การเปลี่ยนแปลงเทมเพลตจะถูกนำไปใช้กับทุกองค์กรโดยอัตโนมัติ (ผู้ใช้/ไคลเอนต์จะยังคงได้รับบทบาทเดิม มีเพียงชุดสิทธิ์ที่เปลี่ยนแปลง)

สำหรับคู่มือทีละขั้นตอนเกี่ยวกับการจัดการบทบาทและสิทธิ์ขององค์กร ดู การควบคุมการเข้าถึงตามบทบาท

คำถามที่พบบ่อย

จำเป็นต้องใช้สิทธิ์องค์กรหรือไม่?

ไม่จำเป็น สิทธิ์องค์กรเป็นทางเลือก คุณสามารถใช้เทมเพลตองค์กรเพื่อกำหนดเฉพาะบทบาทและสิทธิ์ของทรัพยากร API ก็ได้

จะเกิดอะไรขึ้นถ้าฉันเปลี่ยนเทมเพลตองค์กร?

การเปลี่ยนแปลงบทบาทหรือสิทธิ์จะสะท้อนในทุกองค์กรทันที ผู้ใช้และไคลเอนต์จะยังคงได้รับบทบาทเดิม มีเพียงสิ่งที่บทบาทนั้นอนุญาตเท่านั้นที่อาจเปลี่ยนแปลง

สามารถปรับแต่งบทบาทหรือสิทธิ์ต่อองค์กรได้หรือไม่?

ไม่สามารถทำได้โดยตรง เทมเพลตองค์กรบังคับใช้โมเดลที่สอดคล้องกันในทุก tenant (แต่คุณยังสามารถกำหนดบทบาทต่างกันให้ผู้ใช้/ไคลเอนต์แต่ละคนในแต่ละองค์กรได้)

จะย้อนกลับหรือย้ายการเปลี่ยนแปลงได้อย่างไร?

อัปเดตเทมเพลตด้วยตนเองเพื่อคืนค่าบทบาท/สิทธิ์ก่อนหน้า สำหรับการย้ายข้อมูลที่ซับซ้อน ควรพิจารณากลยุทธ์การจัดการเวอร์ชัน

ถ้าลบบทบาทหรือสิทธิ์จะเกิดอะไรขึ้น?

ผู้ใช้/ไคลเอนต์ที่มีบทบาทนั้นจะสูญเสียการเข้าถึงสิทธิ์ที่ผูกกับบทบาทนั้น การลบสิทธิ์จะลบออกจากทุกบทบาทที่มีสิทธิ์นั้น

มีข้อจำกัดหรือไม่?

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

อ่านเพิ่มเติม

ปกป้องสิทธิ์องค์กร (ไม่ใช่ API) ปกป้องทรัพยากร API ระดับองค์กร ปรับแต่งการอ้างสิทธิ์ในโทเค็น