محدود کردن درخواست‌ها فقط به کاربران احراز هویت شده

شما می‌توانید حالت کاربران احراز هویت‌شده را برای پروژه Firebase خود اعمال کنید. در صورت اعمال این حالت، تمام درخواست‌های API Gemini از طریق Firebase AI Logic باید از کاربران احراز هویت‌شده برنامه شما ارسال شوند. به‌طور خاص، کاربر نهایی برنامه شما باید قبل از ارسال درخواست به Firebase AI Logic از برنامه شما، با استفاده از Firebase Authentication احراز هویت شود. اگر کاربر نهایی احراز هویت نشده باشد، درخواست مسدود می‌شود.

وقتی یک درخواست مسدود می‌شود، پاسخ یک خطای 401: unauthenticated خواهد بود.

ملاحظات مهم

از ملاحظات مهم زیر برای حالت کاربران احراز هویت شده آگاه باشید.

وقتی حالت کاربران احراز هویت‌شده اعمال می‌شود

هنگام فعال‌سازی حالت کاربران احراز هویت‌شده، موارد زیر را در نظر داشته باشید:

  • این تنظیم، یک تنظیم در سطح پروژه برای Firebase AI Logic است.

    • این برای همه برنامه‌های ثبت‌شده در پروژه اعمال می‌شود.
    • این فقط در مورد پروژه‌ای که در آن اجرا می‌شود، اعمال می‌شود.
  • این تنظیم تمام درخواست‌های ارسالی از طریق Firebase AI Logic که اعتبارنامه‌های Firebase Authentication ارسال نمی‌کنند ، مسدود می‌کند .

    • کاربر قبل از ارسال درخواست به Firebase AI Logic باید از طریق Firebase Authentication احراز هویت شود.
    • این تنظیم برای همه درخواست‌ها از طریق Firebase AI Logic به هر دو API توسعه‌دهنده Gemini و API Vertex AI Gemini اعمال می‌شود.
    • این تنظیم برای همه درخواست‌هایی که از الگوهای اعلان سرور استفاده می‌کنند، اعمال می‌شود.
    • این تنظیم نمی‌تواند برای هر کاربر، هر API یا هر قالب اعمال شود.
  • این تنظیم، درخواست‌های API مربوط به Gemini در پروژه شما که از طریق Firebase AI Logic ارسال نمی‌شوند را مسدود نمی‌کند .

  • اگر از حالت ترکیبی / روی دستگاه استفاده می‌کنید:

    • این تنظیم، در صورت عدم احراز هویت کاربر، درخواست‌ها به مدل میزبانی ابری را مسدود می‌کند .
    • این تنظیم، صرف نظر از وضعیت احراز هویت کاربر، درخواست‌ها به مدل روی دستگاه را مسدود نمی‌کند .
  • اگر از Gemini Live API استفاده می‌کنید:

    • این تنظیم، استفاده از Gemini Live API را برای برنامه‌های وب هنگام استفاده از Firebase AI Logic مسدود می‌کند - حتی برای کاربران احراز هویت شده. این شامل برنامه‌های وب با استفاده از Firebase JS SDK یا برنامه‌های وب Flutter نیز می‌شود.
  • اگر از Firebase AI Logic REST API استفاده می‌کنید:

    • این تنظیم، درخواست‌های استنتاجی که اعتبارنامه‌های Firebase Authentication ارسال نمی‌کنند ، مسدود می‌کند . این شامل درخواست‌های مربوط به قالب‌های اعلان سرور مانند templateGenerateContent یا templateStreamGenerateContent نیز می‌شود.
    • این تنظیم درخواست‌های صفحه کنترل (مانند درخواست‌های مربوط به مدیریت قالب‌ها و پیکربندی‌ها) را مسدود نمی‌کند زیرا توسط IAM محافظت می‌شوند.
  • این تنظیم، درخواست‌های ارسالی به countTokens (رابط برنامه‌نویسی کاربردی Count Tokens) را مسدود نمی‌کند .

قبل از اعمال حالت احراز هویت کاربران

قبل از اعمال حالت احراز هویت کاربران، از موارد زیر آگاه باشید:

  • اگر نسخه‌های موجود برنامه شما از Firebase Authentication استفاده نمی‌کنند :

    • این تنظیم، درخواست‌های ارسالی از طریق Firebase AI Logic را از نسخه‌های موجود برنامه مسدود می‌کند.
    • قبل از اعمال حالت احراز هویت کاربران، مطمئن شوید که همه کلاینت‌های فعال برای استفاده از Firebase Authentication به‌روزرسانی شده‌اند.
  • نسخه‌های قدیمی‌تر افزونه‌ی فلاتر برای ارسال اعتبارنامه‌های Firebase Authentication به همراه درخواست‌ها، به نمونه‌سازی ویژه‌ای نیاز دارند.

    • اگر برنامه شما از افزونه Flutter firebase_ai نسخه 3.11.0 یا پایین‌تر (BoM نسخه 4.12.0 یا پایین‌تر) استفاده می‌کند و در حین نمونه‌سازی، Authentication را انجام نمی‌دهد ، این تنظیم درخواست‌ها از طریق Firebase AI Logic را مسدود می‌کند - حتی برای کاربران احراز هویت شده.
    • قبل از اعمال حالت احراز هویت کاربران، مطمئن شوید که همه کلاینت‌های فعال فلاتر به نسخه جدیدتر افزونه به‌روزرسانی شده‌اند.

