תחילת העבודה עם אפליקציית 'בדיקת אפליקציה' לכניסה באמצעות חשבון Google ב-iOS

בדף הזה מוסבר איך מפעילים את App Check באפליקציה ל-iOS. הפעלת App Check עוזרת לוודא שרק לאפליקציה שלכם תהיה גישה לנקודות הקצה של 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 ב- או במסוף Firebase. אין צורך להפעיל אותו בשני המקומות, מספיק להפעיל אותו במקום אחד.

כדי להפעיל את App Check עבור לקוח iOS, צריך לעמוד בדרישות הבאות:
  • חובה לציין מזהה צוות ללקוח iOS.
  • אסור להשתמש בתווים כלליים לחיפוש במזהה החבילה, כי הם יכולים להוביל ליותר מאפליקציה אחת. כלומר, מזהה החבילה לא יכול לכלול את הסמל של כוכב (*).
כדי להפעיל את App Check, מפעילים את המתג Protect your OAuth client from abuse with Firebase App Check בתצוגת העריכה של לקוח ה-iOS.

אחרי הפעלת App Check, תתחילו לראות מדדים שקשורים לבקשות OAuth מהלקוח שלכם בתצוגת העריכה של לקוח ה-OAuth. בקשות ממקורות לא מאומתים לא ייחסמו עד שתפעילו את אכיפת בדיקת האפליקציות. המידע בדף למעקב אחר המדדים יכול לעזור לכם לקבוע מתי להתחיל לאכוף את המדיניות.

יכול להיות שתראו שגיאות שקשורות לתכונה App Check כשתפעילו את App Check באפליקציה ל-iOS. כדי לתקן את השגיאות האלה, תוכלו לנסות את הפעולות הבאות:

  • מוודאים שמזהה החבילה ומזהה הצוות שציינתם תקפים.
  • מוודאים שלא משתמשים בתו כללי לחיפוש למזהה החבילה.

מסוף Firebase

  1. כדי להשתמש ב-App Check עם כניסה באמצעות חשבון Google, צריך פרויקט ב-Firebase.

    • אם כבר משתמשים ב-Firebase באפליקציה, משתמשים באותו פרויקט.

    • אם באפליקציה שלכם נעשה שימוש בכניסה באמצעות חשבון Google, אבל לא ב-Firebase, כבר יש לכם פרויקט ב-Google Cloud. מוסיפים את Firebase לפרויקט ב-Google Cloud על ידי בחירת האפשרות הזו כשיוצרים פרויקט חדש במסוף Firebase.

      למידע נוסף: הקשר בין פרויקטים ב-Firebase לבין Google Cloud

  2. אם עדיין לא עשיתם זאת, מוסיפים את האפליקציות ל-iOS לפרויקט ב-Firebase דרך הדף Project settings (הגדרות הפרויקט) במסוף Firebase.

  3. כדי להשתמש ב-App Check, צריך לרשום את האפליקציות שלכם אצל ספק App Attest בקטע App Check במסוף Firebase.

  4. מוודאים שכל לקוחות ה-OAuth של הפרויקט מקושרים לאפליקציה.

    אם יש לכם לקוחות שלא קישרתם, תופיע הודעה בקטע Google Identity for iOS בדף בדיקת האפליקציה עם הכיתוב "יש לכם n לקוחות OAuth שלא קישרתם, שדורשים הגדרה נוספת".

    בנוסף, אם מחקתם לקוחות OAuth מסוימים אחרי שהגדרתם אותם ב-App Check, תוצג ההודעה "יש לכם n עקופים ללא לקוח OAuth תואם". אפשר למחוק את השינויים האלה בבטחה.

    אפשר לקשר לקוחות לא מקושרים לאפליקציה קיימת או חדשה בדף OAuth clients במסוף Firebase.

2. הוספת הספרייה של כניסה באמצעות חשבון Google לאפליקציה

  1. בפרויקט Xcode, מגדירים את התלות ב-Google Sign-in לגרסה 8.0.0 ואילך :

    SPM (מנהל שותפים אסטרטגי) [רק במופע הראשון צריך להוסיף את העברית בסוגריים]

    מגדירים את כלל התלות של 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.

מעקב אחרי מדדים

עם זאת, לפני שמפעילים את האכיפה, חשוב לוודא שהפעולה הזו לא תפריע למשתמשים החוקיים הקיימים. לעומת זאת, אם אתם מזהים שימוש חשוד במשאבי האפליקציה, מומלץ להפעיל את האכיפה מוקדם יותר.

כדי לעזור לכם לקבל את ההחלטה הזו, תוכלו לעיין במדדי בדיקת האפליקציות לכניסה באמצעות חשבון Google.

הפעלת אכיפה של בדיקת האפליקציות

אחרי שתבין איך App Check ישפיע על המשתמשים שלך ותהיה מוכן להמשיך, אפשר להפעיל את האכיפה של App Check.

שימוש ב-App Check בסביבות ניפוי באגים

אם אחרי הרשמת האפליקציה ל-App Check אתם רוצים להריץ אותה בסביבה שבדרך כלל לא מסווגת כתקינה על ידי App Check, כמו סימולטור במהלך הפיתוח או מסביבת אינטגרציה רציפה (CI), תוכלו ליצור build לניפוי באגים של האפליקציה שמשתמש בספק ניפוי הבאגים של App Check במקום ב-App Attest.

שימוש ב-App Check עם ספק ניפוי הבאגים