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

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
الانتقال إلى مستندات Apigee X.
info

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

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

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

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

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

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

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

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

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

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

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

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

    يُرجى أيضًا الاطّلاع على فهم الحصص.

  5. في قسم أهداف خدمة Apigee عن بُعد ، انقر على إضافة هدف خدمة Apigee عن بُعد.
  6. في مربّع حوار "هدف خدمة Apigee عن بُعد"، أضِف القيم التالية:
    السمة القيمة الوصف
    اسم الهدف أدخِل اسم الخدمة المستهدَفة. على سبيل المثال: httpbin.org نقطة النهاية المستهدَفة التي يسبقها خادم Envoy الوكيل.
    الخادم الوكيل لواجهة برمجة التطبيقات remote-service الخادم الوكيل remote-service الذي تم توفيره على Apigee أثناء تثبيت Envoy Adapter.
    المسار أدخِل /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. أولاً، في قسم "بيانات الاعتماد"، انقر على + إضافة منتج واختَر المنتج الذي أعددته للتو: httpbin-product.
    2. بعد ذلك، أضِف المنتج remote-service. تم إنشاء هذا المنتج تلقائيًا عند توفير Apigee.
  6. انقر على إنشاء.
  7. ضمن "بيانات الاعتماد"، انقر على عرض بجانب المفتاح.
  8. انسخ قيمة "مفتاح المستهلك". هذه القيمة هي مفتاح واجهة برمجة التطبيقات الذي ستستخدمه لطلب بيانات من واجهة برمجة التطبيقات إلى خدمة httpbin.

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

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

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

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

  • الهدف
  • مسار الطلب
  • Quota
  • نطاقات OAuth

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

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

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

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

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

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

Quota

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

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

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

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

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

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

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

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

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

نطاقات OAuth

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

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

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

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

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

نظرة عامة

يتولّى Envoy التحقّق من رموز JWT المميّزة والمصادقة عليها باستخدام فلتر المصادقة المستندة إلى JWT.

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

إنشاء رموز JWT المميّزة في Apigee

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

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

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

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 في عنوان Authorization. مثال:

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

تعذُّر إنشاء رمز JWT المميّز

رفض Envoy

إذا رفض 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 على النحو التالي:

  • "Audiences in Jwt are not allowed"
  • "Jwt issuer is not configured"

تنتج هذه الرسائل عن متطلبات في إعدادات 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. يتم إرسال جميع السجلّات إلى الخطأ المعياري.

العنصر مطلوب الوصف
-l, --log_level المستويات الصالحة: debug وinfo وwarn وerror. يضبط مستوى التسجيل. الافتراضي: info
-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 عن بُعد لـ Envoy إحصاءات الطلبات إلى Apigee لمعالجتها في الإحصاءات. تُبلغ Apigee عن هذه الطلبات ضمن اسم منتج واجهة برمجة التطبيقات المرتبط.

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