أفضل الممارسات

تتناول هذه الصفحة بعض أفضل الممارسات العامة للدمج مع OAuth 2.0. ننصحك بأخذ أفضل الممارسات هذه في الاعتبار بالإضافة إلى أي إرشادات خاصة بنوع منصة التطبيقات والتطوير التي تستخدمها. يمكنك أيضًا الاطّلاع على نصائح تجهيز تطبيقك للإنتاج وسياسات OAuth 2.0 من Google.

التعامل مع بيانات اعتماد العميل بأمان

تحدِّد بيانات اعتماد عميل OAuth هوية تطبيقك، لذا يجب التعامل معها بعناية. ويجب تخزين بيانات الاعتماد هذه فقط في مساحة تخزين آمنة، مثلاً باستخدام مدير سري، مثل Google Cloud Secret Manager. ويجب عدم ترميز بيانات الاعتماد أو إرسالها إلى مستودع رموز أو نشرها للجميع.

التعامل مع الرموز المميزة للمستخدم بأمان

تشمل الرموز المميّزة للمستخدم كلاً من رموز التحديث ورموز الدخول التي يستخدمها تطبيقك. خزِّن الرموز المميّزة بشكل آمن عندما تكون غير مفعّلة ولا تنقلها أبدًا في صيغة نص عادي. استخدام نظام تخزين آمن مناسب للنظام الأساسي الذي تستخدمه، مثل ملف تخزين المفاتيح على Android أو "خدمات سلسلة المفاتيح" على نظامَي التشغيل iOS وmacOS أو "قفل بيانات الاعتماد" على نظام التشغيل Windows

أبطل الرموز المميّزة حال عدم الحاجة إليها واحذفها نهائيًا من أنظمتك.

بالإضافة إلى ذلك، ننصحك أيضًا بمراعاة أفضل الممارسات التالية بشأن منصتك:

  • بالنسبة إلى التطبيقات من جهة الخادم التي تخزِّن الرموز المميّزة للعديد من المستخدمين، يمكنك تشفير هذه التطبيقات أثناء عدم النشاط وضمان عدم إمكانية وصول المستخدمين إلى تخزين البيانات بشكل علني على الإنترنت.
  • بالنسبة إلى التطبيقات المتوافقة مع أجهزة الكمبيوتر المكتبي الأصلية، ننصح بشدة باستخدام بروتوكول إثبات الهوية لتبادل الرموز (PKCE) للحصول على رموز التفويض التي يمكن استبدالها برموز الدخول.

التعامل مع إبطال وانتهاء صلاحية الرمز المميّز لإعادة التحميل

إذا طلب تطبيقك رمزًا مميزًا للتحديث من أجل الوصول بلا اتصال بالإنترنت، يجب أيضًا معالجة إبطال صلاحية هذا الإذن أو انتهاء صلاحيته. قد يتم إلغاء صلاحية الرموز المميّزة لأسباب مختلفة، مثل انتهاء صلاحية الرمز أو إبطال إمكانية وصول المستخدم إلى تطبيقاتك أو تم إلغاء إمكانية وصولها إلى إحدى العمليات الآلية. في هذه الحالة، يجب التفكير بعناية في الطريقة التي يجب أن يستجيب بها تطبيقك، بما في ذلك توجيه الطلب إلى المستخدم عند تسجيل الدخول في المرة التالية أو تنظيف بياناته. لتلقّي إشعارات بإبطال الرمز المميز، يُرجى الدمج مع خدمة الحماية العابرة للحساب.

استخدام التفويض التزايدي

يمكنك استخدام التفويض الإضافي لطلب نطاقات OAuth المناسبة عندما يحتاج تطبيقك إلى الوظيفة.

يجب عدم طلب الوصول إلى البيانات عندما يُجري المستخدم عملية المصادقة لأول مرة، ما لم يكن ذلك ضروريًا للوظيفة الأساسية لتطبيقك. بدلاً من ذلك، اطلب فقط النطاقات المحدّدة اللازمة لمهمة ما، وذلك باتّباع مبدأ اختيار النطاقات الأصغر والأكثر تقييدًا قدر الإمكان.

اطلب دائمًا النطاقات في سياق لمساعدة المستخدمين في فهم سبب طلب تطبيقك للوصول وكيفية استخدام البيانات.

على سبيل المثال، قد يتبع طلبك النموذج التالي:

  1. يُجري المستخدم عملية مصادقة باستخدام تطبيقك.
    1. لا يُطلب أي نطاقات إضافية. يوفّر التطبيق وظائف أساسية تتيح للمستخدم استكشاف الميزات التي لا تتطلب أي بيانات إضافية أو الوصول واستخدامها.
  2. يختار المستخدم ميزة تتطلّب الوصول إلى بيانات إضافية.
    1. يطلب تطبيقك طلب تفويض لنطاق OAuth المحدَّد المطلوب لهذه الميزة. إذا كانت هذه الميزة تتطلب نطاقات متعددة، اتّبِع أفضل الممارسات أدناه.
    2. وإذا رفض المستخدم الطلب، يوقف التطبيق الميزة ويمنح المستخدم سياقًا إضافيًا لطلب الوصول مرة أخرى.

التعامل مع الموافقة على النطاقات المتعددة

عند طلب نطاقات متعددة في الوقت نفسه، قد لا يمنح المستخدمون جميع نطاقات OAuth التي طلبتها. يجب أن يتعامل تطبيقك مع رفض النطاقات من خلال إيقاف الوظائف ذات الصلة.

إذا كانت الوظيفة الأساسية لتطبيقك تتطلّب نطاقات متعدّدة، يُرجى شرح ذلك للمستخدم قبل طلب الموافقة.

لا يمكنك طلب ذلك من المستخدم مرة أخرى إلا بعد أن يشير بوضوح إلى نيته في استخدام الميزة المحدّدة التي تتطلّب استخدام النطاق. يجب أن يقدّم تطبيقك للمستخدم سياقًا ومبررًا مناسبًا قبل طلب نطاقات OAuth.

وينبغي لك تقليل عدد النطاقات التي يطلبها تطبيقك في آن واحد. بدلاً من ذلك، يمكنك استخدام التفويض التزايدي لطلب النطاقات في سياق الميزات والوظائف.

استخدام متصفّحات آمنة

على الويب، يجب تقديم طلبات تفويض OAuth 2.0 من متصفّحات ويب كاملة الميزات فقط. على الأنظمة الأساسية الأخرى، تأكَّد من اختيار نوع عميل OAuth الصحيح ودمج OAuth بالشكل المناسب للنظام الأساسي الذي تستخدمه. لا تُعِد توجيه الطلب من خلال بيئات التصفُّح المضمَّنة، بما في ذلك مكتبات WebView على الأنظمة الأساسية للأجهزة الجوّالة، مثل WebView على Android أو WKWebView على أجهزة iOS. بدلاً من ذلك، يمكنك استخدام مكتبات OAuth المحلية أو تسجيل الدخول بحساب Google على منصتك.

إنشاء برامج OAuth وإعدادها يدويًا

لمنع إساءة الاستخدام، لا يمكن إنشاء برامج OAuth أو تعديلها آليًا. يجب استخدام Google Developers Console للإقرار صراحةً ببنود الخدمة وضبط برنامج OAuth والاستعداد للتحقق من بروتوكول OAuth.

بالنسبة إلى عمليات سير العمل الآلية، ننصحك باستخدام حسابات الخدمة بدلاً من ذلك.