ใช้ App Check เพื่อรักษาความปลอดภัยคีย์ API
Firebase App Check ช่วยปกป้องการเรียกจากแอปของคุณไปยัง Google Maps Platform โดยการบล็อกการเข้าชมที่มาจากแหล่งที่มาอื่นที่ไม่ใช่แอปที่ถูกต้องตามกฎหมาย โดยจะตรวจสอบโทเค็นจากผู้ให้บริการการรับรอง เช่น reCAPTCHA Enterprise การผสานรวมแอปกับ App Check จะช่วยป้องกันคำขอที่เป็นอันตราย คุณจึงไม่ต้องเสียค่าใช้จ่ายสำหรับการเรียก API ที่ไม่ได้รับอนุญาต
App Check เหมาะกับฉันไหม
เราขอแนะนำให้ใช้ App Check ในกรณีส่วนใหญ่ แต่คุณไม่จำเป็นต้องใช้หรือ App Check ไม่รองรับในกรณีต่อไปนี้
- คุณใช้ Places SDK เดิม App Check รองรับเฉพาะ Places SDK (ใหม่)
- แอปส่วนตัวหรือแอปทดลอง หากแอปของคุณเข้าถึงได้เฉพาะภายใน App Check ก็ไม่จำเป็น
- หากแอปของคุณใช้เฉพาะการสื่อสารระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์ App Check ก็ไม่จำเป็น อย่างไรก็ตาม หากไคลเอ็นต์สาธารณะ (เช่น แอปบนอุปกรณ์เคลื่อนที่) ใช้เซิร์ฟเวอร์ที่สื่อสารกับ GMP ให้พิจารณาใช้ App Check เพื่อปกป้องเซิร์ฟเวอร์นั้นแทน GMP
ภาพรวมขั้นตอนการใช้งาน
โดยรวมแล้ว คุณจะต้องทำตามขั้นตอนต่อไปนี้เพื่อผสานรวมแอปกับ App Check
- เพิ่ม Firebase ลงในแอป
- เพิ่มและเริ่มต้นใช้งานไลบรารี App Check
- เพิ่มผู้ให้บริการโทเค็นลงในแอป
- เริ่มต้นใช้งาน Places API และ App Check API
- เปิดใช้การแก้ไขข้อบกพร่อง
- ตรวจสอบคำขอของแอปและตัดสินใจเกี่ยวกับการบังคับใช้
เมื่อผสานรวมกับ App Check แล้ว คุณจะเห็นเมตริกการเข้าชมแบ็กเอนด์ในคอนโซล Firebase เมตริกเหล่านี้จะแสดงรายละเอียดคำขอตามว่าคำขอนั้นมาพร้อมกับโทเค็น App Check ที่ถูกต้องหรือไม่ ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ Firebase App Check
เมื่อมั่นใจว่าคำขอส่วนใหญ่มาจากแหล่งที่มาที่ถูกต้องตามกฎหมายและผู้ใช้ได้อัปเดตแอปเป็นเวอร์ชันล่าสุดที่มีการใช้งาน App Check แล้ว คุณก็เปิดใช้การบังคับใช้ได้ เมื่อเปิดใช้การบังคับใช้แล้ว App Check จะปฏิเสธการเข้าชมทั้งหมดที่ไม่มีโทเค็น App Check ที่ถูกต้อง
สิ่งที่ควรพิจารณาเมื่อวางแผนการผสานรวม App Check
ต่อไปนี้คือสิ่งที่ควรพิจารณาเมื่อวางแผนการผสานรวม
- reCAPTCHA Enterprise ซึ่งเป็นหนึ่งในผู้ให้บริการการรับรองที่เราแนะนำจะเรียกเก็บเงินสำหรับการประเมินมากกว่า 10,000 รายการต่อเดือน
คุณเลือกใช้ผู้ให้บริการการรับรองที่กำหนดเองได้ แม้ว่าจะเป็นกรณีการใช้งานขั้นสูงก็ตาม ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ App Check
-
ผู้ใช้แอปของคุณจะพบความหน่วงแฝงเล็กน้อยเมื่อเริ่มต้นใช้งาน อย่างไรก็ตาม หลังจากนั้น การรับรองซ้ำเป็นระยะจะเกิดขึ้นในเบื้องหลังและผู้ใช้ไม่ควรพบความหน่วงแฝงอีกต่อไป ความหน่วงแฝงที่แน่นอนเมื่อเริ่มต้นใช้งานจะขึ้นอยู่กับผู้ให้บริการการรับรองที่คุณเลือก
ระยะเวลาที่โทเค็น App Check ใช้งานได้ (Time to Live หรือ TTL) จะกำหนดความถี่ของการรับรองซ้ำ คุณกำหนดค่าระยะเวลานี้ได้ในคอนโซล Firebase การรับรองซ้ำจะเกิดขึ้นเมื่อ TTL ผ่านไปประมาณครึ่งหนึ่ง ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบ Firebaseสำหรับผู้ให้บริการการรับรอง
ผสานรวมแอปกับ App Check
ข้อกำหนดเบื้องต้นและข้อกำหนด
- แอปที่มี Maps JS API, Core และไลบรารี Places เวอร์ชันรายสัปดาห์หรือรายไตรมาสล่าสุด
- โปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่เปิดใช้ Maps JS API และ Places API (ใหม่)
- คุณต้องเป็นเจ้าของแอปใน Cloud Console
- คุณจะต้องใช้รหัสโปรเจ็กต์ของแอปจาก Cloud Console
ขั้นตอนที่ 1: เพิ่ม Firebase ลงในแอป
ทำตามวิธีการในเอกสารประกอบสำหรับนักพัฒนาแอป Firebase เพื่อเพิ่ม Firebase ลงในแอป
ขั้นตอนที่ 2: เพิ่มไลบรารี App Check และเริ่มต้นใช้งาน App Check
Firebase มีวิธีการสำหรับผู้ให้บริการการรับรองเริ่มต้นแต่ละราย วิธีการเหล่านี้จะแสดงวิธีตั้งค่าโปรเจ็กต์ Firebase และเพิ่มไลบรารี App Check ลงในแอป ทำตามตัวอย่างโค้ดที่ให้ไว้เพื่อเริ่มต้นใช้งาน App Check
ขั้นตอนที่ 3: โหลดไลบรารี Maps JS API
โหลดไลบรารี Core, Maps และ Places ดังที่แสดงในข้อมูลโค้ดต่อไปนี้ ดูข้อมูลเพิ่มเติมและวิธีการได้ที่เอกสารประกอบ Maps JavaScript API Place Class
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const {Place} = await google.maps.importLibrary('places'); }
ขั้นตอนที่ 4: เริ่มต้นใช้งาน Places API และ App Check API
- เริ่มต้นใช้งาน App Check โดยใช้การกำหนดค่าที่คอนโซล Firebase ให้ไว้
- ตรวจสอบว่าคำขอไปยัง Maps JS API มาพร้อมกับโทเค็น App Check ดังนี้
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const {Place} = await google.maps.importLibrary('places'); const app = initializeApp({ // Your firebase configuration object }); // Pass your reCAPTCHA Enterprise site key to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider( 'abcdefghijklmnopqrstuvwxy-1234567890abcd', ), // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true, }); Settings.getInstance().fetchAppCheckToken = () => getToken(appCheck, /* forceRefresh = */ false); // Make a Places JS request const place = new Place({id: 'ChIJN5Nz71W3j4ARhx5bwpTQEGg'}); await place.fetchFields({fields: ['*']}); // Load a map map = new Map(document.getElementById("map"), { center: { lat: 37.4161493, lng: -122.0812166 }, zoom: 8, }); }
ขั้นตอนที่ 5: เปิดใช้การแก้ไขข้อบกพร่อง (ไม่บังคับ)
หากต้องการพัฒนาและทดสอบแอปในเครื่อง หรือเรียกใช้แอปในสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ข้อมูลลับสำหรับการแก้ไขข้อบกพร่องเพื่อรับโทเค็น App Check ที่ถูกต้อง ซึ่งจะช่วยให้คุณหลีกเลี่ยงการใช้ผู้ให้บริการการรับรองจริงในบิลด์การแก้ไขข้อบกพร่องได้
วิธีทดสอบแอปในเครื่อง
- เปิดใช้งานผู้ให้บริการการแก้ไขข้อบกพร่องเพื่อวัตถุประสงค์ในการพัฒนา
- คุณจะได้รับ UUID4 แบบสุ่มที่สร้างขึ้นโดยอัตโนมัติ (เรียกว่า _โทเค็นการแก้ไขข้อบกพร่อง_ ในเอกสารประกอบ App Check) จากบันทึกการแก้ไขข้อบกพร่องของ SDK เพิ่มโทเค็นนี้ลงในคอนโซล Firebase
- ดูข้อมูลเพิ่มเติมและวิธีการได้ที่เอกสารประกอบ App Check
วิธีเรียกใช้แอปในสภาพแวดล้อม CI
- สร้าง UUID4 แบบสุ่มจากคอนโซล Firebase
- เพิ่ม UUID4 เป็นโทเค็นการแก้ไขข้อบกพร่อง แล้วคัดลอกลงในที่เก็บข้อมูลลับที่การทดสอบ CI จะเข้าถึงได้ต่อการทดสอบแต่ละครั้ง
- ดูข้อมูลเพิ่มเติมและวิธีการได้ที่เอกสารประกอบ App Check
ขั้นตอนที่ 6: ตรวจสอบคำขอของแอปและตัดสินใจเกี่ยวกับการบังคับใช้
ก่อนที่จะเริ่มการบังคับใช้ คุณจะต้องตรวจสอบว่าการบังคับใช้จะไม่รบกวนผู้ใช้ที่ถูกต้องตามกฎหมายของแอป โดยไปที่หน้าจอเมตริก App Check เพื่อดูเปอร์เซ็นต์การเข้าชมของแอปที่ได้รับการยืนยัน ล้าสมัย หรือไม่ถูกต้องตามกฎหมาย เมื่อเห็นว่าการเข้าชมส่วนใหญ่ได้รับการยืนยันแล้ว คุณก็เปิดใช้การบังคับใช้ได้
ดูข้อมูลเพิ่มเติมและวิธีการได้ที่เอกสารประกอบ Firebase App Check