بدء استخدام App Check لتسجيل الدخول بحساب Google على أجهزة iOS

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

تستخدم خدمة App Check واجهة برمجة التطبيقات App Attest للمساعدة في التحقّق من أنّ طلبات OAuth 2.0 واردة من تطبيقك الأصلي. ولا تستخدم خدمة App Check واجهة برمجة التطبيقات App Attest لتحليل مخاطر الاحتيال.

قبل البدء

  1. تأكَّد من توفّر Xcode 12.5 أو إصدار أحدث.

  2. يمكنك دمج ميزة "تسجيل الدخول باستخدام حساب Google" في تطبيق iOS باستخدام مكتبة "تسجيل الدخول باستخدام حساب Google".

1. إعداد مشروعك

يمكن تفعيل App Check في Google API Console أو في وحدة تحكّم Firebase. ليس من الضروري تفعيلها في كلا المكانين، بل يكفي تفعيلها في مكان واحد.

Google API Console

يجب استيفاء المتطلبات التالية لتفعيل App Check بنجاح على عميل iOS:
  • يجب تحديد معرّف فريق لعميل iOS.
  • يجب عدم استخدام حرف بدل في معرّف الحزمة لأنّه يمكن أن يؤدي إلى أكثر من تطبيق واحد. وهذا يعني أنّه يجب ألا يتضمّن معرّف الحزمة رمز النجمة (*).
لتفعيل ميزة App Check، فعِّل زر التبديل حماية عميل OAuth من إساءة الاستخدام باستخدام ميزة "فحص التطبيقات من Firebase" في عرض التعديل لعميل iOS.

بعد تفعيل App Check، ستبدأ في الاطّلاع على مقاييس متعلّقة بطلبات OAuth من عميلك في عرض التعديل الخاص بعميل OAuth. لن يتم حظر الطلبات الواردة من مصادر لم يتم التحقّق منها إلى أن تفرض استخدام App Check. يمكن أن تساعدك المعلومات الواردة في صفحة مراقبة المقاييس في تحديد الوقت المناسب لبدء تطبيق السياسة.

قد تظهر لك أخطاء متعلّقة بميزة "فحص التطبيق" عند تفعيلها لتطبيق iOS. لحلّ هذه الأخطاء، جرِّب ما يلي:

  • تأكَّد من أنّ معرّف الحزمة ومعرّف الفريق اللذين حدّدتهما صالحان.
  • تأكَّد من عدم استخدام حرف بدل لمعرّف الحزمة.

وحدة تحكُّم Firebase

  1. يجب أن يكون لديك مشروع على Firebase لاستخدام App Check مع خدمة "تسجيل الدخول باستخدام حساب Google".

    • إذا كان تطبيقك يستخدم Firebase، استخدِم المشروع نفسه.

    • إذا كان تطبيقك يستخدم خدمة "تسجيل الدخول باستخدام Google"، ولكن ليس Firebase، سيكون لديك مشروع على Google Cloud. أضِف Firebase إلى مشروعك على Google Cloud من خلال اختياره عند إنشاء مشروع جديد في وحدة تحكّم Firebase.

      راجِع أيضًا: العلاقة بين مشاريع Firebase وGoogle Cloud

  2. إذا لم يسبق لك إجراء ذلك، أضِف تطبيقات iOS إلى مشروعك على Firebase باستخدام صفحة إعدادات المشروع في وحدة تحكّم Firebase.

  3. سجِّل تطبيقاتك لاستخدام App Check مع مقدّم خدمة App Attest في قسم App Check ضِمن وحدة تحكّم Firebase.

  4. تأكَّد من ربط جميع عملاء OAuth في مشروعك بتطبيق.

    إذا كانت لديك برامج عميلة غير مرتبطة، ستظهر لك رسالة في قسم Google Identity لنظام التشغيل iOS ضمن صفحة App Check تقول: "لديك n برنامج عميل غير مرتبط بنظام OAuth ويتطلّب إعدادًا إضافيًا".

    بالإضافة إلى ذلك، إذا حذفت بعض عملاء OAuth بعد إعدادهم في App Check، ستظهر لك رسالة تفيد بأنّه "لديك n عمليات إلغاء بدون عميل OAuth مطابق". يمكنك تنظيفها بأمان من خلال حذف عمليات الإلغاء هذه.

    يمكنك ربط العملاء غير المرتبطين بتطبيق حالي أو جديد في صفحة عملاء OAuth في وحدة تحكّم Firebase.

