تأمين واجهة برمجة تطبيقات من خلال اشتراط مفاتيح واجهة برمجة التطبيقات

أنت تعرض مستندات Apigee Edge.
انتقل إلى مستندات Apigee X.
معلومات

المعلومات التي ستطّلع عليها

من خلال هذا البرنامج التعليمي، ستتعلم ما يلي:

  • أنشِئ خادمًا وكيلاً لواجهة برمجة التطبيقات يتطلب مفتاح واجهة برمجة التطبيقات.
  • يمكنك إضافة منتج واجهة برمجة التطبيقات.
  • أضِف مطوِّرًا وسجِّل تطبيقًا.
  • يمكنك استدعاء واجهة برمجة التطبيقات باستخدام مفتاح واجهة برمجة التطبيقات.

يجب حماية واجهة برمجة التطبيقات من الوصول غير المصرَّح به. من بين طرق وذلك باستخدام مفاتيح واجهة برمجة التطبيقات (تسمى أيضًا المفاتيح العامة أو المستهلك مفاتيح أو مفاتيح التطبيقات).

عندما يقدّم أحد التطبيقات طلبًا إلى على واجهة برمجة التطبيقات، يجب أن يوفر التطبيق مفتاحًا صالحًا. في وقت التشغيل، سياسة يتم التحقّق من مفتاح واجهة برمجة التطبيقات للتحقّق من أنّ مفتاح واجهة برمجة التطبيقات الذي تم توفيره:

  • صالحة
  • لم يتم إبطاله
  • يطابق مفتاح واجهة برمجة التطبيقات الخاص بمنتج واجهة برمجة التطبيقات الذي يعرض البيانات المطلوبة المراجِع

إذا كان المفتاح صالحًا، سيتم السماح بالطلب. إذا كان المفتاح غير صالح، سيتم يؤدي الطلب إلى فشل التفويض.

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

المتطلبات

  • حساب على Apigee Edge إذا لم يكن لديك حساب، يمكنك الاشتراك مع التوجيهات في إنشاء حساب على Apigee Edge
  • متصفح ويب لإجراء طلب بيانات من واجهة برمجة التطبيقات.
  • (بالنسبة إلى قسم الرصيد الإضافي، ليس مطلوبًا) cURL مثبّت على جهازك لإجراء اتصالات واجهة برمجة التطبيقات من سطر الأوامر.

إنشاء الخادم الوكيل لواجهة برمجة التطبيقات

لمحة عن 'mocktarget'

تتم استضافة خدمة mocktarget على Apigee ويتم إرجاعها من خلال واجهة برمجة تطبيقات بسيطة. البيانات. ولا يتطلب أي مفتاح واجهة برمجة تطبيقات أو رمز دخول. في الواقع، يمكنك الوصول إليه في متصفح ويب. يمكنك تجربتها بالنقر على ما يلي:

http://mocktarget.apigee.net

