مقدمه ای بر Admin Auth API

Firebase Admin SDK به شما امکان می‌دهد سرورهای خود را با Firebase Authentication ادغام کنید. می‌توانید از Firebase Admin SDK برای مدیریت کاربران یا مدیریت توکن‌های احراز هویت استفاده کنید. دلایل مختلفی برای انجام این کار وجود دارد:

مدیریت کاربر

همیشه مراجعه به کنسول Firebase برای مدیریت کاربران Firebase راحت نیست. API مدیریت کاربر ادمین، دسترسی برنامه‌نویسی‌شده به همان کاربران را فراهم می‌کند. حتی به شما امکان می‌دهد کارهایی را انجام دهید که کنسول Firebase نمی‌تواند، مانند بازیابی اطلاعات کامل کاربر و تغییر رمز عبور، آدرس ایمیل یا شماره تلفن کاربر.

احراز هویت سفارشی

شما می‌توانید یک سیستم کاربر خارجی را با Firebase ادغام کنید. برای مثال، ممکن است از قبل یک پایگاه داده کاربر از پیش موجود داشته باشید یا بخواهید آن را با یک ارائه‌دهنده هویت شخص ثالث که Firebase Authentication به طور بومی از آن پشتیبانی نمی‌کند، ادغام کنید.

برای انجام این کار، می‌توانید توکن‌های سفارشی با ادعاهای دلخواه برای شناسایی کاربر ایجاد کنید. سپس می‌توان از این توکن‌های سفارشی برای ورود به سرویس Firebase Authentication در یک برنامه کلاینت استفاده کرد و هویت توصیف شده توسط ادعاهای توکن را به عهده گرفت. این هویت سپس هنگام دسترسی به سایر سرویس‌های Firebase ، مانند Cloud Storage ، استفاده خواهد شد.

تأیید هویت

Firebase Authentication در درجه اول برای شناسایی کاربران برنامه شما به منظور محدود کردن دسترسی به سایر سرویس‌ها، مانند Cloud Storage استفاده می‌شود. همچنین می‌توانید از این سرویس برای شناسایی این کاربران در سرور خود استفاده کنید. این به شما امکان می‌دهد منطق سمت سرور را به طور ایمن از طرف کاربرانی که با Firebase Authentication وارد سیستم شده‌اند، انجام دهید.

برای انجام این کار، می‌توانید یک توکن شناسه را از یک برنامه کلاینت که با Firebase Authentication وارد شده است، بازیابی کنید و توکن را در درخواستی به سرور خود قرار دهید. سپس سرور شما توکن شناسه را تأیید می‌کند و ادعاهایی را که کاربر را شناسایی می‌کند (از جمله uid کاربری، ارائه دهنده هویتی که با آن وارد سیستم شده است و غیره) استخراج می‌کند. این اطلاعات هویتی سپس می‌تواند توسط سرور شما برای انجام اقدامات از طرف کاربر استفاده شود.

کیت توسعه نرم‌افزاری مدیریت فایربیس Firebase Admin SDK روش‌هایی را برای انجام وظایف احراز هویت فوق ارائه می‌دهد و شما را قادر می‌سازد تا کاربران خود را مدیریت کنید، توکن‌های سفارشی ایجاد کنید و توکن‌های شناسه را تأیید کنید.

ادعاهای کاربر سفارشی

در برخی موارد، ممکن است بخواهید کنترل دسترسی دقیقی را برای کاربرانی که قبلاً با یکی از ارائه دهندگان تأیید اعتبار Firebase مانند ایمیل/رمز عبور، گوگل، فیسبوک، تلفن و غیره وارد سیستم شده‌اند، پیاده‌سازی کنید. ترکیبی از ادعاهای کاربر سفارشی و قوانین امنیتی برنامه این قابلیت را فراهم می‌کند. به عنوان مثال، کاربری که با ارائه دهنده Firebase Authentication وارد سیستم شده است، می‌تواند کنترل دسترسی را با استفاده از ادعاهای سفارشی تعریف کند.

مدیریت کاربران

