استفاده از سرویس Edge OAuth2 برای دریافت توکن

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

می‌توانید از سرویس Edge OAuth2 برای تبادل اعتبارنامه‌های خود برای یک نشانه دسترسی و تازه‌سازی استفاده کنید که سپس از آن برای فراخوانی نقاط انتهایی Edge در گردش‌های کاری OAuth خود استفاده می‌کنید.

علاوه بر تکنیک های توضیح داده شده در این بخش، می توانید از ابزارهای کاربردی acurl و get_token نیز برای دریافت توکن های OAuth2 استفاده کنید.

مسیر

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

اگر از یک سازمان دارای SAML در Edge for Public Cloud به سرویس Edge OAuth2 دسترسی دارید، باید نام منطقه را در مسیر خود قرار دهید. به عنوان مثال:

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

درخواست سرصفحه ها

پارامتر ارزش
Content-Type "application/x-www-form-urlencoded"
Accept "application/json;charset=utf-8"
Authorization

"ZWRnZWNsaTplZGdlY2xpc2VjcmV0 پایه"

می توانید این مقدار را به یک متغیر محیطی صادر کنید تا بتوانید در این فراخوانی های API مجدداً از آن استفاده کنید. به عنوان مثال:

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

پارامترهای فرم

پارامتر مورد نیاز؟ ارزش
username اختیاری. ترکیب نام کاربری و رمز عبور یا رمز عبور مورد نیاز است. نام کاربری Apigee شما، که معمولاً آدرس ایمیل مرتبط با حساب Apigee شما است.
password اختیاری. ترکیب نام کاربری و رمز عبور یا رمز عبور مورد نیاز است. رمز عبور حساب Apigee شما.
mfa_token اختیاری یک کد تأیید اعتبار چند عاملی (MFA) معتبر برای حساب شما. فقط در صورتی لازم است که MFA را فعال کرده باشید.
passcode اختیاری. ترکیب نام کاربری و رمز عبور یا رمز عبور مورد نیاز است. یک رمز عبور یک بار مصرف که می توانید به جای رمز عبور استفاده کنید. هنگام احراز هویت با SAML IDP، یک رمز عبور لازم است، و ممکن است برای احراز هویت با یک IDP LDAP استفاده شود.
grant_type مورد نیاز

تعیین می کند که آیا یک نشانه دسترسی جدید دریافت می کنید یا رمز موجود را تازه می کنید. مقادیر معتبر عبارتند از:

  • "password": یک رمز دسترسی جدید دریافت کنید. وقتی grant_type "رمز عبور" است، باید اعتبار 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 در تماس با API Edge استفاده کنید
  • زمانی که نشانه دسترسی شما منقضی شد و باید آن را به‌روزرسانی کنید، از refresh_token استفاده کنید

اگر پاسخی مانند زیر دریافت کردید:

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

مطمئن شوید که دقیقاً از رشته داده شده در بالا ("ZWRnZWNsaTplZGdlY2xpc2VjcmV0") برای سرصفحه Authorization در درخواست خود استفاده کرده اید.