Để Firebase Extension thực hiện các hành động đã chỉ định, Firebase cấp cho mỗi thực thể của một tiện ích đã cài đặt quyền truy cập có giới hạn vào dự án và dữ liệu của bạn thông qua một tài khoản dịch vụ.
Tài khoản dịch vụ là gì?
Tài khoản dịch vụ là một loại tài khoản người dùng Google đặc biệt. Mã này đại diện cho một người dùng không phải con người được uỷ quyền truy cập vào dữ liệu bằng API của Google.
Trong quá trình cài đặt một tiện ích, Firebase sẽ tạo một tài khoản dịch vụ trong dự án của bạn. Mỗi phiên bản đã cài đặt của một tiện ích đều có tài khoản dịch vụ riêng.
Firebase giới hạn quyền truy cập vào dự án và dữ liệu của bạn bằng cách chỉ định vai trò (gói quyền) cụ thể cho tài khoản dịch vụ của tiện ích. Firebase sẽ xác định các vai trò mà một tiện ích cần có để hoạt động trong quá trình phát triển tiện ích. Khi cài đặt, Firebase sẽ chỉ định các vai trò này cho tài khoản dịch vụ của tiện ích và bạn không nên sửa đổi, thêm vào hoặc xoá bất kỳ vai trò nào được chỉ định này (nếu không, tiện ích đã cài đặt sẽ không hoạt động như mong đợi). Tuy nhiên, bạn có thể gỡ cài đặt tiện ích để xoá toàn bộ tài khoản dịch vụ (và quyền truy cập của tài khoản đó).
Tài khoản dịch vụ được tạo cho tiện ích có định dạng:
ext-extension-instance-id@project-id.iam.gserviceaccount.com
Bạn có thể xem tất cả tài khoản dịch vụ được liên kết với dự án Firebase của mình trong thẻ Tài khoản dịch vụ của
Quyền và vai trò
Trong quá trình phát triển một tiện ích, Firebase sẽ xác định cấp truy cập mà tiện ích đó cần để hoạt động.
Firebase xác định cấp truy cập này bằng cách liệt kê rõ ràng vai trò (gói quyền) mà Firebase sẽ chỉ định cho tài khoản dịch vụ của tiện ích trong quá trình cài đặt tiện ích.
Mỗi vai trò (và các quyền vốn có của vai trò đó) đều dựa trên một sản phẩm hoặc dịch vụ cụ thể. Ví dụ về vai trò là firebasehosting.admin
, bigquery.dataEditor
và firebasedatabase.admin
. Firebase liệt kê các vai trò bắt buộc cho một tiện ích trong tệp thông số kỹ thuật của tiện ích (tệp extension.yaml
).
Đối với các tiện ích Firebase chính thức, Firebase sẽ xem xét kỹ lưỡng danh sách vai trò này để đảm bảo quyền truy cập của tiện ích chỉ được giới hạn nghiêm ngặt trong phạm vi tác vụ của tiện ích. Bạn cũng có thể tự xem xét và xác nhận quyền truy cập được cấp cho một tiện ích bằng cách xem trang chi tiết của tiện ích đó trong trang tổng quan Firebase Extensions hoặc xem tệp README
của tiện ích đó.
Tìm hiểu về các quyền có trong từng vai trò:
Điều gì sẽ xảy ra khi tôi gỡ cài đặt một tiện ích?
Khi bạn gỡ cài đặt một tiện ích khỏi dự án, Firebase sẽ xoá tài khoản dịch vụ được tạo cho thực thể của tiện ích đó. Sau khi tài khoản dịch vụ này bị xoá, tiện ích không thể chạy trong dự án của bạn vì không còn quyền truy cập vào dự án hoặc dữ liệu của bạn.