Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

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

Nếu ứng dụng Android 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 trong 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.

Đối với các ứng dụng sản xuất của mình, bạn sẽ đảm bảo rằng chỉ những khách hàng đã được xác thực mới có thể truy cập các dịch vụ đám mây. (Lưu ý rằng chỉ các thiết bị không root mới có thể xác thực bằng phương pháp được mô tả.)

Sau đó, bạn sẽ tạo một khóa API chỉ gỡ lỗi mà bạn có thể sử dụng để thuận tiện trong quá trình thử nghiệm và phát triển.

1. Đăng ký ứng dụng sản xuất của bạn với Firebase

Trước tiên, hãy đăng ký các ứng dụng sản xuất của bạn với Firebase.

Cách nhanh nhất để thực hiện việc này là liên kết Dự án Firebase với dự án Google Play của bạn. Bạn có thể làm như vậy từ phần Tích hợp của cài đặt dự án của bạn trong bảng điều khiển Firebase.

Khi bạn liên kết các dự án của mình, chữ ký SHA-1 của ứng dụng sản xuất sẽ được nhập vào dự án Firebase của bạn, bạn có thể xác nhận chữ ký này trên trang Cài đặt . Lưu ý rằng việc liên kết các dự án Firebase và Google Play của bạn cũng làm cho dữ liệu Google Play khác, bao gồm cả số liệu thống kê về sự cố và doanh thu, có thể truy cập được vào Firebase và dữ liệu Firebase, bao gồm cả phân tích, có thể truy cập được vào Google Play.

Ngoài ra, nếu bạn không muốn chia sẻ dữ liệu giữa các dự án Firebase và Google Play, bạn có thể tự chỉ định chữ ký SHA-1 của ứng dụng trên trang Cài đặt. Xem Xác thực ứng dụng của bạn để tìm hiểu cách lấy chữ ký SHA-1 của ứng dụng.

2. Hạn chế phạm vi của các khóa API của bạn

Tiếp theo, 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 Bảng điều khiển đám mây.

  2. Đối với mỗi khóa API trong danh sách, hãy mở chế độ xem chỉnh sửa và trong phần Hạn chế Khóa, thêm tất cả các API có sẵn ngoại trừ API Cloud Vision vào danh sách.

3. Tạo và sử dụng khóa API chỉ gỡ lỗi

Cuối cùng, tạo một khóa API mới chỉ được sử dụng để phát triển. Firebase ML có thể sử dụng khóa API này để truy cập các dịch vụ Đám mây trong các môi trường không thể xác thực ứng dụng, chẳng hạn như khi chạy trên trình giả lập.

  1. Tạo khóa API mới được sử dụng để phát triển:

    1. Mở trang Thông tin đăng nhập của Bảng điều khiển đám mây.
    2. Nhấp vào Tạo thông tin đăng nhập> Khóa API và ghi lại khóa API mới. Khóa này cho phép truy cập API từ các ứng dụng chưa được xác thực, vì vậy hãy giữ bí mật cho khóa này .
  2. Để đảm bảo khóa API gỡ lỗi mới không bị rò rỉ với ứng dụng đã phát hành của bạn, hãy chỉ định khóa API gỡ lỗi trong tệp kê khai Android chỉ được sử dụng cho các bản dựng gỡ lỗi:

    1. Nếu bạn chưa có tệp kê khai gỡ lỗi, hãy tạo một tệp kê khai bằng cách nhấp vào Tệp> Mới> Khác> Tệp kê khai Android và chọn debug từ bộ nguồn đích.

    2. Trong tệp kê khai gỡ lỗi, hãy thêm khai báo sau:

      <application>
      <meta-data
          android:name="com.firebase.ml.cloud.ApiKeyForDebug"
          android:value="your-debug-api-key" />
      </application>
      
  3. Trong ứng dụng của bạn, hãy định cấu hình Firebase ML để sử dụng đối sánh tệp tham chiếu chứng chỉ nhằm xác thực ứng dụng khách của bạn trong phiên bản sản xuất và sử dụng khóa API — khóa gỡ lỗi — chỉ trong các bản dựng gỡ lỗi:

    Java

    FirebaseVisionCloudImageLabelerOptions.Builder optionsBuilder =
            new FirebaseVisionCloudImageLabelerOptions.Builder();
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch();
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f);
    // ...
    
    // And lastly:
    FirebaseVisionCloudImageLabelerOptions options = optionsBuilder.build();
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage);

    Kotlin + KTX

    val optionsBuilder = FirebaseVisionCloudImageLabelerOptions.Builder()
    if (!BuildConfig.DEBUG) {
        // Requires physical, non-rooted device:
        optionsBuilder.enforceCertFingerprintMatch()
    }
    
    // Set other options. For example:
    optionsBuilder.setConfidenceThreshold(0.8f)
    // ...
    
    // And lastly:
    val options = optionsBuilder.build()
    FirebaseVision.getInstance().getCloudImageLabeler(options).processImage(myImage)

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.