หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป iOS เมื่อเปิดใช้ App Check คุณจะช่วยให้มั่นใจได้ว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงปลายทาง OAuth 2.0 ของ Google ในนามของโปรเจ็กต์ได้ ดูภาพรวมของฟีเจอร์นี้
App Check ใช้ App Attest เพื่อช่วยยืนยันว่าคำขอ OAuth 2.0 มาจากแอปที่เชื่อถือได้ของคุณ App Check ไม่ได้ใช้ App Attest เพื่อ วิเคราะห์ความเสี่ยงในการฉ้อโกง
ก่อนเริ่มต้น
ตรวจสอบว่าคุณมี Xcode เวอร์ชัน 12.5 ขึ้นไป
ผสานรวมการลงชื่อเข้าใช้ด้วย Google เข้ากับแอป iOS โดยใช้ ไลบรารีการลงชื่อเข้าใช้ด้วย Google
1. ตั้งค่าโปรเจ็กต์
คุณเปิดใช้ App Check ได้ในคอนโซล Google API หรือในคอนโซล Firebase ไม่จำเป็นต้องเปิดใช้ทั้ง 2 ที่ เพียงที่เดียวก็เพียงพอ
คอนโซล Google API
คุณต้องมีคุณสมบัติตรงตามข้อกำหนดต่อไปนี้จึงจะเปิดใช้ App Check สำหรับไคลเอ็นต์ iOS ได้สำเร็จ- คุณต้องระบุรหัสทีมสำหรับไคลเอ็นต์ iOS
- คุณต้องไม่ใช้ไวลด์การ์ดในรหัสชุดเนื่องจากอาจใช้ได้กับแอปมากกว่า 1 แอป นี่ หมายความว่ารหัสชุดต้องไม่มีสัญลักษณ์ดอกจัน (*)
หลังจากเปิดใช้ App Check แล้ว คุณจะเริ่มเห็นเมตริกที่เกี่ยวข้องกับคำขอ OAuth จาก ไคลเอ็นต์ในหน้าจอสำหรับแก้ไขของไคลเอ็นต์ OAuth ระบบจะไม่บล็อกคำขอจากแหล่งที่มาที่ยังไม่ได้ยืนยัน จนกว่าคุณจะบังคับใช้ App Check ข้อมูลในหน้าการตรวจสอบเมตริก จะช่วยให้คุณทราบเวลาที่ควรเริ่มบังคับใช้
คุณอาจเห็นข้อผิดพลาดที่เกี่ยวข้องกับฟีเจอร์ App Check เมื่อเปิดใช้ App Check สำหรับแอป iOS เพื่อ แก้ไขข้อผิดพลาดเหล่านี้ ลองทำดังนี้
- ตรวจสอบว่ารหัสชุดและรหัสทีมที่คุณระบุถูกต้อง
- ตรวจสอบว่าคุณไม่ได้ใช้ไวลด์การ์ดสำหรับรหัสชุด
คอนโซล Firebase
คุณต้องมีโปรเจ็กต์ Firebase เพื่อใช้ App Check กับ การลงชื่อเข้าใช้ด้วย Google
หากแอปใช้ Firebase อยู่แล้ว ให้ใช้โปรเจ็กต์เดิม
หากแอปใช้การลงชื่อเข้าใช้ด้วย Google แต่ไม่ได้ใช้ Firebase แสดงว่าคุณมี โปรเจ็กต์ Google Cloud อยู่แล้ว เพิ่ม Firebase ลงในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google โดย เลือกโปรเจ็กต์เมื่อสร้างโปรเจ็กต์ใหม่ใน คอนโซล Firebase
ดูเพิ่มเติมที่: ความสัมพันธ์ระหว่างโปรเจ็กต์ Firebase กับ Google Cloud
หากยังไม่ได้เพิ่มแอป iOS ลงในโปรเจ็กต์ Firebase ให้ทำโดยใช้หน้า การตั้งค่าโปรเจ็กต์ ของคอนโซล Firebase
ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการ App Attest ในส่วน App Check ของคอนโซล Firebase
ตรวจสอบว่าไคลเอ็นต์ OAuth ทั้งหมดของโปรเจ็กต์ลิงก์กับแอปแล้ว
หากมีไคลเอ็นต์ที่ยกเลิกการลิงก์ คุณจะเห็นข้อความในส่วน Google Identity สำหรับ iOS ของหน้า App Check ที่ระบุว่า "คุณมี n ไคลเอ็นต์ OAuth ที่ยกเลิกการลิงก์ซึ่งต้องมีการตั้งค่าเพิ่มเติม"
นอกจากนี้ หากคุณลบไคลเอ็นต์ OAuth บางรายการหลังจากตั้งค่าแล้ว ใน App Check คุณจะเห็นข้อความที่ระบุว่า "คุณมีการลบล้าง n รายการที่ไม่มีไคลเอ็นต์ OAuth ที่ตรงกัน" คุณสามารถล้างข้อมูลได้อย่างปลอดภัยโดยการลบล้างรายการเหล่านั้น
คุณสามารถลิงก์ไคลเอ็นต์ที่ยกเลิกการลิงก์กับแอปที่มีอยู่หรือแอปใหม่ได้ในหน้า ไคลเอ็นต์ OAuth ของคอนโซล Firebase
2. เพิ่มไลบรารีการลงชื่อเข้าใช้ด้วย Google ลงในแอป
ในโปรเจ็กต์ Xcode ให้ตั้งค่าทรัพยากร Dependency ของ 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ที่สร้างขึ้นใน Xcode ให้เพิ่มความสามารถ App Attest ลงในแอป
ในไฟล์
.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) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการการแก้ไขข้อบกพร่องของ App Check แทน App Attest ได้