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

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

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

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

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

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

איך מקבלים ומרעננים טוקנים באמצעות get_token

כלי השירות get_token משתמש בתהליך הרגיל של קוד מכשיר OAuth 2.0 כדי לקבל אסימוני גישה ורענון של OIDC/OAuth2. הכלי מבקש מכם להיכנס לכתובת URL בדפדפן כדי לבצע אימות באמצעות ה-IdP החיצוני (או ה-LDAP המקומי), ואז מבטל באופן אוטומטי את החסימה של הטרמינל כדי להדפיס את טוקן הגישה התקין.

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

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

  1. כלי השירות get_token ו-acurl מותקנים מראש בצומת שמארח את מודול SSO ב-Apigee (צומת OpenLDAP) בכתובת: /opt/apigee/apigee-openldap/bin/
  2. (אופציונלי) מגדירים את משתנה הסביבה SSO_LOGIN_URL לכתובת ה-URL של ספק ה-SSO, בפורמט:
    export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"

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

  3. מפעילים את get_token עם כתובת האימייל כדי להתחיל את תהליך קוד המכשיר של OAuth 2.0:
    /opt/apigee/apigee-openldap/bin/get_token -u EMAIL_ADDRESS

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

  4. הכלי ישהה וידפיס כתובת URL וקוד מכשיר בן 8 תווים במסוף:
    Please visit: http://EDGE_SSO_IP_DNS:9099/device
    And enter code: ABCD-EFGH
  5. פותחים את כתובת ה-URL שצוינה בדפדפן, מזינים את קוד המכשיר ולוחצים על שליחה. המערכת תפנה אתכם ל-IDP החיצוני (או לטופס LDAP מקומי) כדי לאמת ולאשר את הבקשה.
  6. אחרי האימות בדפדפן, חוזרים למסוף. הכלי get_token יזהה באופן אוטומטי את האישור, יקבל את אסימון הגישה של OAuth2, ידפיס אותו במסך וישמור אותו במטמון באופן מאובטח.
  7. מעבירים את טוקן הגישה לקריאה ל-Edge Management API באמצעות כלי העזר acurl, שקורא באופן אוטומטי את הטוקן שנשמר במטמון ומזין את הכותרת Bearer:
    /opt/apigee/apigee-openldap/bin/acurl http://MS_IP_DNS:8080/v1/organizations/ORG_NAME

    לחלופין, אפשר להעביר את האסימון באופן ידני באמצעות curl רגיל:

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

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

נקודת הקצה (endpoint) הקודמת של /passcode הוסרה. לכן, משתמשים אנושיים צריכים להשתמש בכלי השירות get_token כפי שמתואר למעלה כדי להפעיל את תהליך Device Code Flow של OAuth 2.0 בדפדפן לצורך אימות ראשוני.

אם אתם כותבים סקריפטים או צינורות עיבוד נתונים של CI/CD שלא יכולים לקיים אינטראקציה עם דפדפן, קראו את המאמר אוטומציה של משימות באמצעות משתמשי מכונה. משתמשים אוטומטיים או אפליקציות עם פרטי כניסה תקינים יכולים להשתמש בקריאות רגילות ל-API כדי לקבל ולרענן טוקן רענון.