เริ่มต้นใช้งาน App Check สำหรับ Google Sign-In ใน 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 Sign-In ในแอป iOS โดยใช้ ไลบรารี Google Sign-In

1. ตั้งค่าโปรเจ็กต์

  1. คุณต้องมีโปรเจ็กต์ Firebase จึงจะใช้ App Check กับ Google Sign-In ได้

    • หากแอปใช้ Firebase อยู่แล้ว ให้ใช้โปรเจ็กต์เดียวกัน

    • หากแอปใช้ Google Sign-In แต่ไม่ได้ใช้ 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 Sign-In รุ่นเบต้าลงในแอป

  1. ในโปรเจ็กต์ Xcode ให้ตั้งค่าทรัพยากร Dependency ของ Google Sign-In เป็นเวอร์ชัน 7.1.0-fac-beta-1.1.0 ดังนี้

    SPM

    ตั้งค่ากฎทรัพยากร Dependency ของ googlesignin-ios ให้เป็นเวอร์ชัน 7.1.0-fac-beta-1.1.0

    CocoaPods

    อัปเดต Podfile ของคุณ:

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/firebase/SpecsDev.git'
    
    target 'YourAppName' do
      use_frameworks!
    
      pod 'GoogleSignIn',
          :git => 'https://github.com/google/GoogleSignIn-iOS.git',
          :tag => '7.1.0-fac-beta-1.1.0'
      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 Sign-In เพื่อช่วยตัดสินใจในเรื่องนี้ได้

เปิดใช้การบังคับใช้ App Check

เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมที่จะดำเนินการต่อแล้ว ก็เปิดใช้การบังคับใช้ App Check ได้

ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง

หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่ App Check จะไม่จัดว่าถูกต้องตามปกติ เช่น โปรแกรมจำลองระหว่างการพัฒนาหรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณจะสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการแก้ไขข้อบกพร่อง App Check แทน App Attest ได้

โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่อง