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

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


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

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

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

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

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

  2. ในคอนโซล Google Cloud ให้ไปที่หน้า การป้องกันการประพฤติมิชอบ และทำดังนี้สำหรับผู้ให้บริการ 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 หากกรณีการใช้งานของคุณต้องมีการปรับเปลี่ยน คุณสามารถกำหนดค่านี้สำหรับแต่ละแอปในFirebase Console (ไปที่ความปลอดภัย > 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 ของโทเค็นได้