Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

  • คุณต้องการใช้ผู้ให้บริการอื่นที่ไม่ใช่ DeviceCheck หรือ App Attest บน iOS, SafetyNet บน Android หรือ reCAPTCHA ในเว็บแอป

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

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

ภาพรวม

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

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

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

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

  1. ติดตั้งและเริ่มต้น 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. ตัวเลือก: ตั้งเวลาในการถ่ายทอดสด (TTL) สำหรับ App ตรวจสอบโทเค็นที่ออกโดยผู้ให้บริการที่กำหนดเองของคุณโดยการส่งผ่าน AppCheckTokenOptions คัดค้านการ createToken() คุณสามารถตั้งค่า TTL เป็นค่าใดก็ได้ระหว่าง 30 นาทีถึง 7 วัน เมื่อตั้งค่านี้ ให้ระวังการประนีประนอมต่อไปนี้:

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

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

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

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