تطوير تطبيقات متعددة المستأجرين على SAP Cloud Platform في Neo ، الجزء 2: التفويض والمصادقة

في المقالة الثانية من السلسلة حول تطوير التطبيقات على SAP Cloud Platform في بيئة Neo ، سنتناول أحد أهم الجوانب - التخويل وإدارة مصادقة المستخدم.

في هذه المقالة ، سنوضح كيفية إنشاء اتصال بين SAP Cloud Platform وموفر الهوية (IDP) لعميل ABC PetroCorp الوهمي ، وأيضًا إضافة مستخدمين إلى IDP. بعد ذلك ، سنلقي نظرة على كيفية تعيين الأدوار للمستخدمين من شركة العميل في تطبيق معين (من IDP) ، وكذلك كيفية تهيئة سمات SAML لنقلها من IDP إلى تطبيق النظام الأساسي السحابي SCP.

في الحساب الفرعي لعميل ABC PetroCorp الوهمي من المقالة الأولى ، تم بالفعل تثبيت اشتراك في تطبيقات مراقبة التلوث SCP التي تقدمها ITeLO Consulting. يحتاج موظف ABC PetroCorp الآن إلى جعل هذا التطبيق متاحًا للزملاء الآخرين.

يمكن لمستخدم SAP Cloud Platform توصيل IDP الخاص بالشركات بمنصة السحابة وتكوين إدارة الأمان والمصادقة الخاصة بتطبيقاتهم التي يتم تحميلها في SCP.

قامت ABC PetroCorp بتفعيل خدمة SAP Cloud Platform Identity Authentication ، والتي توفر الوصول إلى العمليات التجارية والتطبيقات والبيانات. توفر هذه الخدمة مستأجر SCI ، يوجد بداخله تكوين تطبيق وإدارة ترخيص المستخدم.

Emily ، البطل الخيالي من المقالة الأولى ، لديها حق الوصول إلى مستأجرة SCI هذه - فهي مديرته ويمكنها تكوين إذن المستخدم في تطبيق معين. إنها تريد معرفة كيفية إنشاء هذه التكوينات باستخدام خدمة مصادقة الهوية.

المتطلبات:

  • حساب SCP عالمي منتج (وليس تجريبي) مع خدمة Identity Authentication متصلة به (كموفر IDP للحساب الفرعي ABC PetroCorp) ؛
  • يجب أن يكون مستخدم الحساب الفرعي للعميل هو المسؤول عن مستأجر SCI ، حتى يتمكن من الوصول إلى وحدة التحكم الإدارية لخدمة مصادقة الهوية.

تحتاج Emily إلى إكمال الخطوات التالية في وحدة التحكم الإدارية لخدمة Identity Authentication ولوحة تحكم SCP لجعل التطبيق في النظام الأساسي السحابي متاحًا لموظفي ABC PetroCorp الآخرين:

الخطوة 1: إنشاء علاقة ثقة بين مستأجر SCI والحساب الفرعي لـ SCP.
الخطوة 2: استيراد المستخدمين إلى مستأجر SCI وتحديث (إضافة) السمات الضرورية.
الخطوة 3: تعيين الأدوار للمستخدمين على مستوى التطبيق في SCP.
الخطوة 4: تكوين السمات في مستأجر SCI ولوحة تحكم SCP لنقلها إلى التطبيق.
الخطوة 5: التحقق من الإعدادات.

الخطوة 1: إنشاء ثقة بين مستأجر SCI والحساب الفرعي لـ SCP

إميلي هي مديرة الحساب الفرعي ABC PetroCorp ومستأجر SCI ، والذي يسمح لها بتطبيق الإعدادات اللازمة لاستخدام مستأجر SCI كـ "مستودع مستخدم" للتطبيق متعدد المستأجرين الذي يوفره مزود ITeLO للاستشارات.

أولاً ، تحتاج إيميلي إلى تأسيس علاقة ثقة بين مستأجر SCI والحساب الفرعي لـ SCP لعميل ABC PetroCorp.

