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

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

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

  4. ไม่บังคับ: ในการตั้งค่าการลงทะเบียนแอป ให้ตั้งค่า Time-To-Live (TTL) ที่กำหนดเองสำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการ คุณตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อเปลี่ยนค่านี้ โปรด คำนึงถึงข้อแลกเปลี่ยนต่อไปนี้

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

    TTL เริ่มต้นของ 1 ชั่วโมง ถือว่าเหมาะสมสำหรับแอปส่วนใหญ่ โปรดทราบว่าApp Checkไลบรารีจะรีเฟรช โทเค็นที่ประมาณครึ่งหนึ่งของระยะเวลา TTL

กำหนดค่าการตั้งค่าขั้นสูง (ไม่บังคับ)

App Check มีการตั้งค่าหลายอย่างเพื่อรองรับ Use Case ขั้นสูง รวมถึงการเผยแพร่แอปนอก Google Play คุณกำหนดการตั้งค่าเหล่านี้ได้ในส่วนApp Check ของคอนโซล Firebase สำหรับแอป Android แต่ละแอป เราขอแนะนำ ให้คุณกำหนดค่าการตั้งค่าเหล่านี้ตามตารางต่อไปนี้เมื่อลงทะเบียนแอปเป็นครั้งแรก

ช่องทางการเผยแพร่แอป 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.2.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 เวอร์ชันที่เข้ากันได้อยู่เสมอ

(ทางเลือก)  เพิ่มการอ้างอิงไลบรารี 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:19.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