גישה ל-Edge API עם SAML

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

SAML תומך בסביבת כניסה יחידה (SSO). שימוש ב-SAML עם Edge, אפשר לתמוך ב-SSO לממשק המשתמש ול-API של Edge בנוסף לכל שירות אחר שאתם מספקים ותומך גם ב- SAML.

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

ההבדלים בין SAML לבין OAuth2

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

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

  1. אזורים: משתמשי Edge למשתמשי Cloud Public Cloud צריכים להפנות לשם התחום שלהם כשהם מקבלים אסימונים.
  2. קוד גישה: יש לכלול קוד גישה חד-פעמי כשמבקשים גישה או רענון זוג אסימונים.

SAML משתמש באותן נקודות קצה בשירות Edge2 של Edge, עם הוספת שם התחום המתאים.

כדי לקבל אסימוני גישה באמצעות SAML, אפשר להשתמש באחת מהשיטות הבאות שמתוארות בקטע הזה:

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

קבלת אסימוני גישה באמצעות get_token

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

כדי לקבל אסימון גישה עם get_token:

  1. מגדירים את משתנה הסביבה SSO_LOGIN_URL לכתובת ה-URL להתחברות. כתובת ה-URL להתחברות כוללת בצורה הבאה:
    https://zoneName.login.apigee.com

    לדוגמה, לתחום בשם 'acme', מגדירים את SSO_LOGIN_URL כ-'https://acme.login.apigee.com', כפי שאפשר לראות בדוגמה הבאה:

    export SSO_LOGIN_URL=https://acme.login.apigee.com
  2. קוראים לפונקציה get_token כדי לקבל את אסימון הגישה מסוג OAuth2:
    get_token -u me@example.com

    עליך לבקר בכתובת ה-URL שמוצגת כדי לקבל קוד סיסמה חד-פעמי:

    Get passcode from https://acme.login.apigee.com/passcode
    [Note:  Passcode can be used only time time and expires] Input passcode (no spaces) and then press ENTER:

    אם לא נכנסת לאחרונה דרך ספק הזהויות שלך, תתבקשי להיכנס אינץ'

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

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

  4. קוראים ל-Edge API ומעבירים את אסימון הגישה ב-Authorization: Bearer , כפי שאפשר לראות בדוגמה הבאה:
    curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
      -H "Authorization: Bearer ACCESS_TOKEN"

    אפשר להעתיק את הערך של אסימון הגישה מ-stdout.

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

כשתוקף אסימון הגישה יפוג, אפשר יהיה להתקשר שוב אל get_token כדי לקבל גישה חדשה ב-Assistant. לדוגמה:

get_token -u me@example.com

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

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

קבלת אסימוני גישה באמצעות שירות Edge OAuth2

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

כדי לקבל צמד של אסימונים ל-Edge API:

  1. בדפדפן, עוברים לכתובת ה-URL הבאה כדי לקבל קוד סיסמה חד-פעמי:
    https://zoneName.login.apigee.com/passcode

    לדוגמה, לתחום בשם 'acme', עוברים אל כתובת ה-URL הבאה:

    https://acme.login.apigee.com/passcode

    אם לא נכנסת לאחרונה דרך ספק הזהויות שלך, תתבקשי להיכנס אינץ'

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

  2. שולחים בקשה ל-Edge API, כמו בדוגמה הבאה:
    curl https://zoneName.login.apigee.com/oauth/token \
          -s \
          -H "Accept: application/json" \
          -d 'grant_type=password&response_type=token&passcode=passcode'

    passcode משמש כפרטי הכניסה שלך לקבלת הרשאה.

    כאשר:

    • הכותרת Authorization היא "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (השתמשו ב- ערך מדויק).
    • סוג הבקשה הוא POST.
    • גוף הבקשה כולל את הפרטים הבאים:
      • grant_type הוא 'סיסמה'.
      • response_type הוא 'אסימון'.
      • passcode כאשר passcode הוא קוד הגישה שהוחזר בשלב הקודם.

    השיחה מדפיסה את אסימוני הגישה והרענון במסך.

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

עליך לשלוח בקשה אל https://zoneName.login.apigee.com/oauth/token, כפי שאפשר לראות בדוגמה הבאה:

curl https://zoneName.login.apigee.com/oauth/token \
      -d 'grant_type=refresh_token&refresh_token=REFRESH_TOKEN'

כאשר:

  • גוף הבקשה כולל את הפרטים הבאים:
    • grant_type הוא 'refresh_token'.
    • refresh_token הוא הערך של אסימון הרענון.
  • הכותרת Authorization היא "Basic ZWRnZWNsaTplZGdlY2xpc2VjcmV0" (השתמשו ב- ערך מדויק).
  • סוג הבקשה הוא POST.

גישה ל-Edge API עם SAML

אפשר להשתמש בכלים כמו curl או כלי הנוחות של Apigee acurl אל נכנסים ל-Edge API.

באמצעות curl, שולחים קריאה ל-API של Edge ומעבירים את אסימון הגישה Authorization: Bearer, כמו בדוגמה הבאה:

curl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval \
  -H "Authorization: Bearer ACCESS_TOKEN"

כשמשתמשים ב-acurl, אין צורך לציין את הכותרת Authorization. לדוגמה:

acurl https://api.enterprise.apigee.com/v1/organizations/ahamilton-eval

בדוגמאות הבאות מתבצעת קריאה לנקודת קצה (endpoint) של Edge API שמקבלת פרטים על הארגון הנתון. רשימה מלאה של נקודות הקצה ל-Edge API מופיעה בחומר העזר בנושא API של Apigee Edge.

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

משתמשי מכונות בתחומי SAML

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

  USER=me@example.com
  PASS=not-that-secret
  TOKEN=$(get_token -u $USER:$PASS -m '' --force-basic-auth)
  curl -H "Authorization: Bearer $TOKEN" 'https://api.enterprise.apigee.com/v1/organizations/...'

בדוגמה שלמעלה, הגדרת הערך של -m כמחרוזת ריקה תמנע מהמשתמש במכונה מהצגת קוד MFA. שימוש בדגל --force-basic-auth יבטל את הדגל הבקשה הרגילה לקוד סיסמה שמופעלת על ידי בקשות עם אזורי SAML.

לחלופין, אפשר לשלב את הבקשה לאסימון עם הקריאה curl באמצעות הכלי acurl. לדוגמה:

  USER=me@example.com
  PASS=not-that-secret
  acurl -u $USER:$PASS -m '' --force-basic-auth 'https://api.enterprise.apigee.com/v1/organizations/...'