หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป Android โดยใช้ผู้ให้บริการ Play Integrity ในตัว การเปิดใช้ App Check จะช่วยให้มั่นใจว่ามีแต่แอปของคุณเท่านั้นที่สามารถเข้าถึงทรัพยากร Firebase ของโครงการได้ ดูภาพรวมของฟีเจอร์นี้
ปัจจุบันผู้ให้บริการ Play Integrity ในตัวรองรับเฉพาะแอป Android ที่จัดจำหน่ายโดย Google Play เท่านั้น หากต้องการใช้ฟีเจอร์นอก Play ของ Play Integrity หรือใช้ App Check กับผู้ให้บริการที่กําหนดเองของคุณ โปรดดู ใช้ผู้ให้บริการ App Check ที่กําหนดเอง
1. ตั้งค่าโปรเจ็กต์ Firebase
เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้ทำ
เปิดใช้ Play Integrity API โดยทำดังนี้
ใน Google Play Console ให้เลือกแอปหรือเพิ่มแอปหากยังไม่ได้ทำ
ในส่วนรุ่น ให้คลิกความสมบูรณ์ของแอป
ไปที่ส่วน Play Integrity API ของหน้าเว็บ แล้วคลิกลิงก์โปรเจ็กต์ที่อยู่ในระบบคลาวด์ แล้วเลือกโปรเจ็กต์ Firebase จากรายการโปรเจ็กต์ Google Cloud โปรเจ็กต์ที่คุณเลือกที่นี่ต้องเป็นโปรเจ็กต์ Firebase เดียวกันกับโปรเจ็กต์ที่คุณลงทะเบียนแอป (ดูขั้นตอนถัดไป)
ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการความสมบูรณ์ของ Play ในส่วน App Check ของคอนโซล Firebase คุณจะต้องระบุลายนิ้วมือ SHA-256 ของใบรับรอง App Signing
โดยปกติคุณต้องลงทะเบียนแอปทั้งหมดของโปรเจ็กต์ เนื่องจากเมื่อเปิดใช้การบังคับใช้สำหรับผลิตภัณฑ์ Firebase จะมีเพียงแอปที่ลงทะเบียนไว้แล้วเท่านั้นที่จะเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์ได้
ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time to Live ที่กำหนดเอง (TTL) สำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการ คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน โปรดคำนึงถึงข้อดีต่อไปนี้เมื่อเปลี่ยนค่านี้
- การรักษาความปลอดภัย: TTL ขนาดสั้นจะให้การรักษาความปลอดภัยที่รัดกุมกว่า เนื่องจากผู้บุกรุกคนอื่นๆ จะใช้โทเค็นที่รั่วไหลหรือดักจับได้น้อยลง
- ประสิทธิภาพ: TTL ที่สั้นหมายความว่าแอปรับรองได้บ่อยขึ้น เนื่องจากกระบวนการรับรองแอปจะเพิ่มเวลาในการตอบสนองให้กับคำขอเครือข่ายทุกครั้งที่มีการดำเนินการ ดังนั้น TTL สั้นๆ จึงอาจส่งผลต่อประสิทธิภาพของแอป
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นลงและเอกสารรับรองซ้ำบ่อยๆ ทำให้โควต้าของคุณหมดเร็วขึ้น และสำหรับบริการที่มีค่าใช้จ่ายอาจมีค่าใช้จ่ายสูงกว่า โปรดดูโควต้าและขีดจำกัด
TTL เริ่มต้นที่ 1 ชั่วโมง เหมาะสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรช โทเค็นที่ระยะเวลา TTL ประมาณครึ่งหนึ่ง
2. เพิ่มไลบรารี App Check ลงในแอป
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติจะเป็น<project>/<app-module>/build.gradle.kts
หรือ
<project>/<app-module>/build.gradle
)
ให้เพิ่มทรัพยากร Dependency สำหรับไลบรารี App Check สำหรับ Android เราขอแนะนำให้ใช้
Firebase Android BoM
เพื่อควบคุมเวอร์ชันไลบรารี
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.0")) // Add the dependencies for the App Check libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity") }
การใช้ Firebase Android BoM จะทำให้แอปใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มทรัพยากร Dependency ของไลบรารี Firebase โดยไม่ใช้ BoM
หากเลือกไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดทรัพยากร Dependency
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการในแอป เราขอแนะนำอย่างยิ่งให้ใช้ BoM เพื่อจัดการเวอร์ชันไลบรารี ซึ่งจะทำให้มั่นใจได้ว่าทุกเวอร์ชันจะใช้งานร่วมกันได้
dependencies { // Add the dependencies for the App Check libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-playintegrity:18.0.0") }
3. เริ่มต้น App Check
เพิ่มโค้ดการเริ่มต้นต่อไปนี้ลงในแอปเพื่อให้แอปทำงานก่อนที่คุณจะใช้ Firebase SDK อื่นๆ
Kotlin+KTX
Firebase.initialize(context = this) Firebase.appCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance(), )
Java
FirebaseApp.initializeApp(/*context=*/ this); FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); firebaseAppCheck.installAppCheckProviderFactory( PlayIntegrityAppCheckProviderFactory.getInstance());
ขั้นตอนถัดไป
เมื่อติดตั้งไลบรารี App Check ในแอปแล้ว ให้เริ่มเผยแพร่แอปที่อัปเดตให้แก่ผู้ใช้
แอปไคลเอ็นต์ที่อัปเดตแล้วจะเริ่มส่งโทเค็น App Check พร้อมกับคำขอทุกคำขอที่ส่งไปยัง Firebase แต่ผลิตภัณฑ์ Firebase จะไม่กำหนดให้โทเค็นใช้งานได้จนกว่าคุณจะเปิดใช้การบังคับใช้ในส่วน App Check ของคอนโซล Firebase
ตรวจสอบเมตริกและเปิดใช้การบังคับใช้
อย่างไรก็ตาม ก่อนเปิดใช้การบังคับใช้ คุณควรตรวจสอบว่าการดำเนินการดังกล่าวจะไม่รบกวนผู้ใช้ที่ถูกต้องที่มีอยู่ ในทางกลับกัน หากคุณพบว่ามีการใช้ทรัพยากรของแอปที่น่าสงสัย คุณอาจต้องเปิดใช้การบังคับใช้ในเร็วๆ นี้
เพื่อช่วยคุณในการตัดสินใจนี้ คุณสามารถดูเมตริก App Check สำหรับบริการที่คุณใช้
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Realtime Database, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้ App Check
เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมที่จะดำเนินการต่อแล้ว คุณจะเปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้
- เปิดใช้การบังคับใช้ App Check สำหรับ Realtime Database, Cloud Firestore, Cloud Storage และการตรวจสอบสิทธิ์ (เบต้า)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่ App Check จะไม่จัดว่าถูกต้องตามปกติ เช่น โปรแกรมจำลองระหว่างการพัฒนาหรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณจะสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการแก้ไขข้อบกพร่อง App Check แทนผู้ให้บริการเอกสารรับรองจริงได้
โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องใน Android