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

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

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

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

مسیر

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

اگر از یک سازمان دارای SAML در Edge برای «ابر عمومی» به سرویس Edge OAuth2 دسترسی دارید، باید نام منطقه را در مسیرتان بگنجانید. برای مثال:

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

سرایندهای درخواست

پارامتر مقدار
Content-Type "application/x-www-form-urlencoded"
Accept «application/json;charset=utf-8»
Authorization

«Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0»

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

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

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

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

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

  • «گذرواژه»: دریافت یک کد دسترسی جدید. وقتی 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_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 در درخواستتان استفاده کرده‌اید.