يعرض الهدف Hello, Guest!. يمكنك استخدام /help للحصول على صفحة مساعدة تضم موارد واجهة برمجة التطبيقات الأخرى المتوفرة

  1. الانتقال إلى https://apigee.com/edge وسجِّل الدخول.
  2. قم بالتبديل إلى المؤسسة التي تريدها بالنقر على اسم المستخدم الخاص بك في أعلى شريط التنقل الجانبي لعرض قائمة الملف الشخصي للمستخدم، ثم واختيار المؤسسة من القائمة.

    تحديد مؤسسة في قائمة الملف الشخصي للمستخدم
  3. انقر على خوادم واجهة برمجة التطبيقات الوكيلة على الصفحة المقصودة لعرض واجهة برمجة التطبيقات. قائمة الخوادم الوكيلة.

    قائمة واجهات برمجة تطبيقات Edge
  4. انقر على + خادم وكيل.
    زر إنشاء خادم وكيل
  5. في صفحة إنشاء خادم وكيل، اختَر الخادم الوكيل العكسي (الأكثر شيوعًا).
  6. في صفحة تفاصيل الخادم الوكيل، يمكنك ضبط الخادم الوكيل على النحو التالي:
    في هذا الحقل إجراء ذلك
    اسم الخادم الوكيل أدخِل: helloworld_apikey
    المسار الأساسي للمشروع

    التغيير إلى: /helloapikey

    يُعد مسار قاعدة المشروع جزءًا من عنوان URL المستخدم لإنشاء إلى الخادم الوكيل لواجهة برمجة التطبيقات.

    ملاحظة: للحصول على اقتراحات Apigee حول تحديد إصدارات واجهة برمجة التطبيقات، عرض تحديد الإصدارات في Web API Design: The مشاركات رابط الكتاب الإلكتروني

    واجهة برمجة التطبيقات الحالية

    أدخِل: http://mocktarget.apigee.net

    يؤدي هذا إلى تحديد عنوان URL المستهدف الذي يستدعيه Apigee Edge على إلى الخادم الوكيل لواجهة برمجة التطبيقات.

    الوصف أدخِل: hello world protected by API key
  7. انقر على التالي.
  8. في صفحة السياسات الشائعة، لـ الأمان: التفويض، واختَر مفتاح واجهة برمجة التطبيقات ثم انقر على التالي. هذا النمط ستتم إضافة سياستين إلى الخادم الوكيل لواجهة برمجة التطبيقات
  9. في صفحة المضيفات الافتراضية، حدد افتراضي آمن ثم انقر على التالي. يتيح اختيار تلقائي لاستدعاء واجهة برمجة التطبيقات باستخدام http://. اختيار آمن، تسمح لك بطلب البيانات من واجهة برمجة التطبيقات باستخدام https://.
  10. في صفحة الملخص، تأكد من أن نشر الاختبار وانقر على إنشاء ونشر.
  11. سيظهر لك إقرار بأنّ الخادم الوكيل الجديد لواجهة برمجة التطبيقات وواجهة برمجة التطبيقات بنجاح، وأنه تم نشر الخادم الوكيل لواجهة برمجة التطبيقات بيئة الاختبار الخاصة بك.
  12. انقر على تعديل الخادم الوكيل لعرض صفحة نظرة عامة الخادم الوكيل لواجهة برمجة التطبيقات.

عرض السياسات

  1. في محرِّر الخادم الوكيل لواجهة برمجة التطبيقات، انقر على علامة التبويب تطوير. سترى أن تمّت إضافة السياستَين إلى مسار الطلب للخادم الوكيل لواجهة برمجة التطبيقات:
    • التحقق من مفتاح واجهة برمجة التطبيقات: لفحص طلب بيانات من واجهة برمجة التطبيقات للتأكد من صلاحية توفّر مفتاح واجهة برمجة التطبيقات (يتم إرساله كمَعلمة طلب بحث).
    • إزالة واجهة برمجة تطبيقات معلَمة طلب البحث: وهي سياسة AssignMessage التي مفتاح واجهة برمجة التطبيقات بعد فحصه، حتى لا يتم تجاوزه الموجودة حولها وعرضها بدون داعٍ.
  2. انقر على رمز سياسة "مفتاح واجهة برمجة التطبيقات" (Verify API) في طريقة عرض المسار واطّلِع على إعدادات XML الخاصة بالسياسة في عرض الرموز السفلية. تشير رسالة الأشكال البيانية يحدّد العنصر <APIKey> السياسة بشأن المكان الذي يجب ابحث عن مفتاح واجهة برمجة التطبيقات عند إجراء الاتصال. بشكل افتراضي، تبحث عن كمعلمة طلب بحث تُسمى apikey في HTTP الطلب:

    <APIKey ref="request.queryparam.apikey" />
    

    الاسم apikey عشوائي ويمكن أن يكون أي خاصية. الذي يحتوي على مفتاح واجهة برمجة التطبيقات.

