เริ่มต้นใช้งาน App Check กับ Play Integrity ใน Android

หน้านี้แสดงวิธีเปิดใช้ App Check ในแอป Android โดยใช้ผู้ให้บริการ Play Integrity ในตัว การเปิดใช้ App Check จะช่วยให้มั่นใจว่ามีแต่แอปของคุณเท่านั้นที่สามารถเข้าถึงทรัพยากร Firebase ของโครงการได้ ดูภาพรวมของฟีเจอร์นี้

ปัจจุบันผู้ให้บริการ Play Integrity ในตัวรองรับเฉพาะแอป Android ที่จัดจำหน่ายโดย Google Play เท่านั้น หากต้องการใช้ฟีเจอร์นอก Play ของ Play Integrity หรือใช้ App Check กับผู้ให้บริการที่กําหนดเองของคุณ โปรดดู ใช้ผู้ให้บริการ App Check ที่กําหนดเอง

1. ตั้งค่าโปรเจ็กต์ Firebase

  1. เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้ทำ

  2. เปิดใช้ Play Integrity API โดยทำดังนี้

    1. ใน Google Play Console ให้เลือกแอปหรือเพิ่มแอปหากยังไม่ได้ทำ

    2. ในส่วนรุ่น ให้คลิกความสมบูรณ์ของแอป

    3. ไปที่ส่วน Play Integrity API ของหน้าเว็บ แล้วคลิกลิงก์โปรเจ็กต์ที่อยู่ในระบบคลาวด์ แล้วเลือกโปรเจ็กต์ Firebase จากรายการโปรเจ็กต์ Google Cloud โปรเจ็กต์ที่คุณเลือกที่นี่ต้องเป็นโปรเจ็กต์ Firebase เดียวกันกับโปรเจ็กต์ที่คุณลงทะเบียนแอป (ดูขั้นตอนถัดไป)

  3. ลงทะเบียนแอปเพื่อใช้ App Check กับผู้ให้บริการความสมบูรณ์ของ Play ในส่วน App Check ของคอนโซล Firebase คุณจะต้องระบุลายนิ้วมือ SHA-256 ของใบรับรอง App Signing

    โดยปกติคุณต้องลงทะเบียนแอปทั้งหมดของโปรเจ็กต์ เนื่องจากเมื่อเปิดใช้การบังคับใช้สำหรับผลิตภัณฑ์ Firebase จะมีเพียงแอปที่ลงทะเบียนไว้แล้วเท่านั้นที่จะเข้าถึงทรัพยากรแบ็กเอนด์ของผลิตภัณฑ์ได้

  4. ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า 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.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:18.0.0")
}
หากกำลังมองหาโมดูลไลบรารีสำหรับ Kotlin โดยเฉพาะ ตั้งแต่เดือนตุลาคม 2023 (Firebase BoM 32.5.0) ทั้งนักพัฒนาซอฟต์แวร์ Kotlin และ Java จะขึ้นอยู่กับโมดูลไลบรารีหลักได้ (ดูรายละเอียดได้ที่คำถามที่พบบ่อยเกี่ยวกับโครงการริเริ่มนี้)

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

เมื่อเข้าใจว่า App Check จะส่งผลต่อผู้ใช้อย่างไรและพร้อมที่จะดำเนินการต่อแล้ว คุณจะเปิดใช้การบังคับใช้ App Check ได้โดยทำดังนี้

ใช้ App Check ในสภาพแวดล้อมการแก้ไขข้อบกพร่อง

หากหลังจากลงทะเบียนแอปสำหรับ App Check แล้ว คุณต้องการเรียกใช้แอปในสภาพแวดล้อมที่ App Check จะไม่จัดว่าถูกต้องตามปกติ เช่น โปรแกรมจำลองระหว่างการพัฒนาหรือจากสภาพแวดล้อมการผสานรวมอย่างต่อเนื่อง (CI) คุณจะสร้างบิลด์การแก้ไขข้อบกพร่องของแอปที่ใช้ผู้ให้บริการแก้ไขข้อบกพร่อง App Check แทนผู้ให้บริการเอกสารรับรองจริงได้

โปรดดูหัวข้อใช้ App Check กับผู้ให้บริการแก้ไขข้อบกพร่องใน Android