เมื่อเรียกใช้ API โดยตรงจากแอปบนอุปกรณ์เคลื่อนที่หรือเว็บแอป (เช่น API ที่อนุญาตให้เข้าถึงโมเดล Generative AI) API จะเสี่ยงต่อการถูกไคลเอ็นต์ที่ไม่ได้รับอนุญาตละเมิด คุณสามารถใช้ Firebase App Check เพื่อยืนยันว่าการเรียก API ขาเข้าทั้งหมด มาจากแอปจริงของคุณ เพื่อช่วยปกป้อง API เหล่านี้
Firebase AI Logic มีพร็อกซีเกตเวย์ที่ช่วยให้คุณผสานรวมกับ Firebase App Check และปกป้อง API ของโมเดล Generative AI ที่แอปบนอุปกรณ์เคลื่อนที่และเว็บแอปของคุณเรียกใช้ การใช้ App Check กับ SDK ของ Firebase AI Logic รองรับการกำหนดค่าทั้งหมดของเรา
ปกป้องผู้ให้บริการ "Gemini API" ทั้ง 2 ราย ได้แก่ Gemini Developer API และ Vertex AI Gemini API
ปกป้องทุกรุ่นที่รองรับ ทั้งรุ่น Gemini และรุ่น Imagen
ข้อมูลสรุปในระดับสูงเกี่ยวกับวิธีการทำงานของ App Check
เมื่อใช้ App Check อุปกรณ์ที่เรียกใช้แอปของคุณจะใช้ผู้ให้บริการการรับรองแอปหรืออุปกรณ์ ซึ่งจะยืนยันข้อมูลต่อไปนี้อย่างใดอย่างหนึ่งหรือทั้ง 2 อย่าง
- คำขอมาจากแอปที่ถูกต้องของคุณ
- คำขอมาจากอุปกรณ์จริงที่ไม่มีการดัดแปลง
การรับรองนี้จะแนบไปกับทุกคำขอที่แอปของคุณส่งโดยใช้ SDK Firebase AI Logic เมื่อเปิดใช้การบังคับใช้ App Check ระบบจะปฏิเสธคำขอจากไคลเอ็นต์ที่ไม่มีการรับรองที่ถูกต้อง รวมถึงคำขอที่มาจากแอปหรือแพลตฟอร์มที่คุณไม่อนุญาต
เราขอแนะนำให้คุณเตรียมพร้อมสำหรับการป้องกันที่ดียิ่งขึ้นในอนาคต (หรือที่เรียกว่าการป้องกันการเล่นซ้ำ) เมื่อตั้งค่า App Check
คุณดูข้อมูลโดยละเอียดเกี่ยวกับ App Check ได้ในเอกสารประกอบ รวมถึงโควต้าและขีดจำกัด
ผู้ให้บริการที่พร้อมใช้งานและวิธีการติดตั้งใช้งาน
App Checkเอกสารประกอบมีคำอธิบายของผู้ให้บริการการรับรอง รวมถึงวิธีการติดตั้งใช้งาน
เลือกผู้ให้บริการเริ่มต้น แล้วทำตามวิธีการติดตั้งใช้งานที่ลิงก์ต่อไปนี้
- แพลตฟอร์ม Apple DeviceCheck หรือ App Attest
- Android: ความสมบูรณ์ของ Play
- เว็บ: reCAPTCHA Enterprise
- Flutter: รองรับผู้ให้บริการเริ่มต้นทั้งหมดข้างต้น
นอกจากนี้ โปรดปฏิบัติตามข้อกำหนดในการสร้างอินสแตนซ์พิเศษ สำหรับ Flutter และ App Check - Unity: รองรับ ผู้ให้บริการเริ่มต้นทั้งหมดด้านบน
โปรดทราบว่าหากไม่มีผู้ให้บริการเริ่มต้นรายใดตอบโจทย์ความต้องการของคุณ คุณก็ติดตั้งใช้งานผู้ให้บริการที่กำหนดเอง ซึ่งใช้ผู้ให้บริการการรับรองบุคคลที่สามหรือเทคนิคการรับรองของคุณเองได้
(แนะนำ) เตรียมพร้อมสำหรับการปกป้องที่ดียิ่งขึ้นที่กำลังจะมาถึงจาก App Check (หรือที่เรียกว่าการป้องกันการเล่นซ้ำ)
(ต้องระบุ) ก่อนที่จะเผยแพร่แอปต่อผู้ใช้จริง เปิดใช้การบังคับใช้App Check
ต้องมีการเริ่มต้นพิเศษสำหรับ Flutter
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดของผู้ให้บริการรายนั้นๆ ในหน้านี้ |
เมื่อใช้ App Check กับ Firebase AI Logic ในแอป Flutter คุณต้อง ส่ง App Check อย่างชัดเจนในระหว่างการเริ่มต้น ดังนี้
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
เตรียมพร้อมสำหรับการปกป้องที่ดียิ่งขึ้นที่กำลังจะมาถึง
ปัจจุบันโทเค็นแบบใช้ครั้งเดียวพร้อมใช้งานในแพลตฟอร์ม Apple (v12.2.0 ขึ้นไป), Android (v17.2.0 ขึ้นไป, BoM v34.2.0 ขึ้นไป) และเว็บ (v12.3.0 ขึ้นไป) เท่านั้น การรองรับแพลตฟอร์มอื่นๆ จะเปิดตัวในอีกหลายสัปดาห์ข้างหน้า |
โดยค่าเริ่มต้น App Check จะใช้โทเค็นเซสชันซึ่งมี Time to Live (TTL) ที่กำหนดค่าได้ระหว่าง
ในอนาคต App Check จะเพิ่มตัวเลือกในการเปิดใช้การป้องกันการเล่นซ้ำ สำหรับ Firebase AI Logic (คล้ายกับการรองรับที่ App Check มีให้สำหรับแหล่งข้อมูลอื่นๆ อยู่แล้ว ) เมื่อเปิดใช้การป้องกันการเล่นซ้ำ ระบบจะ เพิ่มการป้องกันด้วยวิธีต่อไปนี้
App Check จะอนุญาตคำขอเฉพาะในกรณีที่มีโทเค็นพิเศษ ที่เรียกว่าโทเค็นแบบจำกัดการใช้งาน
หลังจากยืนยันโทเค็นแบบใช้ครั้งเดียวแล้ว ระบบจะใช้โทเค็นดังกล่าวเพื่อให้ใช้ได้เพียงครั้งเดียวเพื่อป้องกันการโจมตีแบบใช้โทเค็นซ้ำ (Replay)
เพื่อเตรียมพร้อมสำหรับการป้องกันการเล่นซ้ำ เราขอแนะนำให้คุณ เปิดใช้โทเค็นแบบจำกัดการใช้งานเป็นส่วนหนึ่ง ของการตั้งค่า App Check ด้วยวิธีนี้ เมื่อการป้องกันการเล่นซ้ำพร้อมใช้งาน คุณจะเปิดใช้ได้เร็วขึ้นเนื่องจากผู้ใช้จำนวนมากขึ้นจะใช้แอปเวอร์ชัน ที่ส่งโทเค็นแบบใช้ครั้งเดียว
โปรดทราบสิ่งต่อไปนี้หากคุณเปิดใช้โทเค็นแบบจำกัดการใช้งานในแอปตอนนี้ (ขณะที่การป้องกันการเล่นซ้ำไม่พร้อมใช้งาน)
App Check ไม่บล็อกการใช้โทเค็นเซสชันที่ถูกต้อง
เช่นเดียวกับโทเค็นเซสชัน App Check SDK จะแคชโทเค็นแบบใช้ครั้งเดียวและส่งพร้อมกับคำขอ โทเค็นแบบใช้ได้จำกัดเหล่านี้ให้การปกป้องเพิ่มเติมเล็กน้อยมากกว่าโทเค็นเซสชันเริ่มต้น เนื่องจากโทเค็นแบบใช้ได้จำกัดมี TTL ที่สั้นกว่า (เพียง
5 นาที และปรับไม่ได้) เมื่อเทียบกับโทเค็นเซสชันแม้ว่าโทเค็นแบบจำกัดการใช้งานจะใช้ได้เป็นเวลา
5 นาที แต่ SDK จะยังคงสร้างโทเค็นใหม่สำหรับคำขอแต่ละรายการ กระบวนการนี้อาจเพิ่มเวลาในการตอบสนองคำขอของคุณ
อย่างไรก็ตาม เมื่อการป้องกันการเล่นซ้ำพร้อมใช้งานสำหรับ Firebase AI Logic ใน อนาคต (และคุณเปิดใช้) คุณจะใช้โทเค็นเซสชันและนำโทเค็น แบบจำกัดการใช้งานมาใช้ซ้ำไม่ได้ โปรดทราบว่าระบบจะยังคงใช้เวลาในการตอบสนองเพิ่มเติมเพื่อสร้างโทเค็นใหม่สำหรับคำขอแต่ละรายการ
เปิดใช้โทเค็นแบบใช้ครั้งเดียว
คลิกผู้ให้บริการ Gemini API เพื่อดูเนื้อหาและโค้ดของผู้ให้บริการรายนั้นๆ ในหน้านี้ |
วิธีเปิดใช้โทเค็นแบบใช้ครั้งเดียวมีดังนี้
ติดตั้งใช้งาน App Check และตรวจสอบว่าคุณได้ เปิดใช้การบังคับใช้ App Check สำหรับแอปแล้ว
ในแอปของคุณระหว่างการเริ่มต้น ให้เปิดใช้โทเค็นแบบจำกัดการใช้งานโดย ตั้งค่าพารามิเตอร์
useLimitedUseAppCheckTokens
เป็นtrue
ดังนี้Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...
Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...
Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...
Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...
Dart
การใช้โทเค็นแบบจำกัดการใช้งานกับแอป Flutter จะได้รับการรองรับใน รุ่นที่จะเปิดตัวในเร็วๆ นี้ โปรดกลับมาใหม่หลังจากนี้
Unity
เราจะรองรับการใช้โทเค็นแบบใช้ครั้งเดียวกับเกม Unity ใน รุ่นต่อๆ ไป โปรดกลับมาใหม่หลังจากนี้
ทำความเข้าใจวิธีที่ Firebase AI Logic ผสานรวมกับ App Check
หากต้องการใช้ Firebase AI Logic SDK คุณต้องเปิดใช้
Firebase AI Logic API (firebasevertexai.googleapis.com
)
ในโปรเจ็กต์ Firebase เนื่องจากคำขอที่ SDK สร้างขึ้นจะถูกส่งไปยังเซิร์ฟเวอร์ Firebase AI Logic
ก่อน ซึ่งทำหน้าที่เป็นเกตเวย์พร็อกซีที่Firebase App Checkการยืนยัน
เกิดขึ้นก่อนที่ระบบจะอนุญาตให้คำขอไปยังแบ็กเอนด์ของผู้ให้บริการ "Gemini API" ที่คุณเลือกและ API เพื่อเข้าถึงโมเดล Gemini
และ ImagenFirebase AI Logic