ניתן לבטל את הקישור מהפלטפורמה או מ-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_token או refresh_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.
אסימון של אירוע אבטחה משמש כדי להודיע ל-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 Web Token (JWT).