เลือกแพลตฟอร์ม: Android iOS JavaScript

ใช้ App Check เพื่อรักษาความปลอดภัยของคีย์ API

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

App Check เหมาะกับฉันไหม

เราขอแนะนำให้ใช้ App Check ในกรณีส่วนใหญ่ แต่ไม่จำเป็นต้องใช้หรือระบบไม่รองรับ App Check ในกรณีต่อไปนี้

  • แอปส่วนตัวหรือแอปทดลอง หากแอปของคุณไม่สามารถเข้าถึงได้แบบสาธารณะ คุณก็ไม่จำเป็นต้องใช้ App Check
  • หากแอปของคุณใช้เฉพาะแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์ คุณก็ไม่จำเป็นต้องใช้ App Check อย่างไรก็ตาม หากไคลเอ็นต์สาธารณะ (เช่น แอปบนอุปกรณ์เคลื่อนที่) ใช้เซิร์ฟเวอร์ที่สื่อสารกับ GMP ให้พิจารณาใช้ App Check เพื่อปกป้องเซิร์ฟเวอร์นั้นแทน GMP

ภาพรวมของขั้นตอนการติดตั้งใช้งาน

โดยภาพรวมแล้ว ขั้นตอนที่คุณต้องทำเพื่อผสานรวมแอปกับ App Check มีดังนี้

  1. เพิ่ม Firebase ลงในแอป
  2. เพิ่มและเริ่มต้นใช้งานไลบรารี App Check
  3. เพิ่มผู้ให้บริการโทเค็นลงในแอป
  4. เริ่มต้นใช้งาน Maps JS และ App Check API
  5. เปิดใช้การแก้ไขข้อบกพร่อง
  6. ตรวจสอบคำขอแอปและตัดสินใจเกี่ยวกับการบังคับใช้

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

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

ข้อควรพิจารณาเมื่อวางแผนการผสานรวม App Check

สิ่งที่คุณควรพิจารณาขณะวางแผนการผสานรวมมีดังนี้

  • reCAPTCHA Enterprise ซึ่งเป็นหนึ่งในผู้ให้บริการการรับรองที่เราแนะนำจะเรียกเก็บเงินสำหรับการประเมินมากกว่า 10,000 รายการต่อเดือน

    ผู้ให้บริการการรับรองรายอื่นๆ ที่เราแนะนำคือ reCAPTCHA v3 ซึ่งมีโควต้า หลังจากนั้นระบบจะไม่ประเมินการเข้าชม

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

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

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

ผสานรวมแอปกับ App Check

ข้อกำหนดเบื้องต้นและข้อกำหนด

ขั้นตอนที่ 1: เพิ่ม Firebase ลงในแอป

ทำตามวิธีการในเอกสารประกอบสำหรับนักพัฒนาซอฟต์แวร์ Firebase เพื่อเพิ่ม Firebase ลงในแอป

ขั้นตอนที่ 2: เพิ่มไลบรารี App Check และเริ่มต้น App Check

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

ขั้นตอนที่ 3: โหลดไลบรารี Maps JS API

  1. โหลดไลบรารีหลักและไลบรารี Maps ดังที่แสดงในข้อมูลโค้ดต่อไปนี้ ดูข้อมูลและวิธีการเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับ Maps JavaScript API

    async function init() {
      const {Settings} = await google.maps.importLibrary('core');
      const {Map} = await google.maps.importLibrary('maps');
    }  

ขั้นตอนที่ 4: เริ่มต้นใช้งาน Maps API และ App Check API

  1. เริ่มต้น App Check โดยใช้การกำหนดค่าที่คอนโซล Firebase มีให้
  2. ตรวจสอบว่าคำขอที่ส่งไปยัง Maps JS API มีโทเค็น App Check แนบมาด้วย โดยทำดังนี้
      import {initializeApp} from 'firebase/app';
      import {
        getToken,
        initializeAppCheck,
        ReCaptchaEnterpriseProvider,
      } from 'firebase/app-check';
        
      async function init() {
        const {Settings} = await google.maps.importLibrary('core');
        const {Map} = await google.maps.importLibrary('maps');
      
        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);
      
        // 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