کیت توسعه نرم‌افزاری Firebase Admin SDK یک API برای مدیریت کاربران Firebase شما با امتیازات بالا ارائه می‌دهد. API مدیریت کاربر ادمین به شما این امکان را می‌دهد که بدون نیاز به اطلاعات کاربری موجود کاربر و بدون نگرانی در مورد محدود کردن نرخ سمت کلاینت، کاربران را به صورت برنامه‌نویسی بازیابی، ایجاد، به‌روزرسانی و حذف کنید.

مدیریت کاربران

ایجاد توکن سفارشی

کاربرد اصلی ایجاد توکن‌های سفارشی، امکان احراز هویت کاربران در برابر یک مکانیزم احراز هویت خارجی یا قدیمی است. این مکانیزم می‌تواند مکانیزمی باشد که شما کنترل می‌کنید، مانند سرور LDAP شما، یا یک ارائه‌دهنده OAuth شخص ثالث که Firebase به طور بومی از آن پشتیبانی نمی‌کند، مانند اینستاگرام یا لینکدین.

کیت توسعه نرم‌افزاری Firebase Admin SDK یک روش داخلی برای ایجاد توکن‌های سفارشی دارد. همچنین می‌توانید با استفاده از کتابخانه‌های JWT شخص ثالث، توکن‌های سفارشی را به هر زبانی و از طریق برنامه‌نویسی ایجاد کنید.

سرور شما باید یک توکن سفارشی با یک شناسه منحصر به فرد ( uid ) ایجاد کند و آن توکن را به یک برنامه کلاینت منتقل کند، که از آن برای ورود به Firebase استفاده خواهد کرد. برای نمونه کد و جزئیات بیشتر در مورد فرآیند ایجاد توکن سفارشی، به بخش «ایجاد توکن‌های سفارشی» مراجعه کنید.

ایجاد توکن‌های سفارشی

تأیید توکن شناسایی

اگر برنامه کلاینت Firebase شما با سرور backend شما ارتباط برقرار می‌کند، ممکن است لازم باشد کاربر فعلی وارد شده در سرور خود را شناسایی کنید تا بتوانید منطق سمت سرور را از طرف آنها انجام دهید. می‌توانید این کار را با استفاده از توکن‌های شناسه (ID tokens) که توسط Firebase هنگام ورود کاربر به برنامه Firebase ایجاد می‌شوند، به صورت ایمن انجام دهید. توکن‌های شناسه با مشخصات OpenID Connect مطابقت دارند و حاوی داده‌هایی برای شناسایی کاربر و همچنین برخی اطلاعات مرتبط با پروفایل و احراز هویت هستند. می‌توانید این توکن‌ها را از backend خود ارسال، تأیید و بررسی کنید. این به شما امکان می‌دهد تا کاربر فعلی وارد شده را به صورت ایمن شناسایی کرده و آنها را به منابع backend خود مجاز کنید.

کیت توسعه نرم‌افزاری Firebase Admin SDK یک روش داخلی برای تأیید توکن‌های شناسه (ID tokens) دارد. همچنین می‌توانید با استفاده از کتابخانه‌های JWT شخص ثالث، توکن‌های شناسه را به هر زبانی به صورت برنامه‌نویسی شده تأیید کنید. برای جزئیات بیشتر و نمونه‌های کد در مورد فرآیند تأیید توکن شناسه، به بخش «تأیید توکن‌های شناسه » (Verify ID tokens) مراجعه کنید.

تأیید توکن‌های شناسایی

ادعاهای کاربر سفارشی

کیت توسعه نرم‌افزاری Firebase Admin SDK به شما امکان می‌دهد ویژگی‌های سفارشی را برای حساب‌های کاربری تنظیم کنید. با ادعاهای کاربری سفارشی، می‌توانید به کاربران سطوح دسترسی (نقش‌های) مختلفی بدهید که سپس در قوانین امنیتی یک برنامه اعمال می‌شوند.

پس از اینکه ادعاهای سفارشی از طریق Firebase Admin SDK روی یک کاربر اصلاح شدند، از طریق توکن‌های شناسه (ID tokens) آنها به کاربران احراز هویت شده در سمت کلاینت ارسال می‌شوند. توکن شناسه یک مکانیزم قابل اعتماد برای ارائه این ادعاهای سفارشی است و همه دسترسی‌های احراز هویت شده باید قبل از پردازش درخواست مربوطه، توکن شناسه را اعتبارسنجی کنند.

کنترل دسترسی با ادعاهای سفارشی