หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป Apple โดยใช้ ผู้ให้บริการ App Attest ในตัว เมื่อเปิดใช้ App Check คุณจะมั่นใจได้ว่า ที่มีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากร Firebase ของโปรเจ็กต์ได้ โปรดดู ภาพรวมของฟีเจอร์นี้
App Check ใช้ App Attest เพื่อยืนยันว่าคำขอไปยังบริการ Firebase มาจากแอปที่ถูกต้องของคุณ ปัจจุบัน App Check ไม่ได้ใช้ App Attest เพื่อ วิเคราะห์ความเสี่ยงในการฉ้อโกง
หากต้องการใช้ App Check กับผู้ให้บริการที่กำหนดเองของคุณ โปรดดู ใช้ผู้ให้บริการ App Check ที่กำหนดเอง
1. สร้างโปรเจ็กต์ Firebase
คุณจะต้องมี Xcode 12.5 ขึ้นไปจึงจะใช้ App Attest ได้
เพิ่ม Firebase ลงในโปรเจ็กต์ Apple หากยังไม่ได้เพิ่ม ทำได้แล้ว
ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการ App Attest ใน ส่วน App Check ของ คอนโซล Firebase
ปกติแล้วคุณจะต้องลงทะเบียนแอปทั้งหมดของโครงการ เพราะเมื่อคุณ เปิดใช้การบังคับใช้สำหรับผลิตภัณฑ์ Firebase เฉพาะแอปที่ลงทะเบียนเท่านั้นที่ทำได้ เพื่อเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์
ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time to Live ที่กำหนดเอง (TTL) สำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการ คุณจะตั้งค่า TTL ได้ เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ ทราบถึงข้อดีข้อเสียต่อไปนี้
- การรักษาความปลอดภัย: TTL ขนาดสั้นจะให้ความปลอดภัยที่เข้มงวดกว่า เนื่องจากจะช่วยลด โทเค็นที่รั่วไหลหรือถูกดักไว้อาจถูกละเมิดโดย ผู้โจมตี
- ประสิทธิภาพ: TTL ขนาดสั้นหมายความว่าแอปจะดำเนินการรับรองได้มากขึ้น เป็นประจำ เนื่องจากกระบวนการรับรองแอปเพิ่มเวลาในการตอบสนองให้กับเครือข่าย ทุกครั้งที่มีการดำเนินการ TTL ขนาดสั้นอาจส่งผลต่อประสิทธิภาพ ของแอปของคุณ
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นกว่าและการรับรองซ้ำบ่อยๆ จะทำให้ เร็วขึ้น และสำหรับบริการที่มีค่าใช้จ่ายอาจมีค่าใช้จ่ายเพิ่มขึ้น ดูโควต้าและ ขีดจำกัด
TTL เริ่มต้นของ 1 ชั่วโมง เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรช โทเค็นที่ระยะเวลาประมาณครึ่งหนึ่งของระยะเวลา TTL
2. เพิ่มไลบรารี App Check ลงในแอป
เพิ่มทรัพยากร Dependency สำหรับ App Check ไปยัง
Podfile
ของโปรเจ็กต์pod 'FirebaseAppCheck'
หรือคุณสามารถใช้ Swift Package Manager แทน
ตรวจสอบว่าคุณใช้ Firebase SDK เวอร์ชันล่าสุดด้วย ที่คุณพึ่งพาได้
เรียกใช้
pod install
และเปิดไฟล์.xcworkspace
ที่สร้างขึ้นใน Xcode ให้เพิ่มความสามารถ App Attest ลงในแอป
ในไฟล์
.entitlements
ของโปรเจ็กต์ ให้ตั้งค่าสภาพแวดล้อม App Attest เป็นproduction
3. เริ่มต้น App Check
คุณจะต้องเริ่มต้น App Check ก่อนที่จะใช้ Firebase อื่นๆ SDK
ก่อนอื่น ให้เขียนการใช้งาน AppCheckProviderFactory
รายละเอียดเกี่ยวกับ
การติดตั้งใช้งานจะขึ้นอยู่กับ Use Case
เช่น หากมีเฉพาะผู้ใช้ iOS 14 ขึ้นไป คุณเพียงแค่
สร้างออบเจ็กต์ AppAttestProvider
รายการ:
Swift
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมายของ WatchOS
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
Objective-C
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมายของ WatchOS
@interface YourSimpleAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourSimpleAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { return [[FIRAppAttestProvider alloc] initWithApp:app]; } @end
หรือจะสร้าง AppAttestProvider
ออบเจ็กต์ใน iOS 14 ขึ้นไปและฤดูใบไม้ร่วงก็ได้
กลับไปที่ DeviceCheckProvider
ในเวอร์ชันก่อนหน้า:
Swift
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมายของ WatchOS
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { if #available(iOS 14.0, *) { return AppAttestProvider(app: app) } else { return DeviceCheckProvider(app: app) } } }
Objective-C
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมายของ WatchOS
@interface YourAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory> @end @implementation YourAppCheckProviderFactory - (nullable id<FIRAppCheckProvider>)createProviderWithApp:(nonnull FIRApp *)app { if (@available(iOS 14.0, *)) { return [[FIRAppAttestProvider alloc] initWithApp:app]; } else { return [[FIRDeviceCheckProvider alloc] initWithApp:app]; } } @end
หลังจากใช้คลาส AppCheckProviderFactory
แล้ว ให้กําหนดค่า
App Check เพื่อใช้
Swift
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมายของ WatchOS
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมให้บริการในเป้าหมายของ WatchOS
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
ขั้นตอนถัดไป
เมื่อติดตั้งไลบรารี App Check ในแอปแล้ว ให้เริ่มเผยแพร่ ที่อัปเดตให้กับผู้ใช้
แอปไคลเอ็นต์ที่อัปเดตจะเริ่มส่งโทเค็น App Check พร้อมกับ ส่งคำขอไปยัง Firebase แต่ผลิตภัณฑ์ Firebase ไม่จำเป็นต้องใช้โทเค็น จะยังมีผลจนกว่าคุณจะเปิดใช้การบังคับใช้ในส่วน App Check ของ คอนโซล Firebase
ตรวจสอบเมตริกและเปิดใช้การบังคับใช้
แต่ก่อนเปิดใช้การบังคับใช้ คุณควรตรวจสอบว่าการดำเนินการดังกล่าวจะไม่ กับผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ ในทางกลับกัน ถ้าคุณเห็น การใช้ทรัพยากรแอปของคุณที่น่าสงสัย คุณอาจต้องเปิดใช้การบังคับใช้ เร็วขึ้น
โปรดดูเมตริก App Check สำหรับ บริการที่คุณใช้:
- ตรวจสอบเมตริกคำขอ App Check เพื่อหา Realtime Database, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้ App Check
เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมจะ การดำเนินการต่อก็เปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้
- เปิดใช้การบังคับใช้ App Check สำหรับ Realtime Database, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้ แอปในสภาพแวดล้อมที่ App Check มักจะไม่จัดว่า "ถูกต้อง" เช่น เครื่องมือจำลองระหว่างการพัฒนา หรือจากการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ ผู้ให้บริการแก้ไขข้อบกพร่องของ App Check แทนที่จะเป็นผู้ให้บริการเอกสารรับรองจริง
โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องในแพลตฟอร์มของ Apple