אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
בקטע הזה מוסבר איך להפעיל אחזור וביטול של אסימוני גישה מסוג OAuth 2.0 לפי מזהה משתמש קצה, מזהה אפליקציה או שניהם. כדי להשתמש בתכונה של זיהוי משתמשי קצה, צריך לבצע הגדרה מיוחדת כמו שמתואר בנושא הזה. משתמש קצה הוא המשתמש באפליקציה שמפעילה את ה-API.
מתי כדאי להפעיל גישה של משתמשי קצה למזהים
לפעמים כדאי לשמור את מזהה המשתמש בטוקן גישה. מומלץ להפעיל את התכונה 'גישה למזהה משתמש קצה' רק אם יש לכם תרחיש שימוש טוב בשבילה. לדוגמה:
- תכונה באתר או באפליקציה שבה המשתמשים יכולים לראות אילו אפליקציות צד שלישי הם אישרו, וגם אפשרות לבטל את הגישה לאפליקציות האלה.
- תכונה שמאפשרת למשתמש מורשה לבטל את כל אסימוני הגישה שמשויכים לאפליקציית מפתח ספציפית.
מידע על אסימוני גישה מסוג OAuth
מזהי האפליקציות נוספים אוטומטית לטוקן גישה של OAuth. לכן, אחרי שמפעילים גישה לאסימונים לארגון כמו שמתואר בהמשך, אפשר לבטל אסימוני גישה לפי מזהה האפליקציה.
כדי לאחזר ולבטל אסימוני גישה מסוג OAuth 2.0 לפי מזהה משתמש קצה, מזהה משתמש קצה צריך להיות באסימוני הגישה. בקטע הבא מוסבר איך להוסיף מזהה משתמש קצה לטוקן קיים.
כברירת מחדל, כש-Edge יוצר אסימון גישה מסוג OAuth 2.0, האסימון הוא בפורמט שמוצג בהמשך:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
שימו לב לנקודות הבאות:
- השדה application_name מכיל את ה-UUID של האפליקציה שמשויכת לטוקן. אם מפעילים אחזור וביטול של אסימוני גישה מסוג OAuth 2.0 לפי מזהה אפליקציה, זהו מזהה האפליקציה שבו משתמשים.
- השדה access_token מכיל את ערך אסימון הגישה מסוג OAuth 2.0.
אין שדה למזהה משתמש קצה באסימון הגישה של OAuth שמוגדר כברירת מחדל. כדי לאפשר אחזור וביטול של אסימוני גישה מסוג OAuth 2.0 לפי מזהה משתמש קצה, צריך להגדיר את מדיניות OAuth 2.0 כך שתכלול את מזהה המשתמש באסימון, כמו שמתואר בהליך שלמטה. שימו לב: אם אתם רוצים רק לאחזר ולבטל אסימוני גישה מסוג OAuth 2.0 לפי מזהה אפליקציה, אין צורך להפעיל גישה לפי מזהה משתמש קצה.
מעבירים את מזהה משתמש הקצה לנקודת הקצה ליצירת טוקן. אפשר להעביר את מזהה משתמש הקצה כפרמטר של שאילתה, כפרמטר של טופס או בכותרת (כפי שמוסבר בהמשך המאמר הזה). אחרי שמגדירים את Edge כך שיכלול את מזהה משתמש הקצה באסימון, הוא נכלל כשדה app_enduser, כמו שמוצג בהמשך:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
כדי ללמוד איך לבצע את הקריאות ל-API שמאחורי השליפות והביטולים האלה, אפשר לעיין במסמכים הבאים של Smart Docs:
- ביטול טוקן גישה ל-OAuth2 לפי משתמש קצה או מזהה אפליקציה
- קבלת אסימון גישה מסוג OAuth2 לפי מזהה משתמש קצה או מזהה אפליקציה
הפעלת גישה לאסימוני OAuth 2.0 לפי מזהה משתמש ומזהה אפליקציה
האופן שבו מאפשרים גישה לטוקנים מסוג OAuth 2.0 לפי מזהה משתמש ומזהה אפליקציה תלוי באופן הפריסה של Edge:
פריסה מבוססת-ענן
פריסה של Edge מבוססת-ענן פירושה שרוב ההגדרות מטופלות על ידי Apigee. אתם אחראים רק להגדיר את מדיניות OAuth 2.0 כדי להוסיף את מזהה המשתמש לאסימון הגישה. פרטים נוספים מופיעים בהמשך.
פריסה של Edge for Private Cloud
ב-Apigee Edge Private Cloud (במקום), אתם אחראים באופן מלא על ההגדרה. מידע נוסף זמין במאמר פעולות והגדרות.
Apigee Hybrid
הגישה לאסימוני OAuth 2.0 לפי מזהה משתמש מופעלת כברירת מחדל. אתם אחראים רק להגדיר את מדיניות OAuth 2.0 כדי להוסיף את מזהה המשתמש לאסימון הגישה. מידע נוסף זמין בשלב 5 של התהליך שבהמשך.
הפעלת הגישה בענן
שלב 1: הפעלת התמיכה בתכונה הזו בארגון
צריך להפעיל את התכונה הזו בכל ארגון שרוצים לתמוך בה.
כדי לעדכן את הארגון, צריך לפנות אל התמיכה של Apigee Edge.
שלב 2: נותנים הרשאות למשאבים של OAuth2 לתפקידים opsadmin ו-orgadmin
רק לתפקידים orgadmin ו-opsadmin צריכות להיות הרשאות לבצע את הקריאות האלה לאחזור (get) ולביטול (put) של משאב oauth2 על סמך מזהה משתמש קצה או מזהה אפליקציה.
אפשר להשתמש בקריאה ל-API Get Permission for a Resource כדי לראות באילו תפקידים יש הרשאות get ו-put למשאב oauth2.
אם אתם צריכים להוסיף או להסיר הרשאות, אתם יכולים לפנות אל התמיכה של Apigee Edge כדי לבקש לבצע את העדכונים.
שלב 3: העתקת אסימוני גישה קיימים מסוג OAuth 2.0 לצמתי Cassandra
הפעולה מתבצעת על ידי צוות התמיכה של Apigee: במסגרת המשימה הזו, עותקים של אסימוני גישה קיימים מסוג OAuth 2.0 בארגונים מושפעים יועתקו ויישמרו בצמתי Cassandra. התהליך הזה יבוצע בצמתי Cassandra לכל אחד מה-pods של Apigee Edge. כך אפשר להפעיל את הקריאות ל-API לאחזור ולביטול של כל אסימוני הגישה מסוג OAuth 2.0, גם אלה שקיימים וגם אלה שנוצרו לאחרונה.
שלב 4: הגדרת מדיניות OAuth 2.0 ליצירת אסימוני גישה שכוללים מזהים של משתמשי קצה
מגדירים את מדיניות OAuth 2.0 שמשמשת ליצירת אסימוני גישה כך שתכלול את מזהה משתמש הקצה באסימון. אם תכללו מזהים של משתמשי קצה בטוקנים של הגישה, תוכלו לאחזר ולבטל אותם לפי מזהה משתמש הקצה.
כדי להגדיר את המדיניות כך שתכלול מזהה של משתמש קצה בטוקן גישה, צריך לציין את משתנה הקלט שמכיל את מזהה משתמש הקצה. משתמשים בתג <AppEndUser> כדי לציין את המשתנה.
מדיניות OAuth 2.0 שמופיעה בהמשך, שנקראת GenerateAccessTokenClient, יוצרת אסימון גישה מסוג OAuth 2.0. שימו לב להוספה של התג <AppEndUser> באותיות מודגשות:
<OAuthV2 async="false" continueOnError="false" enabled="true" name="GenerateAccessTokenClient"> <DisplayName>OAuth 2.0.0 1</DisplayName> <ExternalAuthorization>false</ExternalAuthorization> <Operation>GenerateAccessToken</Operation> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> <GrantType>request.queryparam.grant_type</GrantType> <AppEndUser>request.header.appuserID</AppEndUser> <ExpiresIn>960000</ExpiresIn> </OAuthV2>
לאחר מכן, אפשר להשתמש בפקודת cURL הבאה כדי ליצור את אסימון הגישה מסוג OAuth 2.0, ולהעביר את מזהה המשתמש ככותרת appuserID:
curl -H "appuserID:6ZG094fgnjNf02EK" / https://myorg-test.apigee.net/oauth/client_credential/accesstoken?grant_type=client_credentials / -X POST / -d 'client_id=k3nJyFJIA3p62TKIkLO6OJNi87GYXFmP&client_secret=gk58jK5lIp943AY4'
בדוגמה הזו, הערך appuserID מועבר ככותרת בקשה. יש הרבה דרכים להעביר מידע כחלק מבקשה. לדוגמה, במקום זאת, אתם יכולים:
- משתמשים במשתנה של פרמטר טופס: request.formparam.appuserID
- שימוש במשתנה של זרימת נתונים שמספק את מזהה משתמש הקצה