เริ่มต้นใช้งาน 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 ของโปรเจ็กต์ ให้ตั้งค่าสภาพแวดล้อมการรับรองแอปเป็น 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

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

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

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

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