دليل العمليات

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

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

يوضّح المثال التالي كيفية الحصول على مفتاح واجهة برمجة تطبيقات يمكنك استخدامه للتحقق من صحة الرمز. طلبات البيانات من واجهة برمجة التطبيقات إلى خدمة مستهدَفة تم إنشاؤها باستخدام خادم وكيل من خلال محوّل Apigee لتطبيق Envoy.

1. تسجيل الدخول إلى Apigee

  1. افتح واجهة مستخدم Apigee في متصفّح.
  2. بعد فتح واجهة المستخدم، اختَر المؤسسة نفسها التي استخدمتها لإعداد مهايئ Apigee في Envoy.

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

يمكنك استخدام مطوِّر حالي للاختبار أو إنشاء مطوّر جديد على النحو التالي:

  1. اختَر نشر >. المطوّرون في قائمة التنقّل الجانبية
  2. انقر على + مطوّر برامج.
  3. املأ مربّع الحوار لإنشاء مطوِّر جديد. يمكنك استخدام أي اسم أو عنوان بريد إلكتروني تريده للمطوِّر.

3- إنشاء منتج واجهة برمجة تطبيقات

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

  1. اختَر نشر >. منتجات واجهة برمجة التطبيقات في قائمة التنقل الجانبية
  2. انقر على + منتج واجهة برمجة التطبيقات.
  3. املأ صفحة تفاصيل المنتج على النحو التالي. لا تنقر على حفظ إلى أن يُطلَب منك ذلك.
  4. الحقل القيمة
    الاسم httpbin-product
    الاسم المعروض httpbin product
    البيئة your_environment

    عليك ضبط هذا الإعداد على البيئة التي استخدمتها عند توفير مهايئ Apigee لتطبيق Envoy مع apigee-remote-service-cli

    الوصول Private
    النسبة 5 طلبات كل دقيقة واحدة

    راجِع أيضًا المقالة فهم الحصص.

  5. في قسم أهداف خدمة Apigee عن بُعد، انقر على إضافة هدف خدمة Apigee عن بُعد.
  6. في مربّع الحوار هدف الخدمة عن بُعد في Apigee، أضِف القيم التالية:
    السمة القيمة الوصف
    اسم الاستهداف يُرجى إدخال اسم الخدمة المستهدفة. مثلاً: httpbin.org نقطة النهاية المستهدفة التي يواجهها الخادم الوكيل Envoy.
    الخادم الوكيل لواجهة برمجة التطبيقات remote-service خادم وكيل remote-service الذي تم توفيره في Apigee أثناء تثبيت محوّل Envoy.
    المسار أدخِل /resource_path لمطابقة مسار معيّن. بالنسبة مثال: /httpbin مسار الطلب المطلوب مطابقته على نقطة النهاية المستهدفة. طلبات بيانات من خادم وكيل واجهة برمجة التطبيقات إلى هذا المسار سيطابق منتج واجهة برمجة التطبيقات هذا.

    Edge Public أو Private Cloud: تعرض لقطة الشاشة التالية إعدادات مربع الحوار التي تم ضبطها بشكل صحيح httpbin.org، وهو إعداد مناسب لـ Apigee Edge Public أو Private Cloud.

  7. انقر على حفظ.

4. إنشاء تطبيق مطوِّر

  1. اختَر نشر >. التطبيقات في قائمة التنقّل الجانبية.
  2. انقر على + تطبيق.
  3. املأ صفحة تطبيق المطوِّر على النحو التالي. يُرجى عدم الحفظ حتى يُطلب منك ذلك.
  4. الاسم httpbin-app
    الاسم المعروض httpbin app
    المطوّر اختر المطوِّر الذي أنشأته في السابق أو اختَر أيّ مطوّر برامج تريده من القائمة.
  5. بعد ذلك، أضِف منتجَين إلى التطبيق:
    1. أولاً، في قسم Credentials (بيانات الاعتماد)، انقر على + Add product (+ إضافة منتج) واختَر المنتج الذي تريد التي تم إعدادها للتو: httpbin-product.
    2. بعد ذلك، أضِف المنتج remote-service. تم إنشاء هذا المنتج تلقائيًا عند توفير Apigee.
  6. انقر على إنشاء.
  7. ضمن بيانات الاعتماد، انقر على عرض بجانب المفتاح.
  8. انسخ قيمة مفتاح العميل. هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي ستستخدمه لإجراء طلبات بيانات من واجهة برمجة التطبيقات إلى خدمة httpbin.

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

