Edge for Private Cloud בגרסה 4.17.09
אימות בסיסי הוא אחת מהדרכים לבצע אימות כשמבצעים קריאות ל-Edge Management API. לדוגמה, אפשר לשלוח את בקשת ה-cURL הבאה ל-Edge Management API כדי לגשת למידע על הארגון:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
בדוגמה הזו משתמשים באפשרות -u של cURL כדי להעביר פרטי כניסה לאימות בסיסי. לחלופין, אפשר להעביר אסימון OAuth2 בכותרת Bearer
כדי לבצע קריאות ל-Edge Management API. לדוגמה:
curl -H "Authorization: Bearer <access_token>" https://ms_IP_DNS:8080/v1/organizations/orgName
אחרי שמפעילים את SAML, אפשר להשבית את האימות הבסיסי. אם משביתים את האימות הבסיסי, כל הסקריפטים (סקריפטים של Maven, סקריפטים של מעטפת, apigeetool
וכו') שמסתמכים על קריאות API לניהול של Edge שתומכות באימות בסיסי לא יפעלו יותר. צריך לעדכן את כל הקריאות ל-API וסקריפטים שמשתמשים באימות בסיסי כדי להעביר אסימוני גישה מסוג OAuth2 בכותרת של Bearer.
שימוש בפונקציה get_token כדי לקבל ולרענן אסימונים
כלי השירות get_token
מחליף את פרטי הכניסה לאימות הבסיסי ואת קוד הגישה באסימון הגישה והרענון של OAuth2. הכלי get_token
מקבל את פרטי הכניסה ומדפיס אסימון גישה תקף. אם ניתן לרענן אסימון, הוא ירענן אותו וידפיס אותו. אם התוקף של אסימון הרענון יפוג, תופיע בקשה להזין את פרטי הכניסה של המשתמש.
השירות get_token
שומר את האסימונים בדיסק, ומאפשר להשתמש בהם לפי הצורך. הוא גם מדפיס אסימון גישה תקין ב-stdout.
משם תוכלו להשתמש ב-Postman או להטמיע אותו במשתנה סביבה לשימוש ב-curl.
בתהליך הבא מוסבר איך להשתמש ב-get_token
כדי לקבל אסימון גישה מסוג OAuth2 ולבצע קריאות ל-Edge Management API:
- מורידים את החבילה
sso-cli
:curl http://edge_sso_IP_DNS:9099/resources/scripts/sso-cli/ssocli-bundle.zip -o "ssocli-bundle.zip"
כאשר edge_sso_IP_DNS היא כתובת ה-IP של שם ה-DNS של המכונה שמארחת את מודול ה-SSO של Edge. אם הגדרתם TLS ב-Edge SSO, צריך להשתמש ב-
https
ובמספר היציאה הנכון של TLS. - פותחים את החבילה
ssocli-bundle.zip
:unzip ssocli-bundle.zip
- התקנה של
get_token
ב-/usr/local/bin
:
./install
משתמשים באפשרות
-b
כדי לציין מיקום אחר:./install -b path
- מגדירים את משתנה הסביבה
SSO_LOGIN_URL
ככתובת ה-URL להתחברות, בפורמט:export SSO_LOGIN_URL="http://edge_sso_IP_DNS:9099"
כאשר edge_sso_IP_DNS היא כתובת ה-IP של שם ה-DNS של המכונה שמארחת את מודול ה-SSO של Edge. אם הגדרתם TLS ב-Edge SSO, צריך להשתמש ב-
https
ובמספר היציאה הנכון של TLS. - בדפדפן, עוברים לכתובת ה-URL הבאה כדי לקבל קוד סיסמה חד-פעמי:
http://edge_sso_IP_DNS:9099/passcode
אם הגדרתם TLS ב-Edge SSO, צריך להשתמש ב-
https
ובמספר היציאה הנכון של TLS.כתובת ה-URL הזו מחזירה קוד גישה לשימוש חד-פעמי, שתקף עד שמרעננים את כתובת ה-URL הזו כדי לקבל קוד גישה חדש, או עד שמשתמשים בקוד הגישה עם
get_token
כדי ליצור אסימון גישה. - מריצים את
get_token
כדי לקבל את אסימון הגישה של OAuth2:
get_token -u emailAddress
כאשר emailAddress היא כתובת האימייל של משתמש Edge. תתבקשו להזין את קוד הגישה החד-פעמי שקיבלתם בשלב 3:
One Time Code ( Get one at https://edge_sso_IP.com/passcode ) Enter the passcode if SAML is enabled or press ENTER:
מזינים את קוד הגישה. כלי השירות
get_token
מקבל את אסימון הגישה מסוג OAuth2, מדפיס אותו למסך וכותב אותו ואת אסימון הרענון ל-~/.sso-cli
.אפשר להזין את קוד הגישה בשורת הפקודה באמצעות הפקודה
get_token
בפורמט:get_token -u emailAddress -p passcode
- מעבירים את טוקן הגישה לקריאה ל-API לניהול Edge ככותרת Bearer:
curl -H "Authorization: Bearer access_token" https://ms_IP:8080/v1/organizations/orgName
אחרי שמקבלים אסימון גישה חדש בפעם הראשונה, אפשר לקבל את אסימון הגישה ולהעביר אותו לקריאה ל-API באמצעות פקודה אחת, כפי שמוצג בהמשך:
header=`get_token` && curl -H "Authorization: Bearer $header" https://ms_IP:8080/v1/o/orgName
בפורמט הזה של הפקודה, אם פג התוקף של אסימון הגישה, הוא יתעדכן באופן אוטומטי עד שתוקף אסימון הרענון יפוג.
אחרי שתוקף טוקן הרענון יפוג, תופיע ב-get_token
בקשה להזנת קוד גישה חדש. כדי ליצור אסימון גישה חדש מסוג OAuth, צריך לעבור לכתובת ה-URL שצוינה למעלה בשלב 3 וליצור קוד גישה חדש.
שימוש ב-Management API כדי לקבל ולרענן אסימונים
במאמר שימוש באבטחת OAuth2 עם API לניהול של Apigee Edge מוסבר איך להשתמש ב-API לניהול של Edge כדי לקבל ולרענן אסימונים. אפשר גם להשתמש בקריאות Edge API כדי לקבל אסימונים שנוצרו מטענות נכונות (assertions) של SAML.
ההבדל היחיד בין קריאות ה-API שתועדו בשימוש באבטחת OAuth2 עם Apigee Edge management API הוא שכתובת ה-URL של הקריאה חייבת להפנות לשם התחום שלכם. בנוסף, כדי ליצור את אסימון הגישה הראשוני, צריך לכלול את קוד הגישה, כפי שמתואר בשלב 3 בתהליך שלמעלה.
לדוגמה, אפשר להשתמש בקריאה הבאה ל-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 / https://edge_sso_IP_DNS:9099/oauth/token -s / -d 'grant_type=password&response_type=token&passcode=passcode'
לקבלת הרשאה, מעבירים פרטי כניסה שמורים של לקוח OAuth2 בכותרת Authorization
. הקריאה מדפיסה את אסימוני הגישה והרענון במסך.
כדי לרענן את אסימון הגישה מאוחר יותר, משתמשים בקריאה הבאה שכוללת את אסימון הרענון:
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 / https://edge_sso_IP_DNS:9099/oauth/token / -d 'grant_type=refresh_token&refresh_token=refreshToken'