| Chọn nền tảng: | iOS+ Android Web Flutter |
Trang này hướng dẫn bạn cách thiết lập App Check trong một ứng dụng Flutter bằng trình cung cấp reCAPTCHA Enterprise. App Check giúp đảm bảo rằng chỉ ứng dụng của bạn mới có thể truy cập vào các tài nguyên phụ trợ của dự án. Để tìm hiểu thêm, hãy xem bài tổng quan về App Check.
App Check yêu cầu sử dụng các khoá dựa trên điểm số reCAPTCHA, khiến người dùng không nhìn thấy được. Điều này có nghĩa là nhà cung cấp reCAPTCHA Enterprise sẽ không yêu cầu người dùng giải quyết thử thách bất cứ lúc nào.
Nếu trường hợp sử dụng của bạn yêu cầu các tính năng reCAPTCHA Enterprise chưa được App Check triển khai hoặc nếu bạn muốn sử dụng App Check với trình cung cấp tuỳ chỉnh của riêng mình, hãy xem phần Triển khai trình cung cấp App Check tuỳ chỉnh.
1. Thiết lập dự án Firebase
Nếu chưa thực hiện, hãy cài đặt và khởi chạy Firebase trong dự án Flutter.
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Fraud Defense (Chống gian lận) rồi làm như sau đối với nhà cung cấp reCAPTCHA Enterprise:
Đảm bảo rằng bạn đang ở đúng dự án (xem bộ chọn dự án ở đầu màn hình).
Nếu được nhắc, hãy bật API reCAPTCHA Enterprise.
Tạo khoá dựa trên nền tảng nhắm mục tiêu:
iOS+
Tạo khoá thuộc loại iOS và chỉ định mã nhận dạng gói của ứng dụng (ví dụ:
com.example.my_app).Đảm bảo rằng bạn nhập cùng một mã nhận dạng gói mà bạn đã cung cấp khi tạo Ứng dụng Apple Firebase trong dự án Firebase. Giá trị mã nhận dạng gói có phân biệt chữ hoa chữ thường.
Đối với App Check, mỗi mã nhận dạng gói chỉ có thể tương ứng với một khoá reCAPTCHA duy nhất.
Android
Tạo khoá thuộc loại Android và chỉ định tên gói của ứng dụng (ví dụ:
com.example.my_app).Đảm bảo rằng bạn nhập cùng tên gói mà bạn đã cung cấp khi tạo Ứng dụng Android Firebase trong dự án Firebase. Giá trị tên gói có phân biệt chữ hoa chữ thường.
Đối với App Check, mỗi tên gói chỉ có thể tương ứng với một khoá reCAPTCHA duy nhất.
Web
Tạo một khoá thuộc loại Web và chỉ định từng miền cho ứng dụng web của bạn.
App Check không hỗ trợ các ứng dụng web phân phát trên hơn 250 miền.
Đừng bao giờ thêm
localhostlàm miền vào khoá reCAPTCHA được triển khai (hoặc sẽ được triển khai) cho bản phát hành công khai.Bỏ chọn lựa chọn "Sử dụng thử thách hộp đánh dấu".
Để xem hướng dẫn chi tiết, hãy xem phần Tạo khoá reCAPTCHA dựa trên điểm số.
Ghi chú từng khoá. Bạn cần thêm các thông tin này vào quy trình đăng ký trong bảng điều khiển Firebase.
Trong bảng điều khiển Firebase, hãy chuyển đến phần Bảo mật > Kiểm tra ứng dụng.
Trong thẻ Ứng dụng, hãy đăng ký từng ứng dụng nền tảng nhắm mục tiêu để sử dụng App Check với trình cung cấp reCAPTCHA Enterprise. Bạn cần cung cấp khoá mà bạn nhận được trong bảng điều khiển Google Cloud.
Không bắt buộc: Đặt thời gian tồn tại (TTL) của mã thông báo.
Trong phần cài đặt đăng ký ứng dụng, hãy đặt thời gian tồn tại (TTL) tuỳ chỉnh cho mã thông báo App Check do nhà cung cấp phát hành. Bạn có thể đặt TTL thành bất kỳ giá trị nào trong khoảng từ 30 phút đến 7 ngày. Khi thay đổi giá trị này, hãy lưu ý đến những điểm đánh đổi sau:
- Bảo mật: TTL ngắn hơn giúp tăng cường bảo mật, vì TTL ngắn hơn sẽ giảm khoảng thời gian mà kẻ tấn công có thể lợi dụng mã thông báo bị rò rỉ hoặc bị chặn.
- Hiệu suất: TTL ngắn hơn nghĩa là ứng dụng của bạn sẽ thực hiện chứng thực thường xuyên hơn. Vì quy trình chứng thực ứng dụng làm tăng độ trễ cho các yêu cầu mạng mỗi khi quy trình này được thực hiện, nên TTL ngắn có thể ảnh hưởng đến hiệu suất của ứng dụng.
- Hạn mức và chi phí: TTL ngắn hơn và việc chứng thực lại thường xuyên sẽ làm cạn kiệt hạn mức của bạn nhanh hơn và đối với các dịch vụ có tính phí, có thể tốn kém hơn. Xem Hạn mức và giới hạn.
TTL mặc định là 1 giờ, đây là khoảng thời gian hợp lý cho hầu hết các ứng dụng. Xin lưu ý rằng thư viện App Check sẽ làm mới mã thông báo sau khoảng thời gian bằng một nửa thời gian TTL.
Không bắt buộc: Định cấu hình các chế độ cài đặt nâng cao.
Nhấp vào Lưu.
(Không bắt buộc) Định cấu hình chế độ cài đặt nâng cao
Khi người dùng mở ứng dụng của bạn, reCAPTCHA Enterprise sẽ đánh giá mức độ rủi ro khi người dùng tương tác trong các tư thế chính và trả về điểm số từ 0,0 đến 1,0, theo mức tăng 0,1.
- Điểm số 0,0 cho biết hoạt động tương tác có rủi ro cao và có thể là hành vi gian lận.
- Điểm số 1.0 cho biết hoạt động tương tác có nguy cơ thấp và rất có khả năng là hợp lệ.
App Check cho phép bạn định cấu hình ngưỡng rủi ro của ứng dụng để có thể điều chỉnh mức độ chấp nhận rủi ro này.
Đối với hầu hết các trường hợp sử dụng, bạn nên dùng giá trị ngưỡng mặc định là 0,5. Nếu trường hợp sử dụng của bạn cần điều chỉnh, bạn có thể định cấu hình giá trị này cho từng ứng dụng trong bảng điều khiển Firebase (chuyển đến phần Bảo mật > Kiểm tra ứng dụng). Hãy nhớ mở rộng và xem xét một số điểm cân nhắc quan trọng về việc định cấu hình ngưỡng rủi ro của ứng dụng bên dưới.
2. Thêm trình bổ trợ App Check vào ứng dụng
Để sử dụng trình cung cấp reCAPTCHA Enterprise, bạn phải thêm trình bổ trợ App Check tương ứng.
Từ gốc của dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ:
flutter pub add firebase_app_checkSau khi hoàn tất, hãy tạo lại dự án Flutter:
flutter run
3. Khởi chạy App Check
Trong ứng dụng, bạn cần khởi chạy App Check trước khi sử dụng bất kỳ dịch vụ nào khác của Firebase.
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_app_check/firebase_app_check.dart';
import 'firebase_options.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
await FirebaseAppCheck.instance.activate(
providerWeb: ReCaptchaEnterpriseProvider(WEB_SITE_KEY),
providerAndroid: const AndroidReCaptchaProvider(ANDROID_SITE_KEY),
providerApple: const AppleReCaptchaProvider(IOS_SITE_KEY),
);
runApp(App());
}
4. Theo dõi các chỉ số và bật chế độ thực thi
Sau khi thiết lập App Check trong ứng dụng, hãy bắt đầu phân phối ứng dụng đã cập nhật cho người dùng.
Ứng dụng khách đã cập nhật sẽ bắt đầu gửi mã thông báo App Check cùng với mọi yêu cầu mà ứng dụng đó gửi đến Firebase. Tuy nhiên, App Check sẽ không chặn các yêu cầu có mã thông báo không hợp lệ cho đến khi App Check được thực thi.
Các chỉ số giám sát
Trước khi bật chế độ thực thi, hãy đảm bảo rằng việc này sẽ không làm gián đoạn người dùng hợp pháp hiện tại của bạn. Tuy nhiên, nếu thấy có hành vi sử dụng tài nguyên ứng dụng của bạn một cách đáng ngờ, bạn nên bật chế độ thực thi sớm hơn.
Để đưa ra quyết định này, bạn có thể xem xét các chỉ số App Check cho những dịch vụ mà bạn sử dụng:
- Theo dõi App Checkcác chỉ số về yêu cầu cho Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity cho iOS, Maps JavaScript API và Places API (Mới).
- Theo dõi các chỉ số về yêu cầu App Check cho Cloud Functions.
Bật chế độ thực thi App Check
Khi hiểu rõ cách App Check sẽ ảnh hưởng đến người dùng và bạn đã sẵn sàng tiếp tục, bạn có thể bật chế độ thực thi App Check:
- Bật chế độ thực thi App Check cho Firebase AI Logic, SQL Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity cho iOS, Maps JavaScript API và Places API (Mới).
- Bật chế độ thực thi App Check cho Cloud Functions.
Sử dụng App Check trong môi trường gỡ lỗi
App Check phân loại một số môi trường là không hợp lệ, chẳng hạn như các yêu cầu từ trình mô phỏng / trình giả lập hoặc máy chủ lưu trữ cục bộ trong quá trình phát triển hoặc từ môi trường tích hợp liên tục (CI).
Để chạy ứng dụng trong các loại môi trường này sau khi App Check được thực thi, bạn cần tạo một bản gỡ lỗi của ứng dụng sử dụng trình cung cấp gỡ lỗi App Check thay vì trình cung cấp chứng thực sản xuất.
Để biết thêm thông tin, hãy xem phần Sử dụng App Check với nhà cung cấp dịch vụ gỡ lỗi trong các ứng dụng Flutter.
Giá
App Check sẽ tạo một quy trình đánh giá thay cho bạn để xác thực mã thông báo phản hồi của người dùng mỗi khi ứng dụng của bạn làm mới mã thông báo App Check. Dự án Firebase của bạn sẽ bị tính phí cho mỗi bài đánh giá được tạo vượt quá hạn mức không mất phí. Để biết thông tin chi tiết, hãy xem reCAPTCHA về giá.
Theo mặc định, ứng dụng của bạn sẽ làm mới mã thông báo này 2 lần mỗi 1 giờ. Để kiểm soát tần suất ứng dụng của bạn làm mới mã thông báo App Check (và do đó, tần suất tạo các hoạt động đánh giá mới), bạn có thể định cấu hình thời gian tồn tại của mã thông báo.