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

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

אתם יכולים להשתמש בשירות 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"

אפשר לייצא את הערך הזה למשתנה סביבה כדי שאפשר יהיה להשתמש בו שוב בקריאות ה-API האלה. לדוגמה:

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

פרמטרים של טופס

פרמטר חובה? ערך
username אופציונלי. נדרש שם משתמש וסיסמה או קוד גישה. שם המשתמש שלכם ב-Apigee, שהוא בדרך כלל כתובת האימייל שמשויכת לחשבון שלכם ב-Apigee.
password אופציונלי. נדרש שם משתמש וסיסמה או קוד גישה. הסיסמה לחשבון Apigee.
mfa_token אופציונלי קוד אימות רב-שלבי (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 ואז להגדיר את הפרמטר 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 בבקשה.