برای اینکه یک Firebase Extension اقدامات مشخص شده خود را انجام دهد، Firebase به هر نمونه از یک برنامه افزودنی نصب شده دسترسی محدودی به پروژه و داده شما از طریق یک حساب سرویس اعطا می کند.
حساب سرویس چیست؟
حساب سرویس نوع خاصی از حساب کاربری گوگل است. این نشان دهنده یک کاربر غیر انسانی است که مجاز به دسترسی به داده ها با استفاده از API های Google است.
در طول نصب یک برنامه افزودنی، Firebase یک حساب سرویس در پروژه شما ایجاد می کند. هر نمونه نصب شده یک برنامه افزودنی دارای حساب سرویس مخصوص به خود است.
Firebase دسترسی به پروژه و دادههای شما را با اختصاص نقشهای خاص حساب سرویس یک برنامه افزودنی (بستههای مجوز) محدود میکند. نقش هایی که یک برنامه افزودنی برای کار کردن نیاز دارد توسط Firebase در طول توسعه برنامه افزودنی تعیین می شود. هنگام نصب، Firebase این نقشها را به حساب سرویس یک برنامه افزودنی اختصاص میدهد، و شما نباید هیچ یک از این نقشهای اختصاصیافته را تغییر دهید، به آنها اضافه یا حذف کنید (در غیر این صورت برنامه افزودنی نصبشده شما آنطور که انتظار میرود کار نخواهد کرد). با این حال، می توانید برنامه افزودنی را حذف نصب کنید ، که حساب سرویس (و دسترسی آن) را به طور کلی حذف می کند.
حسابهای سرویس ایجاد شده برای برنامههای افزودنی به شکل زیر هستند:ext- extension-instance-id @ project-id .iam.gserviceaccount.com
.
میتوانید تمام حسابهای خدمات مرتبط با پروژه Firebase خود را در برگه حسابهای سرویس خود مشاهده کنید
مجوزها و نقش ها
در طول توسعه یک برنامه افزودنی، Firebase سطح دسترسی مورد نیاز یک برنامه افزودنی را تعیین می کند.
Firebase این سطح از دسترسی را با فهرست کردن صریح نقشها (بستههای مجوزها) که Firebase باید در حین نصب برنامه افزودنی به حساب سرویس برنامه افزودنی اختصاص دهد، تعریف میکند.
هر نقش (و مجوزهای ذاتی آن) بر اساس محصول یا خدمات خاصی است. نمونههایی از نقشها عبارتند از firebasehosting.admin
، bigquery.dataEditor
، و firebasedatabase.admin
. Firebase نقش های مورد نیاز برای یک برنامه افزودنی را در فایل مشخصات افزونه ( فایل extension.yaml
) فهرست می کند.
برای برنامههای افزودنی Firebase رسمی، Firebase این فهرست نقشها را بهطور کامل بررسی میکند تا اطمینان حاصل کند که دسترسی یک برنامه افزودنی به شدت محدود به محدوده وظایف برنامههای افزودنی است. همچنین میتوانید با مشاهده صفحه جزئیات برنامه افزودنی در داشبورد Firebase Extensions یا مشاهده فایل README
آن، دسترسی اعطا شده به یک برنامه افزودنی را بررسی و تأیید کنید.
با مجوزهای موجود در هر نقش آشنا شوید:
وقتی یک افزونه را حذف نصب می کنم چه اتفاقی می افتد؟
هنگامی که یک برنامه افزودنی را از پروژه خود حذف نصب می کنید ، Firebase حساب سرویس ایجاد شده برای آن نمونه از برنامه افزودنی را حذف می کند. پس از این حذف حساب سرویس، برنامه افزودنی نمی تواند در پروژه شما اجرا شود زیرا دیگر هیچ حق دسترسی به پروژه یا داده های شما ندارد.