تتناول هذه الصفحة بعض أفضل الممارسات العامة للدمج مع OAuth 2.0. ننصحك باتّباع أفضل الممارسات التالية بالإضافة إلى أي إرشادات محدّدة لنوع تطبيقك والمنصة التي تستخدمها لتطويره. يُرجى أيضًا الاطّلاع على النصائح المتعلقة بإعداد تطبيقك للإصدار العلني وسياسات OAuth 2.0 في Google.
التعامل مع بيانات اعتماد العميل بأمان
تحدِّد بيانات اعتماد عميل OAuth هوية تطبيقك، ويجب التعامل معها بعناية. تخزين بيانات الاعتماد هذه في مساحة تخزين آمنة فقط، على سبيل المثال باستخدام أداة إدارة الأسرار مثل Google Cloud Secret Manager لا تستخدِم ترميزًا ثابتًا لبيانات الاعتماد أو احتفِظ بها في مستودع رموز أو انشرها للجميع.
التعامل مع الرموز المميّزة للمستخدمين بأمان
تشمل الرموز المميزة للمستخدمين كلّ من الرموز المميزة للتحديث ورموز الوصول التي يستخدمها تطبيقك. تخزين الرموز المميّزة بأمان في وضع عدم النقل وعدم نقلها مطلقًا كنص عادي استخدِم نظام تخزين آمن مناسبًا لنظامك الأساسي، مثل Keystore على Android، أو "خدمات سلسلة المفاتيح" على نظامَي التشغيل iOS وmacOS، أو أداة "قفل بيانات الاعتماد" على نظام التشغيل Windows.
يمكنك إبطال الرموز المميّزة إذا لم تعُد هناك حاجة إليها وحذفها نهائيًا من أنظمتك.
بالإضافة إلى ذلك، ننصحك باتّباع أفضل الممارسات التالية في منصتك:
- بالنسبة إلى التطبيقات التي تعمل من جهة الخادم وتخزّن الرموز المميّزة للعديد من المستخدمين، يجب تشفيرها في وضع عدم الاتّصال بالإنترنت والتأكّد من أنّه لا يمكن للجميع الوصول إلى قاعدة بياناتك.
- بالنسبة إلى تطبيقات سطح المكتب الأصلية، ننصح بشدة باستخدام بروتوكول مفتاح الحماية لتبادل الرموز (PKCE) للحصول على رموز التفويض التي يمكن تبديلها برموز الوصول.
التعامل مع إبطال الرمز المميّز لإعادة التحميل وانتهاء صلاحيته
إذا طلب تطبيقك رمزًا مميزًا لإعادة التحديث للوصول بلا إنترنت، عليك أيضًا معالجة حالات إبطاله أو انتهاء صلاحيته. قد يتم إلغاء صلاحية الرموز المميّزة لأسباب مختلفة، مثل انتهاء صلاحيتها أو إلغاء إمكانية وصول المستخدم إلى تطبيقاتك أو من خلال عملية مبرمَجة. في هذه الحالة، فكِّر جيدًا في كيفية استجابة تطبيقك، بما في ذلك إرسال إشعار إلى المستخدم عند تسجيل الدخول في المرة التالية أو التخلص من البيانات. لتلقّي إشعارات بشأن إبطال الرمز المميّز، يمكنك الدمج مع خدمة الحماية العابرة للحساب.
استخدام التفويض المتزايد
استخدِم التفويض المتصاعدلطلب نطاقات OAuth المناسبة عندما يحتاج تطبيقك إلى الوظيفة.
يجب عدم طلب الوصول إلى البيانات عند مصادقة المستخدم لأول مرة، ما لم يكن ذلك ضروريًا للوظائف الأساسية لتطبيقك. بدلاً من ذلك، اطلب النطاقات المحدّدة فقط التي تكون مطلوبة لمهمّة معيّنة، مع اتّباع مبدأ اختيار النطاقات الأصغر حجمًا والأكثر تقييدًا ممكنًا.
يمكنك دائمًا طلب النطاقات في السياق لمساعدة المستخدمين في فهم سبب طلب التطبيق لإذن الوصول وطريقة استخدام البيانات.
على سبيل المثال، قد يتّبع تطبيقك النموذج التالي:
- مصادقة المستخدم من خلال تطبيقك
- ولا يُطلب أيّ نطاق إضافي. يوفّر التطبيق وظائف أساسية تتيح للمستخدم استكشاف واستخدام الميزات التي لا تتطلب أي بيانات أو وصول إضافية.
- يختار المستخدم ميزة تتطلّب الوصول إلى بيانات إضافية.
- يقدّم تطبيقك طلب تفويض لنطاق OAuth المحدّد هذا المطلوب لهذه الميزة. إذا كانت هذه الميزة تتطلّب نطاقات متعددة، اتّبِع أفضل الممارسات التالية.
- إذا رفض المستخدم الطلب، يوقف التطبيق الميزة ويقدّم للمستخدم سياقًا إضافيًا لطلب الوصول مرة أخرى.
معالجة الموافقة على نطاقات متعددة
عند طلب نطاقات متعددة في آنٍ واحد، قد لا يمنح المستخدمون جميع نطاقات OAuth التي طلبتها. يجب أن يتعامل تطبيقك مع رفض النطاقات من خلال إيقاف الوظائف ذات الصلة.
إذا كانت الوظيفة الأساسية لتطبيقك تتطلّب نطاقات متعددة، يجب توضيح ذلك للمستخدم قبل طلب موافقته.
لا يمكنك إرسال طلب إلى المستخدم مرة أخرى إلا بعد أن يشير بوضوح إلى نية استخدام الميزة المحدّدة التي تتطلّب النطاق. يجب أن يقدّم تطبيقك للمستخدم سياقًا مناسبًا وتبريرًا قبل طلب نطاقات OAuth.
ويجب تقليل عدد النطاقات التي يطلبها تطبيقك دفعةً واحدة. بدلاً من ذلك، استخدِم المصادقة المتزايدة لطلب النطاقات في سياق الميزات والوظائف.
استخدام متصفّحات آمنة
على الويب، يجب تقديم طلبات التفويض باستخدام بروتوكول OAuth 2.0 من متصفّحات الويب المزوّدة بميزات كاملة فقط. على الأنظمة الأساسية الأخرى، احرص على اختيار نوع عميل OAuth الصحيح ودمج OAuth بما يناسب نظامك الأساسي. لا تُعِد توجيه الطلب من خلال بيئات التصفّح المضمّنة، بما في ذلك WebView على الأنظمة الأساسية للأجهزة الجوّالة، مثل WebView على Android أو WKWebView على iOS. بدلاً من ذلك، استخدِم مكتبات OAuth الأصلية أو تسجيل الدخول باستخدام حساب Google لمنصتك.
الإنشاء اليدوي لعملاء OAuth وإعدادهم
لمنع إساءة الاستخدام، لا يمكن إنشاء برامج OAuth أو تعديلها آليًا. عليك استخدام "وحدة تحكّم مطوّري تطبيقات Google" للإقرار صراحةً ببنود الخدمة وضبط برنامج OAuth والاستعداد لإثبات ملكية حساب OAuth.
بالنسبة إلى سير العمل المبرمَج، ننصحك باستخدام حسابات الخدمة بدلاً من ذلك.