เริ่มต้นใช้งาน App Check กับ App Attest บนแพลตฟอร์ม Apple

หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป Apple โดยใช้ ผู้ให้บริการ App Attest ในตัว เมื่อเปิดใช้ App Check คุณจะมั่นใจได้ว่า ที่มีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากร Firebase ของโปรเจ็กต์ได้ โปรดดู ภาพรวมของฟีเจอร์นี้

App Check ใช้ App Attest เพื่อยืนยันว่าคำขอไปยังบริการ Firebase มาจากแอปที่ถูกต้องของคุณ ปัจจุบัน App Check ไม่ได้ใช้ App Attest เพื่อ วิเคราะห์ความเสี่ยงในการฉ้อโกง

หากต้องการใช้ App Check กับผู้ให้บริการที่กำหนดเองของคุณ โปรดดู ใช้ผู้ให้บริการ App Check ที่กำหนดเอง

1. สร้างโปรเจ็กต์ Firebase

  1. คุณจะต้องมี Xcode 12.5 ขึ้นไปจึงจะใช้ App Attest ได้

  2. เพิ่ม Firebase ลงในโปรเจ็กต์ Apple หากยังไม่ได้เพิ่ม ทำได้แล้ว

  3. ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการ App Attest ใน ส่วน App Check ของ คอนโซล Firebase

    ปกติแล้วคุณจะต้องลงทะเบียนแอปทั้งหมดของโครงการ เพราะเมื่อคุณ เปิดใช้การบังคับใช้สำหรับผลิตภัณฑ์ Firebase เฉพาะแอปที่ลงทะเบียนเท่านั้นที่ทำได้ เพื่อเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์

  4. ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time to Live ที่กำหนดเอง (TTL) สำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการ คุณจะตั้งค่า TTL ได้ เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ ทราบถึงข้อดีข้อเสียต่อไปนี้

    • การรักษาความปลอดภัย: TTL ขนาดสั้นจะให้ความปลอดภัยที่เข้มงวดกว่า เนื่องจากจะช่วยลด โทเค็นที่รั่วไหลหรือถูกดักไว้อาจถูกละเมิดโดย ผู้โจมตี
    • ประสิทธิภาพ: TTL ขนาดสั้นหมายความว่าแอปจะดำเนินการรับรองได้มากขึ้น เป็นประจำ เนื่องจากกระบวนการรับรองแอปเพิ่มเวลาในการตอบสนองให้กับเครือข่าย ทุกครั้งที่มีการดำเนินการ TTL ขนาดสั้นอาจส่งผลต่อประสิทธิภาพ ของแอปของคุณ
    • โควต้าและค่าใช้จ่าย: TTL ที่สั้นกว่าและการรับรองซ้ำบ่อยๆ จะทำให้ เร็วขึ้น และสำหรับบริการที่มีค่าใช้จ่ายอาจมีค่าใช้จ่ายเพิ่มขึ้น ดูโควต้าและ ขีดจำกัด

    TTL เริ่มต้นของ 1 ชั่วโมง เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรช โทเค็นที่ระยะเวลาประมาณครึ่งหนึ่งของระยะเวลา TTL

2. เพิ่มไลบรารี App Check ลงในแอป

  1. เพิ่มทรัพยากร Dependency สำหรับ App Check ไปยัง Podfile ของโปรเจ็กต์

    pod 'FirebaseAppCheck'

    หรือคุณสามารถใช้ Swift Package Manager แทน

    ตรวจสอบว่าคุณใช้ Firebase SDK เวอร์ชันล่าสุดด้วย ที่คุณพึ่งพาได้

  2. เรียกใช้ pod install และเปิดไฟล์ .xcworkspace ที่สร้างขึ้น

  3. ใน Xcode ให้เพิ่มความสามารถ App Attest ลงในแอป

  4. ในไฟล์ .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

เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมจะ การดำเนินการต่อก็เปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้

ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง

หลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้ แอปในสภาพแวดล้อมที่ App Check มักจะไม่จัดว่า "ถูกต้อง" เช่น เครื่องมือจำลองระหว่างการพัฒนา หรือจากการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ ผู้ให้บริการแก้ไขข้อบกพร่องของ App Check แทนที่จะเป็นผู้ให้บริการเอกสารรับรองจริง

โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องในแพลตฟอร์มของ Apple