שימוש ב-SAML עם Edge Management API

Edge for Private Cloud גרסה 4.17.09

התכונה 'אימות בסיסי' היא אחת מהדרכים לאימות בזמן קריאות ל-Edge Management API. לדוגמה, אפשר לשלוח את בקשת ה-cURL הבאה ל-Edge Management API כדי לגשת למידע על הארגון:

curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName

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

curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName

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

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

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

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

בהמשך מוסבר איך להשתמש ב-get_token כדי לקבל אסימון גישה מסוג 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 של Edge. אם הגדרתם TLS ב-Edge SSO, יש להשתמש ב-https ובמספר יציאת ה-TLS הנכון.

  2. מחלצים את החבילה ssocli-bundle.zip:
    unzip ssocli-bundle.zip
  3. התקנת get_token באפליקציה /usr/local/bin:
    ./install

    יש להשתמש באפשרות -b כדי לציין מיקום אחר:

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

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

  5. בדפדפן, עוברים לכתובת ה-URL הבאה כדי לקבל קוד גישה חד-פעמי:
    http://edge_sso_IP_DNS:9099/passcode

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

    .

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

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

    emailAddress היא כתובת האימייל של משתמש Edge. תוצג לכם בקשה להזין את קוד הסיסמה החד-פעמי שקיבלתם בשלב 3:

    One Time Code ( Get one at https://edge_sso_IP.com/passcode )
          Enter the passcode if SAML is enabled or press ENTER:

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

    כדי להזין את קוד הסיסמה בשורת הפקודה, משתמשים בפקודה get_token בטופס:

    get_token -u emailAddress -p passcode

  7. מעבירים את אסימון הגישה אל קריאה ל-Edge Management API בתור הכותרת של Bearer:
    curl -H "Authorization: Bearer access_token"
    https://ms_IP:8080/v1/organizations/orgName

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

    header=`get_token` &&
    curl -H "Authorization: Bearer $header"
    https://ms_IP:8080/v1/o/orgName

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

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

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

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

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

לדוגמה, משתמשים בקריאה הבאה ל-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'

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

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

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=refreshToken'