Xác thực và uỷ quyền

Trình bổ trợ đo từ xa Firebase yêu cầu mã dự án Google Cloud hoặc Firebase và thông tin xác thực ứng dụng.

Nếu chưa có dự án và tài khoản Google Cloud, bạn có thể thiết lập dự án và tài khoản đó trong Bảng điều khiển Firebase hoặc trong Google Cloud Console. Tất cả mã dự án Firebase đều là mã dự án Google Cloud.

Bật API

Trước khi thêm trình bổ trợ, hãy đảm bảo bạn đã bật các API sau cho dự án:

Các API này sẽ được liệt kê trong trang tổng quan API cho dự án của bạn. Nhấp vào đây để tìm hiểu thêm về cách bật và tắt API.

Xác thực người dùng

Để xuất dữ liệu đo từ xa từ môi trường phát triển cục bộ sang tính năng Theo dõi Genkit của Firebase, bạn cần xác thực bằng Google Cloud.

Cách dễ nhất để xác thực chính mình là sử dụng CLI gcloud. CLI này sẽ tự động cung cấp thông tin xác thực của bạn cho khung thông qua Thông tin xác thực mặc định của ứng dụng (ADC).

Nếu bạn chưa cài đặt gcloud CLI, trước tiên, hãy làm theo hướng dẫn cài đặt.

  1. Xác thực bằng CLI gcloud:

    gcloud auth application-default login
  2. Đặt mã dự án

    gcloud config set project PROJECT_ID

Triển khai lên Google Cloud

Nếu bạn triển khai mã của mình cho môi trường Google Cloud hoặc Firebase (Cloud Functions, Cloud Run, App Hosting, v.v.), mã nhận dạng dự án và thông tin xác thực sẽ được tự động phát hiện bằng Thông tin xác thực mặc định của ứng dụng.

Bạn sẽ cần áp dụng các vai trò sau cho tài khoản dịch vụ đang chạy mã của bạn (tức là "tài khoản dịch vụ đính kèm") bằng cách sử dụng Bảng điều khiển IAM:

  • roles/monitoring.metricWriter
  • roles/cloudtrace.agent
  • roles/logging.logWriter

Bạn không biết tài khoản dịch vụ nào là phù hợp? Xem phần Tìm hoặc tạo tài khoản dịch vụ.

Triển khai bên ngoài Google Cloud (bằng ADC)

Nếu có thể, hãy sử dụng Thông tin xác thực mặc định của ứng dụng để cung cấp thông tin xác thực cho trình bổ trợ.

Thông thường, bạn cần tạo khoá tài khoản dịch vụ và triển khai thông tin xác thực đó vào môi trường phát hành công khai.

  1. Làm theo hướng dẫn để thiết lập khoá tài khoản dịch vụ.

  2. Đảm bảo tài khoản dịch vụ có các vai trò sau:

    • roles/monitoring.metricWriter
    • roles/cloudtrace.agent
    • roles/logging.logWriter
  3. Triển khai tệp thông tin xác thực cho môi trường phát hành công khai (không kiểm tra vào mã nguồn)

  4. Đặt biến môi trường GOOGLE_APPLICATION_CREDENTIALS làm đường dẫn đến tệp thông tin xác thực.

    GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"

Bạn không biết tài khoản dịch vụ nào là phù hợp? Xem phần Tìm hoặc tạo tài khoản dịch vụ.

Triển khai bên ngoài Google Cloud (không có ADC)

Trong một số môi trường không có máy chủ, bạn có thể không triển khai được tệp thông tin xác thực.

  1. Làm theo hướng dẫn để thiết lập khoá tài khoản dịch vụ.

  2. Đảm bảo tài khoản dịch vụ có các vai trò sau:

    • roles/monitoring.metricWriter
    • roles/cloudtrace.agent
    • roles/logging.logWriter
  3. Tải tệp thông tin xác thực xuống.

  4. Chỉ định nội dung của tệp thông tin xác thực cho biến môi trường GCLOUD_SERVICE_ACCOUNT_CREDS như sau:

GCLOUD_SERVICE_ACCOUNT_CREDS='{
  "type": "service_account",
  "project_id": "your-project-id",
  "private_key_id": "your-private-key-id",
  "private_key": "your-private-key",
  "client_email": "your-client-email",
  "client_id": "your-client-id",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "your-cert-url"
}'

Bạn không biết tài khoản dịch vụ nào là phù hợp? Xem phần Tìm hoặc tạo tài khoản dịch vụ.

Tìm hoặc tạo tài khoản dịch vụ

Cách tìm tài khoản dịch vụ thích hợp:

  1. Chuyển đến trang tài khoản dịch vụ trong Google Cloud Console
  2. Chọn dự án
  3. Tìm tài khoản dịch vụ thích hợp. Sau đây là các tài khoản dịch vụ mặc định phổ biến:
  • Hàm Firebase và Cloud Run

    PROJECT ID-compute@developer.gserviceaccount.com

  • App Engine

    PROJECT ID@appspot.gserviceaccount.com

  • App Hosting

    firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

Nếu đang triển khai bên ngoài hệ sinh thái của Google hoặc không muốn sử dụng tài khoản dịch vụ mặc định, bạn có thể tạo tài khoản dịch vụ trong bảng điều khiển Google Cloud.