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

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

مدیریت کاربر

همیشه راحت نیست که برای مدیریت کاربران Authentication خود به کنسول Firebase بروید. «میانای برنامه‌سازی کاربردی مدیریت کاربر سرپرست» دسترسی برنامه‌ریزی‌شده به همان کاربران را فراهم می‌کند. این API حتی به شما اجازه می‌دهد کارهایی را که کنسول Firebase نمی‌تواند انجام دهد، مثل بازیابی داده‌های کامل کاربر و تغییر گذرواژه، نشانی ایمیل، یا شماره تلفن کاربر، انجام دهید.

اصالت‌سنجی سفارشی

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

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

درستی‌سنجی هویت

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

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

Firebase Admin SDK روش‌هایی برای انجام دادن وظایف اصالت‌سنجی بالا ارائه می‌دهد و به شما امکان می‌دهد کاربران خود را مدیریت کنید، کدهای سفارشی تولید کنید، و کدهای شناسایی را درستی‌سنجی کنید.

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

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

مدیریت کاربر

‫Firebase Admin SDK یک «میانای برنامه‌سازی کاربردی» برای مدیریت کاربران Authentication با امتیازهای ویژه ارائه می‌دهد. «میانای برنامه‌سازی کاربر سرپرست» به شما امکان می‌دهد بدون نیاز به اعتبارنامه موجود کاربر و بدون نگرانی درباره محدودیت نرخ سمت مشتری، کاربران را به‌صورت برنامه‌ریزی‌شده بازیابی، ایجاد، به‌روزرسانی، و حذف کنید.

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

ایجاد رمز سفارشی

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

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

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

ایجاد نشان‌های سفارشی

درستی‌سنجی کد شناسایی

اگر برنامه مشتری Authentication شما با سرور زیرینه شما ارتباط برقرار می‌کند، ممکن است لازم باشد کاربر واردشده به سیستم را در سرورتان شناسایی کنید تا بتوانید منطق سمت سرور را ازطرف او اجرا کنید. می‌توانید این کار را بااستفاده از کدهای شناسایی که Authentication هنگام ورود کاربر به سیستم برنامه Authentication ایجاد می‌کند به‌طور ایمن انجام دهید. کدهای شناسایی با مشخصات OpenID Connect مطابقت دارند و حاوی داده‌هایی برای شناسایی کاربر و همچنین برخی دیگر از اطلاعات مربوط به نمایه و اصالت‌سنجی هستند. می‌توانید این نشان‌ها را از زیرینه‌های خودتان ارسال، درستی‌سنجی، و بازرسی کنید. این کار به شما امکان می‌دهد کاربر واردشده به سیستم را به‌طور ایمن شناسایی کنید و او را برای منابع زیرینه خودتان مجاز کنید.

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

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

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

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

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

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