استخدام خدمة 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 هي "كلمة المرور"، عليك تضمين بيانات اعتماد 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

للحصول على رمز دخول جديد مع تفعيل المصادقة المتعدّدة العوامل (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
  • يمكنك استخدام refresh_token عندما تنتهي صلاحية رمز الدخول وتحتاج إلى إعادة تحميله.

إذا تلقّيت ردًا على النحو التالي:

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

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