כשמשתמשים ב-IDP חיצוני עם Edge API, התהליך הרגיל לקבלת טוקני גישה מסוג OIDC/OAuth2 מ-CLI הוא תהליך קוד המכשיר של OAuth 2.0. בתהליך הזה משתמשים בכלי get_token, שמבקש מכם להיכנס לכתובת URL בדפדפן כדי לבצע אימות באמצעות ספק הזהויות, ואז מבטל באופן אוטומטי את החסימה של הטרמינל.
עם זאת, יכול להיות שסביבת הפיתוח שלכם תתמוך באוטומציה של משימות פיתוח נפוצות, כמו אוטומציה של בדיקות או צינורות עיבוד נתונים של CI/CD. כדי להפוך את המשימות האלה לאוטומטיות כשמופעל IdP חיצוני, צריך דרך לקבל ולרענן טוקנים של OAuth2 באופן אוטומטי, בלי צורך באינטראקציה עם הדפדפן.
Edge תומך ביצירת אסימונים אוטומטית באמצעות משתמשי מכונה ללא ממשק משתמש (headless). משתמש מכונה יכול לקבל אסימוני OIDC/OAuth2 באמצעות הענקות סיסמה רגילות בלי לדרוש דפדפן. זה אומר שאתם יכולים להפוך את תהליך קבלת הטוקנים ורענון הטוקנים בסקריפטים שלכם לאוטומטי לחלוטין.
יצירת משתמש מכונה
אפשר ליצור משתמש מכונה אחד לכל הארגונים, או ליצור משתמש מכונה נפרד לכל ארגון.
משתמש המכונה נוצר ונשמר ישירות בספריית OpenLDAP המקומית, ומתויג באופן מפורש כמשתמש מכונה (employeeType: machineuser). כך אפשר לאמת באופן מאובטח את משתמש המכונה באמצעות מודול SSO ב-Apigee, דרך הענקת סיסמה, גם אם SAML/OIDC מאוחד נאכף באופן קפדני על משתמשים אנושיים.
הוראות מפורטות ליצירה, להצגה ולניהול של משתמשי מכונה זמינות במאמר ניהול משתמשי מכונה באמצעות apigee-machineuser.sh.
קבלת טוקנים של משתמשי מכונה ורענון שלהם
כדי לקבל אסימונים למשתמשי מכונה, אתם יכולים להשתמש בכלי השירות get_token ו-acurl שסופקו ב-/opt/apigee/apigee-openldap/bin/, או ב-curl רגיל.
- שימוש ב-Apigee Utilities: רכיבי ה-wrapper
get_tokenו-acurlמטפלים אוטומטית בשמירת טוקנים במטמון, ביצירת מטען ייעודי (payload) וברענון אוטומטי. הוראות מפורטות ודוגמאות לשימוש בכלים האלה מופיעות במאמר שימוש בכלי השירות get_token ו-acurl. - שימוש ב-curl רגיל: אם לסקריפטים של הפעולות האוטומטיות אין גישה ל-Apigee wrappers, אתם יכולים ליצור אינטראקציה ישירות עם מודול SSO ב-Apigee באמצעות הפקודות הרגילות הבאות של
curl:
כדי לקבל ולרענן טוקנים באמצעות curl רגיל:
- כדי ליצור את אסימוני הגישה וטוקן הרענון הראשוניים ישירות מ-מודול SSO ב-Apigee, משתמשים בקריאה הבאה ל-API:
curl -H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \ -H "accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token -s \ -d 'grant_type=password&username=machineUserEmail&password=machineUserPassword&client_id=edgecli&client_secret=edgeclisecret&scope=openid%20profile%20email%20offline_access' - מעבירים את אסימון הגישה לקריאה ל-Edge management API בכותרת
Authorization: Bearer:curl -H "Authorization: Bearer access_token" \ http://MS_IP_DNS:8080/v1/organizations/org_name
- כדי לרענן את אסימון הגישה באופן מקורי בשלב מאוחר יותר, משתמשים בקריאה הבאה שכוללת את אסימון הרענון:
curl -H "Content-Type:application/x-www-form-urlencoded;charset=utf-8" \ -H "Accept: application/json;charset=utf-8" \ -X POST http://Edge_SSO_IP_DNS:9099/token \ -d 'grant_type=refresh_token&refresh_token=refreshToken&client_id=edgecli&client_secret=edgeclisecret'