שימוש בשירות Edge OAuth2 לקבלת אסימונים

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

אפשר להשתמש בשירות Edge OAuth2 כדי להחליף את פרטי הכניסה באסימון גישה ובאסימון רענון ואז להשתמש בהם כדי לקרוא לנקודות קצה (endpoints) תהליכי עבודה של 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

"בסיסי 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 הוא 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 בבקשה שלך.