| 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 trên nền tảng của Apple 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 đố 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 Apple.
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 iOS và chỉ định mã nhận dạng gói của ứng dụng (ví dụ:
com.example.my_app).Hãy nhớ 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.
Để 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ẻ Apps (Ứng dụng), hãy đăng ký các ứng dụng nền tảng Apple để 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 mẽ 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 đồng nghĩa với việc ứ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 quản lý gói Swift (SPM) để cài đặt và quản lý các phần phụ thuộc của Firebase. Nếu bạn đang sử dụng Firebase, hãy đảm bảo gói Firebase của bạn là phiên bản 12.17.0 trở lên.
Trong Xcode, hãy mở dự án ứng dụng của bạn.
Thêm thư viện Firebase:
Chuyển đến File > Add Packages (Tệp > Thêm gói).
Khi được nhắc, hãy thêm kho lưu trữ SDK Firebase cho nền tảng của Apple:
https://github.com/firebase/firebase-ios-sdkChọn phiên bản SDK mới nhất (phiên bản 12.17.0 trở lên).
Chọn thư viện
FirebaseAppCheck.Nhấp vào Thêm gói. Xcode sẽ phân giải và tải các phần phụ thuộc xuống.
Khi được nhắc, hãy thêm thư viện vào mục tiêu ứng dụng.
Thêm thư viện reCAPTCHA Enterprise:
Quay lại phần File > Add Packages (Tệp > Thêm gói)
Khi được nhắc, hãy thêm kho lưu trữ SDK reCAPTCHA Enterprise:
https://github.com/GoogleCloudPlatform/recaptcha-enterprise-mobile-sdkChọn thư viện
RecaptchaEnterprise.Nhấp vào Thêm gói. Khi được nhắc, hãy thêm thư viện vào mục tiêu ứng dụng của bạn.
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.
Tạo một thực thể của RecaptchaProviderFactory, truyền khoá reCAPTCHA của bạn, sau đó định cấu hình App Check để sử dụng thực thể đó:
let providerFactory = RecaptchaProviderFactory(siteKey: "SITE_KEY")
AppCheck.setAppCheckProviderFactory(providerFactory)
FirebaseApp.configure()
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 ảnh hưởng đến người dùng và sẵn sàng tiếp tục, bạn có thể bật chế độ 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 cho ứ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 phần Sử dụng App Check với nhà cung cấp dịch vụ gỡ lỗi trên các nền tảng của Apple.
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 không mất phí. Để biết thông tin chi tiết, hãy xem 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.