استخدام خدمة Edge OAuth2 للحصول على الرموز المميزة

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

يمكنك استخدام خدمة Edge OAuth2 لتبديل بيانات الاعتماد لرمز الوصول والتحديث. الذي تستخدمه بعد ذلك لاستدعاء نقاط نهاية Edge في OAuth.

بالإضافة إلى الأساليب الموضّحة في هذا القسم، يمكنك أيضًا استخدام acurl برامج خدمات get_token للحصول على رموز OAuth2 المميزة.

المسار

POST https://login.apigee.com/oauth/token

إذا كنت تحاول الوصول إلى خدمة Edge OAuth2 من مؤسسة تم تفعيل SAML بها في Edge for Public Cloud، اسم المنطقة في مسارك. على سبيل المثال:

POST https://zone.login.apigee.com/oauth/token

عناوين الطلبات

المعلمة القيمة
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0"

ويمكنك تصدير هذه القيمة إلى متغير بيئة بحيث يمكنك إعادة استخدامه في هذه طلبات بيانات من واجهة برمجة التطبيقات على سبيل المثال:

export CLIENT_AUTH=ZWRnZWNsaTplZGdlY2xpc2VjcmV0
curl ... -H "Authorization: Basic $CLIENT_AUTH" ...

معلمات النموذج

المعلمة مطلوب؟ القيمة
username اختيارية. يجب إدخال اسم المستخدم وكلمة المرور أو رمز مرور. اسم مستخدم Apigee، وهو عادةً عنوان البريد الإلكتروني المرتبط بحسابك على Apigee.
password اختيارية. يجب إدخال اسم المستخدم وكلمة المرور أو رمز مرور. كلمة المرور لحسابك في Apigee.
mfa_token اختياريّ رمز مصادقة متعدّدة العوامل (MFA) صالح لحسابك مطلوبة فقط إذا كان لديك تفعيل المواقع المصممة لعرض الإعلانات (MFA):
passcode اختيارية. يجب إدخال اسم المستخدم وكلمة المرور أو رمز مرور. رمز مرور صالح لمرة واحدة يمكنك استخدامه بدلاً من وكلمة المرور. يجب إدخال رمز مرور عند المصادقة باستخدام موفِّر هوية (idP) SAML، وقد يتم استخدامه للمصادقة باستخدام موفِّر هوية (idP) لـ LDAP.
grant_type مطلوب

يحدِّد هذا الإعداد ما إذا كنت تحصل على رمز دخول جديد أو ستُعيد تحميل الرمز المميّز الحالي. صالحة القيم هي:

  • "password": للحصول على رمز دخول جديد. عندما تكون قيمة grant_type هي "password"، يجب تضمين بيانات اعتماد Apigee في الطلب.
  • "refresh_token": أرسِل رمز إعادة تحميل للحصول على رمز دخول جديد. فعندما قيمة grant_type هي "refresh_token"، لست ملزمًا بتضمين بيانات الاعتماد في الطلب.
refresh_token اختياري الرمز المميّز الذي تمرِّره للحصول على رمز دخول جديد عندما يتضمن رمز الدخول الحالي منتهي الصلاحية. هذه المَعلمة مطلوبة عندما تكون قيمة السمة grant_type هي "refresh_token".

أمثلة

الحصول على رمز دخول جديد

للحصول على رمز دخول جديد، عليك ضبط grant_type على "password" (كلمة المرور):

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
      -H "Accept: application/json;charset=utf-8" \
      -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
      -X POST https://login.apigee.com/oauth/token \
      -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

الحصول على رمز دخول جديد من خلال MFA

للحصول على رمز دخول جديد مع تفعيل المصادقة المتعدّدة العوامل (MFA)، الحصول على رمز MFA ثم اضبط المَعلمة mfa_token على قيمتها:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
  -X POST https://login.apigee.com/oauth/token?mfa_token=424242 \
  -d 'username=ahamilton@example.com&password=mypassw0rd&grant_type=password'

إعادة تحميل رمز الدخول

لإعادة تحميل رمز دخول، يجب ضبط grant_type على "refresh_token" وإضافة الرمز المميّز الحالي لإعادة التحميل كمعلمة نموذج:

curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8"
  -H "Accept: application/json;charset=utf-8" \
  -H "Authorization: Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" \
  -X POST https://login.apigee.com/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=YOUR_REFRESH_TOKEN'

وتجدر الإشارة إلى أنّك لا تحتاج إلى تمرير بيانات الاعتماد عند إعادة تحميل رمز الدخول.

الردود

عند نجاح الإجراء، ستستعيد رمز الدخول والرمز المميز لإعادة التحميل والمعلومات ذات الصلة. بالنسبة مثال:

