שימוש ב-IdP חיצוני עם ממשק Edge Management API

אחת הדרכים לבצע אימות היא לבצע אימות בקריאות ל-Edge management API. לדוגמה, כדי לקבל גישה, אפשר לשלוח ל-Edge management API את בקשת curl הבאה. מידע על הארגון שלך:

curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

בדוגמה הזו, אפשרות curl -u משמשת אותך כדי לעבור את האימות הבסיסי פרטי הכניסה. לחלופין, אפשר להעביר אסימון OAuth2 בכותרת Bearer כדי קריאות ל-Edge management API, כפי שאפשר לראות בדוגמה הבאה:

curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME

אחרי שמפעילים IDP חיצוני לאימות, אפשר להשבית את האימות הבסיסי. אם משביתים את ההגדרה Basic כל הסקריפטים (כמו Maven, מעטפת ו-apigeetool) מסתמכים על כך שקריאות ל-Edge management API שתומכות באימות בסיסי לא יפעלו יותר. עליך לעדכן קריאות וסקריפטים ל-API שמשתמשים באימות בסיסי כדי להעביר אסימוני גישה מסוג OAuth2 הכותרת Bearer.

קבלת אסימונים ורענון שלהם באמצעות get_token

כלי השירות get_token מחליף את פרטי הכניסה לאימות הבסיסי (ובמקרים מסוימים, קוד סיסמה) עבור אסימון גישה ורענון של OAuth2. הכלי get_token מקבל את פרטי הכניסה ומחזיר אסימון גישה תקף. אם אפשר לרענן אסימון, השירות מרענן אותו ומחזיר אותו. אם התוקף של אסימון הרענון יפוג, תופיע בקשה להזין את פרטי הכניסה של המשתמש.

כלי השירות get_token מאחסן את האסימונים בדיסק, והם מוכנים לשימוש במקרה הצורך. הוא גם מדפיס אסימון גישה תקין ל-stdout. משם, תוכלו להשתמש בתוסף לדפדפן כמו פוסטר או להטמיע אותו במשתנה סביבה לשימוש ב-curl.

כדי לקבל אסימון גישה מסוג OAuth2 לביצוע קריאות ל-Edge management API:

  1. הורדת החבילה sso-cli:
    curl http://EDGE_SSO_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"

    כאשר EDGE_SSO_IP_DNS הוא כתובת ה-IP או שם ה-DNS של המכונה שמארחת את מודול SSO של Apigee. אם הגדרתם TLS ב-Apigee SSO, צריך להשתמש ב-https מספר יציאת TLS.

  2. מחלצים את החבילה ssocli-bundle.zip, כפי שמוצג בדוגמה הבאה:
    unzip ssocli-bundle.zip
  3. התקנת get_token ב-/usr/local/bin, כמו בדוגמה הבאה:
    ./install -b PATH

    האפשרות -b מציינת מיקום אחר.

  4. מגדירים את משתנה הסביבה SSO_LOGIN_URL לכתובת ה-URL להתחברות, בפורמט הבא:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

    כאשר EDGE_SSO_IP_DNS היא כתובת ה-IP של המכונה שמארחת את המודול של Apigee SSO. אם הגדרתם TLS ב-Apigee SSO, צריך להשתמש ב-https ובמספר היציאה הנכון של TLS.

  5. (SAML בלבד) בדפדפן, צריך לעבור לכתובת ה-URL הבאה כדי לקבל בקשה חד-פעמית קוד סיסמה:
    http://EDGE_SSO_IP_DNS:9099/passcode

    אם הגדרת TLS ב-Apigee SSO, צריך להשתמש ב-https וביציאת ה-TLS הנכונה מספר.

    הבקשה הזו מחזירה קוד סיסמה חד-פעמי שיישאר בתוקף עד שתרעננו את כתובת ה-URL הזו ניתן לקבל קוד סיסמה חדש או להשתמש בקוד הגישה עם get_token כדי ליצור אסימון גישה.

    לתשומת ליבכם: אפשר להשתמש בקוד גישה רק באימות באמצעות IdP ב-SAML. לא ניתן להשתמש קוד גישה לאימות באמצעות IdP של LDAP.

  6. צריך להפעיל את get_token כדי לקבל את אסימון הגישה מסוג OAuth2, כמו בדוגמה הבאה:
    get_token -u EMAIL_ADDRESS

    כאשר EMAIL_ADDRESS הוא כתובת האימייל של משתמש Edge.

    (SAML בלבד) מזינים את קוד הגישה בשורת הפקודה בנוסף לאימייל address, כמו בדוגמה הבאה:

    get_token -u EMAIL_ADDRESS -p PASSCODE

    כלי השירות get_token מקבל את אסימון הגישה מסוג OAuth2, ומדפיס אותו וכותב אותו ואת אסימון הרענון ל-~/.sso-cli.

  7. מעבירים את אסימון הגישה לקריאה ל-Edge management API ככותרת Bearer, כפי שאפשר לראות בדוגמה הבאה:
    curl -H "Authorization: Bearer ACCESS_TOKEN"
      https://MS_IP:8080/v1/organizations/ORG_NAME
  8. אחרי שמקבלים אסימון גישה חדש בפעם הראשונה, אפשר לקבל את אסימון הגישה ואז להעביר אותה לקריאה ל-API בפקודה אחת, כפי שאפשר לראות בדוגמה הבאה:
    header=`get_token` && curl -H "Authorization: Bearer $header"
      https://MS_IP:8080/v1/o/ORG_NAME

    בטופס הזה של הפקודה, אם פג התוקף של אסימון הגישה, הוא מועבר באופן אוטומטי מתבצע רענון עד שיפוג התוקף של אסימון הרענון.