منتجات واجهة برمجة التطبيقات هي عنصر التحكّم الأساسي لخدمة Apigee عن بُعد. عند إنشاء منتج واجهة برمجة تطبيقات وربطه خدمة مستهدفة، فأنت تنشئ سياسة تم تطبيقه على أي طلبات لإعداد محوّل Apigee for Envoy للتعامل معها.

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

عند تعريف منتج واجهة برمجة تطبيقات في Apigee، يمكنك تحديد عدد من المعلمات لتقييم الطلبات:

  • الهدف
  • مسار الطلب
  • الحصة
  • نطاقات OAuth

أهداف الخدمة عن بُعد

سيتم تطبيق تعريف منتج واجهة برمجة التطبيقات على طلب في حال تطابق الطلب مع كلٍّ من الهدف الربط (مثل httpbin.org) ومسار الطلب (مثل /httpbin). يتم تخزين قائمة بالأهداف المحتملة كسمة في منتج واجهة برمجة التطبيقات.

تتحقق خدمة Apigee Remote Service تلقائيًا من عنوان :authority (host) الخاص في Envoy مقابل قائمة أهدافها ولكن يمكن تكوينها لاستخدام رؤوس أخرى.

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

يتطابق المسار الذي تم إدخاله وفقًا للقواعد التالية:

  • تتطابق شرطة مائلة واحدة (/) بمفردها مع أي مسار.
  • تكون السمة * صالحة في أي مكان وتطابق داخل مقطع (بين الشرطات المائلة).
  • تكون السمة ** صالحة في النهاية وتتطابق مع أي نص في نهاية السطر.

الحصة

تحدد الحصة عدد رسائل الطلبات التي يُسمح للتطبيق بإرسالها إلى على مدار ساعة أو يوم أو أسبوع أو شهر. عندما يصل أحد التطبيقات إلى الحد الأقصى لحصته، يتم رفض طلبات البيانات اللاحقة من واجهة برمجة التطبيقات.

حالات استخدام الحصة

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

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

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

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

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

أماكن الاحتفاظ بالحصص

يتم الاحتفاظ بالحصص وفحصها محليًا من خلال عملية الخدمة عن بُعد وبشكل غير متزامن باستخدام Apigee Runtime. وهذا يعني أن الحصص غير محددة ومن المحتمل أن يكون لها إذا كان لديك أكثر من خدمة عن بُعد تحتفظ بحصّة المساحة المحددة. إذا كانت انقطع الاتصال بـ Apigee Runtime، فستستمرّ الحصة المحلية كحصة مستقلة إلى حين إعادة الاتصال ببيئة تشغيل Apigee.

نطاقات OAuth

في حال استخدام رموز JWT المميزة، يمكنك حصر الرموز المميّزة بمجموعات فرعية من نطاقات OAuth المسموح بها. سيتم التحقّق من النطاقات المخصَّصة لرمز JWT المميز الذي تم إصداره مقابل نطاقات منتج واجهة برمجة التطبيقات.

لمحة عن تطبيقات المطوّرين

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

استخدام المصادقة المستندة إلى JWT

يمكنك استخدام رمز JWT المميز لإجراء استدعاءات لخادم وكيل واجهة برمجة التطبيقات التي تمت مصادقتها بدلاً من استخدام مفتاح واجهة برمجة التطبيقات. هذا النمط كيفية استخدام الأمر apigee-remote-service-cli token إنشاء رموز JWT وفحصها وتدويرها.

نظرة عامة

تعالج خدمة Envoy عملية التحقق من JWT والمصادقة عليها باستخدام فلتر مصادقة JWT

بعد المصادقة، يرسل فلتر Envoy ext-authz عناوين الطلب وJWT إلى apigee-remote-service-envoy تطابق هذه النتيجة مطالبتَي api_product_list وscope من JWT. مقابل منتجات Apigee API من أجل السماح لها بتنفيذ الهدف من الطلب.

إنشاء رموز Apigee JWT

يمكن إنشاء رموز Apigee JWT باستخدام واجهة سطر الأوامر:

apigee-remote-service-cli token create -c config.yaml --id $KEY --secret $SECRET

أو باستخدام نقطة نهاية رمز OAuth المميز العادي. مثال على تمويج:

