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

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

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

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

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

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

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

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

כדי ליצור משתמש במכונה בארגון שתומך ב-IdP, משתמשים בכלי העזר apigee-ssoadminapi.sh. למידע נוסף, אפשר לקרוא את המאמר שימוש ב-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

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