หน้านี้แสดงวิธีเปิดใช้ 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) ของโทเค็น
ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่าระยะเวลาที่ใช้ได้ (TTL) ที่กำหนดเองสำหรับโทเค็น App Check ที่ผู้ให้บริการออกให้ คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ โปรดคำนึงถึงข้อดีข้อเสียต่อไปนี้
- ความปลอดภัย: TTL ที่สั้นลงจะให้ความปลอดภัยที่รัดกุมยิ่งขึ้น เนื่องจากช่วยลดกรอบเวลาที่ผู้โจมตีสามารถใช้โทเค็นที่รั่วไหลหรือถูกดักจับในทางที่ผิดได้
- ประสิทธิภาพ: TTL ที่สั้นลงหมายความว่าแอปจะทำการรับรองบ่อยขึ้น เนื่องจากกระบวนการรับรองแอปจะเพิ่มเวลาในการตอบสนองให้กับคำขอเครือข่ายทุกครั้งที่ดำเนินการ TTL ที่สั้นจึงอาจส่งผลต่อประสิทธิภาพของแอป
- โควต้าและค่าใช้จ่าย: TTL ที่สั้นลงและการรับรองอีกครั้งบ่อยครั้งจะทำให้โควต้าหมดเร็วขึ้น และอาจมีค่าใช้จ่ายมากขึ้นสำหรับบริการที่มีค่าใช้จ่าย ดูโควต้าและขีดจำกัด
TTL เริ่มต้นที่ 1 ชั่วโมง เหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าไลบรารี App Check จะรีเฟรชโทเค็นที่ประมาณครึ่งหนึ่งของระยะเวลา TTL
กำหนดการตั้งค่าขั้นสูง (ไม่บังคับ)
App Check มีการตั้งค่ามากมายเพื่อรองรับ Use Case ขั้นสูง ซึ่งรวมถึงการเผยแพร่แอปนอก 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:35.0.2")) // 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:20.0.0") }
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 สำหรับ 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 สำหรับ iOS, Maps JavaScript API และ Places API (ใหม่)
- เปิดใช้การบังคับใช้ App Check สำหรับ Cloud Functions
ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง
หลังจากลงทะเบียนแอปสำหรับ App Check แล้ว หากต้องการเรียกใช้แอปในสภาพแวดล้อมที่ปกติแล้ว App Check จะไม่จัดประเภทว่าถูกต้อง เช่น โปรแกรมจำลองระหว่างการพัฒนา หรือจากสภาพแวดล้อมการรวมอย่างต่อเนื่อง (CI) คุณสามารถสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการแก้ไขข้อบกพร่อง App Check แทนผู้ให้บริการเอกสารรับรองจริงได้
ดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องใน Android