หน้านี้จะแสดงวิธีเปิดใช้ App Check ในแอป Android โดยใช้ ผู้ให้บริการ Play Integrity ในตัว เมื่อเปิดใช้ App Check คุณจะช่วยให้มั่นใจ ว่ามีเพียงแอปของคุณเท่านั้นที่เข้าถึงทรัพยากรแบ็กเอนด์ของโปรเจ็กต์ได้ ดูภาพรวมของฟีเจอร์นี้
ผู้ให้บริการ Play Integrity รองรับแอป Android ที่เผยแพร่ใน Google Play, นอก Google Play หรือทั้ง 2 ที่ หากกรณีการใช้งานของคุณต้องใช้ฟีเจอร์ Play Integrity ที่ App Check ไม่ได้ติดตั้งใช้งาน หรือหากต้องการใช้ App Check กับผู้ให้บริการที่กำหนดเอง โปรดดูหัวข้อ ติดตั้งใช้งานผู้ให้บริการ App Check ที่กำหนดเอง
1. ตั้งค่าโปรเจ็กต์ Firebase
เพิ่ม Firebase ในโปรเจ็กต์ Android หากยังไม่ได้ ดำเนินการ
เปิดใช้ Play Integrity API โดยทำดังนี้
ใน Google Play Console เลือกแอปของคุณ หรือเพิ่มแอปหากยังไม่ได้ดำเนินการ
ในส่วนเผยแพร่ ให้คลิกความสมบูรณ์ของแอป
ไปที่ส่วน Play Integrity API ของหน้าเว็บ คลิก ลิงก์โปรเจ็กต์ที่อยู่ในระบบคลาวด์ แล้วเลือกโปรเจ็กต์ Firebase จากรายการ ของ Google Cloud โปรเจ็กต์ โปรเจ็กต์ที่คุณเลือกที่นี่ต้องเป็นโปรเจ็กต์ Firebase เดียวกับโปรเจ็กต์ที่คุณลงทะเบียนแอป (ดูขั้นตอนถัดไป)
ในคอนโซล Firebase ให้ไปที่ความปลอดภัย > App Check
ในแท็บแอป ให้ลงทะเบียนแอปเพื่อใช้ App Check กับ ผู้ให้บริการ Play Integrity คุณจะต้อง ระบุลายนิ้วมือ SHA-256 ของใบรับรองการลงนามของแอป
โดยปกติแล้วคุณจะต้องลงทะเบียนแอปทั้งหมดของโปรเจ็กต์ เนื่องจากเมื่อเปิดใช้การบังคับใช้สำหรับผลิตภัณฑ์ Firebase แล้ว เฉพาะแอปที่ลงทะเบียนเท่านั้นที่จะเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์ได้
ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time-to-live (TTL) ที่กำหนดเองสำหรับโทเค็นที่ผู้ให้บริการออกให้App Check คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ โปรดทราบถึงข้อดีข้อเสียต่อไปนี้
- ความปลอดภัย: TTL ที่สั้นลงจะช่วยเพิ่มความปลอดภัย เนื่องจากจะลดระยะเวลาที่ผู้โจมตีจะใช้โทเค็นที่รั่วไหลหรือถูกดักจับในทางที่ผิดได้
- ประสิทธิภาพ: TTL ที่สั้นลงหมายความว่าแอปจะทำการยืนยันตัวตนบ่อยขึ้น เนื่องจากกระบวนการยืนยันตัวตนของแอปจะเพิ่มเวลาในการตอบสนองให้กับคำขอเครือข่ายทุกครั้งที่ดำเนินการ ดังนั้น TTL ที่สั้นจึงอาจส่งผลต่อประสิทธิภาพของแอป
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นลงและการยืนยันตัวตนซ้ำบ่อยๆ จะทำให้โควต้าหมดเร็วขึ้น และสำหรับบริการที่ต้องชำระเงิน อาจมีค่าใช้จ่ายมากขึ้น ดูโควต้าและข้อจำกัด
TTL เริ่มต้นที่ 1 ชั่วโมง เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรช โทเค็นที่ประมาณครึ่งหนึ่งของระยะเวลา TTL
กำหนดค่าการตั้งค่าขั้นสูง (ไม่บังคับ)
App Check มีการตั้งค่าหลายอย่างเพื่อรองรับกรณีการใช้งานขั้นสูง รวมถึงการเผยแพร่แอปนอก Google Play คุณสามารถกำหนดค่าการตั้งค่าเหล่านี้สำหรับแอป Android ที่ลงทะเบียนแต่ละแอปได้ในแท็บ App Check > แอป ของคอนโซล Firebase เราขอแนะนำให้คุณกำหนดค่าการตั้งค่าเหล่านี้ ตามตารางต่อไปนี้เมื่อ ลงทะเบียนแอปเป็นครั้งแรก
| ช่องทางการเผยแพร่แอป | PLAY_RECOGNIZED | LICENSED | ระดับความสมบูรณ์ของอุปกรณ์ขั้นต่ำที่ยอมรับได้ |
|---|---|---|---|
| ใน Google Play เท่านั้น | ต้องระบุ | ต้องระบุ | ไม่ต้องตรวจสอบระดับความสมบูรณ์ของอุปกรณ์อย่างชัดเจน |
| นอก Google Play เท่านั้น | ไม่จำเป็น | ไม่จำเป็น | ความสมบูรณ์ของอุปกรณ์ |
| ใน Google Play และนอก Google Play | ต้องระบุ | ไม่จำเป็น | ไม่ต้องตรวจสอบระดับความสมบูรณ์ของอุปกรณ์อย่างชัดเจน |
รายละเอียด
การตั้งค่าขั้นสูงแต่ละรายการจะสอดคล้องกับป้ายกำกับการตัดสินความสมบูรณ์ของ Play Integrity โปรดดูรายละเอียดเพิ่มเติมในเอกสารประกอบของ Play Integrity
- โดยค่าเริ่มต้น App Check กำหนดให้ใช้
PLAY_RECOGNIZEDสำหรับการจดจำแอป แอปที่ไม่ได้เผยแพร่ใน Google Play จะไม่มีสิทธิ์ได้รับป้ายกำกับนี้ - โดยค่าเริ่มต้น App Check ไม่กำหนดให้ใช้
LICENSEDป้ายกำกับสำหรับการให้สัญญาอนุญาตแอป เฉพาะผู้ใช้ที่ติดตั้งหรืออัปเดตแอปจาก Google Play โดยตรงเท่านั้นที่มีสิทธิ์ได้รับป้ายกำกับนี้ โดยค่าเริ่มต้น App Check จะไม่ตรวจสอบผลการตรวจสอบความสมบูรณ์ของอุปกรณ์ อย่างชัดเจน App Check รองรับการตรวจสอบระดับความสมบูรณ์ของอุปกรณ์ 3 ระดับต่อไปนี้อย่างชัดเจน โดยเรียงตามลำดับความสมบูรณ์ของอุปกรณ์ที่เพิ่มขึ้น
ความสมบูรณ์พื้นฐาน ทำให้ App Check กำหนดให้ใช้ป้ายกำกับสำหรับการจดจำอุปกรณ์
MEETS_BASIC_INTEGRITYแอปของคุณต้อง เลือกใช้จาก Google Play Consoleก่อนจึงจะมีสิทธิ์ได้รับป้ายกำกับ ไม่บังคับนี้ความสมบูรณ์ของอุปกรณ์ ทำให้ App Check กำหนดให้ใช้ป้ายกำกับสำหรับการจดจำอุปกรณ์
MEETS_DEVICE_INTEGRITYแอปทั้งหมดจะมีสิทธิ์ได้รับป้ายกำกับนี้โดยอัตโนมัติความสมบูรณ์ขั้นสูง ทำให้ App Check กำหนดให้ใช้ป้ายกำกับสำหรับการจดจำอุปกรณ์
MEETS_STRONG_INTEGRITYแอปของคุณต้อง เลือกใช้จาก Google Play Consoleก่อนจึงจะมีสิทธิ์ได้รับป้ายกำกับ ไม่บังคับนี้
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:34.12.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:19.0.2") }
3. เริ่มต้น App Check
เพิ่มโค้ดการเริ่มต้นต่อไปนี้ลงในแอปเพื่อให้โค้ดทำงานก่อนที่คุณจะใช้ Firebase SDK อื่นๆ
Kotlin
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 สำหรับ Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API และ Places API (ใหม่)
- ตรวจสอบเมตริกคำขอ App Check สำหรับ Cloud Functions
เปิดใช้การบังคับใช้ App Check
เมื่อเข้าใจผลกระทบของ App Check ต่อผู้ใช้และพร้อมที่จะ ดำเนินการต่อแล้ว คุณสามารถเปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้
- เปิดใช้App Check การบังคับใช้ สำหรับ Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API และ Places API (ใหม่)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่ App Check ปกติจะไม่จัดประเภทว่าถูกต้อง เช่น โปรแกรมจำลองระหว่างการพัฒนา หรือจากสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการการแก้ไขข้อบกพร่อง App Check แทนผู้ให้บริการการยืนยันตัวตนจริง
ดูหัวข้อใช้ App Check กับผู้ให้บริการการแก้ไขข้อบกพร่องใน Android