سوف ننتقل إلى وحدة التحكم الإدارية لخدمة مصادقة الهوية باستخدام الرابط "https: //.accounts.ondemand.com/admin" ، حيث يكون معرّف مستأجر SCI. يمكن العثور على هذا الرابط في خطاب التسجيل الذي يأتي إلى مسؤول المستأجر لخدمة مصادقة الهوية. يشار إلى معرف المستأجر هناك أيضا.

تكون وحدة تحكم إدارة خدمة مصادقة الهوية كما يلي:



في علامة تبويب المتصفح الأخرى ، افتح لوحة التحكم للحساب الفرعي للعميل "ABC PetroCorp" وانتقل إلى علامة التبويب "الأمان" -> "الثقة".



في قائمة "Trust Trust" التي تفتح ، انتقل إلى علامة التبويب "Local Service Provider" وانقر على "Edit".



ثم نقوم بالخطوات التالية:

  • في حقل "نوع التكوين" ، قم بتغيير النوع إلى "مخصص" ؛
  • انقر على "إنشاء زوج من المفاتيح" لإنشاء مفتاح وشهادة للحساب ؛
  • تغيير القيمة في حقل "الانتشار الرئيسي" إلى "تمكين" ؛
  • انقر فوق "حفظ".



انقر على "Get Metadata" لتنزيل ملف البيانات الوصفية بتنسيق "xml" ، الذي يحتوي على التكوينات الموصوفة سابقًا. سيتم استخدامه لبناء الثقة مع المستأجر SCI.

دعنا نعود إلى وحدة التحكم الإدارية لخدمة مصادقة الهوية وننتقل إلى علامة التبويب "التطبيقات والموارد" -> علامة التبويب "التطبيقات" في القائمة على اليسار. في منطقة "التطبيقات" ، انقر فوق الزر "إضافة" للإشارة إلى تطبيق جديد تم نشره في الحساب الفرعي "ABC PetroCorp".



في النافذة التي تظهر ، أدخل اسم التطبيق (على سبيل المثال ، ABC_PetroCorp_IDP) وانقر على "حفظ". بعد ذلك ، سيتم إنشاء نقطة جديدة في المستأجر لتطبيقنا.

في التطبيق الذي تم إنشاؤه ، انتقل إلى علامة التبويب "الثقة" وحدد معلمة "تكوين SAML 2.0".



في قسم "تعريف من البيانات الوصفية" ، انقر فوق "تصفح" وحدد ملف البيانات الوصفية بتنسيق "xml" ، والذي قمنا بتنزيله سابقًا عند إعداد الثقة في الحساب الفرعي لـ SCP. سيتم ملء التفاصيل المتعلقة بتهيئة SAML 2.0 تلقائيًا بعد تنزيل الملف. انقر على "حفظ" - الآن يتم إنشاء تهيئة SAML 2.0 وحفظها لهذا التطبيق.



ارجع إلى نقطة التطبيق التي تسمى ABC_PetroCorp_IDP في المستأجر ، وانقر على "عنوان URL للصفحة الرئيسية" وأدخل عنوان URL مثل "https: // الملوثةmonitoringui- <subaccount_name>. مرسل. <region_host>".

يمكن العثور على عنوان URL هذا في وصف تطبيق HTML5 الذي اشترك فيه العميل (الحساب الفرعي "ABC PetroCorp"). للقيام بذلك ، انتقل إلى الحساب الفرعي للعميل في علامة التبويب "التطبيقات" -> "الاشتراكات" وحدد تطبيق HTML5 الموقع.



في علامة التبويب "نظرة عامة" سيكون عنوان URL الذي نحتاجه.



ثم نعود إلى نقطة التطبيق في مستأجر SCI ، ونعين عنوان URL للتطبيق في "عنوان URL للصفحة الرئيسية" وانقر على "حفظ".



