Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Bảo vệ thông tin đăng nhập trên đám mây của ứng dụng Firebase ML Apple của bạn

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Nếu ứng dụng Apple của bạn sử dụng một trong các API đám mây của Firebase ML, trước khi khởi chạy ứng dụng ở phiên bản sản xuất, bạn nên thực hiện một số bước bổ sung để ngăn truy cập API trái phép.

1. Giảm phạm vi của các khóa API hiện có

Trước tiên, hãy định cấu hình các khóa API hiện có của bạn để không cho phép truy cập vào API Cloud Vision:

  1. Mở trang Thông tin đăng nhập của Google Cloud Console. Khi được nhắc, hãy chọn dự án của bạn.

  2. Đối với mỗi khóa API hiện có trong danh sách, hãy mở chế độ xem chỉnh sửa.

  3. Trong phần hạn chế API , chọn Khóa hạn chế , sau đó thêm vào danh sách tất cả các API mà bạn muốn khóa API có quyền truy cập. Đảm bảo không bao gồm API Cloud Vision.

    Khi bạn định cấu hình các hạn chế API của khóa API, bạn đang khai báo rõ ràng các API mà khóa có quyền truy cập. Theo mặc định, khi phần Hạn chế API được chọn Không hạn chế khóa , khóa API có thể được sử dụng để truy cập vào bất kỳ API nào được bật cho dự án.

Bây giờ, các khóa API hiện tại của bạn sẽ không cấp quyền truy cập vào các dịch vụ ML đám mây, nhưng mỗi khóa sẽ tiếp tục hoạt động cho bất kỳ API nào mà bạn đã thêm vào danh sách hạn chế API của nó.

Lưu ý rằng nếu bạn bật bất kỳ API bổ sung nào trong tương lai, bạn phải thêm chúng vào danh sách hạn chế API cho khóa API hiện hành.

2. Tạo khóa API mới để sử dụng với Firebase ML

Tiếp theo, tạo một khóa API mới cho Firebase ML chỉ cho phép các lệnh gọi tới API Cloud Vision:

  1. Quay lại trang Thông tin đăng nhập . Đảm bảo rằng dự án Firebase của bạn vẫn được chọn.

  2. Nhấp vào Tạo thông tin xác thực> Khóa API . Ghi lại khóa API mới, sau đó nhấp vào Hạn chế khóa .

  3. Trong phần hạn chế API , chọn Khóa hạn chế , sau đó chỉ thêm API Cloud Vision vào danh sách.

Khóa API này chỉ cấp quyền truy cập vào API Cloud Vision và có thể được sử dụng bởi Firebase ML để truy cập các mô hình dựa trên đám mây.

Để giúp giảm thiểu hậu quả của khóa bị xâm phạm, bạn nên giảm hạn ngạch cho mỗi người dùng của API Cloud Vision khỏi cài đặt mặc định của nó. Làm như vậy:

  1. Mở trang Hạn ngạch API Cloud Vision của Google Cloud Console. Khi được nhắc, hãy chọn dự án của bạn.

  2. Trong phần Yêu cầu , hãy đặt hạn ngạch Yêu cầu mỗi phút cho mỗi người dùng thành mức hợp lý cho ứng dụng của bạn. Ví dụ: nếu ứng dụng của bạn liên quan đến việc tải lên hình ảnh tài liệu để lấy lại văn bản của nó, thì không có khả năng người dùng sẽ làm điều đó nhiều hơn một lần sau mỗi vài giây, vì vậy hạn ngạch 30-40 có thể sẽ an toàn.

    Lưu ý rằng trong ngữ cảnh này, "yêu cầu trên mỗi người dùng" đề cập đến các yêu cầu từ một địa chỉ IP. Bạn có thể cần phải xem xét điều này nếu bạn mong đợi nhiều người dùng sử dụng ứng dụng của bạn cùng lúc từ sau NAT.

4. Gọi các API đám mây bằng khóa API Firebase ML của bạn

Cuối cùng, trong ứng dụng của bạn, hãy định cấu hình Firebase ML để sử dụng khóa API mới của bạn.

Vì khóa API Firebase ML cho phép truy cập chưa được xác thực vào API Cloud Vision, nên điều quan trọng là phải giữ bí mật khóa để ngăn việc sử dụng trái phép và các khoản phí đối với tài khoản thanh toán của bạn. Để làm như vậy, bạn không nên đưa khóa API vào tệp nhị phân ứng dụng của mình. Thay vào đó, trong thời gian chạy ứng dụng, hãy xác minh rằng một người dùng tốt đã biết đã đăng nhập và chỉ sau đó, truy xuất khóa API từ máy chủ.

Ngay cả khi các thực hành này được tuân thủ, khóa API vẫn có thể bị xâm phạm. Bạn nên thực hiện các bước để giúp giảm thiểu hậu quả của khóa bị xâm phạm, chẳng hạn như giảm hạn ngạch cho mỗi người dùng của API như được mô tả ở trên, thực hiện các chính sách xoay vòng khóa và cấp các khóa khác nhau cho các nhóm người dùng khác nhau.

Sau khi ứng dụng của bạn đã có được khóa API một cách an toàn, khi bạn muốn gọi API đám mây ML của Firebase, hãy chỉ định khóa:

Nhanh

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objective-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

Ngoài ra, bạn nên làm theo lời khuyên chung trong Bảo mật khóa API .

Bước tiếp theo

Xem danh sách kiểm tra khởi chạy để biết thông tin về cách chuẩn bị khởi chạy ứng dụng của bạn khi sử dụng các tính năng khác của Firebase.