2. إضافة مكتبة "تسجيل الدخول باستخدام Google" إلى تطبيقك

  1. في مشروع Xcode، اضبط تبعية "تسجيل الدخول باستخدام Google" على الإصدار 8.0.0 أو إصدار أحدث :

    مدير شركاء استراتيجي

    اضبط قاعدة التبعية الخاصة بـ googlesignin-ios على الإصدار 8.0.0 أو إصدار أحدث.

    CocoaPods

    تحديث "Podfile":

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/firebase/SpecsDev.git'
    
    target 'YourAppName' do
      use_frameworks!
    
      pod 'GoogleSignIn','~> 8.0'
          :git => 'https://github.com/google/GoogleSignIn-iOS.git'
      pod 'GoogleSignInSwiftSupport'  # If you use SwiftUI.
    end
    

    بعد ذلك، شغِّل pod install وافتح ملف .xcworkspace الذي تم إنشاؤه.

  2. في Xcode، أضِف إمكانية App Attest إلى تطبيقك.

  3. في ملف .entitlements الخاص بمشروعك، اضبط بيئة App Attest على production.

3- إعداد App Check

في طريقة didFinishLaunchingWithOptions لمندوب التطبيق، استدعِ GIDSignIn.sharedInstance.configure(completion:). يجب استدعاء هذا الإجراء في أقرب وقت ممكن خلال دورة حياة تطبيقك لتقليل وقت الاستجابة الذي يلاحظه المستخدم.

import SwiftUI
import GoogleSignIn

class AppDelegate: NSObject, UIApplicationDelegate {
  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
  ) -> Bool {
    #if targetEnvironment(simulator)
    // Configure for debugging.
    // See: https://developers.google.com/identity/sign-in/ios/appcheck/debug-provider
    #else
    GIDSignIn.sharedInstance.configure { error in
      if let error {
        print("Error configuring `GIDSignIn` for Firebase App Check: \(error)")
      }
    }
    #endif

    return true
  }
}

@main
struct YourAppNameApp: App {
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  // ...
}

الخطوات التالية

بعد تثبيت مكتبة App Check في تطبيقك، ابدأ في توزيع التطبيق المحدَّث على المستخدمين.

سيبدأ تطبيق العميل المعدَّل في إرسال رموز App Check المميزة مع كل طلب يرسله إلى نقاط نهاية المصادقة في Google، ولكن لن تتطلّب نقاط النهاية أن تكون الرموز المميزة صالحة إلى أن تفعِّل فرض استخدامها في قسم App Check في وحدة تحكّم Firebase.

مراقبة المقاييس

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

للمساعدة في اتّخاذ هذا القرار، يمكنك الاطّلاع على مقاييس App Check لخدمة "تسجيل الدخول باستخدام حساب Google".

تفعيل فرض استخدام App Check

بعد فهم كيفية تأثير خدمة App Check في المستخدمين والاستعداد للمتابعة، يمكنك تفعيل فرض استخدام خدمة App Check.

استخدام App Check في بيئات تصحيح الأخطاء

إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها خدمة App Check عادةً على أنّها صالحة، مثل محاكي أثناء التطوير أو من بيئة دمج مستمر (CI)، يمكنك إنشاء إصدار تصحيح أخطاء من تطبيقك يستخدم موفّر تصحيح الأخطاء في App Check بدلاً من App Attest.

اطّلِع على استخدام App Check مع موفّر تصحيح الأخطاء.