انتقل الآن إلى علامة التبويب "التطبيقات والموارد" -> "إعدادات المستأجر" في وحدة التحكم الإدارية لخدمة مصادقة الهوية. في صفحة إعدادات المستأجر ، حدد "تكوين SAML 2.0".



في النافذة التي تفتح ، انقر فوق "تنزيل ملف البيانات الوصفية" لتنزيل ملف "xml" الذي يحتوي على تكوينات مستأجر SCI. سيتم استخدامه في المستقبل لبناء الثقة مع الحساب الفرعي للعميل في SCP.

ارجع إلى الحساب الفرعي "ABC PetroCorp" وانتقل إلى القائمة "الأمان" -> "الثقة" ، في النافذة التي تفتح ، حدد علامة التبويب "موفر هوية التطبيق". انقر فوق "إضافة موفر هوية موثوق" لإضافة تفاصيل حول مستأجر SCI.



في علامة التبويب "عام" ، انقر على "تصفح" وحدد ملف البيانات الوصفية بتنسيق "xml" الذي تم تنزيله من وحدة التحكم الإدارية لخدمة مصادقة الهوية. يتم ملء تفاصيل التكوين تلقائيًا بعد تنزيل الملف. ألغ تحديد المربع "فقط لتسجيل الدخول الموحّد الذي بدأه IDP" وانقر على "حفظ".



الآن تم تأسيس علاقة الثقة بين الحساب الفرعي لعميل ABC PetroCorp والمستأجر SCI. يمكن تطبيق نفس الإعدادات على الحسابات الفرعية للعملاء الآخرين (على سبيل المثال ، لعميل XYZ EnergyCorp).

الخطوة 2: استيراد المستخدمين إلى مستأجر SCI وتحديث (إضافة) السمات الضرورية

تحتاج إيميلي إلى التأكد من أن مستخدمي التطبيق مسجلون لدى IDP للشركات التابعة لـ ABC PetroCorp.

من الناحية المثالية ، فإن IDP للشركة (في حالتنا ، مستأجر SCI) قد يتضمن بالفعل قائمة بجميع المستخدمين في الشركة. للتوضيح ، نقوم باستيراد بعض المستخدمين إلى مستأجر SCI ، وبعد ذلك سيحصلون على الأذونات المناسبة للوصول إلى التطبيق.
يتم تخزين العروض التوضيحية للتطبيق في ملف "csv" على github - على Github .

قم بتنزيل ملف "CSV" الخاص بـ "ABC PetroCorp" من GitHub. يشار إلى اثنين من المستخدمين في ملف "csv":

  • ABCPlantSupervisor: سيكون هذا المستخدم مديرًا لمصنع ABC PetroCorp ولن يكون قادرًا إلا على عرض البيانات حول مصنعه ؛
  • ABCAreaManager: سيكون هذا المستخدم هو مدير منطقة بأكملها ، والتي قد تشمل العديد من مصانع ABC PetroCorp. سيكون قادراً على عرض البيانات عن جميع النباتات في منطقته.



يحتوي ملف .csv لـ ABC PetroCorp على عناوين بريد إلكتروني وهمية للمستخدمين. يجب استبدالها بأخرى حقيقية ، لأن الرسائل ستصل إليهم لتفعيل الحسابات. على سبيل المثال ، إذا كان بريدك الحقيقي هو "john.smith@sap.com" ، فأنت بحاجة إلى استبدال التعيين <> بـ "john.smith" و <<insert_your_company>> بـ "sap".



انتقل إلى وحدة التحكم الإدارية لخدمة مصادقة الهوية وحدد علامة التبويب "المستخدمون والتفويضات" -> "استيراد المستخدمين". حدد نقطة التطبيق التي تم إنشاؤها سابقًا "ABC_PetroCorp_IDP" وانقر فوق "تصفح" ، ثم حدد الملف "ABCPetroCorp.csv" الذي يصف المستخدمين التجريبيين لدينا - وانقر فوق الزر "استيراد".



