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

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

ใช้ผู้ให้บริการตรวจแก้จุดบกพร่องในเครื่องจำลอง

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

  1. ในบิลด์การแก้ไขข้อบกพร่องของคุณ ก่อนที่จะใช้บริการแบ็กเอนด์ของ Firebase ให้สร้างและตั้งค่าโรงงานของผู้ให้บริการดีบัก App Check:

    สวิฟท์

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    วัตถุประสงค์-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. เปิดใช้งานการบันทึกการแก้ไขข้อบกพร่องในโครงการ Xcode ของคุณ (v11.0 หรือใหม่กว่า):

    1. เปิด ผลิตภัณฑ์ > โครงร่าง > แก้ไขโครงร่าง
    2. เลือก เรียกใช้ จากเมนูด้านซ้าย จากนั้นเลือกแท็บ อาร์กิวเมนต์
    3. ในส่วน Arguments Passed on Launch ให้เพิ่ม -FIRDebugEnabled
  3. เปิดแอป โทเค็นการแก้ไขจุดบกพร่องในเครื่องจะถูกบันทึกเมื่อ SDK พยายามส่งคำขอไปยังแบ็กเอนด์ ตัวอย่างเช่น:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. ในส่วน การตรวจสอบแอป ของคอนโซล Firebase ให้เลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง จากเมนูรายการเพิ่มเติมของแอป จากนั้น ลงทะเบียนโทเค็นการแก้ไขข้อบกพร่องที่คุณบันทึกไว้ในขั้นตอนก่อนหน้า

    สกรีนช็อตของรายการเมนูจัดการโทเค็น Debug

หลังจากที่คุณลงทะเบียนโทเค็นแล้ว บริการแบ็กเอนด์ของ Firebase จะยอมรับว่าโทเค็นนั้นถูกต้อง

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

ใช้ผู้ให้บริการตรวจแก้จุดบกพร่องในสภาพแวดล้อม CI

หากต้องการใช้ตัวให้บริการการตรวจแก้จุดบกพร่องในสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) ให้ทำดังต่อไปนี้:

  1. ในส่วน การตรวจสอบแอป ของคอนโซล Firebase ให้เลือก จัดการโทเค็นการแก้ไขข้อบกพร่อง จากเมนูรายการเพิ่มเติมของแอป จากนั้นสร้างโทเค็นการแก้ไขข้อบกพร่องใหม่ คุณจะต้องใช้โทเค็นในขั้นตอนถัดไป

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

    สกรีนช็อตของรายการเมนูจัดการโทเค็น Debug

  2. เพิ่มโทเค็นการแก้ไขข้อบกพร่องที่คุณเพิ่งสร้างขึ้นไปยังที่เก็บคีย์ที่ปลอดภัยของระบบ CI ของคุณ (เช่น ข้อมูลลับที่เข้ารหัส ของ GitHub Actions หรือ ตัวแปรที่เข้ารหัส ของ Travis CI)

  3. หากจำเป็น ให้กำหนดค่าระบบ CI ของคุณเพื่อให้โทเค็นการแก้ไขข้อบกพร่องของคุณพร้อมใช้งานภายในสภาพแวดล้อม CI เป็นตัวแปรสภาพแวดล้อม ตั้งชื่อตัวแปรเช่น APP_CHECK_DEBUG_TOKEN_FROM_CI

  4. ใน Xcode ให้เพิ่มตัวแปรสภาพแวดล้อมให้กับแผนการทดสอบของคุณโดยใช้ชื่อ FIRAAppCheckDebugToken และค่าประมาณ $(APP_CHECK_DEBUG_TOKEN)

  5. กำหนดค่าสคริปต์ทดสอบ CI ของคุณให้ส่งโทเค็นการแก้ไขข้อบกพร่องเป็นตัวแปรสภาพแวดล้อม ตัวอย่างเช่น:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. ในบิลด์การแก้ไขข้อบกพร่องของคุณ ก่อนที่จะใช้บริการแบ็กเอนด์ของ Firebase ให้สร้างและตั้งค่าโรงงานของผู้ให้บริการดีบัก App Check:

    สวิฟท์

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    วัตถุประสงค์-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

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