تتيح ميزة "ربط الحساب" لأصحاب حسابات Google إمكانية الربط بخدماتك بسرعة وسلاسة وأمان. يمكنك اختيار تنفيذ ميزة "ربط الحساب على Google" لمشاركة بيانات المستخدم من منصتك مع تطبيقات وخدمات Google.
يتيح لك بروتوكول OAuth 2.0 الآمن ربط حساب المستخدم على منصتك بحساب Google بأمان، ما يمنح تطبيقات وأجهزة Google إذن الوصول إلى خدماتك.
يمكن للمستخدمين ربط حساباتهم أو إلغاء ربطها، ويمكنهم إنشاء حساب جديد على منصتك من خلال ميزة ربط حساب Google.
حالات الاستخدام
في ما يلي بعض أسباب تنفيذ عملية ربط حساب Google:
مشاركة بيانات أحد المستخدمين من منصتك مع تطبيقات Google وخدماتها
تشغيل محتوى الفيديو والأفلام باستخدام Google TV
إدارة أجهزة المنزل الذكي من Google المتصلة والتحكّم فيها باستخدام تطبيق Google Home و"مساعد Google"، مثل "Ok Google، شغِّل الأضواء"
يمكنك إنشاء تجارب ووظائف مخصّصة للمستخدمين في "مساعد Google" باستخدام الإجراءات الحوارية، مثل "Ok Google، اطلب لي قهوتي المعتادة من ستاربكس".
إتاحة الفرصة للمستخدمين لكسب مكافآت من خلال مشاهدة أحداث بث مباشر مؤهلة على YouTube بعد ربط حساب Google بحساب على منصة شريكة تقدّم مكافآت
تعبئة الحسابات الجديدة مسبقًا أثناء عملية الاشتراك بالبيانات التي تمت مشاركتها بموافقة المستخدم من الملف الشخصي لحساب Google
الميزات المتاحة
تتوفّر الميزات التالية عند ربط حساب Google:
يمكنك مشاركة بياناتك بسرعة باستخدام عملية الربط الضمني بحساب OAuth.
توفير أمان محسّن باستخدام عملية رمز التفويض لربط الحسابات باستخدام بروتوكول OAuth
تسجيل دخول المستخدمين الحاليين أو اشتراك المستخدمين الجدد الذين تم التحقّق من حساباتهم على Google في منصّتك، والحصول على موافقتهم ومشاركة البيانات بأمان باستخدام ميزة ربط الحسابات بسلاسة
تقليل الاحتكاك باستخدام ميزة تبديل التطبيقات من تطبيق Google موثوق به، تتيح لك نقرة واحدة فتح تطبيق Android أو iOS الذي تمّ التحقّق منه بشكل آمن، كما تتيح لك نقرة واحدة الحصول على موافقة المستخدم وربط الحسابات.
تحسين خصوصية المستخدم من خلال تحديد نطاقات مخصّصة لمشاركة البيانات الضرورية فقط، وزيادة ثقة المستخدم من خلال تحديد كيفية استخدام بياناته بوضوح
يمكن إلغاء إذن الوصول إلى البيانات والخدمات المستضافة على منصتك من خلال إلغاء ربط الحسابات. يتيح لك تنفيذ نقطة نهاية اختيارية لإبطال الرمز المميز البقاء على اطّلاع دائم على الأحداث التي تبدأها Google، بينما تتيح لك ميزة الحماية بين الحسابات(RISC) إرسال إشعار إلى Google بشأن أي أحداث إلغاء ربط تحدث على منصتك.
مسارات ربط الحساب
تتوفّر 3 مسارات لربط حساب Google، وكلّها تستند إلى بروتوكول OAuth وتتطلّب منك إدارة أو التحكّم في نقاط نهاية تبادل الرموز المميزة والتفويض المتوافقة مع الإصدار 2.0 من بروتوكول OAuth.
أثناء عملية الربط مع حساب حالي، يمكنك إصدار رموز الدخول إلى حسابات Google الفردية بعد الحصول على موافقة أصحاب الحسابات على الربط بين حساباتهم ومشاركة البيانات.
ربط الحسابات باستخدام OAuth (بروتوكول OAuth على الويب)
هذا هو تدفق OAuth الأساسي الذي يرسل المستخدمين إلى موقعك الإلكتروني لإجراء عملية الربط. تتم إعادة توجيه المستخدم إلى موقعك الإلكتروني لتسجيل الدخول إلى حسابه. بعد تسجيل الدخول، يوافق المستخدم على مشاركة بياناته على خدمتك مع Google. في هذه المرحلة، يتم ربط حساب المستخدم على Google بخدمتك.
تتيح ميزة ربط الحسابات باستخدام OAuth استخدام رمز التفويض وتدفّقات OAuth الضمنية. يجب أن تستضيف خدمتك نقطة نهاية تفويض متوافقة مع OAuth 2.0 للمسار الضمني، ويجب أن تعرض نقطة نهاية تفويض ونقطة نهاية لتبادل الرموز المميزة عند استخدام مسار رمز التفويض.
الشكل 1 ربط الحسابات على هاتف المستخدم باستخدام Web OAuth
ربط الحسابات باستخدام ميزة "ربط التطبيقات بسرعة" المستندة إلى بروتوكول OAuth (App Flip)
مسار OAuth يوجّه المستخدمين إلى تطبيقك لربط الحساب.
توجّه ميزة ربط الحسابات باستخدام App Flip المستند إلى OAuth المستخدمين أثناء انتقالهم بين تطبيقاتك المتوافقة مع Android أو iOS على الأجهزة الجوّالة والمنصة من Google لمراجعة التغييرات المقترَحة على إذن الوصول إلى البيانات ومنح موافقتهم على ربط حساباتهم على منصتك بحسابهم على Google. لتفعيل ميزة App Flip، يجب أن تتيح خدمتك ربط الحسابات باستخدام بروتوكول OAuth أو ربط الحسابات باستخدام ميزة "تسجيل الدخول باستخدام حساب Google" المستندة إلى بروتوكول OAuth باستخدام عملية رمز التفويض.
تتوفّر ميزة "تبديل التطبيقات" على كلّ من Android وiOS.
طريقة العمل:
يتحقّق تطبيق Google مما إذا كان تطبيقك مثبَّتًا على جهاز المستخدم:
- إذا تم العثور على التطبيق، يتم "نقل" المستخدم إلى تطبيقك. يجمع تطبيقك موافقة المستخدم لربط الحساب بخدمة Google، ثم يتم "نقله مرة أخرى" إلى مساحة عرض Google.
- في حال عدم العثور على التطبيق أو حدوث خطأ أثناء عملية ربط التطبيقات بسرعة، ستتم إعادة توجيه المستخدم إلى مسار OAuth المبسّط أو مسار OAuth على الويب.
الشكل 2 ربط الحسابات على هاتف المستخدم باستخدام ميزة "التبديل السريع بين التطبيقات"
الربط السلس المستند إلى بروتوكول OAuth ("الربط السلس")
تضيف ميزة ربط الحسابات بسلاسة من خلال "تسجيل الدخول باستخدام حساب Google" المستند إلى OAuth ميزة "تسجيل الدخول باستخدام حساب Google" إلى عملية ربط الحسابات المستندة إلى OAuth، ما يتيح للمستخدمين إكمال عملية الربط مع حساب حالي بدون مغادرة مساحة عرض Google، وبالتالي تقليل المشاكل وعمليات الانسحاب.
توفّر عملية الربط المبسّطة المستندة إلى OAuth أفضل تجربة للمستخدمين من خلال تسجيل الدخول وإنشاء الحساب وربطه بسلاسة، وذلك من خلال الجمع بين ميزة "تسجيل الدخول باستخدام حساب Google" وعملية الربط المستندة إلى OAuth. يجب أن تتيح خدمتك نقاط نهاية متوافقة مع OAuth 2.0 لتبادل الرموز المميزة ومنح التفويض.
بالإضافة إلى ذلك، يجب أن تتيح نقطة نهاية تبادل الرموز المميزة تأكيدات رمز JSON المميّز للويب (JWT) وتنفيذ الأهداف check وcreate وget.
طريقة العمل:
تؤكّد Google حساب المستخدم وتمرّر هذه المعلومات إليك:
- إذا كان هناك حساب للمستخدم في قاعدة البيانات، يربط المستخدم حسابه على Google بحسابه على خدمتك بنجاح.
- إذا لم يكن هناك حساب للمستخدم في قاعدة البيانات، يمكن للمستخدم إما إنشاء حساب جديد على خدمة تابعة لجهة خارجية باستخدام المعلومات التي تقدّمها Google : البريد الإلكتروني والاسم وصورة الملف الشخصي، أو اختيار تسجيل الدخول والربط بعنوان بريد إلكتروني آخر (سيتطلب ذلك تسجيل الدخول إلى خدمتك باستخدام Web OAuth).
الشكل 3 ربط الحسابات على هاتف المستخدم باستخدام ميزة "الربط السلس"
أي مسار يجب استخدامه؟
ننصحك بتنفيذ جميع خطوات الربط لضمان حصول المستخدمين على أفضل تجربة ربط. تساهم مسارات الربط السلس وربط التطبيقات بسرعة في تقليل المشاكل المتعلقة بالربط، إذ يمكن للمستخدمين إكمال عملية الربط مع حساب حالي في بضع خطوات فقط. تتطلّب عملية الربط باستخدام Web OAuth أقل جهد، وهي نقطة بداية جيدة يمكنك بعدها إضافة عمليات الربط الأخرى.
العمل باستخدام الرموز المميزة
تستند عملية ربط حساب Google إلى معيار OAuth 2.0 المتّبع في المجال.
يمكنك إصدار رموز مميّزة للوصول إلى حسابات 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 ومشاركة بيانات الاعتماد لتفعيل ربط الحساب. يمكنك الاطّلاع على التسجيل لمعرفة التفاصيل.