אישור וביטול של אסימוני גישה

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

ביטול אסימוני גישה ורענון

במקרים מסוימים, האפליקציות נדרשות לבטל או לבטל אסימונים באופן מפורש. לדוגמה, כשמשתמש מתנתק מאפליקציה שתומכת ב-OAuth. אם מבטלים אסימון, אפשר לאשר אותו מחדש בכל שלב לפני שתוקפו פג.

הליך ביטול האסימון מוגדר במפרט ביטול אסימון OAuth 2.0.

ב-Apigee Edge יש פעולה מסוג InvalidateToken שמאפשרת להגדיר נקודת קצה ייעודית לביטול אסימון. פרסום ה-URI של נקודת הקצה הזו מאפשר למפתחי אפליקציות לבטל את התוקף של אסימונים שהונפקו על ידי Edge.

זוהי דוגמה לתצורה של מדיניות OAuthV2 והפעולה InvalidateToken. במקרה כזה, אסימון הגישה ואסימון הרענון שמשויך אליו מבוטלים. מבחינה טכנית, שניהם מבוטלים כי דגל הדרגה מוגדר כ-true. למידע נוסף על אופן הפעולה של דגל הדרגה, ניתן לעיין בקטע המאפיינים של רכיב האסימון שבהמשך.

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

רכיב <Tokens>/<Token>

מזהה את משתנה הזרימה שמציין את האסימון שיש לבטל. לדוגמה, אם המפתחים צפויים לשלוח בקשת ביטול באמצעות פרמטר שאילתה בשם access_token, משתנה התהליך הנכון יהיה: request.queryparam.access_token. כדי לדרוש את האסימון בכותרת HTTP, לדוגמה, צריך להגדיר את הערך הזה כ-request.header.access_token.

מאפיינים

  • type (מחרוזת): סוג האסימון שמזוהה על ידי המשתנה שצוין. הערכים הנתמכים הם accesstoken ו-refreshtoken:
    • כדי לבטל אסימון גישה, צריך לציין type accesstoken.
    • כדי לבטל גם את אסימוני הגישה וגם את אסימוני הרענון, יש לציין סוג רענון. כשהיא מזהה סוג רענון, Edge מניחה שהאסימון הוא אסימון רענון. אם אסימון הרענון הזה יימצא, הוא יבוטל. אם אסימון הרענון הזה לא נמצא, Edge יבדוק אם הוא אסימון גישה. אם אסימון הגישה קיים, הוא מבוטל.

      הערה: אם מעבירים אסימון שכבר לא תקף למדיניות InvalidateToken, המדיניות לא מחזירה שגיאה, למרות שיכול להיות שתצפו לכך. לפעולה כזו אין השפעה.
  • cascade (אופציונלי, בוליאני, ברירת מחדל: true) השימוש העיקרי במאפיין הזה הוא לבטל אסימון רענון בלי לבטל את אסימון הגישה המשויך אליו. כדאי להביא בחשבון את המקרים הבאים:
    • ביטול אסימון הרענון בלבד, ולא ביטול אסימון הגישה המשויך אליו. כדי לעשות זאת, מגדירים את הסוג <Token> כ-refreshtoken ומגדירים את הדרגה כ-false.
    • צריך לבטל גם את אסימון הגישה וגם את אסימון הרענון. כדי לעשות זאת, מגדירים את הסוג <Token> ל-accesstoken. הערך של המדרג יכול להיות true (ברירת המחדל) או false. אם מגדירים אותו לערך true, אסימון הגישה ואסימון הרענון מבוטלים. אם מגדירים את האסימון כ-false, אסימון הגישה יבוטל ולא ניתן יהיה להשתמש באסימון הרענון. אפשר לקרוא הסבר נוסף בהערה בהמשך.
    • ביטול אסימון הגישה וביטול אסימון הרענון שמשויך אליו. הפעולה לא נתמכת. להסבר נוסף, יש לעיין ב'הערה' בהמשך.

הערה: מטעמי אבטחה, כשמבטלים אסימון גישה, גם אסימון הרענון שמשויך אליו יבוטל. לכן, לא ניתן להשתמש במאפיין 'מדורג' כדי לבטל רק אסימון גישה. לדוגמה, אם מגדירים את הסוג <Token> כ-accesstoken ומגדירים את cascade=false, אסימון הגישה מבוטל (מצופה), אבל לא ניתן להשתמש באסימון הרענון המשויך. לא ניתן להשתמש בו כדי לרענן את אסימון הגישה שבוטל. התרחיש לדוגמה העיקרי של המאפיין 'מדורג' הוא כאשר רוצים לבטל רק אסימון רענון. במקרה כזה, מגדירים את הסוג <Token> כ-refreshtoken ומגדירים את cascade=false. אסימון הרענון יבוטל, אבל אסימון הגישה שמשויך אליו יישאר בתוקף (עד שיפוג התוקף שלו או עד שיבוטל). למידע נוסף, אפשר לקרוא את הדיון הזה בפורום הקהילה.

אישור אסימוני גישה ורענון

להשתמש בפעולת VerifyToken כדי "לאשר מחדש" אסימון שבוטל. כלומר, כשמחילים את הפעולה הזו, הסטטוס של אסימון הגישה או הרענון המטורגט משתנה מ 'בוטל' ל'אושר'. אפשר לאמת כל אסימון שבוטל ועדיין לא פג תוקפו.

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

רכיב <Tokens>/<Token>

מזהה את משתנה הזרימה שמציין את האסימון שצריך לאמת. לדוגמה, אם המפתחים צפויים לשלוח בקשת אימות באמצעות פרמטר שאילתה בשם access_token, משתנה התהליך הנכון יהיה: request.queryparam.access_token. כדי לדרוש את האסימון בכותרת HTTP, לדוגמה, צריך להגדיר את הערך הזה כ-request.header.access_token.

מאפיינים

  • type (מחרוזת חובה) סוג האסימון שזוהה על ידי המשתנה שצוין. הערכים הנתמכים הם accesstoken ו-refreshtoken.
  • cascade (אופציונלי, בוליאני): כברירת מחדל, האפשרות הזו מוגדרת לערך true וגורמת לתהליך האימות להפצה לאסימונים משויכים. לכן, אם מפעילים אסימון רענון, גם אסימון הגישה שמשויך אליו מאומת. אם מפעילים אסימון גישה, יתבצע אימות גם של אסימון הרענון שמשויך אליו. אם מגדירים את הערך false, רק אסימון הגישה או הרענון שצוינו יאומת.