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

בדף הזה מוסבר איך להפעיל את App Check באפליקציית iOS. כשמפעילים את App Check, מוודאים שרק האפליקציה שלכם יכולה לגשת לנקודות הקצה של OAuth 2.0 של Google בשם הפרויקט שלכם. סקירה כללית של התכונה

‫App Check משתמש ב-App Attest כדי לאמת שבקשות OAuth 2.0 מגיעות מהאפליקציה המקורית שלכם.‫App Check לא משתמש ב-App Attest כדי לנתח את הסיכון להונאה.

לפני שמתחילים

  1. מוודאים שמותקנת במחשב גרסה 12.5 ואילך של Xcode.

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

1. הגדרת הפרויקט

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

Google API Console

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

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

יכול להיות שיוצגו לכם שגיאות שקשורות לתכונה 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 בדף App Check: "יש לך n לקוחות OAuth לא מקושרים שדורשים הגדרה נוספת".

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

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

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

  1. בפרויקט Xcode, מגדירים את התלות של הכניסה לחשבון Google לגרסה 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 רוצים להפעיל אותה בסביבה ש-App Check בדרך כלל לא מסווג כסביבה תקפה, כמו סימולטור במהלך פיתוח או מסביבת שילוב רציף (CI), אפשר ליצור גרסת debug של האפליקציה שמשתמשת בספק debug של App Check במקום ב-App Attest.

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