กำหนดฟีเจอร์การจัดการองค์กร
ก่อนออกแบบประสบการณ์องค์กรของคุณ ให้ระบุความต้องการหลักสำหรับแอปแบบหลายผู้เช่า (multi-tenant) ของคุณ บทนี้จะเน้นประเด็นสำคัญที่ควรพิจารณาเมื่อกำหนดประสบการณ์นั้น
กำหนดการควบคุมการเข้าถึงภายในองค์กร
ในกรณีนี้ ภายในผู้เช่า (tenant) ผู้ดูแลองค์กร (organization admin) สามารถอัปเดตบทบาท (role) ของผู้ใช้ได้ ในขณะที่สมาชิกทั่วไปไม่สามารถทำได้ (ในทางตรงกันข้าม การสร้างองค์กรเป็นการกระทำในระดับระบบที่ผู้ใช้ปลายทางทุกคนสามารถทำได้ในแอป SaaS แบบหลายผู้เช่า) เพื่อรองรับการควบคุมการเข้าถึงในระดับละเอียดนี้ ให้กำหนดสิทธิ์ (permissions) และบทบาท (roles) ขององค์กร เพื่อให้เฉพาะผู้ดูแลเท่านั้นที่สามารถอัปเดตบทบาทภายในองค์กรได้
ดู แม่แบบองค์กร (Organization template) เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับบทบาทและสิทธิ์ขององค์กร
บทบาท admin จะมีสิทธิ์เข้าถึงทรัพยากรทั้งหมดในองค์กร ในขณะที่บทบาท member จะมีสิทธิ์จำกัด ตัวอย่างเช่น แต่ละบทบาทอาจมีสิทธิ์ดังนี้:
- บทบาท
admin:read:data- อ่านข้อมูลทรัพยากรทั้งหมดขององค์กรwrite:data- เขียนข้อมูลทรัพยากรทั้งหมดขององค์กรdelete:data- ลบข้อมูลทรัพยากรทั้งหมดขององค์กรinvite:member- เชิญสมาชิกเข้าสู่องค์กรmanage:member- จัดการสมาชิกในองค์กรdelete:member- ลบสมาชิกออกจากองค์กร
- บทบาท
member:read:data- อ่านข้อมูลทรัพยากรทั้งหมดขององค์กรwrite:data- เขียนข้อมูลทรัพยากรทั้งหมดขององค์กรinvite:member- เชิญสมาชิกเข้าสู่องค์กร
คุณสามารถตั้งค่าสิ่งเหล่านี้ได้อย่างง่ายดายใน Logto Console การตั้งค่าการควบคุมการเข้าถึงเป็นส่วนสำคัญของสถาปัตยกรรมองค์กร (multi-tenant) ของคุณ
เปิดให้ผู้ใช้จัดการองค์กรของตนเอง
แอปของคุณอาจต้องมีฟีเจอร์การจัดการหลายอย่าง เพื่อสร้างฟีเจอร์เหล่านี้ ให้ใช้ Logto Management API ด้านล่างนี้คือฟีเจอร์ที่พบบ่อยและ endpoint ที่เกี่ยวข้อง ในบทถัดไป เราจะอธิบายวิธีการนำไปใช้ทีละขั้นตอน
อนุญาตให้ผู้ดูแลและสมาชิกเชิญผู้อื่น
ทั้งผู้ดูแลและสมาชิกสามารถเชิญผู้อื่นเข้าสู่องค์กร ดูรายละเอียดที่ เชิญสมาชิกองค์กร
ผู้ดูแลสามารถแก้ไขบทบาทของสมาชิก
ผู้ดูแลสามารถแก้ไขบทบาทของสมาชิกคนอื่น ๆ ได้ และยังสามารถสร้างบทบาทเฉพาะสำหรับองค์กร เช่น หัวหน้าแผนก ผู้จัดการโครงการ ผู้ประสานงาน ฯลฯ ได้อีกด้วย นำไปใช้โดยใช้ Management API เหล่านี้:
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/{userId}/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"organizationRoleIds":["admin"]}'
หรือแบบกลุ่ม:
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/users/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"userIds":["userId1", "userId2"],"organizationRoleIds":["admin"]}'
เพิ่มบอทเข้าสู่องค์กร
คุณยังสามารถอนุญาตให้ผู้ดูแลเพิ่มบอทเข้าสู่องค์กรที่ต้องการได้ สร้างแอป machine-to-machine (M2M) ก่อน แล้วจึงเพิ่มแอป M2M เหล่านี้สู่องค์กรในฐานะบอท
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botAppId"]}'
จากนั้นคุณยังสามารถกำหนดบทบาทองค์กรให้กับบอทเหล่านี้ได้
curl \
-X POST https://[tenant_id].logto.app/api/organizations/{id}/applications/roles \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"applicationIds":["botApp1"],"organizationRoleIds":["botRoleId"]}'