หน้านี้จะแสดงวิธีเปิดใช้ App Check ในเว็บแอปโดยใช้ ผู้ให้บริการ reCAPTCHA Enterprise เมื่อเปิดใช้ App Check คุณจะช่วยให้มั่นใจ ว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากรแบ็กเอนด์ของโปรเจ็กต์ได้ ดูภาพรวมของฟีเจอร์นี้
โปรดทราบว่า App Check ใช้คีย์ของเว็บไซต์ที่อิงตามคะแนนของ reCAPTCHA Enterprise ซึ่ง ทำให้ผู้ใช้มองไม่เห็น ผู้ให้บริการ reCAPTCHA Enterprise จะไม่ขอให้ผู้ใช้แก้ปัญหาความท้าทายในทุกกรณี
หาก Use Case ของคุณต้องใช้ฟีเจอร์ reCAPTCHA Enterprise ที่ App Checkไม่ได้ติดตั้งใช้งาน หรือหากต้องการใช้ App Check กับผู้ให้บริการที่กำหนดเอง โปรดดูหัวข้อติดตั้งใช้งานผู้ให้บริการ App Check ที่กำหนดเอง
1. ตั้งค่าโปรเจ็กต์ Firebase
เพิ่ม Firebase ลงในโปรเจ็กต์ JavaScript หากยังไม่ได้ เพิ่ม
เปิดส่วน reCAPTCHA Enterprise ของ Google Cloud Console แล้วทำดังนี้
- หากระบบแจ้งให้เปิดใช้ reCAPTCHA Enterprise API ให้ดำเนินการ
- สร้างคีย์ประเภทเว็บไซต์ คุณจะต้องระบุโดเมนที่โฮสต์เว็บแอป และยกเลิกการเลือก ตัวเลือก "ใช้ความท้าทายแบบช่องทำเครื่องหมาย"
ใน Firebase Console ให้ไปที่ความปลอดภัย > App Check
ในแท็บแอป ให้ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการ reCAPTCHA Enterprise คุณจะต้องระบุคีย์ของเว็บไซต์ที่ได้รับ ในคอนโซลGoogle Cloud
โดยปกติแล้วคุณจะต้องลงทะเบียนแอปทั้งหมดของโปรเจ็กต์ เนื่องจากเมื่อเปิดใช้การบังคับใช้สำหรับผลิตภัณฑ์ Firebase แล้ว มีเพียงแอปที่ลงทะเบียนเท่านั้นที่จะเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์ได้
ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time-to-Live (TTL) ที่กำหนดเองสำหรับโทเค็นApp Checkที่ออกโดยผู้ให้บริการ คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ โปรดทราบถึงข้อดีข้อเสียต่อไปนี้
- ความปลอดภัย: TTL ที่สั้นลงจะช่วยเพิ่มความปลอดภัย เนื่องจากจะลดระยะเวลาที่ผู้โจมตีจะใช้โทเค็นที่รั่วไหลหรือถูกดักจับในทางที่ผิดได้
- ประสิทธิภาพ: TTL ที่สั้นลงหมายความว่าแอปจะทำการรับรองความถูกต้องบ่อยขึ้น เนื่องจากกระบวนการรับรองความถูกต้องของแอปจะเพิ่มเวลาในการตอบสนองให้กับคำขอเครือข่ายทุกครั้งที่ดำเนินการ ดังนั้น TTL ที่สั้นจึงอาจส่งผลต่อประสิทธิภาพของแอป
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นลงและการรับรองความถูกต้องซ้ำบ่อยๆ จะทำให้โควต้าหมดเร็วขึ้น และสำหรับบริการแบบชำระเงิน อาจมีค่าใช้จ่ายมากขึ้น ดูโควต้าและข้อจำกัด
TTL เริ่มต้นที่ 1 ชั่วโมง เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรช โทเค็นที่ประมาณครึ่งหนึ่งของระยะเวลา TTL
กำหนดค่าการตั้งค่าขั้นสูง (ไม่บังคับ)
เมื่อผู้ใช้เข้าชมเว็บแอป reCAPTCHA Enterprise จะประเมินระดับความเสี่ยงที่การโต้ตอบของผู้ใช้ก่อให้เกิด และแสดงคะแนนระหว่าง 0.0 ถึง 1.0 โดยเพิ่มขึ้นทีละ 0.1 คะแนน 1.0 บ่งบอกว่าการโต้ตอบมีความเสี่ยงต่ำและมีแนวโน้มสูงที่จะเป็นของจริง ในขณะที่ 0.0 บ่งบอกว่าการโต้ตอบมีความเสี่ยงสูงและอาจเป็นการฉ้อโกง App Check ช่วยให้คุณกำหนดค่าเกณฑ์ความเสี่ยงของแอป เพื่อให้คุณปรับระดับการยอมรับความเสี่ยงนี้ได้
สำหรับ Use Case ส่วนใหญ่ เราขอแนะนำค่าเกณฑ์เริ่มต้นที่ 0.5 หาก Use Case ของคุณต้องมีการปรับค่าเกณฑ์ คุณสามารถกำหนดค่าได้ในส่วน App Checkของ Firebaseสำหรับเว็บแอปแต่ละแอป
รายละเอียด
App Check ใช้เกณฑ์ความเสี่ยงของแอปที่คุณกำหนดค่าไว้เป็นคะแนน reCAPTCHA Enterprise ขั้นต่ำที่จำเป็นเพื่อให้การโต้ตอบของผู้ใช้ถือเป็นของจริง ระบบจะปฏิเสธคะแนน reCAPTCHA Enterprise ทั้งหมดที่ต่ำกว่าเกณฑ์ที่คุณกำหนดค่าไว้อย่างเคร่งครัด เมื่อปรับเกณฑ์ความเสี่ยงของแอป โปรดทราบสิ่งต่อไปนี้
จากระดับคะแนน reCAPTCHA Enterprise ที่เป็นไปได้ 11 ระดับ มีเพียง 4 ระดับคะแนนต่อไปนี้เท่านั้นที่ใช้ได้ก่อนที่คุณจะเพิ่ม บัญชีสำหรับการเรียกเก็บเงินใน Cloud ลงในโปรเจ็กต์ ได้แก่ 0.1, 0.3, 0.7 และ 0.9 ในช่วงเวลานี้ App Check จะ อนุญาตค่าเกณฑ์ความเสี่ยงของแอปเป็น 0.1, 0.3, 0.5, 0.7, และ 0.9 เท่านั้น เรายังคงแนะนำค่าเกณฑ์ความเสี่ยงของแอปที่ 0.5 สำหรับ Use Case ส่วนใหญ่
หากต้องการเปิดใช้ระดับคะแนน reCAPTCHA Enterprise ทั้ง 11 ระดับ ให้เพิ่มบัญชี Google Cloud Billing ลงในโปรเจ็กต์ วิธีหนึ่งในการดำเนินการดังกล่าวคือการ อัปเกรดเป็นแพ็กเกจราคา Blaze เมื่อดำเนินการเสร็จแล้ว App Check จะอนุญาตให้คุณกำหนดค่าเกณฑ์ความเสี่ยงของแอป เป็นค่าใดก็ได้ระหว่าง 0.0 ถึง 1.0 โดยเพิ่มขึ้นทีละ 0.1
หากต้องการตรวจสอบการกระจายคะแนน reCAPTCHA Enterprise สูงและต่ำสำหรับ เว็บแอป ให้ไปที่หน้า reCAPTCHA Enterprise ใน Google Cloudคอนโซล แล้วเลือกคีย์ของเว็บไซต์ที่เว็บแอปใช้
หากคุณยอมรับความเสี่ยงของแอปได้ต่ำ ให้เลื่อนแถบเลื่อนไปทางซ้าย เพื่อเพิ่มเกณฑ์ความเสี่ยงของแอป
- เราไม่แนะนำให้ใช้ค่า 1.0 เนื่องจากค่านี้อาจปฏิเสธการเข้าถึงของผู้ใช้ที่ถูกต้องตามกฎหมายซึ่งมีคุณสมบัติไม่ตรงตามเกณฑ์ความน่าเชื่อถือสูงนี้
หากคุณยอมรับความเสี่ยงของแอปได้สูง ให้เลื่อนแถบเลื่อนไปทางขวา เพื่อลดเกณฑ์ความเสี่ยงของแอป
- เราไม่แนะนำให้ใช้ค่า 0.0 เนื่องจากค่านี้จะปิดใช้การป้องกันการละเมิด
โปรดดูรายละเอียดเพิ่มเติมในเอกสารประกอบ reCAPTCHA Enterprise
2. เพิ่มไลบรารี App Check ลงในแอป
เพิ่ม Firebase ลงในเว็บแอป หากยังไม่ได้เพิ่ม อย่าลืมนำเข้าไลบรารี App Check
3. เริ่มต้น App Check
เพิ่มโค้ดการเริ่มต้นต่อไปนี้ลงในแอปพลิเคชันก่อนที่จะเข้าถึงบริการ Firebase คุณจะต้องส่งคีย์ของเว็บไซต์ reCAPTCHA Enterprise ที่สร้างไว้ใน Cloud Console ไปยัง activate()
Web
import { initializeApp } from "firebase/app"; import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check"; const app = initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider(/* reCAPTCHA Enterprise site key */), isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh. });
Web
firebase.initializeApp({ // Your Firebase configuration object. }); // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise // site key and pass it to activate(). const appCheck = firebase.appCheck(); appCheck.activate( new firebase.appCheck.ReCaptchaEnterpriseProvider( /* reCAPTCHA Enterprise site key */ ), true // Set to true to allow auto-refresh. );
ขั้นตอนถัดไป
เมื่อติดตั้งไลบรารี App Check ในแอปแล้ว ให้ติดตั้งใช้งาน
แอปไคลเอ็นต์ที่อัปเดตแล้วจะเริ่มส่ง App Check โทเค็นไปพร้อมกับทุก คำขอที่ส่งไปยัง Firebase แต่ผลิตภัณฑ์ Firebase จะไม่กำหนดให้โทเค็น ต้องถูกต้องจนกว่าคุณจะเปิดใช้การบังคับใช้ในส่วน App Check ของ คอนโซล Firebase
ตรวจสอบเมตริกและเปิดใช้การบังคับใช้
อย่างไรก็ตาม ก่อนที่จะเปิดใช้การบังคับใช้ คุณควรตรวจสอบว่าการดำเนินการดังกล่าวจะไม่รบกวนผู้ใช้ที่ถูกต้องตามกฎหมายที่มีอยู่ ในทางกลับกัน หากพบการใช้ทรัพยากรแอปอย่างน่าสงสัย คุณอาจต้องการเปิดใช้การบังคับใช้เร็วขึ้น
คุณสามารถดูเมตริก 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 แล้ว คุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่ App Check ปกติจะไม่จัดประเภทว่าถูกต้อง เช่น ในเครื่องระหว่างการพัฒนาซอฟต์แวร์ หรือจากสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการการแก้ไขข้อบกพร่อง App Check แทนผู้ให้บริการการรับรองความถูกต้องจริง
ดูหัวข้อใช้ App Check กับผู้ให้บริการการแก้ไขข้อบกพร่องในเว็บแอป
โน้ตเกี่ยวกับค่าใช้จ่าย
App Check จะสร้างการประเมินในนามของคุณเพื่อตรวจสอบโทเค็นการตอบกลับของผู้ใช้ ทุกครั้งที่เบราว์เซอร์ที่เรียกใช้เว็บแอปจะรีเฟรชโทเค็น App Check ระบบจะเรียกเก็บเงินจากโปรเจ็กต์สำหรับการประเมินแต่ละครั้งที่สร้างขึ้นซึ่งเกินโควต้าแบบไม่มีค่าใช้จ่าย ดูรายละเอียดได้ที่การกำหนดราคา reCAPTCHA
โดยค่าเริ่มต้น เว็บแอปจะรีเฟรชโทเค็นนี้ 2 ครั้งทุกๆ 1 ชั่วโมง หากต้องการ ควบคุมความถี่ที่แอปจะรีเฟรชโทเค็น App Check (และดังนั้นความ ถี่ในการสร้างการประเมินใหม่) ให้กำหนดค่า TTL ของโทเค็น