Edge for Private Cloud v4.18.05
אימות בסיסי הוא אחת מהדרכים לאימות כשמבצעים קריאות ל-Edge management API. לדוגמה, אפשר לשלוח את בקשת ה-cURL הבאה ל-Edge management API כדי לגשת למידע על הארגון:
curl -u userName:pWord https://ms_IP_DNS:8080/v1/organizations/orgName
בדוגמה הזו, משתמשים באפשרות cURL -u כדי להעביר פרטי כניסה של Basic Auth. לחלופין, אפשר להעביר אסימון OAuth2 בכותרת Bearer כדי לבצע קריאות ל-Edge management API. לדוגמה:
curl -H "Authorization: Bearer access_token" https://ms_IP_DNS:8080/v1/organizations/orgName
אחרי שמפעילים את SAML, אפשר להשבית את Basic Auth. אם משביתים את Basic Auth, כל הסקריפטים (סקריפטים של Maven, סקריפטים של מעטפת, apigeetool וכו') שמסתמכים על קריאות ל-API לניהול של Edge שתומכות ב-Basic Auth לא יפעלו יותר. אתם צריכים לעדכן את כל הקריאות ל-API והסקריפטים שמשתמשים באימות בסיסי כדי להעביר טוקני גישה של OAuth2 בכותרת Bearer.
שימוש ב-get_token כדי לקבל ולרענן טוקנים
הכלי get_token מחליף את פרטי הכניסה של Basic Auth ואת קוד הגישה בטוקן גישה וטוקן רענון של OAuth2. הכלי get_token מקבל את פרטי הכניסה ומדפיס אסימון גישה תקין. אם אפשר לרענן את האסימון, הוא ירענן אותו וידפיס אותו. אם פג התוקף של טוקן הרענון, תופיע בקשה להזין את פרטי הכניסה של המשתמש.
הכלי get_token מאחסן את האסימונים בדיסק, והם מוכנים לשימוש לפי הצורך. היא גם מדפיסה טוקן גישה תקין ל-stdout. משם, אתם יכולים להשתמש ב-Postman או להטמיע אותו במשתנה סביבה לשימוש ב-curl.
התהליך הבא מתאר איך להשתמש ב-get_token כדי לקבל אסימון גישה של OAuth2 לביצוע קריאות ל-API לניהול של Edge:
- מורידים את החבילה 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 של המכונה שמארחת את מודול Edge SSO. אם הגדרתם 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 - מעבירים את אסימון הגישה לקריאה ל-Management 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 עם ה-Management API של Apigee Edge מוסבר איך להשתמש ב-Management API של Edge כדי לקבל ולרענן טוקני רענון. אתם יכולים גם להשתמש בקריאות ל-Edge API כדי לקבל אסימונים שנוצרו מטענות נכונות (assertions) של SAML.
ההבדל היחיד בין הקריאות ל-API שמתועדות במאמר שימוש באבטחת OAuth2 עם ה-Management API של Apigee Edge הוא שכתובת ה-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'