אחת הדרכים לבצע אימות היא לבצע אימות בקריאות ל-Edge management API.
לדוגמה, כדי לקבל גישה, אפשר לשלוח ל-Edge management API את בקשת curl
הבאה.
מידע על הארגון שלך:
curl -u USER_NAME:PASSWORD https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
בדוגמה הזו, אפשרות curl
-u
משמשת אותך כדי לעבור את האימות הבסיסי
פרטי הכניסה. לחלופין, אפשר להעביר אסימון OAuth2 בכותרת Bearer
כדי
קריאות ל-Edge management API, כפי שאפשר לראות בדוגמה הבאה:
curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP_DNS:8080/v1/organizations/ORG_NAME
אחרי שמפעילים IdP חיצוני לצורך אימות, אפשר להשבית את ההגדרה הבסיסית
אימות. אם משביתים את ההגדרה Basic
כל הסקריפטים (כמו Maven, מעטפת ו-apigeetool
)
מסתמכים על כך שקריאות ל-Edge management API שתומכות באימות בסיסי לא יפעלו יותר. עליך לעדכן
קריאות וסקריפטים ל-API שמשתמשים באימות בסיסי כדי להעביר אסימוני גישה מסוג OAuth2
הכותרת Bearer
.
קבלת אסימונים ורענון שלהם באמצעות get_token
כלי השירות get_token
מחליף את פרטי הכניסה לאימות הבסיסי (ובמקרים מסוימים,
קוד סיסמה) עבור אסימון גישה ורענון של OAuth2. הכלי get_token
מקבל את
ומחזירה אסימון גישה חוקי. אם אפשר לרענן אסימון, כלי השירות יתרענן
ומחזירה אותו. אם התוקף של אסימון הרענון יפוג, תתבקשו להזין את פרטי הכניסה של המשתמש.
כלי השירות get_token
מאחסן את האסימונים בדיסק, והם מוכנים לשימוש במקרה הצורך. הוא
ידפיס גם אסימון גישה תקין ל-stdout
. משם, תוכלו להשתמש בתוסף לדפדפן כמו
פוסטר או להטמיע אותו במשתנה סביבה לשימוש ב-curl
.
כדי לקבל אסימון גישה מסוג 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 של Apigee. אם הגדרתם TLS ב-Apigee SSO, צריך להשתמש ב-
https
מספר יציאת TLS. - מחלצים את החבילה
ssocli-bundle.zip
, כפי שמוצג בדוגמה הבאה:unzip ssocli-bundle.zip
- התקנת
get_token
ב-/usr/local/bin
, כמו בדוגמה הבאה:./install -b PATH
האפשרות
-b
מציינת מיקום אחר. - מגדירים את משתנה הסביבה
SSO_LOGIN_URL
לכתובת ה-URL להתחברות, באופן הבא טופס:export SSO_LOGIN_URL="http://EDGE_SSO_IP_DNS:9099"
כאשר EDGE_SSO_IP_DNS היא כתובת ה-IP של המכונה שמארחת את ה-SSO של Apigee של מודל טרנספורמר. אם הגדרת TLS ב-Apigee SSO, צריך להשתמש ב-
https
וביציאת ה-TLS הנכונה מספר. - (SAML בלבד) בדפדפן, צריך לעבור לכתובת ה-URL הבאה כדי לקבל בקשה חד-פעמית
קוד סיסמה:
http://EDGE_SSO_IP_DNS:9099/passcode
אם הגדרת TLS ב-Apigee SSO, צריך להשתמש ב-
https
וביציאת ה-TLS הנכונה מספר.הבקשה הזו מחזירה קוד סיסמה חד-פעמי שיישאר בתוקף עד שתרעננו את כתובת ה-URL הזו ניתן לקבל קוד סיסמה חדש או להשתמש בקוד הגישה עם
get_token
כדי ליצור אסימון גישה.לתשומת ליבכם: אפשר להשתמש בקוד גישה רק באימות באמצעות IdP ב-SAML. לא ניתן להשתמש קוד גישה לאימות באמצעות IdP של LDAP.
- צריך להפעיל את
get_token
כדי לקבל את אסימון הגישה מסוג OAuth2, כמו בדוגמה הבאה:get_token -u EMAIL_ADDRESS
כאשר EMAIL_ADDRESS הוא כתובת האימייל של משתמש Edge.
(SAML בלבד) מזינים את קוד הגישה בשורת הפקודה בנוסף לאימייל address, כמו בדוגמה הבאה:
get_token -u EMAIL_ADDRESS -p PASSCODE
כלי השירות
get_token
מקבל את אסימון הגישה מסוג OAuth2, ומדפיס אותו וכותב אותו ואת אסימון הרענון ל-~/.sso-cli
. - מעבירים את אסימון הגישה לקריאה ל-Edge management API ככותרת
Bearer
, כפי שאפשר לראות בדוגמה הבאה:curl -H "Authorization: Bearer ACCESS_TOKEN" https://MS_IP:8080/v1/organizations/ORG_NAME
- אחרי שמקבלים אסימון גישה חדש בפעם הראשונה, אפשר לקבל את אסימון הגישה ואז
להעביר אותה לקריאה ל-API בפקודה אחת, כפי שאפשר לראות בדוגמה הבאה:
header=`get_token` && curl -H "Authorization: Bearer $header" https://MS_IP:8080/v1/o/ORG_NAME
בטופס הזה של הפקודה, אם פג התוקף של אסימון הגישה, הוא מועבר באופן אוטומטי מתבצע רענון עד שיפוג התוקף של אסימון הרענון.
(SAML בלבד) לאחר שיפוג התוקף של אסימון הרענון, get_token
יבקש ממך קוד גישה חדש. שלך
חייבים לעבור לכתובת ה-URL שמופיעה למעלה בשלב 3 וליצור קוד סיסמה חדש, כדי שתוכלו ליצור
אסימון גישה חדש ל-OAuth.
צריך להשתמש ב-Management API כדי לקבל ולרענן אסימונים
שימוש ב-OAuth2 עם Apigee Edge management API רואים איך להשתמש ממשק API לניהול Edge לקבלת אסימונים ולרענון שלהם. אפשר גם להשתמש בקריאות ל-Edge API כדי לקבל אסימונים שנוצר מטענות נכונות (assertions) של SAML.
ההבדל היחיד בין הקריאות ל-API שתועדו ב שימוש ב-OAuth2 עם Apigee Edge management API היא שכתובת ה-URL של הקריאה חייבת להפנות שם התחום. בנוסף, כדי ליצור את אסימון הגישה הראשוני עם IdP של SAML, צריך לכלול את קוד הגישה, כפי שמוצג בשלב 3 של ההליך שלמעלה.
כדי לקבל הרשאה, צריך להעביר פרטי כניסה שמורים של לקוח OAuth2 ב-Authorization
הכותרת. השיחה מדפיסה את אסימוני הגישה והרענון במסך.
קבלת אסימון גישה
(LDAP) צריך להשתמש בקריאה הבאה ל-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=USER_EMAIL&password=USER_PASSWORD'
(SAML) משתמשים בקריאה הבאה ל-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'
חשוב לשים לב שאימות עם IdP ב-SAML דורש קוד סיסמה זמני, ואילו מזהה LDAP מה לא.
רענון של אסימון גישה
כדי לרענן את אסימון הגישה מאוחר יותר, משתמשים בקריאה הבאה שכוללת את אסימון הרענון:
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=REFRESH_TOKEN'