ביטול קישור של חשבונות

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

אפשר לבטל את קישור החשבונות באמצעות אחת מהאפשרויות הבאות:

  • בקשת משתמש מאת
    • אפליקציית Google או הגדרות של חשבון Google
    • הפלטפורמה שלך
  • לא ניתן לחדש אסימון רענון שפג תוקפו
  • אירועים אחרים שאתם או Google יזמתם. לדוגמה, השעיית חשבון באמצעות שירותי זיהוי של התנהלות פוגעת ואיומים.

המשתמש ביקש לבטל את הקישור ל-Google

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

המשתמש ביקש לבטל את הקישור לפלטפורמה שלך

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

תוכלו לבחור להטמיע Risk & שיתוף פעולה באירוע ושיתוף (RISC) וליידע את Google על שינויים בסטטוס הקישור של חשבון המשתמש. כך אפשר לשפר את חוויית המשתמש – גם בפלטפורמה וגם ב-Google מוצג סטטוס קישור נוכחי ועקבי, ללא צורך להסתמך על בקשה לרענון או לאסימון גישה לעדכון מצב הקישור.

תוקף האסימון

כדי לספק חוויית משתמש חלקה ולמנוע שיבושים בשירות, Google מנסה לחדש את אסימוני הרענון לקראת סוף החיים שלהם. בחלק מהתרחישים ייתכן שיהיה צורך בהסכמת משתמש כדי לקשר מחדש את החשבונות כאשר אסימון רענון תקין לא זמין.

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

אירועים אחרים

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

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

נקודת הקצה של ביטול האסימון

如果您支持OAuth 2.0令牌吊销终结点,则您的平台可以接收来自Google的通知。这使您可以通知用户链接状态更改,使令牌无效以及清理安全凭证和授权授予。

该请求具有以下形式:

POST /revoke HTTP/1.1
Host: oauth2.example.com
Content-Type: application/x-www-form-urlencoded

client_id=GOOGLE_CLIENT_ID&client_secret=GOOGLE_CLIENT_SECRET&token=TOKEN&token_type_hint=refresh_token

您的令牌吊销终结点必须能够处理以下参数:

撤销端点参数
client_id一个字符串,用于将请求来源标识为Google。此字符串必须在您的系统中注册为Google的唯一标识符。
client_secret您在Google注册的用于服务的秘密字符串。
token要撤消的令牌。
token_type_hint (可选)要撤消的令牌类型,可以是access_tokenrefresh_token 。如果未指定,则默认为access_token

当令牌被删除或无效时返回响应。请参见以下示例:

HTTP/1.1 200 Success
Content-Type: application/json;charset=UTF-8

如果由于某种原因无法删除令牌,请返回503响应代码,如以下示例所示:

HTTP/1.1 503 Service Unavailable
Content-Type: application/json;charset=UTF-8
Retry-After: HTTP-date / delay-seconds

Google稍后或按照Retry-After的要求重试该请求。

הגנה על כל החשבונות (RISC)

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

ההגנה על כל החשבונות מבוססת על תקן RISC שפותח ב-OpenID Foundation.

המערכת משתמשת באסימון אירוע אבטחה כדי להודיע ל-Google על ביטול של האסימון.

לאחר הפענוח, אירוע ביטול האסימון נראה כמו הדוגמה הבאה:

{
  "iss":"http://risc.example.com",
  "iat":1521068887,
  "aud":"google_account_linking",
  "jti":"101942095",
  "toe": "1508184602",
  "events": {
    "https://schemas.openid.net/secevent/oauth/event-type/token-revoked":{
      "subject_type": "oauth_token",
      "token_type": "refresh_token",
      "token_identifier_alg": "hash_SHA512_double",
      "token": "double SHA-512 hash value of token"
    }
  }
}

האסימונים של אירועי האבטחה שמשמשים אותך כדי להודיע ל-Google על אירועי ביטול של אסימון חייבים לעמוד בדרישות שמפורטות בטבלה הבאה:

אירועים של ביטול אסימון
iss תלונה של המנפיק: זוהי כתובת URL שאתם מארחים, והיא שותפה עם Google במהלך הרישום.
aud הצהרה על זכויות יוצרים של הקהל: מזהה של Google כנמען ה-JWT. הערך צריך להיות google_account_linking.
jti תביעת מזהה JWT: זהו מזהה ייחודי שיוצרים עבור כל אסימון של אירוע אבטחה.
iat הונפקה בעת הצהרת זכויות היוצרים: זהו ערך NumericDate שמייצג את השעה שבה נוצר האסימון של אירוע האבטחה.
toe מועד תביעת הבעלות על האירוע: זהו ערך אופציונלי של NumericDate שמייצג את הזמן שבו האסימון בוטל.
exp תלונה על זמן תפוגה: אין לכלול את השדה הזה, מכיוון שהאירוע שגרם להתראה הזו כבר התרחש.
events
הצהרה על זכויות יוצרים באירועי אבטחה: זהו אובייקט JSON שחייב לכלול רק אירוע ביטול של אסימון אחד.
subject_type חובה להגדיר את הערך oauth_token.
token_type זהו סוג האסימון שבוטל, access_token או refresh_token.
token_identifier_alg זהו האלגוריתם המשמש לקידוד האסימון, והוא חייב להיות hash_SHA512_double.
token זהו המזהה של האסימון שבוטל.

למידע נוסף על הפורמטים והסוגים של השדות, תוכלו לעיין ב-JSON Web Token (JWT).