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

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

ปัจจุบันผู้ให้บริการ Play Integrity ในตัวรองรับเฉพาะแอป Android ที่เผยแพร่โดย Google 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 ของหน้า คลิก ลิงก์โปรเจ็กต์ Cloud จากนั้นเลือกโปรเจ็กต์ Firebase ของคุณจากรายการโปรเจ็กต์ Google Cloud โปรเจ็กต์ที่คุณเลือกที่นี่จะต้องเป็นโปรเจ็กต์ Firebase เดียวกันกับโปรเจ็กต์ที่คุณลงทะเบียนแอปของคุณ (ดูขั้นตอนถัดไป)

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

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

  4. ทางเลือก : ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งเวลาถ่ายทอดสด (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 ) ให้เพิ่มการพึ่งพาสำหรับ App Check ไลบรารี่สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมเวอร์ชันไลบรารี

dependencies {
    // Import the BoM for the Firebase platform
    implementation(platform("com.google.firebase:firebase-bom:32.7.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 เวอร์ชันที่เข้ากันได้เสมอ

(ทางเลือก) เพิ่มการพึ่งพาไลบรารี Firebase โดยไม่ ใช้ BoM

หากคุณเลือกที่จะไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชันในบรรทัดการขึ้นต่อกัน

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

3. เริ่มต้นการตรวจสอบแอป

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

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