เริ่มต้นใช้งาน 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. ในFirebaseคอนโซล ให้ไปที่ความปลอดภัย > App Check

  4. ในแท็บแอป ให้ลงทะเบียนแอปเพื่อใช้ App Check กับ ผู้ให้บริการ App Attest

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

  5. ไม่บังคับ: ตั้งค่า Time to Live (TTL) ของโทเค็น

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

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

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

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

  1. ใช้ Swift Package Manager เพื่อติดตั้งและ จัดการทรัพยากร Dependency ของ Firebase

    ใน Xcode ขณะที่โปรเจ็กต์แอปเปิดอยู่ ให้ไปที่ไฟล์ > เพิ่มแพ็กเกจ เพิ่มที่เก็บ SDK ของแพลตฟอร์ม Apple ของ Firebase (https://github.com/firebase/firebase-ios-sdk) แล้วเลือกไลบรารี FirebaseAppCheck

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

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

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

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

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

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