تأمين تطبيقات الويب باستخدام بوابة OCI API وOpenID Connect

يتطلب تكامل تطبيقات الويب القديمة مع موفري الهوية الحديث عادةً تعديل رمز التطبيق القديم وتغيير واجهة المستخدم. بدلاً من قضاء الوقت والموارد في تطوير مخصص جديد، استثمر في بنية تمكنك من التركيز على منطق الأعمال بدلاً من تدفق المصادقة.

بعض التطبيقات القديمة لا تدعم اتصال OpenID مباشرة. أثناء انتقالهم إلى السحابة، يمكنك استخدام بوابة واجهة برمجة تطبيقات Oracle Cloud Infrastructure (OCI) كنقطة وصول إلى الشبكة للتوسط في التصديق مع المستخدمين وموفر الهوية والتطبيق. بدلاً من طلب إضافة كافة التطبيقات إلى تدفقات الاتصال OpenID مباشرة، يمكن لـ بوابة واجهة برمجة تطبيقات OCI فرض الوصول بطريقة موحدة على الشبكة. يمكن للمطورين استخدام بوابة واجهة برمجة تطبيقات OCI لتحديث التطبيقات القديمة، مع تحسين التطبيقات الحديثة.

البنية

بوابة واجهة برمجة تطبيقات OCI هي خدمة بدون خادم مُدارة بالكامل في OCI يمكن استخدامها لحماية نقاط انتهاء واجهة برمجة التطبيقات وتطبيقات الويب. توفر بوابة واجهة برمجة تطبيقات OCI وظائف أمان مثل تحديد المعدل وإنفاذ الصلاحية والتوجيه الديناميكي وإنفاذ طبقة مآخذ التوصيل الآمنة (SSL) وغير ذلك الكثير. يمكن الاستفادة من بوابة واجهة برمجة تطبيقات OCI لتأمين تطبيقات الويب القديمة التي تتطلب دعم تصديق OpenID. يمكن أن تعمل بوابة واجهة برمجة تطبيقات OCI كوحدة تأمين مركزية لتطبيقات الويب المستضافة في الشبكات الفرعية الخاصة لـ OCI. OCI API Gateway هي غير محددة لموفر الهوية، ويمكن دمجها مع أي موفر OAuth 2.0 مدعوم مثل Okta وGoogle وAmazon وAuth0 على سبيل المثال لا الحصر.

بروتوكول الاتصال OpenID عبارة عن طبقة هوية بسيطة أعلى بروتوكول OAuth 2.0. OpenID يتيح الاتصال أنواعًا مختلفة من التطبيقات مثل المستعرضات وتطبيقات الأجهزة المحمولة وعملاء سطح المكتب لدعم المصادقة وإدارة الهوية بطريقة آمنة ومركزية وموحدة. تعتمد التطبيقات التي تستفيد من بروتوكول الاتصال OpenID على موفري الهوية لمعالجة عمليات التصديق بأمان والتحقق من هويات المستخدمين. OpenID يتيح الاتصال تسجيل الدخول الموحد للتطبيقات المختلفة من خلال مركزية إدارة المستخدم مع موفر هوية مثل Oracle Cloud Infrastructure Identity and Access Management.

تعمل بوابة واجهة برمجة تطبيقات OCI كنقطة وصول إلى الشبكة للتوسط في التصديق مع المستخدمين وموفر الهوية والتطبيق. يؤدي وضع بوابة واجهة برمجة تطبيقات OCI بين التطبيقات والعملاء إلى تمكين بوابة واجهة برمجة تطبيقات OCI من اعتراض الطلبات ومعالجة تدفق اعتماد الاتصال OpenID.

يوضح الشكل التالي هذه البنية المرجعية.



تطبيقات الويب الآمنة-oci-api-gateway-open-id-architecture.zip

يوضح الشكل التالي تدفق التصديق للاعتماد الأولي.



تطبيقات الويب الآمنة-oci-api-gateway-open-id-data-flow.zip

  1. يطلب تطبيق العميل الوصول إلى خدمات الخلفية من خلال بوابة واجهة برمجة تطبيقات OCI.
  2. يقوم بوابة واجهة برمجة تطبيقات OCI بتوجيه العميل إلى موفر الهوية.
  3. يقوم العميل بالتصديق مع موفر الهوية. في حالة المصادقة بنجاح، يتلقى العميل مقطعًا يوفر الاعتماد.
  4. يقوم موفر الهوية بإعادة توجيه العميل إلى بوابة واجهة برمجة تطبيقات OCI بمقطع الوصول.
  5. يتحقق بوابة واجهة برمجة تطبيقات OCI من مقطع الوصول مع موفر الهوية.
  6. إذا نجح التحقق من المقطع، يقوم بوابة واجهة برمجة تطبيقات OCI بتوجيه الخدمة الخلفية المناسبة وإرجاع الاستجابة المستوفاة للعميل.

