כשמשתמשים ב-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
:
- משתמשים בפקודה
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
. אם לא תשתמש בברירות המחדל האלה, ציינו אותן לפי הצורך.
- SSO_ADMIN_NAME הוא שם המשתמש של האדמין שהוגדר על ידי
המאפיין
- צריך להתחבר לממשק המשתמש של Edge, להוסיף את האימייל של המשתמש במחשב לארגונים ולהקצות למשתמש במכונה בתפקיד הדרוש. צפייה הוספת משתמשים גלובליים עבור עוד.
יצירת משתמש במכונה באמצעות Edge ממשק API לניהול
אפשר ליצור משתמשים במכונה באמצעות Edge management API במקום
הכלי apigee-ssoadminapi.sh
.
כדי ליצור משתמש במכונה באמצעות ה-Management API:
- משתמשים בפקודה
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
ברכיב קובץ תצורה.בפקודה הזו מוצג אסימון שתצטרכו לבצע את הקריאה הבאה.
- משתמשים בפקודה
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"
יהיה צורך בסיסמה של המשתמש במכונה בשלבים מאוחרים יותר.
- מתחברים לממשק המשתמש של Edge.
- להוסיף את האימייל של המשתמש במחשב לארגונים ולהקצות אותו למשתמש בתפקיד ההכרחי. למידע נוסף, ראו הוספה בקרב המשתמשים ברחבי העולם.
קבלה ורענון של אסימוני משתמש במכונה
להשתמש ב-Edge API כדי לקבל ולרענן אסימוני OAuth2 על ידי העברת במקום קוד גישה.
כדי לקבל אסימוני OAuth2 למשתמש במחשב:
- כדי ליצור את אסימוני הגישה והרענון הראשוניים צריך להשתמש בקריאה הבאה ל-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'
שומרים את האסימונים לשימוש מאוחר יותר.
- מעבירים את אסימון הגישה לקריאה ל-Edge management API ככותרת
Bearer
, כ- הדוגמה הבאה מראה:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
כאשר org_name הוא שם הארגון שמכיל את המשתמש במחשב.
- כדי לרענן את אסימון הגישה מאוחר יותר, משתמשים בקריאה הבאה שכוללת את אסימון הרענון:
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'