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

כשמשתמשים ב-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 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

    QUESTION/TBD: Does apigee-ssoadminapi.sh also take "ldap" as an argument?

    כאשר:

    • 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 ממשק 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. מעבירים את אסימון הגישה לקריאה ל-Edge management API ככותרת 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'