يجب على المستخدمين تنشيط حساباتهم. لتلقي بريد إلكتروني به رابط تنشيط ، يجب النقر فوق "إرسال" في نافذة "إرسال رسائل البريد الإلكتروني".

قبل تنشيط المستخدم ، تحتاج إلى تغيير بعض التكوينات.
انتقل إلى علامة التبويب "المستخدمون والتفويضات" -> "إدارة المستخدمين". ظهر مستخدمان في قوائم المستخدمين: "مدير المنطقة" و "مشرف المصنع". يتم تعيين معرفات لهم تلقائيًا: P000011 و P000010. يمكن استخدام هذه المعرّفات كمعلومات تسجيل دخول لدخول المستأجر (وفي التطبيق ، عند إجراء جميع الإعدادات الضرورية).



دعنا نذهب إلى المستخدم P000011 أو "مدير المنطقة" وإضافة اسم يمكن استخدامه أيضًا لتسجيل الدخول للدخول. للقيام بذلك ، انقر فوق رمز التحرير في حقل "المعلومات الشخصية" واملأ "اسم تسجيل الدخول" (في حالتنا ، هو يوهان).



ثم انقر فوق "حفظ".

الآن ، لنفعل الشيء نفسه مع المستخدم P000010 أو مشرف المصنع ، ولكن اتصل به سميث.



يجب أن يكون مستخدم مشرف المصنع قادرًا على عرض المعلومات حول مصنعه فقط ، ثم في القسم بمعلومات عن الشركة ، من الضروري الإشارة إلى معرف الشركة (سيتم شرح كيفية استخدام هذا المعرف في الخطوة 4).

للقيام بذلك ، انتقل إلى قسم "معلومات الشركة" وأدخل معرف المصنع ، وهو "101" ، في حقل "الشركة".

الآن تم تغيير المعلومات حول مستخدمينا. لتنشيطها ، انتقل إلى صناديق البريد المحددة في ملف "csv" وانقر على رابط التنشيط ، أو انقر فوق "انقر هنا لتنشيط حسابك".



لذا ، نجحنا في استيراد المستخدمين إلى مستأجر SCI ، وقمنا بتحديث المعلومات الخاصة بهم وتفعيلها.

الخطوة 3: تعيين الأدوار للمستخدمين على مستوى التطبيق في SAP Cloud Platform

يوفر تطبيق مراقبة التلوث متعدد المستأجرين ، الذي أنشأه روبرت من ITeLO Consulting ، دورين محددين مسبقًا ، PlantSupervisor و AreaManager ، يتحكمان في تفويض المستخدم في التطبيق ويحددان ما يراه المستخدم النهائي.

  • دور PlantSupervisor: لن يتمكن المستخدمون الذين تم تعيينهم لهذا الدور إلا من عرض البيانات من المصنع المحدد في معلومات الشركة في مستأجر SCI.
  • دور "AreaManager": سيتمكن المستخدمون الذين تم تعيينهم لهذا الدور من عرض البيانات من جميع المصانع في منطقتهم.

دعونا نرى كيف يتم تحقيق فصل الأدوار على مستوى رمز المشروع.

دعنا ننتقل إلى ملف web.xml الموجود على طول المسار / مراقبة التلوث
/src/main/webapp/WEB-INF/web.xml ”في مجلد المشروع.

افتح الملف وتأكد من تعريف الدورين أعلاه في التطبيق.



لننتقل الآن إلى ملف "PollutionDataService.java" الموجود على المسار "/pollutionmonitoring/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/PollutionDataService.java" للمشروع ونفتحه.

يشار إلى الطريقة "getCompanyPollutionData ()" في هذا الملف. يسمح لك بالتحقق مما إذا كان المستخدم مسؤولاً (مدير). إذا كانت الإجابة بنعم ، فسيقوم التطبيق بعرض البيانات لجميع المصانع ، إذا لم يكن كذلك ، يتم تصفية البيانات بواسطة معرف المصنع (plant_id). أيضا ، سيعرض التطبيق المعلومات فقط لتلك المصانع التي تتطابق معرفاتها مع تلك المشار إليها في معلومات المستخدم.



