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

אתם יכולים לאכוף מצב משתמשים מאומתים בפרויקט 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 Authentication של המשתמש המאומת בכל בקשה ל-Firebase AI Logic.

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

  • אימות מותאם אישית: צריך לאחזר אסימון אימות חתום כדי לשלוח אותו עם הבקשה אל 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. בודקים את תיבת הדו-שיח לאישור ולוחצים על אישור.