เลือกแพลตฟอร์ม: 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 มีผล (ระยะเวลาที่ใช้งานได้หรือ 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