หน้านี้แสดงวิธีเปิดใช้ 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
รายละเอียดการติดตั้งใช้งานของคุณจะขึ้นอยู่กับกรณีการใช้งาน
เช่น หากมีผู้ใช้ 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