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-Thing

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

ภาพรวม

หากต้องการใช้ผู้ให้บริการ 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 และ เว็บ ไคลเอ็นต์