للتوضيح ، يمكنك الرجوع إلى طريقة isUserAdmin () ، والتي تسمح لك بتحديد الدور سواء كان المستخدم مسؤولاً (مدير) أم لا.



يتم استخدام خوارزمية مماثلة لاستخراج بيانات المصنع من الأنظمة المحلية.



الآن Emily ، كموظف في ABC PetroCorp ، تحتاج إلى تحديد مديري المنطقة ومديري المصانع من خلال تعيين الأدوار المناسبة (ABCPlantSupervisor و ABCAreaManager) في التطبيق في SCP.

سوف ننتقل إلى الحساب الفرعي لعميل ABC PetroCorp ونختار تطبيق جافا لمراقبة التلوث الذي يوفره موفر ITeLO للاستشارات (وهو موجود في علامة تبويب التطبيقات -> علامة تبويب الاشتراكات).



بعد ذلك ، انتقل إلى علامة التبويب "الأدوار" (على مستوى التطبيق).

في النافذة التي تفتح ، تظهر قائمة بالأدوار المشار إليها في التطبيق. حدد دور "PlantSupervisor" وانقر على "تعيين". في النافذة التي تظهر ، أدخل معرف المستخدم ، المشار إليه في مستأجر SCI باسم "ABCPlantSupervisor". في حالتنا ، سيكون معرف هذا المستخدم هو P000010.

ثم حدد الدور "AreaManager" وانقر على "تعيين". في النافذة التي تظهر ، أدخل معرف المستخدم المشار إليه في مستأجر SCI باسم "ABCAreaManager" (في حالتنا ، سيكون معرف هذا المستخدم هو P000011).



لذا ، قمنا بمقارنة أدوار التطبيق بنجاح مع المستخدمين المطابقين لـ ABC PetroCorp من مستأجر SCI.

يمكن تطبيق نفس الإعدادات في الحساب الفرعي لعميل آخر (على سبيل المثال ، "XYZ EnergyCorp").

الخطوة 4: تكوين السمات في مستأجر SCI ولوحة تحكم SCP للتحويل إلى التطبيق

قام Robert من ITeLO Consulting ببرمجة التطبيق متعدد المستأجرين بطريقة يحتاجها لتمرير معرف مستخدم PlantSupervisor إلى المصنع بحيث يمكن تصفية بيانات المصنع في التطبيق لمعرف المصنع المحدد.
في الخطوات السابقة ، أضفنا معرف المصنع إلى المستخدم "PlantSupervisor" في مستأجر SCI في حقل "معلومات الشركة" ، والذي نحتاج الآن إلى نقله إلى التطبيق متعدد المستأجرين. يمكن بعد ذلك استخدامه في تطبيق لعرض البيانات المتعلقة بمصنع معين. مستخدم AreaManager هو في الأساس مسؤول يمكنه عرض البيانات من جميع المصانع.

دعونا نرى كيف يتم تنظيم هذا على مستوى رمز التطبيق.

افتح الملف "PollutionDataService.java" الموجود على المسار "/pollutionmonitoring/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/PollutionDataService.java" في المشروع.

يصف هذا الملف طريقة getPlantId (). تصف هذه الطريقة الحصول على اسم المستخدم والتحقق من السمة "PLANT_ID" ، والتي تُستخدم لتصفية بيانات التلوث وبيانات المصنع.



يمكننا نقل سمات المستخدم من مستأجر SCI إلى التطبيق من خلال سمات تأكيد SAML. يعد ذلك ضروريًا بحيث تتم قراءة سمة المستخدم من مستأجر SCI الذي يحتوي على معلومات الشركة بواسطة SCP في وقت تسجيل دخول المستخدم. يحتاج ما يسمى بـ "سمة التأكيد" (سمة الموافقة) المحددة للمستخدم إلى تطبيق مراقبة التلوث.