(SAML בלבד) לאחר שיפוג התוקף של אסימון הרענון, get_token יבקש ממך קוד גישה חדש. שלך חייבים לעבור לכתובת ה-URL שמופיעה למעלה בשלב 3 וליצור קוד סיסמה חדש, כדי שתוכלו ליצור אסימון גישה חדש ל-OAuth.

שימוש ב-Management API כדי לקבל ולרענן אסימונים

שימוש ב-OAuth2 עם Apigee Edge management API רואים איך להשתמש ממשק API לניהול Edge לקבלת אסימונים ולרענון שלהם. אפשר גם להשתמש בקריאות ל-Edge API כדי לקבל אסימונים שנוצרו מטענות נכונות (assertions) של SAML.

ההבדל היחיד בין הקריאות ל-API שתועדו ב שימוש ב-OAuth2 עם Apigee Edge management API היא שכתובת ה-URL של הקריאה חייבת להפנות שם התחום. בנוסף, כדי ליצור את אסימון הגישה הראשוני עם IdP של SAML, צריך לכלול את קוד הגישה, כפי שמוצג בשלב 3 של ההליך שלמעלה.

כדי לקבל הרשאה, צריך להעביר פרטי כניסה שמורים של לקוח OAuth2 ב-Authorization הכותרת. השיחה מדפיסה את אסימוני הגישה והרענון במסך.

קבלת אסימון גישה

(LDAP) צריך להשתמש בקריאה הבאה ל-API כדי ליצור את הגישה והרענון הראשוניים אסימונים:

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 \
  http://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&username=USER_EMAIL&password=USER_PASSWORD'

(SAML) משתמשים בקריאה הבאה ל-API כדי ליצור את הגישה והרענון הראשוניים אסימונים:

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://EDGE_SSO_IP_DNS:9099/oauth/token -s \
  -d 'grant_type=password&response_type=token&passcode=PASSCODE'

חשוב לזכור: באימות באמצעות IdP של SAML נדרש קוד גישה זמני, ואילו ב-IdP של LDAP לא נדרש קוד גישה.

רענון של אסימון גישה

כדי לרענן את אסימון הגישה מאוחר יותר, משתמשים בקריאה הבאה שכוללת את אסימון הרענון:

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://EDGE_SSO_IP_DNS:9099/oauth/token \
  -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'