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

หน้านี้แสดงวิธีเปิดใช้ 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

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

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

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

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

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

  3. ในคอนโซล Firebase ให้ไปที่ความปลอดภัย > App Check

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

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

  5. ไม่บังคับ: ตั้งค่า 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

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

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

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

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