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

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

השירות 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 Console. אין צורך להפעיל אותו בשני המקומות, מספיק להפעיל אותו רק באחד מהם.

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 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.

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

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

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

הפעלת האכיפה של App Check

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

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

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

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