שימוש ב-SAML עם משימות אוטומטיות

Edge for Private Cloud גרסה 4.19.01

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

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

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

יש שתי דרכים ליצור משתמש במכונה לארגון SAML:

כל אחת מהשיטות האלה מתוארת בסעיפים הבאים.

לא ניתן ליצור משתמש במחשב עבור ארגון שאינו SAML.

יצירת משתמש במכונה באמצעות apigee-ssoadminapi.sh

שימוש בapigee-ssoadminapi.sh ליצירת משתמש במכונה בארגון SAML. ראו שימוש apigee-ssoadminapi.sh לקבלת מידע נוסף. אפשר ליצור משתמש אחד במחשב שיהיה בשימוש של כל את הארגונים שלכם, או ליצור משתמש מחשב נפרד לכל ארגון.

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

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

כדי ליצור משתמש במחשב באמצעות apigee-ssoadminapi.sh:

  1. משתמשים בפקודה apigee-ssoadminapi.sh הבאה כדי ליצור את המשתמש במכונה:
    apigee-ssoadminapi.sh saml machineuser add --admin SSO_ADMIN_NAME \
      --secret SSO_ADMIN_SECRET --host Edge_SSO_IP_or_DNS \
      -u machine_user_email -p machine_user_password

    כאשר:

    • SSO_ADMIN_NAME הוא שם המשתמש של האדמין שהוגדר על ידי נכס אחד (SSO_ADMIN_NAME) ב- קובץ התצורה ששימש להגדרת מודול ה-SSO של Edge. ברירת המחדל היא ssoadmin
    • SSO_ADMIN_SECRET היא סיסמת האדמין כפי שצוינה על ידי המאפיין SSO_ADMIN_SECRET בקובץ התצורה.
    • בדוגמה הזו, אפשר להשמיט את הערכים של --port וגם --ssl כי המודול apigee-sso משתמש בברירת המחדל של 9099 עבור --port ו-http עבור --ssl. אם לא תשתמש בברירות המחדל האלה, ציינו אותן לפי הצורך.

  2. צריך להתחבר לממשק המשתמש של Edge, להוסיף את האימייל של המשתמש במחשב לארגונים ולהקצות למשתמש במכונה בתפקיד הדרוש. ראה הוספת משתמשים גלובליים עבור עוד.

יצירת משתמש במכונה באמצעות Edge ממשק API לניהול

אפשר ליצור משתמשים במכונה באמצעות Edge management API במקום הכלי apigee-ssoadminapi.sh.

כדי ליצור משתמש במכונה באמצעות ממשק ה-API לניהול:

  1. משתמשים בפקודה curl הבאה כדי לקבל אסימון למשתמש ssoadmin, שם המשתמש של חשבון האדמין עבור apigee-sso:
    curl "http://Edge_SSO_IP_DNS:9099/oauth/token" -i -X POST \
      -H 'Accept: application/json' / -H 'Content-Type: application/x-www-form-urlencoded' \
      -d "response_type=token" -d "grant_type=client_credentials" \
      --data-urlencode "client_secret=SSO_ADMIN_SECRET" \
      --data-urlencode "client_id=ssoadmin"

    כאשר SSO_ADMIN_SECRET הוא סיסמת האדמין שהגדרתם כשהתקנתם apigee-sso כפי שצוין על ידי המאפיין SSO_ADMIN_SECRET ברכיב קובץ תצורה.

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

  2. משתמשים בפקודה curl הבאה כדי ליצור את המשתמש במכונה ולהעביר את האסימון שהתקבלו בשלב הקודם:
    curl "http://edge_sso_IP_DNS:9099/Users" -i -X POST \
      -H "Accept: application/json" -H "Content-Type: application/json" \
      -d '{"userName" : "machine_user_email", "name" :
        {"formatted":"DevOps", "familyName" : "last_name", "givenName" :
        "first_name"}, "emails" : [ {"value" :
        "machine_user_email", "primary" : true } ], "active" : true,
        "verified" : true, "password" : "machine_user_password" }' \
      -H "Authorization: Bearer token"

    יהיה צורך בסיסמה של המשתמש במכונה בשלבים מאוחרים יותר.

  3. מתחברים לממשק המשתמש של Edge.
  4. להוסיף את האימייל של המשתמש במחשב לארגונים ולהקצות אותו למשתמש בתפקיד ההכרחי. למידע נוסף, ראו הוספה בקרב המשתמשים ברחבי העולם.

קבלה ורענון של אסימוני משתמש במכונה

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

כדי לקבל אסימוני OAuth2 למשתמש במחשב:

  1. כדי ליצור את אסימוני הגישה והרענון הראשוניים צריך להשתמש בקריאה הבאה ל-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=m_user_email&password=m_user_password'

    שומרים את האסימונים לשימוש מאוחר יותר.

  2. מעבירים את אסימון הגישה לקריאה ל-Edge management API ככותרת הנושא:
    curl -H "Authorization: Bearer access_token" \
      http://MS_IP_DNS:8080/v1/organizations/org_name

    כאשר org_name הוא שם הארגון שמכיל את המשתמש במחשב.

  3. כדי לרענן את אסימון הגישה מאוחר יותר, צריך להשתמש בקריאה הבאה שכוללת את הרענון אסימון:
    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 \
      -d 'grant_type=refresh_token&refresh_token=refreshToken'