כשמשתמשים ב-IDP חיצוני עם Edge API, התהליך שבו מקבלים אסימוני גישה ורענון מסוג OAuth2 מאינטראקציה עם ה-IDP נקרא תהליך קוד הגישה. בתהליך קוד הגישה, משתמשים בדפדפן כדי לקבל קוד גישה חד-פעמי, ואז משתמשים בו כדי לקבל אסימונים מסוג OAuth2.
עם זאת, יכול להיות שסביבת הפיתוח שלכם תתמוך באוטומציה של משימות פיתוח נפוצות, כמו אוטומציה של בדיקות או CI/CD. כדי להפוך את המשימות האלה לאוטומטיות כשמופעל ספק חיצוני של זהויות (IDP), צריך דרך להשיג ולרענן טוקנים של OAuth2 בלי להעתיק ולהדביק קוד גישה מדפדפן.
Edge תומך ביצירת אסימונים אוטומטית באמצעות משתמשי מכונה בארגונים שמופעל בהם ספק זהויות (IdP). משתמש מכונה יכול לקבל טוקנים של OAuth2 בלי לציין קוד גישה. כלומר, אתם יכולים להשתמש ב-Edge Management API כדי להפוך את התהליך של קבלת אסימוני OAuth2 ורענון שלהם לאוטומטי לחלוטין.
יש שתי דרכים ליצור משתמש מכונה בארגון שמוגדר בו ספק זהויות:
כל אחת מהשיטות האלה מתוארת בקטעים הבאים.
אי אפשר ליצור משתמש מכונה בארגונים שלא הפעילו ספק זהויות חיצוני.
יצירת משתמש מכונה באמצעות apigee-ssoadminapi.sh
אפשר להשתמש בכלי apigee-ssoadminapi.sh כדי ליצור משתמש מכונה בארגון שמופעל בו ספק זהויות. מידע נוסף זמין במאמר בנושא שימוש ב-apigee-ssoadminapi.sh. אפשר ליצור משתמש מכונה אחד שמשמש את כל הארגונים, או ליצור משתמש מכונה נפרד לכל ארגון.
משתמש המכונה נוצר ומאוחסן במאגר הנתונים של Edge, ולא בספק הזהויות שלכם. לכן, אתם לא אחראים לתחזוקת המשתמש במכונה באמצעות ממשק המשתמש של Edge ו-Edge Management 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
כאשר:
- SSO_ADMIN_NAME הוא שם המשתמש של האדמין שמוגדר במאפיין
SSO_ADMIN_NAMEבקובץ ההגדרות שמשמש להגדרת מודול Apigee SSO. ערך ברירת המחדל הואssoadmin. - SSO_ADMIN_SECRET היא סיסמת האדמין כפי שצוינה במאפיין
SSO_ADMIN_SECRETבקובץ ההגדרות.בדוגמה הזו, אפשר להשמיט את הערכים של
--portושל--sslכי מודולapigee-ssoמשתמש בערכי ברירת המחדל 9099 עבור--portו-http עבור--ssl. אם ההתקנה שלכם לא משתמשת בברירות המחדל האלה, צריך לציין אותן בהתאם.
- SSO_ADMIN_NAME הוא שם המשתמש של האדמין שמוגדר במאפיין
- מתחברים לממשק המשתמש של Edge, מוסיפים את כתובת האימייל של משתמש המכונה לארגון ומקצים למשתמש המכונה את התפקיד הנדרש. מידע נוסף זמין במאמר בנושא הוספת משתמשים גלובליים.
יצירת משתמש מכונה באמצעות Edge Management 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'