عندما يكون العميل معتمدًا بالفعل، يشبه التدفق المخطط التالي.



تطبيقات الويب الآمنة-oci-api-gateway-open-id-data-flow-authorized.zip

  1. بعد الحصول على رمز مميز، يتصفح مقاطع الذاكرة المخبئية للطلبات التالية لنفس التطبيق.
  2. يتحقق بوابة واجهة برمجة تطبيقات OCI من المقطع مع موفر الهوية لضمان وصول العميل إلى خدمات الواجهة الخلفية.
  3. إذا كان العميل معتمدًا، يقوم بوابة واجهة برمجة تطبيقات OCI بالتوجيه إلى الخدمة الخلفية المناسبة وإرجاع الاستجابة المستوفاة للعميل.

تتضمن البنية المكونات التالية:

  • Region (المنطقة)

    منطقة Oracle Cloud Infrastructure هي منطقة جغرافية محلية تحتوي على مركز بيانات واحد أو أكثر، تسمى نطاقات التوفر. المناطق مستقلة عن المناطق الأخرى، والمسافات الشاسعة يمكن أن تفصل بينها (عبر البلدان أو حتى القارات).

  • نطاقات الإتاحة

    تعتبر نطاقات التوافر مراكز بيانات مستقلة ومستقلة وحيدة داخل المنطقة. يتم عزل الموارد المادية في كل نطاق إتاحة عن الموارد الموجودة في نطاقات التوفر الأخرى، والتي توفر إمكانية تحمل الأخطاء. لا تتشارك نطاقات التوافر البنية الأساسية، مثل الطاقة أو التبريد أو شبكة نطاق التوفر الداخلي. لذا، من غير المحتمل أن يؤثر الفشل في أحد نطاقات التوفر على نطاقات التوفر الأخرى في المنطقة.

  • نطاقات الخطأ

    مجال الخطأ هو مجموعة من الأجهزة والبنية التحتية داخل نطاق التوافر. يحتوي كل نطاق توافر على ثلاثة نطاقات خطأ ذات طاقة وأجهزة مستقلة. عند توزيع الموارد عبر نطاقات خطأ متعددة، يمكن لتطبيقاتك تحمل فشل الخادم المادي، وصيانة النظام، وحالات فشل الطاقة داخل نطاق الخطأ.

  • الشبكات الفرعية وشبكة السحابة الافتراضية (VCN)

    شبكة السحابة الافتراضية (VCN) هي شبكة قابلة للتخصيص ومحددة بالبرامج قمت بإعدادها في منطقة Oracle Cloud Infrastructure. توفر لك شبكات VCN، مثلها مثل شبكات مراكز البيانات التقليدية، تحكمًا كاملاً في بيئة شبكتك. يمكن أن يحتوي VCN على العديد من كتل CIDR غير المتداخلة التي يمكنك تغييرها بعد إنشاء VCN. يمكنك تقسيم شبكة سحابية افتراضية (VCN) إلى شبكات فرعية، يمكن تحديد مجال لها إلى منطقة أو إلى نطاق إتاحة. وتتكون كل شبكة فرعية من نطاق متجاور من العناوين التي لا تتداخل مع الشبكات الفرعية الأخرى في شبكة السحابة الافتراضية (VCN). يمكنك تغيير حجم الشبكة الفرعية بعد إنشائها. يمكن أن تكون الشبكة الفرعية عامة أو خاصة.

  • بوابة API

    يتيح لك Oracle API Gateway نشر واجهات برمجة التطبيقات بنقاط نهاية خاصة يمكن الوصول إليها من داخل شبكتك، والتي يمكنك عرضها على الإنترنت العام إذا لزم الأمر. تدعم نقاط النهاية التحقق من واجهة برمجة التطبيقات وتحويل الطلب والاستجابة، وCORS، والمصادقة والاعتماد، وتقييد الطلب.

  • إدارة الهوية والوصول (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) هو مستوى التحكم في الوصول لـ Oracle Cloud Infrastructure (OCI) وOracle Cloud Applications. تتيح واجهة برمجة تطبيقات IAM وواجهة المستخدم إمكانية إدارة نطاقات الهوية والموارد داخل نطاق الهوية. يمثل كل نطاق هوية OCI IAM حلاً مستقلاً لإدارة الهوية والوصول أو مجموعة مستخدمين مختلفة.

  • FastConnect

    يوفر Oracle Cloud Infrastructure FastConnect طريقة سهلة لإنشاء اتصال خاص مخصص بين مركز بياناتك وOracle Cloud Infrastructure. يوفر موقع FastConnect خيارات نطاق ترددي أعلى وتجربة شبكات أكثر موثوقية مقارنة بالاتصالات المستندة إلى الإنترنت.

  • اتصال OCI وAzure الداخلي

    Oracle Cloud وMicrosoft Azure Interconnect هو أول عرض متعدد السحابات من Oracle. يوفر اتصالاً مباشرًا بالشبكة بين مراكز بيانات Azure وOracle Cloud Infrastructure (OCI) حول العالم. وهي تتيح لمسؤولي ومطوري Azure توصيل تطبيقاتهم بالتطبيقات والخدمات التي تعمل في OCI من دون تكوين ارتباطات مخصصة أو إرسال حركة مرور التطبيقات عبر الإنترنت العام.