راه اندازی Firebase Authentication

مستندات Firebase Authentication توضیحات و دستورالعمل‌های پیاده‌سازی را برای ارائه‌دهندگان احراز هویت پشتیبانی‌شده، از جمله استفاده از رمزهای عبور، شماره تلفن‌ها، ارائه‌دهندگان هویت فدرال محبوب (مانند گوگل، فیس‌بوک و گیت‌هاب) و موارد دیگر ارائه می‌دهد.

پس از پیاده‌سازی Firebase Authentication در برنامه‌تان، برنامه شما به‌طور خودکار اعتبارنامه‌های Firebase Authentication را برای کاربر احراز هویت‌شده در هر درخواست به Firebase AI Logic ارسال می‌کند.

به نکات زیر در مورد برخی از ارائه دهندگان احراز هویت توجه کنید:

  • احراز هویت سفارشی : شما باید یک توکن احراز هویت امضا شده را برای ارسال به همراه درخواست به Firebase AI Logic دریافت کنید. برای جزئیات بیشتر، به احراز هویت سفارشی مراجعه کنید.

  • روش‌های احراز هویت ناشناس یا ایمیل/رمز عبور : این کاربران، کاربران احراز هویت شده محسوب می‌شوند، بنابراین درخواست‌های آنها به Firebase AI Logic مسدود نمی‌شود .

    توجه داشته باشید که اگرچه روش‌های احراز هویت ناشناس و ایمیل/رمز عبور، کاربران را ملزم به بازدید از برنامه شما برای ایجاد اعتبارنامه‌های Firebase Authentication می‌کنند، اما این روش‌ها، روش‌های احراز هویت قوی‌ای نیستند (به‌خصوص برای محافظت از منابع پولی) زیرا به‌طور پیش‌فرض نیازی به تأیید هویت از سوی کاربر ندارند. اگر برنامه شما از پیاده‌سازی پیش‌فرض این روش‌های احراز هویت استفاده می‌کند، حتی اگر حالت احراز هویت کاربران را فعال کنید، محافظت کمتری امکان‌پذیر است. مطمئن شوید که Firebase App Check نیز فعال کرده‌اید .

مدیریت تنظیمات حالت کاربران احراز هویت شده

شما تنظیمات مربوط به حالت کاربران احراز هویت شده را در کنسول Firebase مدیریت می‌کنید.

مجوزها و نقش‌های مورد نیاز IAM

مدیریت تنظیمات حالت کاربران احراز هویت‌شده نیاز به مجوز firebasevertexai.configs.update دارد که به طور پیش‌فرض در این نقش‌های IAM وجود دارد: مالک، ویرایشگر، مدیر Firebase و مدیر منطق هوش مصنوعی Firebase.

حالت کاربران احراز هویت شده را اعمال کنید

در اینجا نحوه اعمال حالت احراز هویت کاربران برای پروژه Firebase شما آورده شده است:

  1. اگر هنوز این کار را نکرده‌اید، ملاحظات مهم مربوط به حالت کاربران احراز هویت شده را که قبلاً در این راهنما آمده است، مرور کنید.

  2. اگر قبلاً این کار را نکرده‌اید، Firebase Authentication در برنامه خود تنظیم کنید (همانطور که قبلاً در این راهنما توضیح داده شده است).

  3. حالت احراز هویت کاربران را فعال کنید:

    1. در کنسول Firebase ، به بخش سرویس‌های هوش مصنوعی > منطق هوش مصنوعی > تب تنظیمات بروید.

    2. در قسمت Authenticated-users mode ، گزینه Enforce authenticated-users mode را روی Enforced قرار دهید.

    3. کادر محاوره‌ای تأیید را مرور کنید و سپس روی تأیید کلیک کنید.

توقف اجرای حالت کاربران احراز هویت‌شده

اگر اجرای حالت کاربران احراز هویت شده را متوقف کردید، از موارد زیر آگاه باشید:

  • درخواست‌هایی که از طریق Firebase AI Logic ارسال می‌شوند و اعتبارنامه‌های Firebase Authentication ارسال نمی‌کنند ، مجاز خواهند بود.
  • این یک تنظیم در سطح پروژه برای Firebase AI Logic است.

در اینجا نحوه متوقف کردن اجرای حالت احراز هویت کاربران برای پروژه Firebase شما آورده شده است:

  1. در کنسول Firebase ، به بخش سرویس‌های هوش مصنوعی > منطق هوش مصنوعی > تب تنظیمات بروید.

  2. در قسمت Authenticated-users mode ، گزینه Enforce authenticated-users mode را غیرفعال کنید.

  3. کادر محاوره‌ای تأیید را مرور کنید و سپس روی تأیید کلیک کنید.