שימוש ב-App Check לאבטחת מפתח ה-API
Firebase App Check מספק הגנה על קריאות מהאפליקציה שלכם ל-Google Maps Platform, על ידי חסימת תעבורת נתונים שמגיעה ממקורות שאינם אפליקציות לגיטימיות. האימות מתבצע על ידי בדיקה של טוקן מספק אימות כמו reCAPTCHA Enterprise. שילוב של האפליקציות עם App Check עוזר להגן עליהן מפני בקשות זדוניות, כך שלא תחויבו על קריאות לא מורשות ל-API.
האם App Check מתאים לי?
ברוב המקרים מומלץ להשתמש ב-App Check, אבל אין צורך להשתמש בו או שהוא לא נתמך במקרים הבאים:
- אפליקציות פרטיות או ניסיוניות. אם האפליקציה שלכם לא נגישה לציבור, אין צורך ב-App Check.
- אם האפליקציה שלכם משמשת רק שרת-לשרת, אין צורך ב-App Check. עם זאת, אם השרת שמתקשר עם GMP משמש לקוחות ציבוריים (כמו אפליקציות לנייד), כדאי להשתמש ב-App Check כדי להגן על השרת הזה במקום ב-GMP.
סקירה כללית של שלבי ההטמעה
אלה השלבים שצריך לבצע כדי לשלב את האפליקציה עם App Check:
- מוסיפים את Firebase לאפליקציה.
- מוסיפים את ספריית App Check ומפעילים אותה.
- מוסיפים את ספק הטוקנים לאפליקציה.
- מפעילים את ממשקי Maps JavaScript API ו-App Check API.
- מפעילים את ניפוי הבאגים.
- מעקב אחרי בקשות האפליקציה והחלטה לגבי אכיפה.
אחרי שתבצעו שילוב עם App Check, תוכלו לראות את מדדי התנועה של ה-Backend במסוף Firebase. המדדים האלה מספקים פירוט של הבקשות לפי השאלה אם הן מלוות באסימון App Check תקף. מידע נוסף זמין במאמרי העזרה בנושא Firebase App Check.
כשאתם בטוחים שרוב הבקשות מגיעות ממקורות לגיטימיים ושהמשתמשים עדכנו את האפליקציה לגרסה העדכנית ביותר שכוללת את ההטמעה של App Check, אתם יכולים להפעיל את האכיפה. אחרי שמפעילים את האכיפה, App Check דוחה את כל התנועה בלי טוקן App Check תקין.
שיקולים בתכנון שילוב של App Check
כמה דברים שכדאי להביא בחשבון כשמתכננים את השילוב:
- אחד מספקי האימות המומלצים שלנו, reCAPTCHA Enterprise, גובה תשלום על יותר מ-10,000 בדיקות בחודש.
לספק האישורים השני שאנחנו ממליצים עליו, reCAPTCHA גרסה 3, יש מכסה. אחרי שמגיעים למכסה, התנועה לא נבדקת.
אפשר להשתמש בספק אימות בהתאמה אישית, אבל זהו תרחיש שימוש מתקדם. מידע נוסף מופיע במסמכי התיעוד של App Check.
-
המשתמשים באפליקציה יחוו זמן אחזור מסוים בזמן ההפעלה. עם זאת, לאחר מכן, כל אימות מחדש תקופתי יתרחש ברקע והמשתמשים לא אמורים לחוות יותר זמן אחזור. הזמן המדויק של השהיית ההפעלה תלוי בספק האישורים שתבחרו.
משך הזמן שבו האסימון של App Check תקף (אורך החיים, או TTL) קובע את תדירות האימותים החוזרים. אפשר להגדיר את משך הזמן הזה במסוף Firebase. האימות מחדש מתבצע אחרי שעובר בערך חצי מהזמן שמוגדר ל-TTL. מידע נוסף זמין במסמכי התיעוד של Firebase לגבי ספק האימות שלכם.
שילוב האפליקציה עם App Check
דרישות מוקדמות
- אפליקציה עם הגרסה השבועית או הרבעונית האחרונה של Maps JavaScript API וספריות הליבה שנטענו.
- פרויקט בענן שבו מופעל Maps JS API.
- אתם צריכים להיות הבעלים של האפליקציה ב-מסוף Cloud.
- צריך את מזהה הפרויקט של האפליקציה מ-Cloud Console
שלב 1: מוסיפים את Firebase לאפליקציה
פועלים לפי מאמרי העזרה למפתחים של Firebase כדי להוסיף את Firebase לאפליקציה.
שלב 2: מוסיפים את ספריית App Check ומפעילים את App Check
ב-Firebase יש הוראות לכל ספק אימות ברירת מחדל. במאמר הזה מוסבר איך להגדיר פרויקט ב-Firebase ולהוסיף את ספריית App Check לאפליקציה. כדי לאתחל את App Check, צריך לפעול לפי דוגמאות הקוד שמופיעות כאן.
שלב 3: טעינת ספריות של Maps JavaScript API
טוענים את הספריות Core ו-Maps, כמו בקטע הקוד הבא. מידע נוסף והוראות זמינים במסמכי התיעוד של Maps JavaScript API.
async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); }
שלב 4: מאתחלים את ממשקי ה-API של מפות Google ושל App Check
- מפעילים את App Check באמצעות ההגדרה שמופיעה במסוף Firebase.
- מוודאים שבקשות אל Maps JavaScript API מלוות באסימוני App Check:
import {initializeApp} from 'firebase/app'; import { getToken, initializeAppCheck, ReCaptchaEnterpriseProvider, } from 'firebase/app-check'; async function init() { const {Settings} = await google.maps.importLibrary('core'); const {Map} = await google.maps.importLibrary('maps'); const app = initializeApp({ // Your firebase configuration object }); // Pass your reCAPTCHA Enterprise site key to initializeAppCheck(). const appCheck = initializeAppCheck(app, { provider: new ReCaptchaEnterpriseProvider( 'abcdefghijklmnopqrstuvwxy-1234567890abcd', ), // Optional argument. If true, the SDK automatically refreshes App Check // tokens as needed. isTokenAutoRefreshEnabled: true, }); Settings.getInstance().fetchAppCheckToken = () => getToken(appCheck, /* forceRefresh = */ false); // Load a map map = new Map(document.getElementById("map"), { center: { lat: 37.4161493, lng: -122.0812166 }, zoom: 8, }); }
שלב 5: הפעלת ניפוי באגים (אופציונלי)
אם רוצים לפתח ולבדוק את האפליקציה באופן מקומי, או להריץ אותה בסביבת אינטגרציה רציפה (CI), אפשר ליצור גרסת build לניפוי באגים של האפליקציה שמשתמשת בסוד ניפוי באגים כדי לקבל אסימונים תקפים של App Check. כך אתם יכולים להימנע משימוש בספקי אימות אמיתיים בגרסת ה-build לניפוי באגים.
כדי לבדוק את האפליקציה באופן מקומי:
- הפעלת ספק ניפוי הבאגים למטרות פיתוח.
- תקבלו UUID4 אקראי שנוצר באופן אוטומטי (נקרא _אסימון ניפוי באגים_ במסמכי התיעוד של App Check) מיומני ניפוי הבאגים של ה-SDK. מוסיפים את הטוקן הזה למסוף Firebase.
- מידע נוסף והוראות מפורטות זמינים במאמרי העזרה בנושא App Check.
כדי להריץ את האפליקציה בסביבת CI:
- יוצרים UUID4 אקראי ממסוף Firebase.
- מוסיפים את ה-UUID4 כטוקן ניפוי באגים, ואז מעתיקים אותו למאגר סודי שאליו יקבלו גישה בדיקות ה-CI בכל הפעלה של הבדיקה.
- מידע נוסף והוראות מפורטות זמינים במאמרי העזרה בנושא App Check.
שלב 6: מעקב אחרי בקשות האפליקציה והחלטה לגבי אכיפה
לפני שמתחילים באכיפה, חשוב לוודא שלא תפריעו למשתמשים לגיטימיים באפליקציה. כדי לעשות את זה, נכנסים למסך המדדים של App Check ובודקים איזה אחוז מהתנועה באפליקציה מאומת, מיושן או לא לגיטימי. אחרי שמוודאים שרוב התנועה מאומתת, אפשר להפעיל את האכיפה.
מידע נוסף והוראות מופיעים במאמרי העזרה של Firebase App Check.