استفاده از سرویس 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 "برنامه/x-www-form-urlencoded"
Accept "برنامه/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، کد عبور لازم است و می‌توان از آن برای احراز هویت با LDAP IDP نیز استفاده کرد.
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 در درخواست خود استفاده کرده‌اید.