תחילת השימוש ב-App Check עם reCAPTCHA Enterprise באפליקציות אינטרנט

בחירת פלטפורמה: iOS+‎ Android Web Flutter


בדף הזה מוסבר איך להגדיר את App Check באפליקציית אינטרנט באמצעות ספק reCAPTCHA Enterprise. App Check עוזרת לוודא שרק האפליקציה שלכם יכולה לגשת למשאבי הקצה העורפי של הפרויקט. מידע נוסף זמין בסקירה הכללית של App Check.

App Check דורש שימוש במפתחות מבוססי ניקוד reCAPTCHA, ולכן הוא לא גלוי למשתמשים. המשמעות היא שספק reCAPTCHA Enterprise לא יבקש מהמשתמשים לפתור אתגר בשום שלב.

אם תרחיש השימוש שלכם דורש תכונות של reCAPTCHA Enterprise שלא מיושמות על ידי App Check, או אם אתם רוצים להשתמש ב-App Check עם ספק מותאם אישית משלכם, כדאי לעיין במאמר בנושא הטמעה של ספק App Check מותאם אישית.

1. הגדרת פרויקט Firebase

  1. אם עדיין לא עשיתם את זה, מוסיפים את Firebase לפרויקט JavaScript.

  2. במסוף Google Cloud, עוברים לדף Fraud Defense ומבצעים את הפעולות הבאות עבור הספק reCAPTCHA Enterprise:

    1. מוודאים שאתם נמצאים בפרויקט הנכון (אפשר לראות את בורר הפרויקטים בחלק העליון של המסך).

    2. אם מופיעה בקשה, מפעילים את ה-API של reCAPTCHA Enterprise.

    3. יוצרים מפתח מסוג Web ומציינים כל אחד מהדומיינים של אפליקציות האינטרנט.

      • App Check לא תומך באפליקציות אינטרנט שפועלות ביותר מ-250 דומיינים.

      • אל תוסיפו אף פעם את localhost כדומיין למפתח reCAPTCHA שמוטמע בסביבת הייצור (או שיוטמע בה).

      • משאירים את האפשרות 'שימוש באתגר תיבת סימון' לא מסומנת.

      הוראות מפורטות זמינות במאמר בנושא יצירת מפתחות reCAPTCHA שמבוססים על ניקוד.

    4. רושמים בצד את המפתח הזה. צריך להוסיף אותו לתהליך ההרשמה במסוף Firebase.

  3. במסוף Firebase, עוברים אל Security (אבטחה) >‏ App Check (בדיקת אפליקציות).

  4. בכרטיסייה Apps, רושמים את אפליקציות האינטרנט לשימוש ב-App Check עם הספק reCAPTCHA Enterprise. תצטרכו לספק את המפתח שקיבלתם במסוף Google Cloud.

  5. אופציונלי: מגדירים את אורך החיים (TTL) של האסימון.

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

    • אבטחה: ערכי TTL קצרים יותר מספקים אבטחה חזקה יותר, כי הם מצמצמים את חלון הזמן שבו תוקף יכול לנצל לרעה אסימון שדלף או נחטף.
    • ביצועים: ערכי TTL קצרים יותר אומרים שהאפליקציה תבצע אימות בתדירות גבוהה יותר. תהליך אימות האפליקציה מוסיף זמן אחזור לבקשות רשת בכל פעם שהוא מתבצע, ולכן ערך TTL קצר יכול להשפיע על ביצועי האפליקציה.
    • מכסת השימוש והעלות: ערכי TTL קצרים ואימות חוזר תכוף מרוקנים את מכסת השימוש מהר יותר, ובשירותים בתשלום, עלולים לייקר את העלות. מידע נוסף זמין במאמר מכסות ומגבלות.

    ערך ברירת המחדל של TTL הוא שעה אחת, וזה ערך סביר לרוב האפליקציות. הערה: ספריית App Check מרעננת את האסימונים בערך במחצית משך ה-TTL.

  6. אופציונלי: מגדירים הגדרות מתקדמות.

  7. לוחצים על שמירה.

(אופציונלי) הגדרת הגדרות מתקדמות

