Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

ใช้ผู้ให้บริการ App Check แบบกำหนดเอง

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

App Check รองรับผู้ให้บริการหลายรายในตัว: DeviceCheck และ App Attest บนแพลตฟอร์ม Apple, Play Integrity และ SafetyNet บน Android และ reCAPTCHA v3 และ reCAPTCHA Enterprise ในเว็บแอป ( ภาพรวม ) ผู้ให้บริการเหล่านี้เป็นผู้ให้บริการที่เข้าใจดีและควรตอบสนองความต้องการของนักพัฒนาส่วนใหญ่ อย่างไรก็ตาม คุณสามารถใช้ผู้ให้บริการ App Check ที่คุณกำหนดเองได้ การใช้ผู้ให้บริการแบบกำหนดเองมีความจำเป็นเมื่อ:

  • คุณต้องการใช้ผู้ให้บริการอื่นที่ไม่ใช่ผู้ให้บริการในตัว

  • คุณต้องการใช้ผู้ให้บริการในตัวในลักษณะที่ไม่ได้รับการสนับสนุน

  • คุณต้องการตรวจสอบอุปกรณ์โดยใช้แพลตฟอร์มอื่นที่ไม่ใช่ Apple, Android และเว็บ ตัวอย่างเช่น คุณสามารถสร้างผู้ให้บริการ App Check สำหรับระบบปฏิบัติการเดสก์ท็อปหรืออุปกรณ์ Internet-of-Things

  • คุณต้องการใช้เทคนิคการยืนยันของคุณเองบนทุกแพลตฟอร์ม

ภาพรวม

หากต้องการใช้ผู้ให้บริการ App Check ที่กำหนดเอง คุณต้องมีสภาพแวดล้อมแบ็กเอนด์ที่ปลอดภัยซึ่งเรียกใช้ Node.js Firebase Admin SDK ได้ ซึ่งอาจเป็น Cloud Functions แพลตฟอร์มคอนเทนเนอร์ เช่น Cloud Run หรือเซิร์ฟเวอร์ของคุณเอง

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

โดยปกติ คุณจะเปิดเผยบริการนี้เป็นตำแหน่งข้อมูล REST หรือ gRPC แต่รายละเอียดนี้ขึ้นอยู่กับคุณ

สร้างจุดสิ้นสุดการรับโทเค็น

  1. ติดตั้งและเริ่มต้น Admin SDK

  2. สร้างปลายทางที่เข้าถึงได้ของเครือข่ายซึ่งสามารถรับข้อมูลความถูกต้องจากลูกค้าของคุณได้ ตัวอย่างเช่น การใช้ Cloud Functions:

    // Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken
    exports.fetchAppCheckToken = functions.https.onCall((authenticityData, context) => {
      // ...
    });
    
  3. เพิ่มตรรกะปลายทางที่ประเมินข้อมูลความถูกต้อง นี่คือตรรกะหลักของผู้ให้บริการ App Check แบบกำหนดเองของคุณ ซึ่งคุณจะต้องเขียนด้วยตัวเอง

  4. หากคุณพิจารณาแล้วว่าไคลเอ็นต์เป็นของแท้ ให้ใช้ Admin SDK เพื่อสร้างโทเค็น App Check แล้วส่งคืนพร้อมเวลาหมดอายุให้กับลูกค้า:

    const admin = require('firebase-admin');
    admin.initializeApp();
    
    // ...
    
    admin.appCheck().createToken(appId)
        .then(function (appCheckToken) {
          // Token expires in an hour.
          const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60;
    
          // Return appCheckToken and expiresAt to the client.
        })
       .catch(function (err) {
         console.error('Unable to create App Check token.');
         console.error(err);
       });
    

    หากคุณไม่สามารถตรวจสอบความถูกต้องของไคลเอ็นต์ได้ ให้ส่งคืนข้อผิดพลาด (เช่น ส่งคืนข้อผิดพลาด HTTP 403)

  5. ไม่บังคับ : ตั้งค่า time-to-live (TTL) สำหรับโทเค็น App Check ที่ออกโดยผู้ให้บริการที่กำหนดเองของคุณโดยส่งออบเจ็กต์ AppCheckTokenOptions ไปยัง createToken() คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อตั้งค่านี้ ให้ระวังการประนีประนอมต่อไปนี้:

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

    TTL เริ่มต้น 1 ชั่วโมงนั้นสมเหตุสมผลสำหรับแอปส่วนใหญ่

ขั้นตอนถัดไป

เมื่อคุณได้ใช้ตรรกะฝั่งเซิร์ฟเวอร์ของผู้ให้บริการที่กำหนดเองแล้ว เรียนรู้วิธีใช้งานจาก Apple , Android และ เว็บ ไคลเอ็นต์ของคุณ