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