OAuth

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

ظهر بروتوكول OAuth كبروتوكول الترخيص الرائد لواجهات برمجة التطبيقات. الإصدار يتم تعريف بروتوكول OAuth الذي تم تناوله بالتفصيل في هذا الموضوع في بروتوكول OAuth 2.0 المواصفات.

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

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

إنّ إعدادات OAuth التلقائية مؤسسة

ولتسهيل الأمر، يتم إعداد جميع المؤسسات على Apigee Edge مسبقًا من خلال مجموعة من OAuth 2.0. نقاط نهاية تنفّذ نوع منح بيانات اعتماد العميل. العميل يحدد نوع منح بيانات الاعتماد إجراءات إصدار رموز الدخول مقابل بيانات الاعتماد. بيانات اعتماد التطبيق هذه هي ببساطة زوجٍ من مفتاح العميل والسر الذي مشاكل في Apigee Edge لكل تطبيق مسجَّل في مؤسسة "بيانات اعتماد العميل" يشير إلى زوج مفتاح العميل والمفتاح السري نفسه.

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

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

يمكن العثور على المواصفات الكاملة لمنح بيانات اعتماد العميل في OAuth 2.0. المواصفات:

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

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

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

بالإضافة إلى ذلك، عند تحديد الخيار الآمن باستخدام رموز الدخول الآمنة باستخدام الإصدار 2.0 من OAuth، يصبح مربّع الاختيار نشر منتج واجهة برمجة التطبيقات قابلاً للاختيار ويتم تلقائيًا المحددة. ضَع علامة في المربّع إذا كنت تريد إنشاء منتج تلقائيًا عند إنشاء واجهة برمجة التطبيقات الجديدة الخادم الوكيل. سيتم إنشاء المنتج الذي تم إنشاؤه تلقائيًا بالاقتران بالخادم الوكيل الجديد لواجهة برمجة التطبيقات. إذا كنت لديك منتج حالي تريد ربطه بواجهة برمجة التطبيقات الجديدة هذه، فاحرص على محو هذه البيانات مربّع الاختيار حتى لا تنشئ منتجًا غير ضروري. للحصول على معلومات عن المنتجات، راجع ما هو منتج واجهة برمجة التطبيقات؟

إذا كنت بحاجة إلى تفعيل إثبات ملكية رمز الدخول للخادم الوكيل لواجهة برمجة التطبيقات الحالية، كل ما عليك فعله هو إرفاق سياسة من النوع OAuthV2 بواجهة برمجة التطبيقات التي تريد حمايتها. تعمل سياسات OAuthV2 من خلال تحديد عملية. إذا أردت للتحقّق من صحة رموز الدخول، عليك تحديد عملية تُسمى VerifyAccessToken. (أنواع أخرى من العمليات المتاح في نوع سياسة OAuthV2، وهما GenerateAccessToken و GenerateRefreshToken. ستتعرف على هذه العمليات عند إعداد نقاط نهاية OAuth).

سياسة CheckOAuthTokens من النوع OAuthV2

في ما يلي مثال على سياسة للتحقق من رموز الدخول. (الإعدادات هي الموضحة في الجدول أدناه).

<OAuthV2 name="VerifyOAuthTokens"> 
  <Operation>VerifyAccessToken</Operation> 
</OAuthV2>

إعدادات السياسة

الاسم الوصف تلقائي مطلوب؟
OAuthV2 نوع السياسة
name اسم السياسة المُشار إليه في نقطة نهاية خادم وكيل واجهة برمجة التطبيقات التكوين. لا ينطبق نعم
Operation العملية التي سيتم تنفيذها بواسطة سياسة OAuthV2. من خلال تحديد VerifyAccessToken، يمكنك ضبط السياسة للتحقُّق من طلبات رموز الدخول والتأكّد من أنّ أذونات الوصول الرمز المميز صالح ولم تنتهِ صلاحيته وتمت الموافقة عليه لاستهلاك مورد واجهة برمجة التطبيقات المطلوب (URI). (لإجراء عملية التحقّق هذه، يجب أن تقرأ السياسة منتج واجهة برمجة التطبيقات الذي تمّت الموافقة على التطبيق فيه consume.) لا ينطبق نعم

