אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
ביטול טוקנים של גישה ורענון
במקרים מסוימים, אפליקציות נדרשות לבטל או לפסול אסימונים באופן מפורש, למשל כשמשתמש יוצא מאפליקציה שמופעל בה OAuth. אם מבטלים אסימון, אפשר לאשר אותו מחדש בכל שלב לפני שהוא יפוג.
ההליך לביטול אסימון מוגדר במפרט של ביטול אסימון OAuth 2.0.
ב-Apigee Edge יש פעולה בשם InvalidateToken שמאפשרת להגדיר נקודת קצה ייעודית לביטול טוקן. כשמפרסמים את ה-URI של נקודת הקצה הזו, מפתחי אפליקציות יכולים לבטל אסימונים שהונפקו על ידי Edge.
הנה דוגמה להגדרה של מדיניות OAuthV2 והפעולה InvalidateToken. במקרה כזה, גם אסימון הגישה וגם אסימון הרענון שמשויך אליו מבוטלים. מבחינה טכנית, שניהם בוטלו כי דגל הקסקדה מוגדר כ-true. מידע נוסף על אופן הפעולה של הדגל cascade מופיע בקטע 'מאפיינים של רכיב Token' בהמשך.
<OAuthV2 name="InvalidateToken"> <Operation>InvalidateToken</Operation> <Tokens> <Token type="accesstoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
<Tokens>/<Token> element
מזהה את משתנה הזרימה שמציין את האסימון שיש לבטל. אם המפתחים צריכים לשלוח בקשת ביטול באמצעות פרמטר שאילתה בשם access_token, למשל, משתנה הזרימה הנכון יהיה: request.queryparam.access_token. כדי לדרוש את האסימון בכותרת HTTP, למשל, מגדירים את הערך הזה ל-request.header.access_token.
מאפיינים
-
type(חובה, מחרוזת): סוג האסימון שמזוהה על ידי המשתנה שצוין. הערכים הנתמכים הםaccesstokenו-refreshtoken:- כדי לבטל טוקן גישה, צריך לציין את הסוג accesstoken.
- כדי לבטל גם את טוקן הגישה וגם את טוקן הרענון, מציינים את הסוג refreshtoken. כשמופיע סוג refreshtoken, Edge מניח שהטוקן הוא טוקן רענון. אם נמצא טוקן רענון כזה, הוא מבוטל. אם טוקן הרענון לא נמצא, Edge בודק אם מדובר בטוקן גישה. אם אסימון הגישה קיים, הוא מבוטל.
הערה: אם מעבירים אסימון שכבר בוטל למדיניות InvalidateToken, המדיניות לא מחזירה שגיאה, למרות שאולי מצפים לכך. לפעולה כזו אין השפעה.
-
cascade(אופציונלי, בוליאני, ברירת מחדל: true) השימוש העיקרי במאפיין הזה הוא ביטול של טוקן רענון בלי לבטל את טוקן הגישה שמשויך אליו. כדאי להביא בחשבון את המקרים הבאים:- לבטל רק את טוקן הרענון ולא את טוקן הגישה שמשויך אליו. כדי לעשות זאת,
מגדירים את הסוג של <Token> ל-
refreshtokenומגדירים את cascade ל-false. - מבטלים גם את טוקן הגישה וגם את טוקן הרענון. כדי לעשות זאת, מגדירים את סוג ה-<Token>
ל-
accesstoken. הערך של cascade יכול להיותtrue(ברירת המחדל) אוfalse. אם מגדירים את הערך ל-true, גם אסימון הגישה וגם אסימון הרענון מבוטלים. אם מגדירים את הערך ל-false, טוקן הגישה מבוטל ואי אפשר להשתמש בטוקן הרענון. הסבר נוסף מופיע בהערה שבהמשך. - לבטל טוקן גישה בלי לבטל את טוקן הרענון המשויך. לא נתמך. הסבר נוסף מופיע בהערה שבהמשך.
- לבטל רק את טוקן הרענון ולא את טוקן הגישה שמשויך אליו. כדי לעשות זאת,
מגדירים את הסוג של <Token> ל-
הערה: מטעמי אבטחה, אם מבטלים טוקן גישה, גם טוקן הרענון המשויך יבוטל. לכן, אי אפשר להשתמש במאפיין cascade כדי לבטל רק אסימון גישה. לדוגמה, אם מגדירים את סוג ה-<Token>
ל-accesstoken ומגדירים את cascade=false, אסימון הגישה מבוטל
(כצפוי), אבל אי אפשר להשתמש באסימון הרענון המשויך. אי אפשר להשתמש בו כדי לרענן את אסימון הגישה שבוטל. מקרה השימוש העיקרי במאפיין cascade הוא כשרוצים לבטל רק את טוקן הרענון. במקרה כזה, מגדירים את סוג ה-<Token> ל-refreshtoken,
ומגדירים את cascade=false. טוקן הרענון יבוטל, אבל טוקן הגישה המשויך אליו יישאר בתוקף (עד שהוא יפוג או יבוטל). מידע נוסף זמין
בדיון הזה בפורום הקהילה.
אישור של אסימוני גישה ורענון
משתמשים בפעולה ValidateToken כדי לאשר מחדש טוקן שבוטל. כלומר, כשמחילים את הפעולה הזו, הסטטוס של אסימון הגישה או טוקן הרענון שמוגדר כיעד משתנה מ 'בוטל' ל'אושר'. אפשר לאמת כל טוקן שבוטל ושעדיין לא פג התוקף שלו.
<OAuthV2 name="ValidateToken"> <Operation>ValidateToken</Operation> <Tokens> <Token type="refreshtoken" cascade="true">flow.variable</Token> </Tokens> </OAuthV2>
<Tokens>/<Token> element
מזהה את משתנה הזרימה שמציין את הטוקן שצריך לאמת. אם המפתחים צריכים לשלוח בקשת אימות באמצעות פרמטר שאילתה בשם access_token, למשל, משתנה הזרימה הנכון יהיה: request.queryparam.access_token. כדי לדרוש את האסימון בכותרת HTTP, למשל, מגדירים את הערך הזה ל-request.header.access_token.
מאפיינים
-
type(חובה, מחרוזת) סוג הטוקן שמזוהה על ידי המשתנה שצוין. הערכים הנתמכים הםaccesstokenו-refreshtoken. -
cascade(אופציונלי, בוליאני): כברירת מחדל, האפשרות הזו מוגדרת כ-true, והיא גורמת לאימות להתפשט לאסימונים משויכים. לכן, אם המדיניות חלה על אסימון רענון, היא חלה גם על אסימון הגישה שמשויך אליו. אם הוא מוחל על אסימון גישה, גם אסימון הרענון שמשויך אליו מאומת. אם מגדירים את הערךfalse, רק אסימון הגישה או אסימון הרענון שצוינו מאומתים.