เริ่มต้นใช้งาน App Check ด้วย reCAPTCHA Enterprise บนแพลตฟอร์ม Apple

เลือกแพลตฟอร์ม iOS+ Android เว็บ Flutter


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

App Check ต้องใช้คีย์ reCAPTCHA แบบอิงตามคะแนน ซึ่งทำให้ผู้ใช้มองไม่เห็น ซึ่งหมายความว่าผู้ให้บริการ reCAPTCHA Enterprise จะไม่กำหนดให้ผู้ใช้ต้องแก้โจทย์ทดสอบไม่ว่าในกรณีใดก็ตาม

หากกรณีการใช้งานของคุณต้องใช้ฟีเจอร์ reCAPTCHA Enterprise ที่ App Check ไม่ได้ใช้ หรือหากต้องการใช้ App Check กับผู้ให้บริการที่กำหนดเองของคุณเอง โปรดดูหัวข้อใช้ผู้ให้บริการ App Check ที่กำหนดเอง

1. ตั้งค่าโปรเจ็กต์ Firebase

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

  2. ในคอนโซล Google Cloud ให้ไปที่หน้าการป้องกันการประพฤติมิชอบ แล้วทำดังนี้สำหรับผู้ให้บริการ reCAPTCHA Enterprise

    1. ตรวจสอบว่าคุณอยู่ในโปรเจ็กต์ที่ถูกต้อง (ดูเครื่องมือเลือกโปรเจ็กต์ที่ด้านบนของหน้าจอ)

    2. หากได้รับข้อความแจ้ง ให้เปิดใช้ reCAPTCHA Enterprise API

    3. สร้างคีย์ประเภท iOS และระบุรหัสชุดของแอป (เช่น com.example.my_app)

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

      • สำหรับ App Check รหัสชุดแต่ละรหัสจะสอดคล้องกับคีย์ reCAPTCHA เพียงคีย์เดียวเท่านั้น

      โปรดดูวิธีการโดยละเอียดที่หัวข้อสร้างคีย์ reCAPTCHA ตามคะแนน

    4. จดคีย์นี้ไว้ คุณจะต้องเพิ่มข้อมูลดังกล่าวลงในขั้นตอนการลงทะเบียนในคอนโซล Firebase

  3. ในคอนโซล Firebase ให้ไปที่ความปลอดภัย > App Check

  4. ในแท็บแอป ให้ลงทะเบียนแอปแพลตฟอร์ม Apple เพื่อใช้ App Check กับผู้ให้บริการ reCAPTCHA Enterprise คุณจะต้องระบุคีย์ที่ได้รับในคอนโซล Google Cloud

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

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

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

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

  6. ไม่บังคับ: กำหนดการตั้งค่าขั้นสูง

  7. คลิกบันทึก

(ไม่บังคับ) กำหนดการตั้งค่าขั้นสูง

เมื่อผู้ใช้เปิดแอป reCAPTCHA Enterprise จะประเมินระดับความเสี่ยงของการโต้ตอบของผู้ใช้ภายใต้คีย์ และแสดงผลคะแนนระหว่าง 0.0 ถึง 1.0 โดยเพิ่มขึ้นทีละ 0.1

  • คะแนน 0.0 บ่งชี้ว่าการโต้ตอบมีความเสี่ยงสูงและอาจเป็นการฉ้อโกง
  • คะแนน 1.0 บ่งชี้ว่าการโต้ตอบมีความเสี่ยงต่ำและมีแนวโน้มสูงที่จะถูกต้องตามกฎหมาย

App Check ช่วยให้คุณกำหนดค่าเกณฑ์ความเสี่ยงของแอปเพื่อปรับระดับความเสี่ยงที่ยอมรับได้

สำหรับ Use Case ส่วนใหญ่ เราขอแนะนำให้ใช้ค่าเกณฑ์เริ่มต้นที่ 0.5 หากกรณีการใช้งานของคุณต้องมีการปรับเปลี่ยน คุณสามารถกำหนดค่านี้สำหรับแต่ละแอปในคอนโซล Firebase (ไปที่ความปลอดภัย > App Check) อย่าลืมขยายและตรวจสอบข้อควรพิจารณาที่สำคัญเกี่ยวกับการกำหนดค่าเกณฑ์ความเสี่ยงของแอปด้านล่าง

2. เพิ่ม SDK ของ App Check ลงในแอป

ใช้ Swift Package Manager (SPM) เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Firebase หากใช้ Firebase อยู่แล้ว ให้ตรวจสอบว่าแพ็กเกจ Firebase เป็นเวอร์ชัน 12.17.0 ขึ้นไป

  1. เปิดโปรเจ็กต์แอปใน Xcode

  2. เพิ่มไลบรารี Firebase โดยทำดังนี้

    1. ไปที่ไฟล์ > เพิ่มแพ็กเกจ

    2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK ของ Firebase สำหรับแพลตฟอร์ม Apple ดังนี้

      https://github.com/firebase/firebase-ios-sdk
      
    3. เลือก SDK เวอร์ชันล่าสุด (v12.17.0 ขึ้นไป)

    4. เลือกคลัง FirebaseAppCheck

    5. คลิกเพิ่มแพ็กเกจ Xcode จะแก้ไขและดาวน์โหลดทรัพยากร Dependency

    6. เมื่อได้รับข้อความแจ้ง ให้เพิ่มไลบรารีลงในเป้าหมายแอป

  3. เพิ่มไลบรารี reCAPTCHA Enterprise โดยทำดังนี้

    1. กลับไปที่ไฟล์ > เพิ่มแพ็กเกจ

    2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK ของ reCAPTCHA Enterprise ดังนี้

      https://github.com/GoogleCloudPlatform/recaptcha-enterprise-mobile-sdk
      
    3. เลือกคลัง RecaptchaEnterprise

    4. คลิกเพิ่มแพ็กเกจ เมื่อได้รับข้อความแจ้ง ให้เพิ่มไลบรารีลงในเป้าหมายแอป

3. เริ่มต้น App Check

ในแอป คุณต้องเริ่มต้น App Check ก่อนใช้บริการอื่นๆ ของ Firebase

สร้างอินสแตนซ์ของ RecaptchaProviderFactory โดยส่งคีย์ reCAPTCHA แล้วกำหนดค่า App Check เพื่อใช้คีย์ดังกล่าว

let providerFactory = RecaptchaProviderFactory(siteKey: "SITE_KEY")
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

4. ตรวจสอบเมตริกและเปิดใช้การบังคับใช้

หลังจากตั้งค่า App Check ในแอปแล้ว ให้เริ่มเผยแพร่แอปที่อัปเดตแล้วให้แก่ผู้ใช้

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

ตรวจสอบเมตริก

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

คุณสามารถตรวจสอบเมตริก App Check สำหรับบริการที่ใช้เพื่อช่วยในการตัดสินใจได้ดังนี้

เปิดใช้การบังคับใช้ App Check

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

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

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

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

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

ราคา

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

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