للقيام بذلك ، قم أولاً بإنشاء "سمة التأكيد" في مستأجر SCI ، ثم - قم بتعيين سمة الموافقة في السمة الرئيسية ("السمة الرئيسية") في الحساب الفرعي "ABC PetroCorp" ، والذي يمكن قراءته بواسطة رمز التطبيق ، كما هو موضح أعلاه.

انتقل إلى وحدة التحكم الإدارية لخدمة مصادقة الهوية وحدد علامة التبويب "التطبيقات والموارد" -> "التطبيقات". حدد التطبيق الذي نحتاجه (ABC_PetroCorp_IDP) وفي علامة التبويب "Trust" ، انقر فوق "Assertion Attributes".



ستظهر قائمة بالسمات الموجودة ، ونحن بحاجة إلى واحدة أخرى فيها. للقيام بذلك ، انقر فوق الزر "إضافة" وحدد سمة "الشركة".

ثم نضيف "plant_id" (حساس لحالة الأحرف) إلى قيمة السمة وانقر على "حفظ".



انتقل الآن إلى الحساب الفرعي "ABC PetroCorp" في SCP وانتقل إلى علامة التبويب "الأمان" -> "الثقة". في نافذة "إدارة الثقة" ، انتقل إلى علامة التبويب "موفر هوية التطبيق" وحدد معرف الهوية المرتبط بالحساب الفرعي.



في النافذة التي تفتح ، انتقل إلى علامة التبويب "السمات" وانقر على "إضافة سمة قائمة على التأكيد". في حقل "سمة التأكيد" ، ندخل القيمة "plant_id" (كما هو الحال في مستأجر SCI) ، وفي الحقل "السمة الرئيسية" ، ندخل "PLANT_ID" (سيتم نقل هذه القيمة إلى التطبيق كرمز المصنع) - ثم انقر فوق "حفظ".

لذا ، نجحنا في تكوين السمات في مستأجر SCI وفي لوحة تحكم SCP لنقلها إلى التطبيق.

الخطوة 5: التحقق من الإعدادات
تستطيع Emily الآن التحقق من أن إعدادات SCI Tenant (IdP) محددة بشكل صحيح للحساب الفرعي "ABC PetroCorp" في SCP والتطبيق الذي يوفره الموفر.

للقيام بذلك ، انتقل إلى الحساب الفرعي "ABC PetroCorp" وانتقل إلى تطبيق HTML5 "Pollmonitoringui" (الموجود في علامة التبويب "التطبيقات" -> "الاشتراكات").



انسخ الرابط للتطبيق. افتح علامة تبويب جديدة في المتصفح في وضع التصفح المتخفي وأدخل رابطًا لتطبيق HTML5. ستظهر نافذة لإدخال التطبيق ، حيث سيتم عرض الاسم المشار إليه في مستأجر SCI.

إذا تم إعداد كل شيء بشكل صحيح ، فيجب أن تكون قادرًا على إدخال التطبيق تحت مستخدمي "AreaManager" و "PlantSupervisor" ، المشار إليهما في مستأجر SCI.

في حالتنا ، مدير المنطقة هو المستخدم يوهان (P000011) ، ورئيس المصنع سميث (P000010). يمكنك إدخال التطبيق ضمن هؤلاء المستخدمين إما باستخدام اسم المستخدم أو معرفه كمعلومات تسجيل دخول.

ملاحظة: عند دخول التطبيق في هذه المرحلة ، لن يتم عرض أي بيانات. هذا أمر طبيعي لأن التكوين لم يكتمل بعد والنظام المحلي غير متصل.


لذا ، قمنا بإعداد اتصال موفر الهوية (IDP) مع تطبيق مراقبة التلوث الخاص بنا. قمنا أيضًا باستيراد المستخدمين وتعيين الأدوار الصحيحة للوصول إلى التطبيق ، والتأكد من نقل معلومات المصنع الصحيحة إلى التطبيق.

Source: https://habr.com/ru/post/ar418237/


All Articles