שימוש בשירות 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

כותרות של בקשות

פרמטר Value
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" ...

פרמטרים בטופס

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