אוטומציה של משימות לספקי זהויות חיצוניים

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

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

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

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

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

אי אפשר ליצור משתמש מכונה לארגונים שלא הפעילו IDP חיצוני.

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

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

המשתמש הממוכן נוצר ומאוחסן במאגר הנתונים של Edge, ולא ב-IDP. לכן אתם לא אחראים לתחזוקה של משתמש המכונה באמצעות ממשק המשתמש של Edge ו-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 ב-Apigee. ערך ברירת המחדל הוא ssoadmin.
    • ‫SSO_ADMIN_SECRET היא סיסמת האדמין שצוינה במאפיין SSO_ADMIN_SECRET בקובץ התצורה.

      בדוגמה הזו, אפשר להשמיט את הערכים של --port ו---ssl כי המודול apigee-sso משתמש בערכי ברירת המחדל 9099 ל---port ו-http ל---ssl. אם בהתקנה שלכם לא נעשה שימוש בערכי ברירת המחדל האלה, ציינו אותם לפי הצורך.

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

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

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

כדי ליצור משתמש מכונה באמצעות Management 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. מעבירים את אסימון הגישה לקריאה ל-API לניהול של Edge בתור הכותרת Bearer, כמו בדוגמה הבאה:
    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'