محاولة طلب بيانات من واجهة برمجة التطبيقات

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

  1. تمت العملية بنجاح

    في متصفِّح ويب، انتقِل إلى العنوان التالي. هذه هي الخدمة المستهدفة التي تم ضبط الخادم الوكيل لواجهة برمجة التطبيقات عليها لإعادة توجيهها. الطلب إليه، ولكنك ستصل إليه مباشرةً في الوقت الحالي:

    http://mocktarget.apigee.net
    

    من المفترض أن يصلك هذا الردّ بنجاح: Hello, Guest!.

  2. تعذُّر التحقّق

    حاول الآن استدعاء الخادم الوكيل لواجهة برمجة التطبيقات:

    http://ORG_NAME-test.apigee.net/helloapikey
    

    مع استبدال ORG_NAME باسم الحافة.

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

    {"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
    

    مما يعني، بشكل صحيح، أنك لم تمرر مفتاح واجهة برمجة تطبيقات صالحًا (لأنه معلمة طلب بحث).

في الخطوات التالية، عليك إضافة منتج واجهة برمجة التطبيقات.

إضافة منتج واجهة برمجة التطبيقات

لإضافة منتج واجهة برمجة التطبيقات باستخدام واجهة مستخدم Apigee:

  1. اختَر نشر >. منتجات واجهات برمجة التطبيقات (API):
  2. انقر على +منتج واجهة برمجة التطبيقات.
  3. أدخِل تفاصيل المنتج لمنتج واجهة برمجة التطبيقات.

    الحقل الوصف
    الاسم الاسم الداخلي لمنتج واجهة برمجة التطبيقات. لا تفعل تحديد رموز خاصة في الاسم.
    ملاحظة: أنت لا يمكن تعديل الاسم بعد إنشاء منتج واجهة برمجة التطبيقات. بالنسبة على سبيل المثال، helloworld_apikey-Product.
    الاسم المعروض الاسم المعروض لمنتج واجهة برمجة التطبيقات. يُستخدم الاسم المعروض في واجهة المستخدم ويمكنك تعديلها في أي وقت. إذا لم يتم تحديده، سيتم سيتم استخدام قيمة الاسم. يتم ملء هذا الحقل تلقائيًا باستخدام قيمة الاسم: يمكنك تعديل محتواها أو حذفه. شاشة العرض يمكن أن يتضمن الاسم حروفًا خاصة. على سبيل المثال: helloworld_apikey-Product
    الوصف وصف لمنتج واجهة برمجة التطبيقات. مثلاً: Test product for tutorial
    البيئة البيئات التي سيسمح منتج واجهة برمجة التطبيقات بالوصول إليها. على سبيل المثال، test أو prod.
    إذن الوصول اختَر علني.
    الموافقة تلقائيًا على طلبات الوصول تفعيل الموافقة التلقائية على الطلبات الرئيسية لواجهة برمجة التطبيقات هذه منتج من أي تطبيق.
    الحصة تجاهُل هذا البرنامج التعليمي.
    نطاقات OAuth المسموح بها تجاهُل هذا البرنامج التعليمي.
  4. في قسم موارد واجهة برمجة التطبيقات، حدد الخادم الوكيل لواجهة برمجة التطبيقات الذي تريد إنشاء. مثلاً: helloworld_apikey
  5. انقر على إضافة.
  6. في قسم المسارات، أضِف المسار "/".
  7. انقر على إضافة.
  8. انقر على حفظ.

في الخطوات التالية، ستحصل على مفتاح واجهة برمجة التطبيقات المطلوب.

إضافة مطوّر وتطبيق إلى مؤسسة

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

إنشاء مطوّر برامج

لإنشاء مطور برامج:

  1. اختَر نشر >. المطوِّرون في القائمة
  2. انقر على + مطوّر برامج.
  3. أدخِل ما يلي في نافذة "المطوّر الجديد":

    في هذا الحقل enter
    الاسم Keyser
    اسم العائلة Soze
    اسم المستخدم keyser
    البريد الإلكتروني keyser@example.com
  4. انقر على إنشاء.

تسجيل تطبيق

لتسجيل تطبيق مطوِّر:

  1. اختَر نشر >. التطبيقات:
  2. انقر على + تطبيق.
  3. أدخل ما يلي في نافذة تطبيق جديد:

    p
    في هذا الحقل إجراء ذلك
    الاسم والاسم المعروض أدخِل: keyser_app
    الشركة / المطوّر اختيار: Developer
    المطوّر اختيار: Keyser Soze (keyser@example.com)
    عنوان URL لمعاودة الاتصال وملاحظات ترك الحقل فارغًا
  4. في القسم Credentials (بيانات الاعتماد)، اختَر Never (مطلقًا) من قائمة انتهاء الصلاحية. لن تنتهي صلاحية بيانات اعتماد هذا التطبيق أبدًا.
  5. ضمن المنتجات، انقر على إضافة منتج.
  6. اختَر helloworld_apikey-Product.
  7. انقر على إضافة.
  8. انقر على إنشاء أعلى تفاصيل التطبيق وعلى يسارها. لحفظ عملك.

الحصول على مفتاح واجهة برمجة التطبيقات

للحصول على مفتاح واجهة برمجة التطبيقات:

  1. في صفحة التطبيقات (نشر > التطبيقات)، انقر على keyser_app.
  2. في صفحة keyser_app، انقر على إظهار بجانب المفتاح. في القسم بيانات الاعتماد. في قسم المنتج، أن المفتاح مرتبط بـ helloworld_apikey

    .
  3. اختَر المفتاح وانسخه. ستستخدمها في الخطوة التالية.

يمكنك استدعاء واجهة برمجة التطبيقات باستخدام مفتاح

الآن وبعد أن أصبح لديك مفتاح واجهة برمجة تطبيقات، يمكنك استخدامه لاستدعاء الخادم الوكيل لواجهة برمجة التطبيقات. الدخول ما يلي في متصفح الويب لديك. استبدِل اسم مؤسسة Edge لـ ORG_NAME، ومفتاح واجهة برمجة التطبيقات لـ API_KEY أدناه. تأكد من عدم وجود مسافات إضافية في معلَمة طلب البحث.

http://ORG_NAME-test.apigee.net/helloapikey?apikey=API_KEY

الآن، عند الاتصال بالخادم الوكيل لواجهة برمجة التطبيقات، من المفترض أن تحصل على هذا الرد: Hello, Guest!

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

لاحظ أنه بشكل عام ليس من الممارسات الجيدة تمرير مفتاح واجهة برمجة تطبيقات استعلام البحث. أن تضع في اعتبارك تمريره في عنوان HTTP بدلاً من ذلك

أفضل الممارسات: تمرير المفتاح في عنوان HTTP

في هذه الخطوة، ستقوم بتعديل الخادم الوكيل للبحث عن مفتاح واجهة برمجة التطبيقات في يسمى x-apikey.

  1. عدِّل الخادم الوكيل لواجهة برمجة التطبيقات. اختَر التطوير > الأجهزة الوكيلة لواجهة برمجة التطبيقات > helloworld_apikey، ثم انتقِل إلى طريقة العرض تطوير.
  2. اختَر سياسة Verify API Key وعدِّل ملف XML للسياسة لتحديد أن تبحث السياسة في header بدلاً من queryparam:

    <APIKey ref="request.header.x-apikey"/>
    
  3. احفظ الخادم الوكيل لواجهة برمجة التطبيقات لنشر التغيير.
  4. عليك إجراء طلب البيانات التالي من واجهة برمجة التطبيقات باستخدام cURL لتمرير مفتاح واجهة برمجة التطبيقات كـ يسمى x-apikey. لا تنس استبدال اسم مؤسستك.

    curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
    

لاحظ أنه لإكمال التغيير بشكل كامل، ستحتاج أيضًا إلى تهيئة سياسة assignMessage لإزالة الرأس بدلاً من مَعلمة طلب البحث. على سبيل المثال:

<Remove>
<Headers>
    <Header name="x-apikey"/>
</Headers>
</Remove>

مواضيع ذات صلة

فيما يلي بعض الموضوعات ذات الصلة مباشرةً بهذا البرنامج التعليمي:

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

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