التوصيات

استخدم التوصيات التالية كنقطة بداية. قد تختلف متطلباتك عن البنية الموضحة هنا.
  • بوابة OCI API

    يمكنك الاستفادة من بوابة واجهة برمجة تطبيقات OCI لعرض واجهات برمجة تطبيقات REST وتمكين دعم تسجيل الدخول الموحد لتطبيقات الويب الخاصة بك. يمكن أيضًا تعيين بوابة واجهة برمجة تطبيقات OCI كوحدة تأمين مركزية للتطبيقات لتفريغ تنفيذ الأمان إلى بوابة واجهة برمجة تطبيقات OCI. ويقلل ذلك من التكاليف المرتبطة بالتنفيذ والصيانة والتعقيد.

الاعتبارات

ضع في اعتبارك ما يلي عند توزيع هذه البنية المرجعية.

  • حماية تزوير طلبات المواقع المشتركة (CSRF)

    يمكن للمهاجم توصيل هجوم CSRF عن طريق استغلال وجود ملف تعريف ارتباط للمستعرض لجعل المستخدمين يقومون بإرسال أوامر غير مقصودة إلى تطبيق ويب، مثل بوابة واجهة برمجة تطبيقات OCI. إذا حدد التطبيق أن المستخدم قد تمت مصادقته بنجاح بسبب وجود ملف تعريف ارتباط المتصفح، فإن التطبيق ينفذ الأمر بعواقب ضارة محتملة.

    عند تحديد نظام تدقيق من النوع OAuth 2.0 introspection endpoint ونظام فشل تدقيق من النوع OAuth 2.0، يتم تحديد كيفية قيام بوابة واجهة برمجة تطبيقات OCI بتخزين مقطع JWT جديد تم الحصول عليه باستخدام تدفق اعتماد الاتصال OpenID.

    حدد Use cookies for session إذا كنت تريد تخزين مقاطع JWT جديدة في ملف تعريف ارتباط جلسة عمل. لمنع هجمات CSRF المحتملة، عندما يقوم بوابة واجهة برمجة تطبيقات OCI بتخزين الرمز المميز في ملف تعريف ارتباط جلسة عمل، فإنه يقوم أيضًا بإرجاع رمز CSRF المميز في رأس استجابة X-CSRF-TOKEN. يجب أن تتضمن الطلبات التالية إلى بوابة واجهة برمجة تطبيقات OCI (بداية من طلبات GET) مقطع CSRF في رأس طلب X-CSRF-TOKEN، بالإضافة إلى مقطع JWT في ملف تعريف ارتباط جلسة العمل.

  • مشاركة الموارد عبر المصادر (CORS)

    قد تحتاج تطبيقات الويب وواجهات برمجة تطبيقات REST الأخرى المستخدمة في التطبيق إلى دعم CORS، حيث تتم إعادة توجيه الطلبات من خلال بوابة واجهة برمجة تطبيقات OCI من مستعرضات الويب.

اكتشاف المزيد

تعرف على المزيد حول تأمين تطبيقات الويب باستخدام بوابة OCI API وOpenID Connect.

راجع هذه الموارد الإضافية:

إشعارات الاستلام

المؤلفون:

  • سوبرام ماتورايفيران
  • روبرت وندرليخ
  • شيام سوتشاك