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

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

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

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

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

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

האסימונים נשמרים בדיסק על ידי get_token, ומוכנים לשימוש במקרה הצורך. היא גם מדפיסה אסימון גישה תקין אל stdout. משם אפשר להשתמש בתוסף לדפדפן כמו Postman או להטמיע אותו במשתנה סביבה לשימוש ב-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 של המכונה שמארחת את מודול ה-SSO של Apigee. אם הגדרתם 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. אי אפשר להשתמש בקוד סיסמה כדי לאמת באמצעות LDAP IDP.

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

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

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

    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 יבקש ממך קוד סיסמה חדש. כדי ליצור אסימון גישה חדש ל-OAuth, צריך לעבור לכתובת ה-URL שצוינה למעלה בשלב 3 וליצור קוד סיסמה חדש.

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

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

ההבדל היחיד בין קריאות ה-API שתועדו במסגרת השימוש באבטחת OAuth2 עם ממשק ה-API לניהול Apigee Edge הוא שכתובת ה-URL של הקריאה חייבת להפנות לשם האזור שלכם. בנוסף, כדי ליצור אסימון גישה ראשוני עם SAML IDP, צריך לכלול את קוד הגישה, כפי שמוצג בשלב 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'

חשוב לשים לב שאימות עם SAML IDP מחייב קוד סיסמה זמני, ואילו LDAP IDP לא דורש זאת.

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

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

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'