شرح نموذج تعدد المستأجرين في Logto
ألقِ نظرة على كيفية تصميمنا لنموذج تعدد المستأجرين في Logto والفوائد التي يوفرها لتطبيقات SaaS.
الارتباك
قد تكون سمعت عن بعض المنتجات التي تستخدم مصطلح "تعدد المستأجرين" لتمثيل العزل الهوية: كل مستأجر لديه مجموعة خاصة به من المستخدمين والأدوار والأذونات والبيانات.
قد يكون ذلك غير بديهي، ولكن في الواقع، يشير "تعدد المستأجرين" إلى العكس: يتم مشاركة المستأجرين المتعددين للموارد في حالة واحدة. للمستخدمين، تكون الهوية في التطبيقات مثل رخصة القيادة. على سبيل المثال، برخصة قيادة واحدة، يمكنك القيادة في دول مختلفة (هوية واحدة لعدة منظمات)، بدلاً من التقدم بطلب للحصول على رخصة جديدة لكل دولة.
نموذج Logto
لاحظنا في Logto هذا الارتباك في بداية تصميمنا، وأكدنا على إصلاحه لتطبيقاتك ولمستخدميك. هذا هو تصميمنا:
- يمكن اعتبار المستأجر كحالة واحدة من Logto، والتي لديها مجموعة خاصة بها من المستخدمين والأذونات والبيانات.
- داخل المستأجر، قد يكون هناك عدة منظمات. يمكن أن يكون المستخدم عضوًا في عدة منظمات.
- لكل منظمة، يتم اتباع نمط التحكم في الوصول القائم على الأدوار (RBAC) ويستخدم نفس مجموعة الأدوار والمنظمات الأذونات. تسمى هذه المجموعة نموذج المنظمة.
- تكون أدوار المنظمة وأذونات المنظمة فعالة فقط في سياق المنظمة.
- على سبيل المثال، يمكن أن يكون المستخدم "مشرف" (دور) في منظمة واحدة، ولكن "عضو" (دور) في منظمة أخرى.
- بدون سياق المنظمة، تكون أدوار المنظمة وأذونات المنظمة بلا معنى.
- استخدم أذونات المنظمة للتحكم في الوصول داخل المنظمة، بدلاً من استخدام أدوار المنظمة.
يوفر هذا النموذج المرونة والقابلية لإعادة الاستخدام لإدارة الهويات، وخاصة لتطبيقات SaaS. إذا ألقينا نظرة على بعض تطبيقات SaaS الشهيرة، يمكننا أن نجد أنها جميعها تتلاءم مع هذا النموذج. قد يكون مصطلح "المنظمة" مختلفًا في التطبيقات المختلفة، مثل "مساحة العمل" أو "الفريق"، لكن المفهوم هو نفسه.
على سبيل المثال، في Notion (أداة تعاون شهيرة):
- يمكنك إنشاء والانضمام إلى مساحات عمل متعددة بحساب واحد، بدلاً من التسجيل لكل مساحة عمل بحسابات مختلفة.
- لكل مساحة عمل، يعرف Notion مجموعة نفسها من مستويات الوصول: "مالك مساحة العمل" و"عضو"، في حين قد تتوقع مستويات وصول مختلفة لمساحات العمل المختلفة.
وبالتالي، يمكن للمستخدمين الانتقال بين مساحات العمل بسهولة دون التبديل بين الحسابات أو إعادة تسجيل الدخول، ويحافظ على العزل بين مساحات العمل. ترجمة هذا إلى نموذج Logto، يعني:
- يعرف نموذج المنظمة دورين: "مالك" و"عضو".
- إذا انضم مستخدم إلى مساحة عمل، فهذا يعني أن المستخدم عضو في منظمة، ولديه دور "عضو" في المنظمة.
- إذا أنشأ مستخدم مساحة عمل، فهذا يعني أن المستخدم عضو في منظمة، ولديه دور "مالك" في المنظمة.
وفقًا للأدوار المختلفة، يمكن أن يكون لدى المستخدم أذونات مختلفة في مساحات العمل المختلفة (المنظمات).
الفوائد
تجربة المستخدم
بالنسبة للمستخدمين، يمكنهم الاستمتاع بتجربة تسجيل دخول واحدة حقيقية. التبديل بين المنظمات سهل مثل التبديل بين علامات التبويب.
القابلية لإعادة الاستخدام
ميزة واحدة لتطبيقات SaaS هي أنها موحدة وقابلة للتطوير. على سبيل المثال، يمكنك إنشاء مساحة عمل جديدة في Notion ببضع نقرات، وهي جاهزة للاستخدام.
عند نمو التطبيق الخاص بك، قد ترغب في إضافة المزيد من الأدوار والأذونات لكل منظمة. على سبيل المثال، دور جديد "ضيف" وأذن جديدة "دعوة:ضيف". يمكن أن يكون كابوسًا إذا كنت بحاجة إلى تحديث جميع المنظمات الحالية واحدة تلو الأخرى.
مع Logto، يمكنك تحديث نموذج المنظمة، وسيتم تحديث جميع المنظمات الحالية تلقائيًا.
نموذج تحكم واحد، حالات استخدام متعددة
في Logto، نستخدم نفس نموذج التحكم في الوصول (RBAC) للمنظمات وموارد API. يعني ذلك أنك لا تحتاج إلى ت علم نموذج تحكم في الوصول جديد إذا كنت مُطلعاً على RBAC. في الوقت نفسه، هم معزولون عن بعضهم، لذا يمكنك استخدامها لحالات استخدام مختلفة.
الجزء الأكثر إثارة هو أنه يمكنك استخدامها في نفس الوقت. لنمد مثال Notion:
- للوصول إلى مساحات العمل، يمكنك استخدام RBAC لمنظمة Logto.
- للوصول وتحديث موارد ذات مستوى حساب (مثل الملف الشخصي ومعلومات الفوترة)، يمكنك استخدام RBAC لمورد API في Logto.
تدعم معظم أدوات تطوير Logto كلا النوعين من RBAC.
الاختلافات
يختلف RBAC لمنظمة RBAC وموارد API في الجوانب التالية:
- يتطلب RBAC للمنظمة سياق المنظمة، في حين أن RBAC لمورد API لا يحتاج.
- يستخدم RBAC للمنظمة للتحكم في الوصول داخل المنظمة، بينما يستخدم RBAC لمورد API للتحكم في الوصول إلى موارد API.
- يمكن للمستخدم أن يكون لديه أدوار منظمة مختلفة في منظمات مختلفة، بينما تكون الأدوار لمورد API عالمية في المستأجر.
- الأدوار والأذونات معزولة لهذين النوعين من RBAC.
ملاحظات ختامية
بناء تطبيق SaaS صعب، ونأمل أن يساعدك Logto في التركيز على عملك الأساسي. لا تتردد في تقديم ملاحظات لنا إذا كان لديك أي أسئلة أو اقتراحات.