لإنشاء هذه السياسة في واجهة مستخدم الإدارة، انتقل إلى واجهات برمجة التطبيقات > واجهة برمجة التطبيقات الأجهزة الوكيلة:

من قائمة الخوادم الوكيلة لواجهة برمجة التطبيقات، اختَر weatherapi.

من نظرة عامة الخاصة بـ weatherapi، انقر على تطوير. مشاهدة.

من القائمة المنسدلة، حدد سياسة جديدة > الإصدار 2.0 من OAuth

بعد اختيار سياسة OAuth الإصدار 2.0، ستظهر لك قائمة ضبط سياسة جديدة. سيظهر لك.

أدخِل اسمًا وصفيًا لسياستك، وتأكَّد من اختيار إرفاق السياسة. Flow PreFlow، والطلب كإعدادات مرفق في السياسة.

اختَر إضافة، وسيتم إنشاء السياسة وإرفاقها بطلب واجهة weatherapi. التدفق المسبق:

بعد إضافة السياسة، سيتم عرض إعدادات الطلب PreFlow أدناه في لوحة المصمِّم.

إذا كنت تعمل محليًا باستخدام محرِّر نصوص أو بيئة تطوير متكاملة (IDE)، عليك إرفاق السياسة المتعلقة بطلب PreFlow لخادم وكيل واجهة برمجة التطبيقات الذي تريد حمايته:

<PreFlow>
  <Request>
    <Step><Name>VerifyOAuthTokens</Name></Step>
  </Request>
</PreFlow>

من خلال إرفاق السياسة بطلب PreFlow، يمكنك التأكّد من تطبيق السياسة دائمًا. في جميع رسائل الطلبات.

لقد نجحت الآن في تأمين واجهة برمجة تطبيقات باستخدام بيانات اعتماد عميل OAuth 2.0. الخطوة التالية هي معرفة كيف للحصول على رمز دخول واستخدامه للوصول إلى واجهة برمجة التطبيقات الآمنة.

استخدام رمز الدخول للوصول إلى برنامج محمي المرجع

بعد أن تم تأمين واجهة الطقس باستخدام OAuth 2.0، على التطبيقات تقديم رموز الدخول لاستخدامها. واجهة برمجة التطبيقات. للوصول إلى مورد محمي، يقدّم التطبيق رمز الدخول في الطلب على أنّه "التفويض" عنوان HTTP على النحو التالي:

$ curl -H "Authorization: Bearer ylSkZIjbdWybfs4fUQe9BqP0LH5Z" http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

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

ولكن كيف تحصل التطبيقات على رموز الدخول؟ سنتناول ذلك في القسم التالي.

كيفية تبادل بيانات اعتماد العميل مع رمز الدخول

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

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

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

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

ستظهر قائمة التطبيقات المسجَّلة في مؤسستك.

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

اختَر تطبيقًا من القائمة لعرض ملفه الشخصي التفصيلي.

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

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps \
-u myname:mypass 

تعرض هذه المكالمة قائمة بالتطبيقات حسب رقم تعريف التطبيق.

[ "da496fae-2a04-4a5c-b2d0-709278a6f9db", "50e3e831-175b-4a05-8fb6-05a54701af6e" ]

يمكنك استرداد الملف الشخصي للتطبيق من خلال إجراء مكالمة GET بسيطة على معرّف التطبيق:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/{app_id} \
-u myname:mypass 

مثلاً:

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/apps/da496fae-2a04-4a5c-b2d0-709278a6f9db \
-u myname:mypass 

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

