הגבלת הבקשות למשתמשים מאומתים בלבד

אתם יכולים לאכוף מצב משתמשים מאומתים בפרויקט Firebase. כשמפעילים את האכיפה, כל הבקשות ל-Gemini API דרך Firebase AI Logic חייבות להגיע ממשתמשים מאומתים באפליקציה. כלומר, משתמש הקצה באפליקציה צריך לעבור אימות באמצעות Firebase Authentication לפני שהוא שולח בקשה ל-Firebase AI Logic מהאפליקציה. אם משתמש הקצה לא מאומת, הבקשה נחסמת.

כשבקשה נחסמת, התגובה תהיה שגיאה 401: unauthenticated.

שיקולים חשובים

חשוב לשים לב לנקודות הבאות לגבי מצב משתמשים מאומתים.

כשמצב משתמשים מאומתים נאכף

כשמצב המשתמשים המאומתים נאכף, חשוב לשים לב לנקודות הבאות:

  • ההגדרה הזו היא הגדרה בכל הפרויקט עבור Firebase AI Logic.

    • היא חלה על כל האפליקציות שרשומות בפרויקט.
    • היא חלה רק על הפרויקט שבו היא נאכפת.
  • ההגדרה הזו חוסמת את כל הבקשות דרך Firebase AI Logic שלא שולחות פרטי כניסה של Firebase Authentication.

    • המשתמש צריך לעבור אימות באמצעות Firebase Authentication לפני שליחת הבקשה אל Firebase AI Logic.
    • ההגדרה הזו חלה על כל הבקשות דרך Firebase AI Logic גם אל Gemini Developer API וגם אל Vertex AI Gemini API.
    • ההגדרה הזו חלה על כל הבקשות שמשתמשות בתבניות של הנחיות לשרת.
    • אי אפשר להחיל את ההגדרה הזו על בסיס משתמש, API או תבנית.
  • ההגדרה הזו לא חוסמת בקשות של Gemini API בפרויקט שהן לא דרך 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 (ה-API של Count Tokens).

לפני שמפעילים את מצב המשתמשים המאומתים

חשוב לשים לב לנקודות הבאות לפני שמפעילים את מצב המשתמשים המאומתים:

  • אם יש לכם גרסאות קיימות של האפליקציה שלא משתמשות ב-Firebase Authentication:

    • ההגדרה הזו תחסום בקשות דרך Firebase AI Logic מגרסאות קיימות של האפליקציה.
    • חשוב לוודא שכל הלקוחות הפעילים עודכנו לשימוש ב-Firebase Authentication לפני הפעלת מצב משתמשים מאומתים.
  • בגרסאות ישנות יותר של הפלאגין Flutter נדרש אובייקט מיוחד כדי לשלוח Firebase Authenticationפרטי כניסה עם בקשות.

    • אם באפליקציה שלכם נעשה שימוש בתוסף Flutter‏ firebase_ai גרסה 3.11.0 ומטה (BoM גרסה 4.12.0 ומטה) ולא מועבר Authentication במהלך יצירת המופע, ההגדרה הזו תחסום בקשות דרך Firebase AI Logic – גם עבור משתמשים מאומתים.
    • חשוב לוודא שכל הלקוחות הפעילים ב-Flutter עודכנו לגרסה חדשה יותר של הפלאגין לפני שמפעילים את מצב המשתמשים המאומתים.

הגדר את Firebase Authentication

במסמכי התיעוד של Firebase Authentication מפורטים תיאורים והוראות להטמעה של ספקי אימות נתמכים, כולל שימוש בסיסמאות, מספרי טלפון, ספקי זהויות מאוחדות פופולריים (כמו Google,‏ Facebook ו-GitHub) ועוד.

אחרי שמטמיעים את Firebase Authentication באפליקציה, האפליקציה שולחת באופן אוטומטי את פרטי הכניסה של המשתמש המאומת בכל בקשה אל Firebase AI Logic.Firebase Authentication

כמה נקודות חשובות לגבי ספקי אימות מסוימים:

  • אימות מותאם אישית: צריך לאחזר אסימון אימות חתום כדי לשלוח אותו עם הבקשה אל Firebase AI Logic. פרטים נוספים מופיעים במאמר בנושא אימות בהתאמה אישית.

  • שיטות אימות אנונימיות או אימייל/סיסמה: המשתמשים האלה נחשבים למשתמשים מאומתים, ולכן הבקשות שלהם ל-Firebase AI Logic לא נחסמות.

    שימו לב: למרות ששיטות האימות האנונימיות ושיטות האימות באמצעות אימייל וסיסמה מחייבות את המשתמשים להיכנס לאפליקציה כדי ליצור פרטי כניסה, הן לא שיטות אימות חזקות (במיוחד להגנה על משאב בתשלום) כי הן לא מחייבות אימות זהות מהמשתמש כברירת מחדל.Firebase Authentication אם האפליקציה שלכם משתמשת בהטמעה שמוגדרת כברירת מחדל של שיטות האימות האלה, יכול להיות שההגנה תהיה פחות טובה, גם אם תאכפו את מצב המשתמשים המאומתים. חשוב לוודא שהפעלתם Firebase App Check.

ניהול ההגדרה של מצב משתמשים מאומתים

אתם מנהלים את ההגדרה של מצב משתמשים מאומתים במסוף Firebase.

הרשאות ותפקידים נדרשים ב-IAM

כדי לנהל את ההגדרה של מצב משתמשים מאומתים, צריך את ההרשאה firebasevertexai.configs.update, שכלולה כברירת מחדל בתפקידים הבאים ב-IAM: בעלים, עריכה, אדמין ב-Firebase ואדמין של Firebase AI Logic.

אכיפת מצב 'משתמשים מאומתים'

כך אוכפים את מצב המשתמשים המאומתים בפרויקט Firebase:

  1. אם עדיין לא עשיתם את זה, מומלץ לעיין בשיקולים החשובים לגבי מצב משתמשים מאומתים שמופיעים בחלק הקודם של המדריך הזה.

  2. אם עדיין לא עשיתם זאת, מגדירים את Firebase Authentication באפליקציה (כפי שמתואר בהמשך המדריך הזה).

  3. אכיפת מצב משתמשים מאומתים:

    1. במסוף Firebase, עוברים אל AI Services (שירותי AI) > AI Logic (לוגיקת AI) > הכרטיסייה Settings (הגדרות).

    2. בקטע מצב משתמשים מאומתים, מעבירים את המתג של הפעלת מצב משתמשים מאומתים למצב מופעל.

    3. בודקים את תיבת הדו-שיח לאישור ולוחצים על אישור.

הפסקת האכיפה של מצב משתמשים מאומתים

אם מפסיקים את האכיפה של מצב משתמשים מאומתים, חשוב לשים לב לנקודות הבאות:

  • בקשות דרך Firebase AI Logic שלא שולחות פרטי כניסה של Firebase Authentication יאושרו.
  • זוהי הגדרה בכל הפרויקט עבור Firebase AI Logic.

כך מפסיקים את האכיפה של מצב משתמשים מאומתים בפרויקט Firebase:

  1. במסוף Firebase, עוברים אל AI Services (שירותי AI) > AI Logic (לוגיקת AI) > הכרטיסייה Settings (הגדרות).

  2. בקטע מצב משתמשים מאומתים, משביתים את האפשרות החלת מצב משתמשים מאומתים.

  3. בודקים את תיבת הדו-שיח לאישור ולוחצים על אישור.