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