curl https://org-env.apigee.net/remote-service/token -d '{"client_id":"myclientid","client_secret":"myclientsecret","grant_type":"client_credentials"}' -H "Content-type: application/json"

استخدام رمز JWT المميز

وبعد الحصول على الرمز المميز، يمكنك تمريره إلى Envoy في عنوان التفويض. مثال:

curl localhost:8080/httpbin/headers -i -H "Authorization:Bearer $TOKEN"

فشل رمز JWT المميز

رفض رسالة إلكترونية

إذا رفض Envoy الرمز المميّز، قد تظهر لك رسالة مثل:

Jwks remote fetch is failed

إذا كان الأمر كذلك، يُرجى التأكُّد من احتواء إعدادات Envoy على معرّف موارد منتظم (URI) صالح في remote_jwks، بحيث يمكن لـ Envoy الوصول إليه، وأنك اضبط الشهادات عند تثبيت الخادم الوكيل في Apigee. ينبغي أن تكون قادرًا لاستدعاء معرف الموارد المنتظم (URI) مباشرة باستخدام استدعاء GET وتلقي استجابة JSON صالحة.

مثال:

curl --http1.1 https://myorg-eval-test.apigee.net/remote-service/certs

قد تظهر الرسائل الأخرى الواردة من Envoy على النحو التالي:

  • "لا يُسمح بشرائح الجمهور في Jwt"
  • "لم يتم إعداد جهة إصدار Jwt"

ويرجع ذلك إلى المتطلبات في إعدادات Envoy التي قد تحتاج إلى تعديلها.

فحص رمز مميّز

يمكنك استخدام واجهة سطر الأوامر لفحص الرمز المميّز. مثال

apigee-remote-service-cli -c config.yaml token inspect -f path/to/file

أو

apigee-remote-service-cli -c config.yaml token inspect <<< $TOKEN

تصحيح الأخطاء

راجِع تعذُّر مفتاح واجهة برمجة التطبيقات الصالح.

التسجيل

يمكنك ضبط مستوى التسجيل في خدمة $REMOTE_SERVICE_Home/apigee-remote-service-envoy. يتم إرسال جميع عمليات التسجيل إلى Stderr.

العنصر مطلوب الوصف
-l، --log_level المستويات الصالحة: تصحيح الأخطاء والمعلومات والتحذير والخطأ. لضبط مستوى التسجيل. الإعدادات التلقائية: معلومات
-j، --json_log يصدر مخرجات السجلّ كسجلات JSON.

يوفر Envoy إمكانية التسجيل. لمزيد من المعلومات، يُرجى الاطّلاع على الروابط التالية في مستندات Envoy:

استخدام خادم وكيل للشبكة

يمكن إدراج خادم وكيل HTTP باستخدام متغيري بيئة HTTP_PROXY وHTTPS_PROXY في بيئة البرنامج الثنائي لنظام apigee-remote-service-envoy. عند استخدام هذه الخيارات، لن يتم عرض NO_PROXY يمكن أيضًا استخدام متغير البيئة لاستبعاد مضيفات معينة من الإرسال عبر الخادم الوكيل.

HTTP_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
HTTPS_PROXY=http://[user]:[pass]@[proxy_ip]:[proxy_port]
NO_PROXY=127.0.0.1,localhost

تذكر أنه يجب الوصول إلى الخادم الوكيل من apigee-remote-service-envoy.

لمحة عن المقاييس والإحصاءات

تتوفّر نقطة نهاية Prometheus لمقاييس الأداء على :5001/metrics. يمكنك ضبط رقم المنفذ هذا. راجِع ملف الإعداد.

إحصاءات Envoy

تقدّم الروابط التالية معلومات حول الحصول على إحصاءات خادم وكيل Envoy. البيانات:

إحصاءات Istio

تقدّم الروابط التالية معلومات حول الحصول على إحصاءات خادم وكيل Envoy. البيانات:

إحصاءات Apigee

ترسل Apigee Remote Service في Envoy إحصاءات الطلبات إلى Apigee لمعالجة الإحصاءات. تُبلغ Apigee عن هذه الطلبات ضمن اسم منتج واجهة برمجة التطبيقات المرتبط.

للحصول على معلومات حول Apigee analytics يُرجى الاطّلاع على نظرة عامة على خدمات "إحصاءات Google".