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