כשמשתמש פותח את האפליקציה, reCAPTCHA Enterprise מעריך את רמת הסיכון שהאינטראקציה של המשתמש מייצגת בהתאם למפתח, ומחזיר ציון בין 0.0 ל-1.0, במרווחים של 0.1.

  • ציון של 0.0 מציין שהאינטראקציה מהווה סיכון גבוה ויכול להיות שהיא הונאה.
  • ציון של 1.0 מציין שהאינטראקציה מהווה סיכון נמוך, וסביר מאוד שהיא לגיטימית.

App Check מאפשר לכם להגדיר סף סיכון לאפליקציה כדי שתוכלו להתאים את הסבילות שלכם לסיכון הזה.

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

2. להוסיף את ספריית App Check לאפליקציה

אם עדיין לא עשיתם את זה, אתם צריכים להתקין את Firebase JavaScript SDK ולהפעיל את Firebase באפליקציה.

3. אתחול App Check

מוסיפים את App Check קוד האתחול הבא בשלב מוקדם באפליקציה, כדי שהוא יפעל לפני שתיגשו לשירותי Firebase באפליקציה.

חשוב להעביר את אותו מפתח reCAPTCHA שבו השתמשתם כדי לרשום את האפליקציה ב-reCAPTCHA Enterprise במסוף Firebase (ראו את החלק הראשון של המדריך).

Web

import { initializeApp } from "firebase/app";
import { initializeAppCheck, ReCaptchaEnterpriseProvider } from "firebase/app-check";

const app = initializeApp({
  // Your Firebase configuration object.
});

// Create a ReCaptchaEnterpriseProvider instance
// using your reCAPTCHA Enterprise key and pass it to `initializeAppCheck()`.
const appCheck = initializeAppCheck(app, {
  provider: new ReCaptchaEnterpriseProvider(RECAPTCHA_KEY),
  isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh.
});

Web

firebase.initializeApp({
  // Your Firebase configuration object.
});

// Create a ReCaptchaEnterpriseProvider instance
// using your reCAPTCHA Enterprise key and pass it to `activate()`.
const appCheck = firebase.appCheck();
appCheck.activate(
  new firebase.appCheck.ReCaptchaEnterpriseProvider(
    RECAPTCHA_KEY
  ),
  true // Set to true to allow auto-refresh.
);

4. מעקב אחרי מדדים והפעלת אכיפה

אחרי שמגדירים את App Check באפליקציה, מתחילים להפיץ את האפליקציה המעודכנת למשתמשים.

אפליקציית הלקוח המעודכנת תתחיל לשלוח טוקנים של App Check יחד עם כל בקשה שהיא שולחת ל-Firebase. עם זאת, App Check לא יחסום בקשות עם אסימונים לא תקינים עד להחלת App Check.

מעקב אחרי מדדים

לפני שמפעילים את האכיפה, חשוב לוודא שהפעולה הזו לא תשבש את הפעילות של המשתמשים הלגיטימיים הקיימים. עם זאת, אם אתם רואים שימוש חשוד במשאבי האפליקציה, כדאי להפעיל את האכיפה מוקדם יותר.

כדי לקבל החלטה מושכלת, אפשר לעיין במדדים של App Check לגבי השירותים שבהם אתם משתמשים:

הפעלת האכיפה של App Check

אחרי שתבינו איך App Check ישפיע על המשתמשים שלכם ותהיו מוכנים להמשיך, תוכלו להפעיל את האכיפה של App Check:

שימוש ב-App Check בסביבות ניפוי באגים

App Check מסווגת סביבות מסוימות כלא תקינות, כמו בקשות מ-localhost במהלך פיתוח או מסביבת אינטגרציה רציפה (CI).

כדי להריץ את האפליקציה בסביבות מהסוגים האלה אחרי שאמצעי האכיפה של App Check יופעלו, תצטרכו ליצור גרסת ניפוי באגים של האפליקציה שמשתמשת בApp Check ספק ניפוי באגים במקום בספק אימות ייצור.

פרטים נוספים זמינים במאמר בנושא שימוש ב-App Check עם ספק אימות לצורכי ניפוי באגים באפליקציות אינטרנט.

תמחור

App Check יוצרת הערכה בשמכם כדי לאמת את טוקן התגובה של המשתמש בכל פעם שהאפליקציה מרעננת את הטוקן של App Check. החיוב על כל הערכה שתיצרו מעבר למכסת השימוש ללא עלות יופיע בפרויקט Firebase. פרטים נוספים מופיעים בקטע reCAPTCHAתמחור.

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