| เลือกแพลตฟอร์ม | iOS+ Android เว็บ Flutter |
หน้านี้แสดงวิธีตั้งค่า App Check ในแอป Android โดยใช้ผู้ให้บริการ reCAPTCHA Enterprise App Check ช่วยให้มั่นใจว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากรแบ็กเอนด์ของโปรเจ็กต์ได้ ดูข้อมูลเพิ่มเติมได้ในภาพรวมของ App Check
App Check ต้องใช้คีย์ reCAPTCHA แบบอิงตามคะแนน ซึ่งทำให้ผู้ใช้มองไม่เห็น ซึ่งหมายความว่าผู้ให้บริการ reCAPTCHA Enterprise จะไม่กำหนดให้ผู้ใช้ต้องแก้โจทย์ทดสอบไม่ว่าในกรณีใดก็ตาม
หากกรณีการใช้งานของคุณต้องใช้ฟีเจอร์ reCAPTCHA Enterprise ที่ App Check ไม่ได้ใช้ หรือหากต้องการใช้ App Check กับผู้ให้บริการที่กำหนดเองของคุณเอง โปรดดูหัวข้อใช้ผู้ให้บริการ App Check ที่กำหนดเอง
1. ตั้งค่าโปรเจ็กต์ Firebase
เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้เพิ่ม
ในคอนโซล Google Cloud ให้ไปที่หน้าการป้องกันการประพฤติมิชอบ แล้วทำดังนี้สำหรับผู้ให้บริการ reCAPTCHA Enterprise
ตรวจสอบว่าคุณอยู่ในโปรเจ็กต์ที่ถูกต้อง (ดูเครื่องมือเลือกโปรเจ็กต์ที่ด้านบนของหน้าจอ)
หากได้รับข้อความแจ้ง ให้เปิดใช้ reCAPTCHA Enterprise API
สร้างคีย์ประเภท Android และระบุชื่อแพ็กเกจของแอป (เช่น
com.example.my_app)ตรวจสอบว่าคุณป้อนชื่อแพ็กเกจเดียวกับที่ระบุไว้เมื่อสร้างแอป Android ในโปรเจ็กต์ Firebase ของคุณใน Firebase ค่าชื่อแพ็กเกจจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
สำหรับ App Check ชื่อแพ็กเกจแต่ละชื่อจะสอดคล้องกับคีย์ reCAPTCHA เพียงคีย์เดียวเท่านั้น
โปรดดูวิธีการโดยละเอียดที่หัวข้อสร้างคีย์ reCAPTCHA ตามคะแนน
จดคีย์นี้ไว้ คุณจะต้องเพิ่มข้อมูลดังกล่าวลงในขั้นตอนการลงทะเบียนในคอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่ความปลอดภัย > App Check
ในแท็บแอป ให้ลงทะเบียนแอป Android เพื่อใช้ App Check กับผู้ให้บริการ reCAPTCHA Enterprise คุณจะต้องระบุคีย์ที่ได้รับในคอนโซล Google Cloud
ไม่บังคับ: ตั้งค่า Time to Live (TTL) ของโทเค็น
ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่าระยะเวลาที่ใช้ได้ (TTL) ที่กำหนดเองสำหรับโทเค็น App Check ที่ผู้ให้บริการออกให้ คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ โปรดคำนึงถึงข้อดีข้อเสียต่อไปนี้
- ความปลอดภัย: TTL ที่สั้นลงจะให้ความปลอดภัยที่รัดกุมยิ่งขึ้น เนื่องจากช่วยลดกรอบเวลาที่ผู้โจมตีสามารถใช้โทเค็นที่รั่วไหลหรือถูกดักจับในทางที่ผิดได้
- ประสิทธิภาพ: TTL ที่สั้นลงหมายความว่าแอปจะทำการรับรองบ่อยขึ้น เนื่องจากกระบวนการรับรองแอปจะเพิ่มเวลาในการตอบสนองให้กับคำขอเครือข่ายทุกครั้งที่ดำเนินการ TTL ที่สั้นจึงอาจส่งผลต่อประสิทธิภาพของแอป
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นลงและการรับรองอีกครั้งบ่อยครั้งจะทำให้โควต้าหมดเร็วขึ้น และอาจมีค่าใช้จ่ายมากขึ้นสำหรับบริการที่มีค่าใช้จ่าย ดูโควต้าและขีดจำกัด
TTL เริ่มต้นที่ 1 ชั่วโมง เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรชโทเค็นที่ประมาณครึ่งหนึ่งของระยะเวลา TTL
ไม่บังคับ: กำหนดการตั้งค่าขั้นสูง
คลิกบันทึก
(ไม่บังคับ) กำหนดการตั้งค่าขั้นสูง
เมื่อผู้ใช้เปิดแอป 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 ลงในแอป
หากต้องการใช้ผู้ให้บริการ reCAPTCHA Enterprise คุณต้องเพิ่มทรัพยากร Dependency ที่เกี่ยวข้อง
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ<project>/<app-module>/build.gradle.kts หรือ <project>/<app-module>/build.gradle) ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี App Check reCAPTCHA สำหรับ Android เราขอแนะนำให้ใช้
Firebase Android BoM
เพื่อควบคุมการกำหนดเวอร์ชันของไลบรารี
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.1.0")) // Add the dependency for the App Check reCAPTCHA library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-recaptcha") }
การใช้ Firebase Android BoM จะทำให้แอปใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้อยู่เสมอ
(ทางเลือก) เพิ่มทรัพยากร Dependency ของไลบรารี Firebase โดยไม่ใช้ BoM
หากเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันของไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดทรัพยากร Dependency
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการในแอป เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันไลบรารี ซึ่งจะช่วยให้มั่นใจได้ว่าทุกเวอร์ชันจะเข้ากันได้
dependencies { // Add the dependency for the App Check reCAPTCHA library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-recaptcha:20.0.0") }
3. เริ่มต้น App Check
ในแอป คุณต้องเริ่มต้น App Check ก่อนใช้บริการอื่นๆ ของ Firebase
Kotlin
Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY")
)
Java
FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY"));
4. ตรวจสอบเมตริกและเปิดใช้การบังคับใช้
หลังจากตั้งค่า App Check ในแอปแล้ว ให้เริ่มเผยแพร่แอปที่อัปเดตแล้วให้แก่ผู้ใช้
แอปไคลเอ็นต์ที่อัปเดตจะเริ่มส่งโทเค็น App Check พร้อมกับคำขอทุกรายการที่ส่งไปยัง Firebase อย่างไรก็ตาม App Check จะไม่บล็อกคำขอที่มีโทเค็นไม่ถูกต้องจนกว่าจะมีการบังคับใช้ App Check
ตรวจสอบเมตริก
ก่อนเปิดใช้การบังคับใช้ โปรดตรวจสอบว่าการดำเนินการดังกล่าวจะไม่รบกวนผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ อย่างไรก็ตาม หากคุณเห็นการใช้ทรัพยากรแอปที่น่าสงสัย คุณอาจต้องเปิดใช้การบังคับใช้ให้เร็วขึ้น
คุณสามารถตรวจสอบเมตริก App Check สำหรับบริการที่ใช้เพื่อช่วยในการตัดสินใจได้ดังนี้
- ตรวจสอบเมตริกคำขอ App Checkสำหรับ Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity สำหรับ iOS, Maps JavaScript API และ Places API (ใหม่)
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้ App Check
เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมที่จะดำเนินการต่อแล้ว คุณสามารถเปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้
- เปิดใช้การบังคับใช้ App Checkสำหรับ Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity สำหรับ iOS, Maps JavaScript API และ Places API (ใหม่)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
App Check จัดประเภทสภาพแวดล้อมบางอย่างว่าไม่ถูกต้อง เช่น คำขอจากโปรแกรมจำลอง / เครื่องจำลองในระหว่างการพัฒนาหรือจากสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI)
หากต้องการเรียกใช้แอปในสภาพแวดล้อมประเภทเหล่านี้หลังจากบังคับใช้ App Check แล้ว คุณต้องสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้App Check ผู้ให้บริการแก้ไขข้อบกพร่องแทนผู้ให้บริการเอกสารรับรองเวอร์ชันที่ใช้งานจริง
ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องใน Android
ราคา
App Check จะสร้างการประเมินในนามของคุณเพื่อตรวจสอบโทเค็นการตอบกลับของผู้ใช้ทุกครั้งที่แอปรีเฟรชโทเค็น App Check ระบบจะเรียกเก็บเงินจากโปรเจ็กต์ Firebase สำหรับการประเมินแต่ละครั้งที่สร้างขึ้นเกินโควต้าแบบไม่มีค่าใช้จ่าย โปรดดูรายละเอียดที่หัวข้อราคาของ reCAPTCHA
โดยค่าเริ่มต้น แอปจะรีเฟรชโทเค็นนี้ 2 ครั้งทุกๆ 1 ชั่วโมง หากต้องการควบคุมความถี่ที่แอปรีเฟรชโทเค็น App Check (ซึ่งจะส่งผลต่อความถี่ในการสร้างการประเมินใหม่) คุณสามารถกำหนดค่า TTL ของโทเค็นได้