קישור חשבונות מאפשר לבעלי חשבונות Google להתחבר לשירותים שלכם במהירות, בצורה חלקה ומאובטחת. אתם יכולים להטמיע קישור לחשבון Google כדי לשתף את נתוני המשתמש מהפלטפורמה שלכם עם אפליקציות ושירותים של Google.
פרוטוקול OAuth 2.0 המאובטח מאפשר לקשר בצורה בטוחה חשבון Google של משתמש עם החשבון שלו בפלטפורמה שלכם, וכך להעניק לאפליקציות ולמכשירים של Google גישה לשירותים שלכם.
משתמשים יכולים לקשר את החשבונות או לבטל את הקישור שלהם, ואפשר גם ליצור חשבון חדש בפלטפורמה שלכם באמצעות קישור של חשבון Google.
תרחישים לדוגמה
אלה כמה מהסיבות להטמעת קישור של חשבון Google:
שיתוף נתונים של משתמש מהפלטפורמה עם אפליקציות ושירותים של Google.
הפעלת תוכן של סרטונים וסרטים באמצעות Google TV.
ניהול ושליטה במכשירים המחוברים לבית החכם של Google באמצעות אפליקציית Google Home ו-Google Assistant, למשל "Ok Google, turn on the lights".
ליצור חוויות ופונקציות מותאמות אישית למשתמשים ב-Google Assistant באמצעות פעולות שיחה, כמו "Ok Google, תזמין לי את הקפה הרגיל שלי מסטארבקס".
לאפשר למשתמשים לזכות בפרסים על צפייה בשידורים חיים ב-YouTube שעומדים בקריטריונים, אחרי שהם מקשרים את חשבון Google שלהם לחשבון של שותף שמעניק פרסים.
מילוי מראש של חשבונות חדשים במהלך ההרשמה בנתונים ששותפו בהסכמה מפרופיל בחשבון Google.
תכונות נתמכות
התכונות הבאות נתמכות על ידי קישור של חשבון Google:
אפשר לשתף במהירות את הנתונים באמצעות תהליך קישור OAuth מרומז.
לספק אבטחה משופרת באמצעות תהליך קוד ההרשאה של קישור OAuth.
אפשר להשתמש בקישור פשוט כדי לאפשר למשתמשים קיימים להיכנס לפלטפורמה שלכם או למשתמשים חדשים שאומתו על ידי Google להירשם אליה, ולקבל את הסכמתם לשיתוף נתונים מאובטח.
הפחתת החיכוך באמצעות החלפת אפליקציות. באפליקציית Google מהימנה, הקשה אחת פותחת בצורה מאובטחת את אפליקציית Android או iOS המאומתת, והקשה אחת מאשרת את הסכמת המשתמש ומקשרת את החשבונות.
לשפר את פרטיות המשתמשים על ידי הגדרת היקפי הרשאות מותאמים אישית לשיתוף רק של הנתונים הנחוצים, להגביר את אמון המשתמשים על ידי הגדרה ברורה של אופן השימוש בנתונים שלהם.
אפשר לבטל את הגישה לנתונים ולשירותים שמתארחים בפלטפורמה על ידי ביטול הקישור של החשבונות. הטמעה של נקודת קצה לביטול טוקנים (אופציונלית) מאפשרת לכם לשמור על סנכרון עם אירועים ש-Google יזמה, בעוד שהגנה על חשבונות (RISC) מאפשרת לכם להודיע ל-Google על אירועי ביטול הקישור שמתרחשים בפלטפורמה שלכם.
תהליכי קישור חשבונות
יש 3 תהליכי קישור של חשבון Google, שכולם מבוססים על OAuth ודורשים ניהול או שליטה בנקודות קצה של הרשאה ותחלופת אסימונים שתואמות ל-OAuth 2.0.
במהלך תהליך הקישור, אתם מנפיקים ל-Google אסימוני גישה לחשבונות Google פרטיים אחרי שקיבלתם את הסכמת בעלי החשבונות לקשר את החשבונות ולשתף נתונים.
קישור באמצעות OAuth ('OAuth לאינטרנט')
זהו תהליך OAuth בסיסי שמעביר משתמשים לאתר שלכם לצורך קישור. המערכת מפנה את המשתמש לאתר שלכם כדי להיכנס לחשבון שלו. אחרי הכניסה לחשבון, המשתמש מביע הסכמה לשיתוף הנתונים שלו בשירות שלכם עם Google. בשלב הזה, חשבון Google של המשתמש והשירות שלכם מקושרים.
קישור OAuth תומך בקוד הרשאה ובתהליכי OAuth משתמעים. השירות שלכם צריך לארח נקודת קצה של הרשאה שתואמת ל-OAuth 2.0 עבור זרם הענקת גישה משתמע, ולחשוף נקודת קצה של הרשאה ונקודת קצה של החלפת אסימונים כשמשתמשים בהרשאה באמצעות קוד.
איור 1. קישור חשבון בטלפון של משתמש באמצעות OAuth באינטרנט
קישור אפליקציות באמצעות OAuth ('קישור אפליקציות')
תהליך OAuth שמפנה משתמשים אל האפליקציה שלכם לצורך קישור.
קישור מבוסס-OAuth של אפליקציות עוזר למשתמשים לעבור בין אפליקציות לנייד מאומתות ל-Android או ל-iOS לבין הפלטפורמה של Google, כדי לבדוק את השינויים המוצעים בגישה לנתונים ולתת את הסכמתם לקישור החשבון שלהם בפלטפורמה שלכם לחשבון Google שלהם. כדי להפעיל את התכונה 'קישור אפליקציות', השירות שלכם צריך לתמוך בקישור באמצעות OAuth או בקישור באמצעות כניסה מבוססת-OAuth עם חשבון Google באמצעות תהליך קוד ההרשאה.
התכונה 'החלפת אפליקציות' נתמכת ב-Android וב-iOS.
איך זה עובד:
אפליקציית Google בודקת אם האפליקציה שלכם מותקנת במכשיר של המשתמש:
- אם האפליקציה נמצאת, המשתמש מועבר לאפליקציה שלכם. האפליקציה שלכם אוספת את הסכמת המשתמש לקישור החשבון ל-Google, ואז המשתמש מועבר חזרה לממשק של Google.
- אם האפליקציה לא נמצאת או אם מתרחשת שגיאה במהלך תהליך קישור האפליקציות, המשתמש מופנה לתהליך OAuth פשוט או לתהליך OAuth בדפדפן.
איור 2. קישור חשבון בטלפון של משתמש באמצעות App Flip
קישור יעיל מבוסס-OAuth ('יעיל')
OAuth-based Sign in with Google Streamlined linking מוסיף כניסה באמצעות חשבון Google
על גבי קישור OAuth, ומאפשר למשתמשים להשלים את תהליך הקישור
מבלי לצאת מהממשק של Google, וכך מצמצם את החיכוך ואת נטישת התהליך.
קישור יעיל מבוסס OAuth
מציע את חוויית המשתמש הטובה ביותר עם כניסה חלקה, יצירת חשבון וקישור חשבון על ידי שילוב של כניסה באמצעות חשבון Google עם קישור OAuth. השירות שלכם צריך לתמוך בנקודות קצה של הרשאות ושל החלפת טוקנים שתואמות ל-OAuth 2.0.
בנוסף, נקודת הקצה להחלפת טוקנים צריכה לתמוך בהצהרות JSON Web Token
(JWT) וליישם את הכוונות check, create ו-get.
איך זה עובד:
Google מאמתת את חשבון המשתמש ומעבירה את המידע הזה אליכם:
- אם קיים חשבון למשתמש במסד הנתונים שלכם, המשתמש מקשר בהצלחה את חשבון Google שלו לחשבון בשירות שלכם.
- אם אין למשתמש חשבון במסד הנתונים שלכם, הוא יכול ליצור חשבון חדש של צד ג' עם המידע ש-Google מספקת : כתובת אימייל, שם ותמונת פרופיל, או לבחור להיכנס ולקשר חשבון עם כתובת אימייל אחרת (הוא יצטרך להיכנס לשירות שלכם באמצעות Web OAuth).
איור 3. קישור חשבון בטלפון של משתמש באמצעות קישור פשוט
באיזה תהליך כדאי להשתמש?
מומלץ להטמיע את כל התהליכים כדי להבטיח שהמשתמשים יקבלו את חוויית הקישור הטובה ביותר. תהליכי העבודה הפשוטים והמעבר בין האפליקציות מקלים על הקישור, כי המשתמשים יכולים להשלים את תהליך הקישור בכמה שלבים בלבד. קישור באמצעות OAuth באינטרנט הוא הדרך הכי פשוטה להתחיל, ואחריו אפשר להוסיף את תהליכי הקישור האחרים.
עבודה עם טוקנים
קישור של חשבון Google מבוסס על תקן OAuth 2.0 המקובל בתחום.
אתם מנפיקים ל-Google אסימוני גישה לחשבונות Google נפרדים אחרי שקיבלתם את הסכמת בעלי החשבונות לקשר את החשבונות ולשתף נתונים.
Token types
OAuth 2.0 uses strings called tokens to communicate between the user agent, the client application, and the OAuth 2.0 server.
Three types of OAuth 2.0 tokens can be used during account linking:
Authorization code. A short-lived token that can be exchanged for an access and a refresh token. For security purposes, Google calls your authorization endpoint to obtain a single use or very short-lived code.
Access token. A token that grants the bearer access to a resource. To limit exposure that could result from the loss of this token, it has a limited lifetime, usually expiring after an hour or so.
Refresh token. A long-lived token that can be exchanged for a new access token when an access token expires. When your service integrates with Google, this token is exclusively stored and used by Google. Google calls your token exchange endpoint to exchange refresh tokens for access tokens, which are in turn used to access user data.
Token handling
Race conditions in clustered environments and client-server exchanges can result in complex timing and error handling scenarios when working with tokens. For example:
- You receive a request for a new access token, and you issue a new access token. Concurrently, you receive a request for access to your service's resource using the previous, unexpired access token.
- Your refresh token reply is yet to be received (or is never received) by Google. Meanwhile, the previously valid refresh token is used in a request from Google.
Requests and replies can arrive in any order, or not at all due to asynchronous services running in a cluster, network behavior, or other means.
Immediate and fully consistent shared state both within, and between, your and Google's token handling systems cannot be guaranteed. Multiple valid, unexpired tokens can coexist within or across systems short period of time. To minimize negative user impact we recommend you do the following:
- Accept unexpired access tokens, even after a newer token is issued.
- Use alternatives to Refresh Token Rotation.
- Support multiple, concurrently valid access and refresh tokens. For security, you should limit the number of tokens and token lifetime.
Maintenance and outage handling
During maintenance or unplanned outages Google might be unable to call your authorization or token exchange endpoints to obtain access and refresh tokens.
Your endpoints should respond with a 503 error code and empty body. In this
case, Google retries failed token exchange requests for a limited time. Provided
that Google is later able to obtain refresh and access tokens, failed requests
are not visible to users.
Failing requests for an access token result in a visible error, if initiated by a user. Users will be required to retry linking failures if the implicit OAuth 2.0 flow is used.
Recommendations
There are many solutions to minimize maintenance impact. Some options to consider:
Maintain your existing service and route a limited number of requests to your newly updated service. Migrate all requests only after confirming expected functionality.
Reduce the number of token requests during the maintenance period:
Limit maintenance periods to less than the access token lifetime.
Temporarily increase the access token lifetime:
- Increase token lifetime to greater than maintenance period.
- Wait twice the duration of your access token lifetime, enabling users to exchange short lived tokens for longer duration tokens.
- Enter maintenance.
- Respond to token requests with a
503error code and empty body. - Exit maintenance.
- Decrease token lifetime back to normal.
הרשמה באמצעות Google
כדי לאפשר קישור לחשבון, נצטרך לקבל פרטים על הגדרת OAuth 2.0 ולשתף פרטי כניסה. פרטים נוספים זמינים במאמר בנושא הרשמה.