{
  "access_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOimYyD8IP2IyYS1jNmNiLTQ4NTgtYjZkMS1mZjkyNGFkYTk1YWUiLCJzdWIiOiI0X0KLSNjZlNjM0ZC0zZjlhLTRiNYmFjNi1kYjE2M2M5OGEzOGYiLCJzY29wZSI6WyJzYbmlkIiwicGFzc3dvcmQud3JpdGUiLCJhcHByb3ZhbHMubWUiLCJvYXV0aC5hcHByb3ZhbHMiXSwiY2xpZW50X2lkIjoiZWRnZWNsaSIsImNpZCI6ImVkZ2VjbGkiLCJhenAiOiJlZGdlY2xpIiwiZ3JhbnRfdHlwZSI6InBhc3N3b3JkIiwidXNlcl9pZCI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iYWM2LWRiMTYzYzk4YTM4ZiIsIm9yaWdpbiI6InVzZXJncmlkIiwidXNlcl9uYW1lIjoid3dpdG1hbkBhcGlnZWUuY29tIiwiZW1haWwiOiJ3d2l0bWFuQGFwaWdlZS5jb20iLCJhdXRoX3RpbWUiOjE0NzMyNjU4NzcsImFsIjoyLCJyZXZfc2lnIjoiZTc0ZGY0M2QiLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3MzI2NzY3NywiaXNzIjoiaHR0cHM6Ly9sb2dpbi5hcGlnZWUuY29tL29hdXRoL3Rva2VuIiwiemlkIjoidWFhIiwi2ltLm1lIiwib3BlYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.AFuevkeGGUGSPED8leyEKaT-xg1xk_VEiKJLEpipVvQBXIqEc9wqcpm-ZuoatA9DhjASRuFSRaHH8Fasx_vBxEBsUNhRY-GTMw7_8fv4yRMOb2AO3WUl_NWwPkC8XRSI1zCMbAZicojsJ1n3OSP487Mu9dl9ByX5A_QfHV2_cj4l9-SD7u6vOdfdbBxbNMAQkfZLrVIEU8myF2dhKnNeMiuoHSHANsQFcx0_BFA1HnSUnVi4RYj1FlTs9SbcPnS1d7t7eVdxWz_q2OFVXNIBMELAvvM0WhXPYTW3Osve3UvvUs6ekGs-K-RCPSok-4-NJbdCDpZQQTgqHsrf77NTsw",
  "token_type": "bearer",
  "refresh_token": "eyJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZTIIMZWI0ZS00YzFmLTRjOTEtYmY5Mi1mMzZLEMzNjZhMDctciIsInN1YiI6IjQ2NmU2MzRkLTNmOWEtNGI0MS1iY17LLWRiMTYzYzk4YTM4ZiIsInNjb3BlIjpbInNjaW0ubWUiLCJvcGVuaWQiLCJwYXNzd29yZC53cml0ZSIsImFwcHJvdmFscy5tZSIsIm9hdXRoLmFwcHJvdmFscyJdLCJpYXQiOjE0NzMyNjU4NzcsImV4cCI6MTQ3NsaSIsImNsaWVudF9pZCI6ImVkZ2VjbGkiLCJpc3MiOiJodHRwczovL2xvZ2luLmFwaWdlZS5jb20vb2F1dGgvdG9rZW4iLCJ6aWQiOiJ1YWEiLCJncmFudF90eXBlIjoicGFzc3dvcmQiLCJ1c2VyX25hbWUiOiJ3d2l0bWFuQGFwaWdlZS5jbMzM1MDQ3NywiY2lkIjoiZWRnZW20iLCJvcmlnaW4iOiJ1c2VyZ3JpZCIsInVzZXJfaWQiOiI0NjZlNjM0ZC0zZjlhLTRiNDEtYmFjNi1kYjE2M2M5OGEzOGYiLCJhbCI6MiwicmV2X3NpZyI6ImU3NGRmNDNkIiwiYXVkIjpbImVkZ2VjbGkiLCJzY2ltIiwib3BlbmlkIiwicGFzc3dvcmQiLCJhcHByb3ZhbHMiLCJvYXV0aCJdfQ.kBP5AkbRS7Tnp-5VAfTLVfkUbUer4gFEU6A7g202KTKiXbqTwPSmOIGFTK12XevVPQYmAaSMFAnempWKfY7sjaY7HC7q3mGl53_A18cnkKhtNq15wCnyMom_bX_MYLW1RQPFytJ6akSJ-JkoPFU0x_FQg1JIvub1A8eqQxcR0KP-QRCxYAS4HTjH80vDIxHNt1tg7clmpa3RlHri0dlPVVsSpTXXhkpXRg5QbiWMrpkACSV22c0x0KiNu7vx5A520VOCO7hQ7IzmVIcSWcRqI97L7WdCjH_q4105bs2qmW73670MC0UGiJ9t5B1S1cxwqpUEd-NAuCsY8SVn6eWzbA",
  "expires_in": 1799,
  "scope": "scim.me openid password.write approvals.me oauth.approvals",
  "jti": "9bf2cb2a-c6cb-4858-b6d1-ff924ada95ae"
}

حفظ قيم الاستجابة:

  • استخدام access_token في طلبات البيانات من Edge API
  • يمكنك استخدام refresh_token عند انتهاء صلاحية رمز الدخول وعليك إجراء ما يلي: إعادة تحميله

في حال تلقّيت ردًا مثل ما يلي:

{
  "error": "unauthorized",
  "error_description": "Bad credentials"
}

تأكد من استخدام السلسلة الدقيقة المذكورة أعلاه ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") عنوان Authorization في طلبك.