Tính năng Kiểm tra ứng dụng tích hợp sẵn tính năng hỗ trợ cho một số nhà cung cấp: DeviceCheck và App Attest (Kiểm tra thiết bị) trên các nền tảng của Apple, API Tính toàn vẹn của Play và SafetyNet trên Android, và reCAPTCHA Enterprise trong ứng dụng web (tổng quan). Đây là những nhà cung cấp hiểu rõ, sẽ đáp ứng nhu cầu của hầu hết nhà phát triển. Tuy nhiên, bạn cũng có thể triển khai tính năng Kiểm tra ứng dụng tuỳ chỉnh của riêng mình Google Cloud. Bạn cần sử dụng trình cung cấp tuỳ chỉnh khi:
Bạn muốn sử dụng một nhà cung cấp khác ngoài nhà cung cấp tích hợp sẵn.
Bạn muốn sử dụng các trình cung cấp tích hợp sẵn theo cách không được hỗ trợ.
Bạn muốn xác minh thiết bị bằng các nền tảng khác ngoài Apple, Android và web. Ví dụ: bạn có thể tạo nhà cung cấp dịch vụ Kiểm tra ứng dụng cho hệ điều hành máy tính hoặc Thiết bị Internet của vạn vật (IOT).
Bạn muốn triển khai kỹ thuật xác minh của riêng mình trên mọi nền tảng.
Tổng quan
Để triển khai trình cung cấp dịch vụ Kiểm tra ứng dụng tuỳ chỉnh, bạn cần có một phần phụ trợ bảo mật môi trường có thể chạy SDK quản trị Firebase của Node.js. Đây có thể là Cloud Functions, một nền tảng vùng chứa, chẳng hạn như Cloud Run hoặc máy chủ của riêng bạn.
Từ môi trường này, bạn sẽ cung cấp một dịch vụ có thể truy cập mạng nhận được bằng chứng xác thực từ khách hàng ứng dụng của bạn và nếu bằng chứng về tính xác thực vượt qua quy trình đánh giá tính xác thực — trả lại tính năng Kiểm tra ứng dụng mã thông báo. Các chỉ báo cụ thể mà bạn dùng làm bằng chứng về tính xác thực sẽ phụ thuộc vào nhà cung cấp bên thứ ba mà bạn đang sử dụng hoặc các chỉ báo của riêng bạn nếu bạn đang triển khai logic tuỳ chỉnh.
Thông thường, bạn hiển thị dịch vụ này dưới dạng một điểm cuối REST hoặc gRPC, nhưng chi tiết này là tuỳ thuộc vào bạn.
Tạo điểm cuối thu nạp mã thông báo
Tạo một điểm cuối có thể truy cập mạng có thể nhận dữ liệu xác thực từ khách hàng của bạn. Ví dụ: sử dụng Cloud Functions:
// Create endpoint at https://example-app.cloudfunctions.net/fetchAppCheckToken exports.fetchAppCheckToken = functions.https.onRequest((request, response) => { // ... });
Thêm vào logic điểm cuối đánh giá dữ liệu xác thực. Đây là logic cốt lõi của nhà cung cấp dịch vụ Kiểm tra ứng dụng tuỳ chỉnh mà bạn sẽ cần để tự viết.
Nếu bạn xác định khách hàng là xác thực, hãy sử dụng SDK dành cho quản trị viên để đúc mã thông báo Kiểm tra ứng dụng và trả lại mã đó cũng như thời gian hết hạn cho ứng dụng:
const admin = require('firebase-admin'); admin.initializeApp(); // ... admin.appCheck().createToken(appId) .then(function (appCheckToken) { // Token expires in an hour. const expiresAt = Math.floor(Date.now() / 1000) + 60 * 60; // Return appCheckToken and expiresAt to the client. }) .catch(function (err) { console.error('Unable to create App Check token.'); console.error(err); });
Nếu bạn không thể xác minh tính xác thực của khách hàng, hãy trả về một lỗi (ví dụ: trả về lỗi HTTP 403).
Không bắt buộc: Đặt thời gian tồn tại (TTL) cho mã thông báo Kiểm tra ứng dụng do trình cung cấp tuỳ chỉnh của bạn bằng cách chuyển đối tượng
AppCheckTokenOptions
đếncreateToken()
. Bạn có thể đặt TTL thành bất kỳ giá trị nào trong khoảng từ 30 phút đến 7 phút ngày. Khi đặt giá trị này, hãy lưu ý đến những yếu tố đá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ì giúp giảm trong đó một mã thông báo bị rò rỉ hoặc bị chặn có thể bị kẻ tấn công lạm dụng kẻ tấn công.
- 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 quy trình chứng thực nhiều hơn thường xuyên. Vì quy trình chứng thực ứng dụng sẽ làm tăng độ trễ của mạng mỗi khi được thực hiện, thì một TTL ngắn có thể ảnh hưởng đến hiệu suất ứng dụng của bạn.
Đối với hầu hết các ứng dụng, thời gian TTL mặc định là 1 giờ là hợp lý.
Các bước tiếp theo
Bây giờ, bạn đã triển khai logic phía máy chủ của trình cung cấp tuỳ chỉnh, hãy tìm hiểu cách để sử dụng thư viện này từ Apple của bạn, Ứng dụng Android và web.