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

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

Firebase App Check ช่วยปกป้องการเรียกจากแอปของคุณไปยัง Google Maps Platform โดยบล็อกการเข้าชมที่มาจากแหล่งที่มาอื่นที่ไม่ใช่แอปที่ถูกต้อง โดยจะตรวจสอบโทเค็นจากผู้ให้บริการการรับรอง เช่น Play Integrity การผสานรวมแอปกับ 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 จะไม่ทำงานในอุปกรณ์ที่ผู้ให้บริการการรับรองพิจารณาว่าถูกบุกรุกหรือไม่น่าเชื่อถือ หากต้องการรองรับอุปกรณ์ดังกล่าว คุณสามารถติดตั้งใช้งานบริการการรับรองที่กำหนดเองได้ ดูข้อมูลเพิ่มเติมได้ในวิธีการ

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

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

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

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

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

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

ต่อไปนี้คือสิ่งที่ควรพิจารณาเมื่อวางแผนการผสานรวม

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

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

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

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

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

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

  • แอปที่ผสานรวม Places SDK เวอร์ชัน 4.1 ขึ้นไป
  • ลายนิ้วมือ SHA-256 ของแอป
  • ชื่อแพ็กเกจของแอป
  • คุณต้องเป็นเจ้าของแอปใน Cloud Console
  • คุณจะต้องใช้รหัสโปรเจ็กต์ของแอปจาก Cloud Console

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

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

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

ดูข้อมูลเกี่ยวกับการใช้ Play Integrity ซึ่งเป็นผู้ให้บริการการรับรองเริ่มต้นได้ที่หัวข้อ เริ่มต้นใช้งาน App Check กับ Play Integrity บน Android

  1. ผสานรวม Places SDK เข้ากับแอปหากยังไม่ได้ทำ
  2. จากนั้นเริ่มต้นใช้งาน App Check และ ไคลเอ็นต์ Places

    // Initialize App Check
    FirebaseApp.initializeApp(/* context= */ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            PlayIntegrityAppCheckProviderFactory.getInstance());
      
    // Initialize Places SDK
    Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
    PlacesClient client = Places.createClient(context);.

ขั้นตอนที่ 3: เพิ่มผู้ให้บริการโทเค็น

หลังจากเริ่มต้นใช้งาน Places API แล้ว ให้เรียกใช้ setPlacesAppCheckTokenProvider() เพื่อตั้งค่า PlacesAppCheckTokenProvider

Places.initializeWithNewPlacesApiEnabled(context, API_KEY);
Places.setPlacesAppCheckTokenProvider(new TokenProvider());
PlacesClient client = Places.createClient(context);.

นี่คือตัวอย่างการติดตั้งใช้งานอินเทอร์เฟซตัวดึงข้อมูลโทเค็น

  /** Sample client implementation of App Check token fetcher interface. */
  static class TokenProvider implements PlacesAppCheckTokenProvider {
    @Override
    public ListenableFuture<String> fetchAppCheckToken() {
      SettableFuture<String> future = SettableFuture.create();
      FirebaseAppCheck.getInstance()
          .getAppCheckToken(false)
          .addOnSuccessListener(
              appCheckToken -> {
                future.set(appCheckToken.getToken());
              })
          .addOnFailureListener(
              ex -> {
                future.setException(ex);
              });

      return future;
    }
  }

ขั้นตอนที่ 4: เปิดใช้การแก้ไขข้อบกพร่อง (ไม่บังคับ)

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

วิธีเรียกใช้แอปในโปรแกรมจำลองหรือในอุปกรณ์ทดสอบ

  • เพิ่มไลบรารี App Check ลงในไฟล์ build.gradle
  • กำหนดค่า App Check ให้ใช้โรงงานผู้ให้บริการการแก้ไขข้อบกพร่องในบิลด์การแก้ไขข้อบกพร่อง
  • เปิดแอป ซึ่งจะสร้างโทเค็นการแก้ไขข้อบกพร่องในเครื่อง เพิ่มโทเค็นนี้ลงในคอนโซล Firebase
  • ดูข้อมูลและวิธีการเพิ่มเติมได้ในเอกสารประกอบของ App Check

วิธีเรียกใช้แอปในสภาพแวดล้อม CI

  • สร้างโทเค็นการแก้ไขข้อบกพร่องในคอนโซล Firebase แล้วเพิ่มลงในที่เก็บคีย์ที่ปลอดภัยของระบบ CI
  • เพิ่มไลบรารี App Check ลงในไฟล์ build.gradle
  • กำหนดค่าตัวแปรบิลด์ CI ให้ใช้โทเค็นการแก้ไขข้อบกพร่อง
  • ใส่โค้ดในคลาสทดสอบที่ต้องใช้โทเค็น App Check ด้วย DebugAppCheckTestHelper
  • ดูข้อมูลและวิธีการเพิ่มเติมได้ในเอกสารประกอบของ App Check

ขั้นตอนที่ 5: ตรวจสอบคำขอของแอปและตัดสินใจเกี่ยวกับการบังคับใช้

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

ดูข้อมูลและวิธีการเพิ่มเติมได้ในเอกสารประกอบของ Firebase App Check