Khi bạn gọi một API trực tiếp từ ứng dụng di động hoặc ứng dụng web (ví dụ: các API cho phép truy cập vào các mô hình AI tạo sinh), API đó sẽ dễ bị các ứng dụng khách trái phép sử dụng sai mục đích. Để giúp bảo vệ các API này, bạn có thể dùng Firebase App Check để xác minh rằng tất cả các lệnh gọi API đến đều là từ ứng dụng thực tế của bạn.
Firebase AI Logic cung cấp một cổng proxy cho phép bạn tích hợp với Firebase App Check và bảo vệ các API mô hình AI tạo sinh do ứng dụng di động và ứng dụng web của bạn gọi. Việc sử dụng App Check với các SDK Firebase AI Logic sẽ hỗ trợ tất cả các cấu hình của chúng tôi:
Bảo vệ cả hai nhà cung cấp "Gemini API": Gemini Developer API và Vertex AI Gemini API.
Bảo vệ tất cả các mô hình được hỗ trợ, cả mô hình Gemini và mô hình Imagen.
Thông tin tóm tắt cấp cao về cách hoạt động của App Check
Với App Check, các thiết bị chạy ứng dụng của bạn sẽ sử dụng một nhà cung cấp chứng thực ứng dụng hoặc thiết bị để xác minh một hoặc cả hai điều kiện sau:
- Các yêu cầu bắt nguồn từ ứng dụng xác thực của bạn
- Các yêu cầu xuất phát từ một thiết bị chính hãng, không bị giả mạo
Chứng thực này được đính kèm vào mọi yêu cầu mà ứng dụng của bạn đưa ra bằng Firebase AI Logic SDK. Khi bạn bật chế độ thực thi App Check, các yêu cầu từ những máy khách không có chứng thực hợp lệ sẽ bị từ chối, cũng như mọi yêu cầu bắt nguồn từ một ứng dụng hoặc nền tảng mà bạn chưa uỷ quyền.
Khi thiết lập App Check, bạn nên chuẩn bị cho tính năng bảo vệ nâng cao sắp ra mắt (còn gọi là bảo vệ chống phát lại).
Bạn có thể tìm thấy thông tin chi tiết về App Check trong tài liệu của công cụ này, bao gồm cả hạn mức và giới hạn.
Các nhà cung cấp hiện có và hướng dẫn triển khai
Tài liệu App Check mô tả các trình cung cấp chứng thực cũng như hướng dẫn triển khai.
Chọn một nhà cung cấp mặc định và làm theo hướng dẫn triển khai tại các đường liên kết sau:
- Nền tảng Apple: DeviceCheck hoặc App Attest
- Android: Tính toàn vẹn của Play
- Web: reCAPTCHA Enterprise
- Flutter: Hỗ trợ tất cả nhà cung cấp mặc định ở trên
Ngoài ra, hãy nhớ tuân thủ các yêu cầu đặc biệt về việc tạo thực thể cho Flutter và App Check. - Unity: Hỗ trợ tất cả nhà cung cấp mặc định ở trên
Xin lưu ý rằng nếu không có nhà cung cấp mặc định nào đáp ứng được nhu cầu của bạn, thì bạn có thể triển khai một nhà cung cấp tuỳ chỉnh sử dụng nhà cung cấp chứng thực bên thứ ba hoặc kỹ thuật chứng thực của riêng bạn.
(Nên dùng) Chuẩn bị cho tính năng bảo vệ nâng cao sắp ra mắt của App Check (còn gọi là bảo vệ chống phát lại).
(Bắt buộc) Trước khi phát hành ứng dụng cho người dùng thực, hãy bật chế độ thực thi App Check.
Cần có quá trình khởi tạo đặc biệt cho Flutter
Nhấp vào nhà cung cấp Gemini API để xem nội dung và mã dành riêng cho nhà cung cấp trên trang này. |
Khi dùng App Check với Firebase AI Logic trong các ứng dụng Flutter, bạn cần truyền App Check một cách rõ ràng trong quá trình tạo thực thể, như sau:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Chuẩn bị cho chế độ bảo vệ nâng cao sắp tới
Hiện tại, bạn chỉ có thể sử dụng mã thông báo dùng một lần cho các nền tảng Apple (phiên bản 12.2.0 trở lên), Android (phiên bản 17.2.0 trở lên, BoM phiên bản 34.2.0 trở lên) và Web (phiên bản 12.3.0 trở lên). Chúng tôi sẽ phát hành phiên bản hỗ trợ các nền tảng khác trong vài tuần tới. |
Theo mặc định, App Check sử dụng mã thông báo phiên có thời gian tồn tại (TTL) có thể định cấu hình trong khoảng từ
Trong tương lai, App Check sẽ thêm lựa chọn bật tính năng chống phát lại cho Firebase AI Logic (tương tự như tính năng hỗ trợ mà App Check đã cung cấp cho một số tài nguyên khác). Khi bạn bật tính năng chống phát lại, tính năng này sẽ tăng cường khả năng bảo vệ theo những cách sau:
App Check sẽ chỉ cho phép các yêu cầu nếu yêu cầu đó đi kèm với một loại mã thông báo đặc biệt gọi là mã thông báo sử dụng một lần.
Sau khi được xác minh, mã thông báo dùng một lần sẽ được sử dụng để chỉ có thể dùng một lần, ngăn chặn các cuộc tấn công phát lại.
Để chuẩn bị cho tính năng bảo vệ chống phát lại, bạn nên bật tính năng sử dụng mã thông báo dùng một lần trong quá trình thiết lập App Check. Nhờ đó, khi tính năng bảo vệ chống phát lại được cung cấp, bạn có thể bật tính năng này sớm hơn vì nhiều người dùng sẽ sử dụng các phiên bản ứng dụng gửi mã thông báo sử dụng một lần.
Lưu ý những điều sau đây nếu bạn bật tính năng sử dụng mã thông báo dùng một lần trong ứng dụng của mình ngay bây giờ (khi tính năng bảo vệ chống phát lại không hoạt động):
App Check không chặn việc sử dụng mã thông báo phiên hợp lệ.
Giống như mã thông báo phiên, mã thông báo sử dụng một lần được SDK App Check lưu vào bộ nhớ đệm và gửi cùng với các yêu cầu. Các mã thông báo sử dụng một lần này cung cấp thêm một lượng nhỏ khả năng bảo vệ so với mã thông báo phiên mặc định vì mã thông báo sử dụng một lần có TTL ngắn hơn (chỉ
5 phút và không điều chỉnh được) so với mã thông báo phiên.Mặc dù mã thông báo sử dụng một lần có hiệu lực trong
5 phút , nhưng SDK vẫn sẽ tạo mã thông báo mới cho mỗi yêu cầu. Quá trình này có thể làm tăng độ trễ cho yêu cầu của bạn.
Tuy nhiên, khi tính năng bảo vệ chống phát lại có sẵn cho Firebase AI Logic trong tương lai (và bạn bật tính năng này), bạn sẽ không thể sử dụng mã thông báo phiên và sử dụng lại mã thông báo sử dụng một lần. Xin lưu ý rằng độ trễ bổ sung để tạo mã thông báo mới cho mỗi yêu cầu vẫn sẽ xảy ra.
Cho phép sử dụng mã thông báo dùng một lần
Nhấp vào nhà cung cấp Gemini API để xem nội dung và mã dành riêng cho nhà cung cấp trên trang này. |
Sau đây là cách cho phép sử dụng mã thông báo dùng một lần:
Triển khai App Check và đảm bảo rằng bạn đã bật chế độ thực thi App Check cho ứng dụng của mình.
Trong ứng dụng của bạn trong quá trình khởi tạo, hãy bật việc sử dụng mã thông báo sử dụng một lần bằng cách đặt tham số
useLimitedUseAppCheckTokens
thànhtrue
: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
Việc sử dụng mã thông báo dùng một lần với các ứng dụng Flutter sẽ được hỗ trợ trong bản phát hành sắp tới. Vui lòng kiểm tra lại sớm!
Unity
Việc sử dụng mã thông báo dùng một lần với các trò chơi Unity sẽ được hỗ trợ trong một bản phát hành trong tương lai. Vui lòng kiểm tra lại sớm!
Tìm hiểu cách Firebase AI Logic tích hợp với App Check
Để sử dụng Firebase AI Logic SDK, bạn phải bật Firebase AI Logic API (firebasevertexai.googleapis.com
) trong dự án Firebase của mình. Điều này là do các yêu cầu do SDK Firebase AI Logic tạo ra trước tiên sẽ được gửi đến máy chủ Firebase AI Logic. Máy chủ này đóng vai trò là một cổng proxy nơi quá trình xác minh Firebase App Check diễn ra trước khi yêu cầu được phép chuyển đến phần phụ trợ của nhà cung cấp "Gemini API" mà bạn chọn và các API để truy cập vào các mô hình Gemini và Imagen.