تتيح ميزة "ربط الحساب" لمالكي حسابات Google إمكانية الربط بخدماتك بسرعة وسلاسة وأمان. يمكنك اختيار تنفيذ ميزة "ربط حساب Google" لمشاركة بيانات المستخدم من نظامك الأساسي مع تطبيقات Google وخدماتها.
يتيح لك بروتوكول OAuth 2.0 الآمن ربط حساب المستخدم على Google بحسابه على منصتك بأمان، ما يمنح تطبيقات Google وأجهزة Google إذن الوصول إلى خدماتك.
يمكن للمستخدمين ربط حساباتهم أو إلغاء ربطها، وإنشاء حساب جديد على منصّتك إذا أردت ذلك من خلال ربط حساب Google.
حالات الاستخدام
في ما يلي بعض الأسباب التي تدفعك إلى تنفيذ ميزة "ربط حساب Google":
مشاركة بيانات المستخدم من منصتك مع تطبيقات Google وخدماتها
تشغيل محتوى الفيديوهات والأفلام باستخدام Google TV
يمكنك إدارة الأجهزة المتصلة بنظام Google Smart Home والتحكّم فيها باستخدام تطبيق Google Home و"مساعد Google"، مثلاً "Ok Google، أريد تشغيل المصابيح".
يمكنك إنشاء تجارب ووظائف مخصّصة للمستخدمين من خلال "مساعد Google" من خلال الإجراءات الحوارية "Ok Google، أريد طلب خدماتي المعتادة من Starbucks".
إتاحة إمكانية حصول المستخدمين على مكافآت من خلال مشاهدة أحداث بث مباشر مؤهلة على YouTube بعد ربط حساباتهم على Google بأحد حسابات الشركاء المشاركين في تقديم الجوائز
تعبئة الحسابات الجديدة مسبقًا أثناء الاشتراك باستخدام data التي تمت مشاركتها بالتراضي من ملف شخصي على حساب Google
الميزات المتاحة
تتوفّر الميزات التالية عند تفعيل ميزة "ربط حساب Google":
يمكنك مشاركة بياناتك بسرعة وسهولة باستخدام المسار الضمني لربط OAuth.
توفير مستوى أمان أعلى من خلال عملية رمز التفويض لربط OAuth
سجِّل دخول المستخدمين الحاليين أو سجِّل مستخدمين جدد تم التحقّق منهم من خلال Google في منصّتك، واحصل على موافقتهم وشارِك البيانات بأمان باستخدام الربط الميسَّر.
تقليل أي صعوبات تعيق سلاسة استخدام التطبيق من خلال ميزة قلب الشاشة في التطبيق من تطبيق Google موثوق، يمكن بنقرة واحدة فتح تطبيق Android أو iOS الذي تم إثبات ملكيته بأمان، كما يمكن بنقرة واحدة منح موافقة المستخدم وربط الحسابات.
يمكنك تحسين خصوصية المستخدم من خلال تحديد نطاقات مخصّصة لمشاركة البيانات الضرورية فقط، وزيادة ثقة المستخدم من خلال تحديد كيفية استخدام بياناته بوضوح.
يمكن إلغاء إمكانية الوصول إلى البيانات والخدمات المستضافة على منصتك من خلال إلغاء ربط الحسابات. يتيح لك تنفيذ نقطة نهاية لإبطال الرمز المميّز اختيارية مواصلة المزامنة مع الأحداث التي تبدأها Google، في حين يتيح لك (RISC) الحماية بين الحسابات إرسال إشعار إلى Google بشأن أي أحداث إلغاء ربط تحدث على منصتك.
عمليات ربط الحسابات
هناك 3 عمليات لربط حساب Google، وجميعها تستند إلى OAuth وتتطلّب منك إدارة نقاط نهاية التفويض وتبادل الرموز المميّزة المتوافقة مع OAuth 2.0 أو التحكّم فيها.
أثناء عملية الربط، تُصدر علامات أمان وصول إلى Google لحسابات Google الفردية بعد الحصول على موافقة مالكي الحسابات على ربط حساباتهم ومشاركة البيانات.
ربط OAuth (Web OAuth)
هذه هي عملية OAuth الأساسية التي ترسل المستخدمين إلى موقعك الإلكتروني لإجراء عملية الربط. تتم إعادة توجيه المستخدم إلى موقعك الإلكتروني لتسجيل الدخول إلى حسابه. بعد تسجيل الدخول، يوافق المستخدم على مشاركة بياناته على خدمتك مع Google. في هذه المرحلة، يتم ربط حساب المستخدم على Google بخدمتك.
تتوافق ميزة ربط OAuth مع رمز التفويض وعمليات تدفق OAuth الضمنية. يجب أن تستضيف خدمتك نقطة نهاية مصادقة متوافقة مع OAuth 2.0 للمسار الضمني، ويجب أن تعرض كلّ من نقطة نهاية التفويض ونقطة نهاية تبادل الرموز المميّزة عند استخدام مسار رمز التفويض.
الشكل 1. ربط الحساب على هاتف المستخدم باستخدام Web OAuth
ربط التطبيقات بسرعة (App Flip) المستنِد إلى OAuth
مسار OAuth الذي ينقل المستخدمين إلى تطبيقك لإجراء عملية الربط
يوجّه ربط التطبيقات باستخدام بروتوكول OAuth المستخدمين أثناء تنقّلهم بين تطبيقاتك المُعتمَدة للأجهزة الجوّالة التي تعمل بنظام التشغيل Android أو iOS ومنصّة Google لمراجعة التغييرات المقترَحة بشأن الوصول إلى البيانات ومنح موافقتهم على ربط حسابهم على منصّتك بحسابهم على Google. لتفعيل ميزة "قلب التطبيق"، يجب أن تتيح خدمتك ربط 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 لحسابات 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
503
error code and empty body. - Exit maintenance.
- Decrease token lifetime back to normal.
التسجيل باستخدام حساب Google
سنحتاج إلى تفاصيل إعداد بروتوكول OAuth 2.0 ومشاركة بيانات الاعتماد ل تفعيل ربط الحساب. اطّلِع على التسجيل لمعرفة التفاصيل.