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

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

يمكنك استخدام خدمة 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) لحسابك يجب توفيرها فقط في حال تفعيل المصادقة المتعددة العوامل.
passcode اختيارية. يجب إدخال اسم مستخدم وكلمة مرور أو رمز مرور. رمز مرور صالح لمرة واحدة يمكنك استخدامه بدلاً من كلمة المرور يجب توفير رمز مرور عند المصادقة باستخدام موفِّر هوية SAML، ويمكن استخدامه للمصادقة باستخدام موفِّر هوية LDAP.
grant_type مطلوب

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

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

أمثلة

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

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

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_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 في طلبك.