| 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 Android bằng cách sử dụ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 tài nguyên phụ trợ của dự án. Để tìm hiểu thêm, hãy xem bài viết tổng quan về App Check.
App Check yêu cầu sử dụng khoá reCAPTCHA dựa trên điểm số, giúp người dùng không nhìn thấy khoá này. Đ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 câu đố vào 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 không được App Check triển khai hoặc nếu bạn muốn sử dụng App Check với nhà cung cấp tuỳ chỉnh của riêng mình, hãy xem phần Triển khai nhà cung cấp App Check tuỳ chỉnh.
1. Thiết lập dự án Firebase
Nếu bạn chưa thực hiện, hãy thêm Firebase vào dự án Android.
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Chống lừa đảo rồi làm như sau cho 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á loại Android và chỉ định tên gói của ứng dụng (ví dụ:
com.example.my_app).Hãy nhớ nhập cùng một 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.
Để biết hướng dẫn chi tiết, hãy xem bài viết Tạo khoá reCAPTCHA dựa trên điểm số.
Hãy ghi lại khoá này. Bạn cần thêm mã 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 Security (Bảo mật) > App Check (Kiểm tra ứng dụng).
Trong thẻ Ứng dụng, hãy đăng ký các ứng dụng Android của bạn để sử dụng App Check với 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 ý những điểm đánh đổi sau:
- Bảo mật: TTL ngắn hơn mang lại khả năng bảo mật mạnh hơn vì nó làm 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 có 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 đượ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 giảm 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 nhiều chi phí hơn. Xem Hạn mức và giới hạn.
TTL mặc định là 1 giờ, phù hợp với 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 một nửa thời gian TTL.
Không bắt buộc: Định cấu hình 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 của hoạt động tương tác của người dùng theo khoá và trả về điểm số từ 0 đến 1, với mức tăng là 0, 1.
- Điểm số 0 cho biết hoạt động tương tác có rủi ro cao và có thể là gian lận.
- Điểm số 1 cho biết hoạt động tương tác có rủi ro thấp và rất có thể 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 Security (Bảo mật) > App Check (Kiểm tra ứng dụng)). Hãy nhớ mở rộng và xem xét một số điểm quan trọng cần lưu ý 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 SDK App Check vào ứng dụng của bạn
Để sử dụng trình cung cấp reCAPTCHA Enterprise, bạn phải thêm phần phụ thuộc tương ứng.
Trong tệp Gradle của mô-đun (cấp ứng dụng) (thường là<project>/<app-module>/build.gradle.kts hoặc
<project>/<app-module>/build.gradle),
hãy thêm phần phụ thuộc cho thư viện App Check reCAPTCHA dành cho Android. Bạn nên sử dụng
Firebase Android BoM
để kiểm soát việc tạo phiên bản thư viện.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.1.0")) // Add the dependency for the App Check reCAPTCHA library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-recaptcha") }
Bằng cách sử dụng Firebase Android BoM, ứng dụng của bạn sẽ luôn sử dụng những phiên bản tương thích của thư viện Android trên Firebase.
(Cách khác) Thêm phần phụ thuộc thư viện Firebase mà không sử dụng BoM
Nếu chọn không sử dụng Firebase BoM, bạn phải chỉ định từng phiên bản thư viện Firebase trong dòng phần phụ thuộc của phiên bản đó.
Xin lưu ý rằng nếu bạn sử dụng nhiều thư viện Firebase trong ứng dụng, bạn nên sử dụng BoM để quản lý các phiên bản thư viện, nhằm đảm bảo rằng tất cả phiên bản đều tương thích.
dependencies { // Add the dependency for the App Check reCAPTCHA library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-appcheck-recaptcha:20.0.0") }
3. Khởi động 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.
Kotlin
Firebase.initialize(context = this)
Firebase.appCheck.installAppCheckProviderFactory(
RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY")
)
Java
FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
RecaptchaAppCheckProviderFactory.getInstance("SITE_KEY"));
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.
Theo dõi các chỉ số
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 nhận thấy tài nguyên ứng dụng của bạn đang được sử dụng theo cách đáng ngờ, thì 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 các chỉ số của App Check cho những dịch vụ mà bạn sử dụng:
- Theo dõi App Check chỉ số 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ố 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 biện pháp thực thi App Check:
- Bật tính năng 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 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 App Check nhà cung cấp dịch vụ gỡ lỗi thay vì nhà cung cấp dịch vụ chứng thực chính thức.
Để biết thêm thông tin, hãy xem bài viết Sử dụng App Check với nhà cung cấp dịch vụ gỡ lỗi trên Android.
Giá
App Check sẽ thay mặt bạn tạo một bản đánh giá để 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ản đánh giá được tạo vượt quá hạn mức miễn phí. Để biết thông tin chi tiết, hãy xem phần giá của reCAPTCHA.
Theo mặc định, ứng dụng của bạn sẽ làm mới mã thông báo này hai lần mỗi 1 giờ. Để kiểm soát tần suất ứng dụng làm mới mã thông báo App Check (và do đó, tần suất tạo bản đánh giá mới), bạn có thể định cấu hình TTL của mã thông báo.