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