เริ่มต้นใช้งาน App Check กับ reCAPTCHA Enterprise ในแอป Flutter

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


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

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

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

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

  1. ติดตั้งและเริ่มต้นใช้งาน Firebase ในโปรเจ็กต์ Flutter หากยังไม่ได้ดำเนินการ

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

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

    2. เปิดใช้ reCAPTCHA Enterprise API หากระบบแจ้ง

    3. สร้างคีย์ตามแพลตฟอร์มเป้าหมาย

      iOS+

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

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

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

      Android

      สร้างคีย์ประเภท Android แล้วระบุชื่อแพ็กเกจของแอป (เช่น com.example.my_app)

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

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

      เว็บ

      สร้างคีย์ประเภท เว็บ แล้วระบุโดเมน ของเว็บแอปแต่ละรายการ

      • App Check ไม่ รองรับ เว็บแอปที่แสดงในโดเมนมากกว่า 250 โดเมน

      • อย่าเพิ่ม localhost เป็นโดเมนลงในคีย์ reCAPTCHA ที่ ทำให้ใช้งานได้ (หรือกำลังจะทำให้ใช้งานได้) ในเวอร์ชันที่ใช้งานจริง

      • ยกเลิกการเลือก ตัวเลือก "ใช้โจทย์ความท้าทายแบบช่องทำเครื่องหมาย"

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

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

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

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

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

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

2. เพิ่มปลั๊กอิน App Check ลงในแอป

หากต้องการใช้ผู้ให้บริการ reCAPTCHA Enterprise คุณต้องเพิ่มปลั๊กอิน ที่เกี่ยวข้อง App Check

  1. จากรูทของโปรเจ็กต์ Flutter ให้เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน

    flutter pub add firebase_app_check
    
  2. เมื่อเสร็จแล้ว ให้สร้างโปรเจ็กต์ Flutter ใหม่

    flutter run
    

3. เริ่มต้นใช้งาน App Check

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

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  await FirebaseAppCheck.instance.activate(
    providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
    providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
    providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
  );
  runApp(App());
}

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

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

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

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

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

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

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

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

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

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

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

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

ราคา

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

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