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 Android 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 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.

  1. Đảm bảo rằng bạn có chữ ký SHA-1 của ứng dụng. Tham khảo Xác thực khách hàng của bạn để tìm hiểu cách thực hiện.

  2. Chuyển đến cài đặt của bạn dự án trong bảng điều khiển Firebase, sau đó chọn tab Cài đặt .

  3. Cuộn xuống thẻ Ứng dụng của bạn , sau đó chọn ứng dụng Android của bạn.

  4. Thêm chữ ký SHA-1 của ứng dụng vào thông tin ứng dụng của bạn.

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 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 có 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 đối với 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.

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ụ Google Cloud 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 một khóa API mới được sử dụng để phát triển:

    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. 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.