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

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

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

على سبيل المثال، تحدِّد إعدادات السياسة أدناه الموقع الجغرافي المتوقّع للمفتاح كطلب. معلَمة اسمها apikey. يجب أن يقدم الطلب الناجح مفتاح واجهة برمجة التطبيقات كطلب ملحقة بالطلب، مثل ?apikey=Y7yeiuhcbKJHD790.

للتحقق من مفاتيح واجهة برمجة التطبيقات، أنشِئ السياسة التالية:

<VerifyAPIKey name="APIKeyValidation">
  <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

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

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

تمر الخوادم الوكيلة لواجهة برمجة التطبيقات تلقائيًا عبر جميع عناوين HTTP ومَعلمات طلب البحث المتوفّرة في الطلب. ولذلك، بعد التحقق من مفتاح واجهة برمجة التطبيقات، يُستحسن أن تزيله من بحيث لا يتم إرسال مفتاح واجهة برمجة التطبيقات عبر السلك إلى خدمة الخلفية. يمكنك إجراء ذلك باستخدام سياسة من النوع AssignMessage على النحو التالي:

<AssignMessage name="StripApiKey">
    <DisplayName>Remove Query Param</DisplayName>
    <Remove>
        <QueryParams>
            <QueryParam name="apikey"/>
        </QueryParams>
    </Remove>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"></AssignTo>
</AssignMessage>

مرفق السياسة

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

يمكنك إرفاق السياسات بـ ProxyEndpoint للخادم الوكيل لواجهة برمجة التطبيقات لتتم حمايتها على النحو التالي:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>APIKeyValidation</Name></Step>
      <Step><Name>StripApiKey</Name></Step>
    </Request>
  </PreFlow>

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

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

بصفتك مشرفًا في مؤسستك، يمكنك استرداد مفتاح واجهة برمجة التطبيقات لأي تطبيق على النحو التالي:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password 

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

على سبيل المثال، يؤدي الطلب الذي لا يتضمن مفتاح واجهة برمجة التطبيقات إلى تفويض إخفاقًا.

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

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

OAuth Failure : Could not resolve the app key with variable request.queryparam.apikey

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

$ curl http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282&"apikey=PulSCqMnXGchW0pC0s5o9ngHVTWMeLqk"

والنتيجة المتوقعة هي استجابة ناجحة من خدمة الطقس.

يؤدي تعديل قيمة مفتاح واجهة برمجة التطبيقات في الطلب إلى الحصول على تفويض إخفاق:

$ curl http://{org_name}-test.apigee.net/weather?forecastrss?w=12797282&"apikey=PulSCqMnXGchW0"

النتائج باللغة:

OAuth Failure : Consumer Key is Invalid

تذكر أنه بصفتك مشرفًا لمؤسستك، يمكنك استرداد مفتاح المستهلك لأي تطبيق مسجَّلة في مؤسسة:

$ curl https://api.enterprise.apigee.com/v1/o/{myorg}/developers/{developer_email}/apps/{app_name} -u email:password