يعد البرنامج كخدمة (SaaS) موضوعا معقدا مع العديد من النقاط التي يجب مراعاتها. يحتاج موردو البرامج المستقلون (ISVs) الذين ينشئون حلول SaaS الخاصة بهم على Azure إلى حل المشكلات واتخاذ قرارات مثل:
- ما هو نموذج الإيجار الذي يجب أن أستخدمه؟
- كيف أعمل إعداد حل هوية للاستخدام في بنية متعددة المستأجرين؟
- كيف أعمل التعامل مع إلحاق عملاء جدد؟
تهدف هذه البنية إلى الإجابة عن بعض هذه الأسئلة وتوفير مكان بداية لعالم SaaS. هذه البنية قابلة للتكيف لتناسب مجموعة واسعة من السيناريوهات.
حالات الاستخدام المحتملة
فيما يلي بعض أمثلة حالات الاستخدام التي يمكنك فيها استخدام هذه البنية:
- تحديث تطبيق موجود لدعم تعدد المستأجرين الكامل كجزء من التحول إلى نموذج عمل قائم على SaaS.
- تطوير عرض SaaS جديد تماما.
- ترحيل عرض SaaS من خدمة سحابية أخرى إلى Azure.
بناء الأنظمة
قم بتنزيل ملف PowerPoint لهذا التصميم.
المصطلحات
يصف الجدول التالي المصطلحات التي تظهر في هذه المقالة.
الشرط | الوصف | مثال |
---|---|---|
مورد SaaS أو ISV | الكيان الذي يمتلك تطبيق SaaS ورمزه ويبيع منتج SaaS. | Contoso Inc، تبيع تطبيق SaaS الخاص بها: Contoso Tickets. |
المستأجر | مثيل تم شراؤه لتطبيق SaaS من مورد SaaS. | Fourth Coffee Shop. |
مسؤول عميل SaaS | الأشخاص الذين يقومون بشراء مستأجر تطبيق أو إدارته. | جو، مالك مقهى الرابع. |
مستخدم عميل SaaS | الأشخاص الذين يستخدمون مستأجر تطبيق دون إدارته وعادة ما ينتمون إلى نفس الشركة أو المجموعة مثل مسؤول عميل SaaS. | جيل، مديرة الأحداث في Fourth Coffee Shop، وسوزان، عميلة Fourth Coffee Shop. |
المستخدم النهائي | مسؤول عميل SaaS أو مستخدم عميل SaaS أو أي أنواع مستخدمين أخرى يتم تقديمها. هذا مصطلح عام لوصف المستخدمين الذين يسجلون الدخول إلى التطبيق. | جو وجيل وسوزان هم جميع المستخدمين النهائيين (من منظور ISV). |
تطبيق الواجهة الأمامية | أي تطبيق أمامي. | تطبيق الإعداد والمسؤول وتطبيق SaaS هما تطبيقان أماميان. |
سير العمل
ينتقل مسؤول عميل SaaS إلى الموقع المستضاف على تطبيق الإعداد والمسؤول.
يقوم مسؤول عميل SaaS بتسجيل الدخول باستخدام سير عمل تسجيل دخول المستخدم.
يكمل مسؤول عميل SaaS تدفق الإعداد.
ينتقل مسؤول عميل SaaS إلى منطقة مسؤول المستأجر في تطبيق الإعداد والمسؤول ويضيف مستخدم عميل SaaS إلى المستأجر الذي تم إنشاؤه حديثا.
ينتقل مستخدم عميل SaaS إلى تطبيق SaaS ويستخدم تطبيق SaaS.
User sign-in
يتكون سير عمل تسجيل دخول المستخدم من الخطوات التالية:
ينتقل المستخدم النهائي إلى تطبيق الواجهة الأمامية ويحدد زر تسجيل الدخول.
يعيد تطبيق الواجهة الأمامية توجيه المستخدم النهائي إلى صفحة تسجيل الدخول التي يستضيفها موفر الهوية.
يقوم المستخدم النهائي بإدخال معلومات الحساب وإرسال نموذج تسجيل الدخول إلى موفر الهوية.
يصدر موفر الهوية طلب POST بعنوان البريد الإلكتروني للمستخدم النهائي ومعرف الكائن لاسترداد أذوناته وأدواره.
تبحث واجهة برمجة تطبيقات بيانات الأذونات عن معلومات المستخدم النهائي في تخزين بيانات الأذونات وتعيد قائمة بالأذونات والأدوار التي تم تعيينها لهذا المستخدم النهائي.
يضيف موفر الهوية الأذونات والأدوار كمطالبات مخصصة إلى الرمز المميز للمعرف، وهو رمز ويب JSON المميز (JWT).
يقوم موفر الهوية بإرجاع رمز مميز للمعرف إلى المستخدم النهائي وبدء إعادة توجيه إلى تطبيق الواجهة الأمامية.
تتم إعادة توجيه المستخدم النهائي إلى نقطة نهاية تسجيل الدخول على تطبيق الواجهة الأمامية ويقدم رمز المعرف المميز.
يتحقق تطبيق الواجهة الأمامية من صحة الرمز المميز للمعرف المقدم.
يقوم تطبيق الواجهة الأمامية بإرجاع صفحة تسجيل دخول ناجحة ويتم الآن تسجيل دخول المستخدم النهائي.
لمزيد من المعلومات حول كيفية عمل تدفق تسجيل الدخول هذا، راجع بروتوكول OpenID Connect.
إلحاق مستأجر جديد
يتكون سير عمل إلحاق المستأجر من الخطوات التالية:
ينتقل مسؤول عميل SaaS إلى تطبيق الإعداد والمسؤول ويكمل نموذج التسجيل.
يصدر تطبيق الإعداد والمسؤول طلب POST إلى واجهة برمجة تطبيقات بيانات المستأجر لإنشاء مستأجر جديد.
تنشئ واجهة برمجة تطبيقات بيانات المستأجر مستأجرا جديدا في تخزين بيانات المستأجر.
تصدر واجهة برمجة تطبيقات بيانات المستأجر طلب POST إلى واجهة برمجة تطبيقات بيانات الإذن لمنح أذونات مسؤول عميل SaaS للمستأجر الذي تم إنشاؤه حديثا.
تنشئ واجهة برمجة تطبيقات بيانات الأذونات سجل أذونات جديدا في تخزين بيانات الأذونات.
ترجع واجهة برمجة تطبيقات بيانات الإذن بنجاح.
ترجع واجهة برمجة تطبيقات بيانات المستأجر بنجاح.
يصدر تطبيق الإعداد والمسؤول طلب POST إلى موفر إعلام البريد الإلكتروني لإرسال رسالة بريد إلكتروني "تم إنشاؤها بواسطة المستأجر" إلى مسؤول عميل SaaS.
يرسل موفر إعلام البريد الإلكتروني البريد الإلكتروني.
يعود موفر إعلام البريد الإلكتروني بنجاح.
يصدر تطبيق الإعداد والمسؤول طلبا إلى موفر الهوية لتحديث الرمز المميز لمعرف مسؤول عميل SaaS بحيث يتضمن مطالبة JWT للمستأجر الذي تم إنشاؤه حديثا.
يصدر موفر الهوية طلب POST مع عنوان البريد الإلكتروني لمشرف عميل SaaS ومعرف الكائن لاسترداد الأذونات والأدوار الخاصة به.
تبحث واجهة برمجة تطبيقات بيانات الأذونات عن معلومات مسؤول عميل SaaS في تخزين بيانات الإذن وتعيد قائمة بالأذونات والأدوار المعينة إلى مسؤول عميل SaaS.
يضيف موفر الهوية الأذونات والأدوار كمطالبات مخصصة إلى الرمز المميز للمعرف.
يقوم موفر الهوية بإرجاع الرمز المميز للمعرف إلى تطبيق الإعداد والمسؤول.
يقوم تطبيق الإعداد والمسؤول بإرجاع رسالة نجاح ورمز مميز جديد للمعرف إلى مسؤول عميل SaaS.
إضافة مستخدم إلى مستأجر
تتكون إضافة مستخدم إلى سير عمل المستأجر من الخطوات التالية:
يطلب مسؤول عميل SaaS رؤية قائمة المستأجرين من منطقة مسؤول المستأجر على تطبيق الإعداد والمسؤول.
يصدر تطبيق الإعداد والمسؤول طلب GET إلى واجهة برمجة تطبيقات بيانات المستأجر للحصول على قائمة بالمستأجرين لمسؤول عميل SaaS.
تصدر واجهة برمجة تطبيقات بيانات المستأجر طلب GET إلى واجهة برمجة تطبيقات بيانات الإذن للحصول على قائمة بالمستأجرين الذين يمتلك مسؤول عميل SaaS حق الوصول لعرضهم.
ترجع واجهة برمجة تطبيقات بيانات الأذونات قائمة بأذونات المستأجر.
تبحث واجهة برمجة تطبيقات بيانات المستأجر عن معلومات المستأجر في تخزين بيانات المستأجر وتعيد قائمة ببيانات المستأجر استنادا إلى قائمة أذونات المستأجر المستلمة.
يقوم تطبيق الإعداد والمسؤول بإرجاع قائمة بيانات المستأجر إلى مسؤول عميل SaaS.
يحدد مسؤول عميل SaaS مستأجرا من القائمة لإضافة مستخدم عميل SaaS إلى ويدخل عنوان البريد الإلكتروني لمستخدم عميل SaaS.
يصدر تطبيق الإعداد والمسؤول طلب POST إلى واجهة برمجة تطبيقات بيانات المستأجر لإضافة إذن لمستخدم عميل SaaS على المستأجر المحدد.
تتحقق واجهة برمجة تطبيقات بيانات المستأجر من أن مسؤول عميل SaaS لديه مطالبة JWT صالحة للمستأجر المحدد ولديه إذن كتابة المستخدم عليها.
تصدر واجهة برمجة تطبيقات بيانات المستأجر طلب POST إلى واجهة برمجة تطبيقات بيانات الإذن لإضافة إذن لمستخدم عميل SaaS على المستأجر المحدد.
تصدر واجهة برمجة تطبيقات بيانات الإذن طلب GET إلى موفر الهوية للبحث عن مستخدم عميل SaaS بواسطة عنوان البريد الإلكتروني المقدم.
يقوم موفر الهوية بإرجاع معرف عنصر مستخدم عميل SaaS.
تضيف واجهة برمجة تطبيقات بيانات الإذن سجل أذونات في تخزين بيانات الأذونات لمستخدم عميل SaaS على المستأجر المحدد باستخدام معرف الكائن الخاص به.
ترجع واجهة برمجة تطبيقات بيانات الإذن بنجاح.
ترجع واجهة برمجة تطبيقات بيانات المستأجر بنجاح.
يرجع تطبيق الإعداد والمسؤول بنجاح.
المكونات
تستخدم هذه البنية خدمات Azure التالية:
تمكنك App Service من إنشاء تطبيقات الويب وتطبيقات واجهة برمجة التطبيقات واستضافتها بلغة البرمجة التي تختارها دون الحاجة إلى إدارة البنية الأساسية.
يتيح Azure Active Directory B2C بسهولة إدارة الهوية والوصول لتطبيقات المستخدم النهائي.
Azure SQL Database هي خدمة مُدارة لقاعدة بيانات علائقية للأغراض العامة وتدعم البيانات العلائقية والبيانات المكانية وJavaScript Object Notation وXML.
تتيح لك Azure Logic Apps إنشاء عمليات تكامل قوية بسرعة باستخدام أداة واجهة مستخدم رسومية بسيطة (GUI).
البدائل
تعتمد فعالية أي خيارات بديلة بشكل كبير على نموذج الإيجار الذي تنوي دعمه لتطبيق SaaS الخاص بك. فيما يلي بعض الأمثلة على الأساليب البديلة التي يمكنك اتباعها عند تنفيذ هذا الحل:
يستخدم الحل الحالي Azure Active Directory B2C كموفر الهوية. يمكنك بدلا من ذلك استخدام موفري هوية آخرين، مثل معرف Microsoft Entra.
للحصول على متطلبات أمان وتوافق أكثر صرامة، يمكنك اختيار تنفيذ الشبكات الخاصة للاتصال عبر الخدمات.
بدلا من استخدام استدعاءات REST بين الخدمات، يمكنك تنفيذ نمط معماري يستند إلى الحدث للمراسلة عبر الخدمات.
الاعتبارات
تنفذ هذه الاعتبارات ركائز Azure Well-Architected Framework، وهي مجموعة من المبادئ التوجيهية التي يمكنك اتباعها لتحسين جودة حمل العمل. لمزيد من المعلومات، يرجى مراجعةMicrosoft Azure Well-Architected Framework.
الأمان
ويوفر عامل الأمان ضمانات للحماية من الهجمات المتعمدة واستغلال البيانات والأنظمة القيمة الخاصة بك. للمزيد من المعلومات، يرجى الرجوع إلى نظرة عامة على ركيزة الأمان.
يعتمد هذا الحل على الهوية كنموذج أمني. تخضع المصادقة والتخويل لتطبيقات الويب وواجهات برمجة التطبيقات النظام الأساسي للهويات في Microsoft، المسؤولة عن إصدار الرموز المميزة لمعرف المستخدم (JWTs) والتحقق منها.
تحسين التكلفة
يركز تحسين التكلفة على البحث عن طرق للحد من النفقات غير الضرورية وتحسين الكفاءة التشغيلية. لمزيد من المعلومات، راجع نظرة عامة على ركيزة تحسين التكلفة.
المكونات في هذا الحل لها بعض التكلفة المرتبطة بتشغيلها، ولكن التكلفة متواضعة لمعظم تطبيقات الويب وحلول SaaS. يمكنك أيضا التحكم في التكلفة عن طريق إدارة إعدادات الموارد التالية:
يمكنك توسيع نطاق خطة خدمة التطبيق التي تقوم بتشغيل التطبيق لتناسب معدل النقل الذي تحتاجه. بالإضافة إلى ذلك، يمكنك تشغيل كل تطبيق على خطة منفصلة إذا كنت تحتاج إلى معدل نقل أعلى، ولكنك ستتحمل تكلفة أعلى نتيجة لذلك. لمزيد من المعلومات، راجع نظرة عامة حول خطة خدمة تطبيق Azure.
يوفر Azure AD B2C وحدتي SKU: Premium P1 وPremium P2. تتضمن كلتا وحدات SKU بدل مجاني لعدد المستخدمين النشطين شهريا (MAUs)، ولكن تحتاج إلى تقييم الميزات التي توفرها كل وحدة SKU لتحديد ما هو مطلوب لحالة الاستخدام الخاصة بك. لمزيد من المعلومات، راجع تسعير الهوية الخارجية لـ Microsoft Entra.
يحتوي Azure SQL على العديد من نماذج الشراء لتناسب مجموعة واسعة من حالات الاستخدام، بما في ذلك القدرة على التحجيم التلقائي. تحتاج إلى تقييم الاستخدام على قواعد البيانات الخاصة بك للتأكد من حجمها بشكل صحيح. لمزيد من المعلومات، راجع مقارنة نماذج الشراء المستندة إلى vCore وDTU لقاعدة بيانات Azure SQL.
كفاءة الأداء
كفاءة الأداء هي قدرة حمل عملك على تغيير الحجم لتلبية المطالب التي يضعها المستخدمون عليها بطريقة فعالة. لمزيد من المعلومات، راجع نظرة عامة على ركيزة كفاءة الأداء.
يجب أن تكون هذه البنية قادرة على التوسع لتلبية معظم أحمال العمل المتوسطة إلى المتوسطة الكبيرة بسهولة. نظرا لأن البنية تستخدم في الغالب خدمات النظام الأساسي Azure (النظام الأساسي كخدمة (PaaS)، فلديك العديد من الخيارات لضبط مقياس الحل بناء على متطلباتك وتحميلك.
نشر هذا السيناريو
إذا كنت ترغب في نشر هذا السيناريو، فشاهد Azure SaaS Dev Kit على GitHub. إنه تطبيق مرجعي قابل للنشر لهذه البنية.
المساهمون
تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.
الكاتب الرئيسي:
- لاندون بيرس | مهندس عملاء
مساهمون آخرون:
- كريس أيرز | مهندس عملاء أول
- جون داونز | مهندس عملاء أول
- LaBrina المحبة | مدير هندسة SVC الرئيسي
- غاري مور | مبرمج/ كاتب
- بينهيرو | مستشار أول
- وليام سالازار | مهندس عملاء أول
- علي السنجابي | مهندس عملاء أول
- آرسن فلاديميرسكي | مهندس العملاء الرئيسي
- Jason Young | مدير هندسة SVC الرئيسي
الخطوات التالية
فيما يلي بعض الموارد الإضافية الموصى بها لإنشاء تطبيق SaaS على Azure:
- تصميم حلول متعددة المستأجرين على Azure - يصف أفضل الممارسات.
- اعتبارات ISV لمناطق هبوط Azure
- Microsoft Azure Well-Architected Framework
- تطبيق WingTips Tickets SaaS - يوفر تفاصيل حول المقايضات بين نماذج الإيجار المختلفة داخل طبقة قاعدة البيانات.