หน้านี้แสดงวิธีเปิดใช้งาน 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 แล้ว เฉพาะแอปที่ลงทะเบียนเท่านั้นที่จะสามารถเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์ได้
ทางเลือก : ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งเวลาถ่ายทอดสด (TTL) ที่กำหนดเองสำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการ คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ โปรดคำนึงถึงข้อดีข้อเสียดังต่อไปนี้:
- ความปลอดภัย: TTL ที่สั้นกว่าจะให้การรักษาความปลอดภัยที่แข็งแกร่งยิ่งขึ้น เนื่องจากจะช่วยลดหน้าต่างที่โทเค็นที่รั่วไหลหรือถูกสกัดกั้นสามารถถูกใช้โดยผู้โจมตีในทางที่ผิด
- ประสิทธิภาพ: TTL ที่สั้นลงหมายความว่าแอปจะดำเนินการรับรองบ่อยขึ้น เนื่องจากกระบวนการรับรองแอปจะเพิ่มเวลาในการตอบสนองให้กับคำขอเครือข่ายทุกครั้งที่ดำเนินการ TTL สั้นๆ อาจส่งผลต่อประสิทธิภาพของแอปได้
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นลงและการรับรองซ้ำบ่อยครั้งจะทำให้โควต้าของคุณหมดเร็วขึ้น และสำหรับบริการแบบชำระเงินอาจมีค่าใช้จ่ายสูงกว่า ดู โควต้าและขีดจำกัด
TTL เริ่มต้น 1 ชั่วโมง นั้นสมเหตุสมผลสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรชโทเค็นที่ระยะเวลาประมาณครึ่งหนึ่งของ TTL
2. เพิ่มไลบรารี App Check ลงในแอปของคุณ
เพิ่มการพึ่งพาสำหรับ App Check ให้กับ
Podfile
ของโปรเจ็กต์ของคุณ :pod 'FirebaseAppCheck'
หรือคุณสามารถใช้ Swift Package Manager แทนได้
ตรวจสอบให้แน่ใจว่าคุณใช้ Firebase SDK อื่นๆ เวอร์ชันล่าสุดที่คุณใช้อยู่ด้วย
เรียกใช้
pod install
และเปิดไฟล์.xcworkspace
ที่สร้างขึ้นใน Xcode ให้เพิ่มความสามารถ App Attest ให้กับแอปของคุณ
ในไฟล์
.entitlements
ของโปรเจ็กต์ของคุณ ให้ตั้งค่าสภาพแวดล้อม App Attest เป็นการproduction
3. เริ่มต้นการตรวจสอบแอป
คุณจะต้องเริ่มต้น App Check ก่อนจึงจะใช้ Firebase SDK อื่นๆ
ขั้นแรก เขียนการใช้งาน AppCheckProviderFactory
ลักษณะเฉพาะของการนำไปปฏิบัติจะขึ้นอยู่กับกรณีการใช้งานของคุณ
ตัวอย่างเช่น หากคุณมีผู้ใช้ iOS 14 ขึ้นไปเท่านั้น คุณสามารถสร้างออบเจ็กต์ AppAttestProvider
ได้ตลอดเวลา:
สวิฟท์
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย watchOS
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory { func createProvider(with app: FirebaseApp) -> AppCheckProvider? { return AppAttestProvider(app: app) } }
วัตถุประสงค์-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
ในเวอร์ชันก่อนหน้าได้:
สวิฟท์
หมายเหตุ: ผลิตภัณฑ์ 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) } } }
วัตถุประสงค์-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 เพื่อใช้งาน:
สวิฟท์
หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย watchOS
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
วัตถุประสงค์-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 สำหรับฐานข้อมูลเรียลไทม์, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- ตรวจสอบเมตริกคำขอ App Check สำหรับฟังก์ชันคลาวด์
เปิดใช้การบังคับใช้การตรวจสอบแอป
เมื่อคุณเข้าใจว่า App Check จะส่งผลต่อผู้ใช้ของคุณอย่างไร และคุณพร้อมที่จะดำเนินการต่อ คุณสามารถเปิดใช้การบังคับใช้ App Check ได้ดังนี้
- เปิดใช้การบังคับใช้การตรวจสอบแอป สำหรับฐานข้อมูลเรียลไทม์, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- เปิดใช้การบังคับใช้การตรวจสอบแอปสำหรับฟังก์ชันคลาวด์
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หลังจากที่คุณลงทะเบียนแอปสำหรับ App Check แล้ว หากคุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่โดยปกติแล้ว App Check จะไม่จัดประเภทว่าถูกต้อง เช่น เครื่องจำลองในระหว่างการพัฒนา หรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณสามารถ สร้างบิลด์การแก้ไขข้อบกพร่องของแอปของคุณที่ใช้ผู้ให้บริการแก้ไขข้อบกพร่อง App Check แทนผู้ให้บริการรับรองจริง
ดู ใช้ App Check กับผู้ให้บริการแก้ไขจุดบกพร่องบนแพลตฟอร์ม Apple