{
  "accessType" : "read",
  "apiProducts" : [ ],
  "appFamily" : "default",
  "appId" : "da496fae-2a04-4a5c-b2d0-709278a6f9db",
  "attributes" : [ ],
  "callbackUrl" : "http://weatherapp.com",
  "createdAt" : 1380290158713,
  "createdBy" : "noreply_admin@apigee.com",
  "credentials" : [ {
    "apiProducts" : [ {
      "apiproduct" : "PremiumWeatherAPI",
      "status" : "approved"
    } ],
    "attributes" : [ ],
    "consumerKey" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K",
    "consumerSecret" : "hAr4Gn0gA9vAyvI4",
    "expiresAt" : -1,
    "issuedAt" : 1380290161417,
    "scopes" : [ ],
    "status" : "approved"
  } ],
  "developerId" : "5w95xGkpnjzJDBT4",
  "lastModifiedAt" : 1380290158713,
  "lastModifiedBy" : "noreply_admin@apigee.com",
  "name" : "weatherapp",
  "scopes" : [ ],
  "status" : "approved"
}

سجِّل قيم consumerKey وconsumerSecret. تستخدم هذه بيانات الاعتماد للحصول على رمز الدخول من خلال تقديمها كبيانات اعتماد للمصادقة الأساسية في طلب HTTP، كما هو موضح أدناه. يتم تقديم نوع المنح كمَعلمة طلب بحث للطلب. (احرص على تغيير قيمة المتغيّر {org_name} لتعكس اسم مؤسستك. على Apigee Edge).

إنشاء طلب للحصول على رمز دخول

في الطلب التالي، استبدِل قيمة consumerKey بـ client_id استبدِل قيمة consumerSecret المرتبطة client_secret

$ curl https://{org_name}-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials -X POST -d 'client_id=bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K&client_secret=hAr4Gn0gA9vAyvI4'

تتحقق خدمات واجهة برمجة التطبيقات من مفتاح وسر العميل ثم تنشئ ردًا يحتوي على رمز الدخول لهذا التطبيق:

{
  "issued_at" : "1380892555397",
  "application_name" : "957aa73f-25c2-4ead-8021-adc01f0d2c6b",
  "scope" : "",
  "status" : "approved",
  "api_product_list" : "[oauth-test]",
  "expires_in" : "3599",
  "developer.email" : "tesla@weathersample.com",
  "organization_id" : "0",
  "client_id" : "bBGAQrXgivA9lKu7NMPyoYpVKNhGar6K",
  "access_token" : "ylSkZIjbdWybfs4fUQe9BqP0LH5Z",
  "organization_name" : "rqa",
  "refresh_token_expires_in" : "0",
  "refresh_count" : "0"
}

يُرجى ملاحظة القيمة access_token في الردّ أعلاه. هذا هو رمز الدخول الذي الذي سيستخدمه التطبيق لإتاحة الوصول في وقت التشغيل إلى الموارد المحمية. رمز الدخول لهذا التطبيق هو ylSkZIjbdWybfs4fUQe9BqP0LH5Z

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

استخدام إعدادات OAuth التلقائية

يتم توفير رمز OAuth مميز لكل مؤسسة (حتى لو كانت مؤسسة في الفترة التجريبية المجانية) على Apigee Edge. النهائية. يتم ضبط نقطة النهاية مسبقًا باستخدام السياسات في الخادم الوكيل لواجهة برمجة التطبيقات الذي يُسمى oauth. يمكنك البدء في استخدام نقطة نهاية الرمز المميز فور إنشاء حساب على Apigee Edge.

تعرض نقطة نهاية OAuth التلقائية معرِّف الموارد المنتظم (URI) لنقطة النهاية التالي:

/oauth/client_credential/accesstoken

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

يتم عرض نقطة نهاية الرمز المميز لبيانات اعتماد العميل التلقائية عبر الشبكة في ما يلي عنوان URL:

https://{org_name}-{env_name}.apigee.net/oauth/client_credential/accesstoken

على سبيل المثال، إذا كان اسم مؤسستك هو "apimakers"، فسيكون عنوان URL كالتالي:

https://apimakers-test.apigee.net/oauth/client_credential/accesstoken

هذا هو عنوان URL الذي يطلبه المطوّرون للحصول على رموز الدخول.

إعدادات بروتوكول OAuth الثلاثي

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

OAuth 1.0a

لمعرفة تفاصيل حول سياسة OAuth 1.0a، يمكنك الاطّلاع على سياسة OAuth v1.0a.

الحصول على مساعدة

للحصول على المساعدة، يُرجى الاطّلاع على Apigee دعم العملاء: