שילוב של Identity Platform עם reCAPTCHA Enterprise API

במאמר הזה מוסבר איך להשתמש בשילוב של Identity Platform עם reCAPTCHA Enterprise API כדי לשפר את האבטחה של המשתמשים. התכונה הזו משפרת את העמידות של האפליקציה נגד ספאם, ניצול לרעה ופעילות שמקורה בתרמית.

השילוב יוצר מבדק של reCAPTCHA Enterprise בשמכם כדי לאמת בקשות של משתמשים. למידע על מחירים אפשר לעיין במחירון של reCAPTCHA.

סקירה כללית

כשמגדירים את השילוב של Identity Platform עם reCAPTCHA Enterprise API, מפעילים את תכונת ההגנה שמוגדרת כברירת מחדל ב-reCAPTCHA – הגנה מפני בוטים. כשההגנה מפני בוטים מופעלת, Identity Platform מספק מפתחות reCAPTCHA מבוססי-ניקוד בפרויקט שלכם בשמכם. כשמשתמש ניגש לאפליקציה או לאתר שלכם באמצעות אחת מהפעולות הבאות, ה-SDK של הלקוח טוען את reCAPTCHA כשהספק המתאים מופעל.

ספק פעולה ‏Method
passwordProvider כניסה באמצעות כתובת אימייל וסיסמה signInWithPassword
הרשמה באמצעות כתובת אימייל וסיסמה signUpPassword
כניסה באמצעות קישור באימייל getOobCode
בוצע איפוס של סיסמה getOobCode
phoneProvider הרשמה או כניסה באמצעות מספר טלפון sendVerificationCode
רישום מספר טלפון לאימות דו-שלבי mfaSmsEnrollment
כניסה באמצעות מספר טלפון עם אימות דו-שלבי mfaSmsSignIn

לאחר מכן, reCAPTCHA מספק ל-Identity Platform ציונים שמעריכים את הסיכון של הבקשה על סמך ההגדרה והיכולת שלכם להתמודד עם סיכונים.

מידע נוסף זמין במאמר סקירה כללית על reCAPTCHA.

לפני שמתחילים

בהתאם לסוג תהליך האימות שרוצים להגן עליו באמצעות reCAPTCHA, צריך לוודא שהגדרתם את הדברים הבאים:

יצירה של חשבון שירות

השילוב של Identity Platform עם reCAPTCHA Enterprise API דורש חשבון שירות של Identity Platform לכל פרויקט שבו נעשה שימוש ב-reCAPTCHA. כך מערכת Identity Platform יכולה לנהל את מפתחות reCAPTCHA בשמכם. אם כבר יצרתם חשבון שירות, צריך לתת לו גישה ל-reCAPTCHA.

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

  1. משתמשים ב-Google Cloud CLI כדי ליצור חשבון שירות:

    gcloud beta services identity create \
        --service=identitytoolkit.googleapis.com \
        --project=PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה הפרויקט.

  2. מעניקים לחשבון השירות גישה ל-reCAPTCHA:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-identitytoolkit.iam.gserviceaccount.com \
        --role=roles/identitytoolkit.serviceAgent
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט
    • PROJECT_NUMBER: מספר חשבון הפרויקט

מצבי הגנה מפני בוטים ב-reCAPTCHA

ל-reCAPTCHA להגנה מפני בוטים יש שני מצבים שעוזרים לכם להגן על המשתמשים: ביקורת ואכיפה. אופן הפעולה של המצבים האלה משתנה בהתאם לספק הזהויות.

ספק של סיסמה לאימייל

ההתנהגות של מצבי הביקורת והאכיפה בתהליכי אימות של סיסמאות לאימייל היא כדלקמן.

מצב ביקורת

כשמגדירים את האכיפה של סיסמאות לאימייל למצב ביקורת, Identity Platform יוצר מפתח reCAPTCHA אחד או יותר בפרויקט שמשמשים להערכת התנועה אל ממשקי ה-API של Identity Platform בלי לחסום בקשות. כדי להחליט אם להפעיל את האכיפה של reCAPTCHA, כדאי להשתמש במדדים שמוצגים במהלך מצב הביקורת.

מצב אכיפה

כשמגדירים את האכיפה של כתובת אימייל וסיסמה למצב אכיפה, Identity Platform יוצר מפתח reCAPTCHA אחד או יותר בפרויקט, שמשמשים להערכת התנועה אל Identity Platform APIs. בקשות ל-API שלא כוללות טוקן reCAPTCHA נדחות. מומלץ להפעיל את האכיפה רק אחרי שמעבירים את כל הלקוחות ל-SDK עם תמיכה ב-reCAPTCHA.

ספק טלפון

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

מצב ביקורת

כשמגדירים את האכיפה של אימות הטלפון למצב ביקורת, Identity Platform משתמש בהגנה מפני בוטים של reCAPTCHA לאימות האפליקציה. אם הבקשה של המשתמש עוברת את ההערכה לגבי הונאת טלפונים, נשלח קוד אימות ב-SMS. אם הבקשה של משתמש לא עוברת את ההערכה לגבי הונאת תשלום על שיחות, ואתם משתמשים ב-SDK של הלקוח, Identity Platform מפעיל שיטות אימות חלופיות כדי להשלים את תהליך האימות של הטלפון. שיטות הגיבוי המקובלות תלויות בפלטפורמה של האפליקציה.

ה-SDK של הלקוח מפעיל את שיטות האימות החלופיות בתרחישים הבאים:

  • חסר טוקן reCAPTCHA.
  • טוקן ה-reCAPTCHA לא תקין או שתוקפו פג.
  • טוקן ה-reCAPTCHA לא עומד בסף הניקוד.
  • ההגדרה של reCAPTCHA לא תקינה.

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

אינטרנט

אם ההערכה הראשונית של ההגנה מפני בוטים נכשלת, מצב הביקורת מסתמך על reCAPTCHA גרסה 2 לאימות. לכן, צריך להגדיר את מאמת ה-reCAPTCHA (RecaptchaVerifier) ולהעביר אותו לפעולות הבאות של אימות הטלפון:

  • verifyPhoneNumber
  • signInWithPhoneNumber
  • linkWithPhoneNumber
  • reauthenticateWithPhoneNumber
בלי מאמת reCAPTCHA, ‏ Identity Platform לא יכול להפעיל את reCAPTCHA גרסה 2 ויחזיר את הערך auth/argument-error. מידע נוסף על הגדרת מאמת reCAPTCHA מופיע במאמר הגדרת מאמת reCAPTCHA במסמכי Firebase.

Android

אם ההערכה הראשונית של ההגנה מפני בוטים נכשלת, מצב הביקורת מאמת את האפליקציה באמצעות Play Integrity API. אם האימות הזה נכשל, מופעל reCAPTCHA גרסה 2. יכול להיות ש-reCAPTCHA גרסה 2 יופעל בתרחישים הבאים:

  • אם במכשיר של משתמש הקצה לא מותקנים שירותי Google Play.
  • אם האפליקציה לא מופצת דרך חנות Google Play (ב-Authentication SDK גרסה 21.2.0 ואילך).
  • אם אסימון SafetyNet שהתקבל לא היה תקין (בגרסאות של Authentication SDK שקודמות לגרסה v21.2.0).
מידע נוסף על הגדרת אימות אפליקציות ל-Android זמין במאמר הפעלת אימות אפליקציות בתיעוד של Firebase.

iOS

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

מידע נוסף על הגדרת אימות אפליקציות ל-iOS זמין במאמר הפעלת אימות אפליקציות במסמכי Firebase.

מצב אכיפה

כשמגדירים את האכיפה של אימות באמצעות הטלפון למצב אכיפה, Identity Platform משתמש בהגנה מפני בוטים של reCAPTCHA לאימות האפליקציה. אם הבקשה של המשתמש עוברת את ההערכה לגבי הונאת טלפונים, נשלח קוד אימות ב-SMS. אם הבקשה של המשתמש לא עוברת את ההערכה לגבי הונאת תשלום על שיחות, Identity Platform חוסם את הבקשה ולא שולח הודעת SMS עם קוד אימות.

במצב אכיפה לא נדרש אימות חלופי, ולא צריך להגדיר שיטות אימות נוספות לאפליקציה. עם זאת, מומלץ להגדיר מאמת reCAPTCHA לאפליקציות אינטרנט כדי לוודא ש-reCAPTCHA גרסה 2 מופעל אם מחליטים לשנות את מצב reCAPTCHA של האפליקציה ל-AUDIT או ל-OFF.

הגדרת השילוב של Identity Platform עם reCAPTCHA Enterprise API

כדי להגדיר את השילוב של Identity Platform עם reCAPTCHA Enterprise API, מבצעים את המשימות הבאות:

  • משתמשים ב-SDK לאדמינים כדי להגדיר את מצב האכיפה של reCAPTCHA ולהפעיל את ההגנה מפני בוטים.
  • מגדירים את ה-SDK של הלקוח עבור הפלטפורמה של האפליקציה.

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

הפעלת הגנה מפני בוטים באמצעות reCAPTCHA

ספק של סיסמה לאימייל

כדי להפעיל הגנה מפני בוטים באמצעות reCAPTCHA בתהליכי אימות באמצעות אימייל וסיסמה, מבצעים את הפעולות הבאות:

  1. אם עדיין לא עשיתם זאת, הפעילו את reCAPTCHA Enterprise API בפרויקט.

  2. כדי להפעיל הגנה מפני בוטים בפרויקט, צריך להשתמש ב-SDK לאדמינים. גרסאות 11.7.0 ואילך של Node.js Admin SDK תומכות ב-reCAPTCHA.

    לדוגמה:

    // Update project config with reCAPTCHA config
    const updateConfigRequest = {
      recaptchaConfig: {
        emailPasswordEnforcementState:  'ENFORCE_MODE',
        managedRules: [{
          endScore: END_SCORE,
          action: 'BLOCK'
        }]
      }
    };
    const updateProjectConfigWithRecaptcha = () => {
      getAuth().projectConfigManager().updateProjectConfig(updateConfigRequest).then((response) => {
        console.log('Updated reCAPTCHA config for project: ', response.recaptchaConfig);
      }).catch((error) => {
        console.log('Error updating project config:', error);
      });
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENFORCE_MODE: המצב שרוצים להגדיר לאכיפת אימות באמצעות סיסמה וכתובת אימייל ב-reCAPTCHA. הערכים התקפים הם OFF,‏ AUDIT ו-ENFORCE. כדי להפעיל הגנה מפני בוטים, צריך להגדיר את הפרמטר הזה לערך AUDIT או ENFORCE. כשמפעילים הגנה מפני בוטים בפעם הראשונה, מומלץ להגדיר את הפרמטר הזה לערך AUDIT ולוודא שתהליכי האימות מוגנים לפני שמגדירים אותו לערך ENFORCE. מידע נוסף על אופן הפעולה של המצבים זמין במאמר מצבי הגנה מפני בוטים ב-reCAPTCHA.
    • END_SCORE: הציון הכי נמוך של הערכת ההגנה מפני בוטים שבקשה יכולה לקבל לפני שהיא נכשלת. אפשר להגדיר את הציון הזה בין 0.0 ל-1.0. לדוגמה, אם מגדירים סף של 0.6, כל בקשה עם ציון של 0.5 ומטה תיכשל ב-reCAPTCHA. לכן, ככל שהציון גבוה יותר, הכללים מחמירים יותר.

    אפשר גם להפעיל הגנה מפני בוטים באמצעות אותה שיטת הגדרה עבור דייר באמצעות SDK לאדמינים. מידע נוסף על עדכון דייר זמין במאמר עדכון דייר.

  3. אם אתם משתמשים ב-Identity Platform ב-iOS או ב-Android, אתם צריכים לרשום את האפליקציה שלכם במסוף Firebase:

    אם אתם משתמשים ב-Identity Platform באינטרנט, אתם צריכים להוסיף דומיין מורשה לכל דומיין שמשתמש ב-reCAPTCHA. כדי להוסיף דומיינים מורשים:

    1. נכנסים לדף Identity Platform במסוף Google Cloud .

      מעבר אל Identity Platform

    2. עוברים אל הגדרות > אבטחה.

    3. לוחצים על הוספת דומיין.

    4. מזינים את שם הדומיין ולוחצים על הוספה כדי לשמור את הדומיין.

    הקצאת מפתח reCAPTCHA יכולה להימשך כמה דקות.

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

ספק טלפון

כדי להפעיל הגנה מפני בוטים של reCAPTCHA בתהליכי אימות שמבוססים על SMS, צריך לבצע את הפעולות הבאות:

  1. אם עדיין לא עשיתם זאת, הפעילו את reCAPTCHA Enterprise API בפרויקט.

  2. כדי להפעיל הגנה מפני בוטים בפרויקט, צריך להשתמש ב-SDK לאדמינים. התמיכה ב-reCAPTCHA זמינה בגרסאות 12.7.0 ואילך של Node.js SDK לאדמינים.

    לדוגמה:

    // Update project config with reCAPTCHA config
    const updateProjectConfigRequest = {
      recaptchaConfig: {
        phoneEnforcementState: 'ENFORCE_MODE',
        managedRules: [{ endScore: END_SCORE, action: 'BLOCK' }],
        useSmsBotScore: 'true',
      }
    }
    let projectConfig = await getAuth().projectConfigManager().updateProject(updateProjectConfigRequest);
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ENFORCE_MODE: המצב שרוצים להגדיר לאכיפת אימות טלפוני באמצעות reCAPTCHA. הערכים התקפים הם OFF, ‏ AUDIT ו-ENFORCE. כדי להפעיל הגנה מפני בוטים בתהליכים שמבוססים על SMS, צריך להגדיר את הפרמטר הזה לערך AUDIT או ENFORCE, ואת הפרמטר useSmsBotScore לערך true.

      כשמפעילים את ההגנה מפני בוטים בפעם הראשונה, מומלץ להגדיר את הפרמטר הזה לערך AUDIT ולוודא שתהליכי האימות מוגנים לפני שמגדירים אותו לערך ENFORCE. מידע נוסף על אופן הפעולה של המצבים זמין במאמר בנושא מצבי הגנה מפני בוטים ב-reCAPTCHA.

    • END_SCORE: הציון הכי נמוך של הערכת ההגנה מפני בוטים שבקשה יכולה לקבל לפני שהיא נכשלת. אפשר להגדיר את הציון הזה בין 0.0 ל-1.0. לדוגמה, אם מגדירים סף של 0.6, כל בקשה עם ציון של 0.5 ומטה תיכשל ב-reCAPTCHA. לכן, ככל שהציון גבוה יותר, הכללים מחמירים יותר.

    אפשר גם להפעיל הגנה מפני בוטים באמצעות אותה שיטת הגדרה עבור דייר באמצעות SDK לאדמינים. מידע נוסף על עדכון דייר זמין במאמר עדכון דייר.

  3. אם אתם משתמשים ב-Identity Platform ב-iOS או ב-Android, אתם צריכים לרשום את האפליקציה שלכם במסוף Firebase:

    אם אתם משתמשים ב-Identity Platform באינטרנט, אתם צריכים להוסיף דומיין מורשה לכל דומיין שמשתמש ב-reCAPTCHA. כדי להוסיף דומיינים מורשים:

    1. נכנסים לדף Identity Platform במסוף Google Cloud .

      מעבר אל Identity Platform

    2. עוברים אל הגדרות > אבטחה.

    3. לוחצים על הוספת דומיין.

    4. מזינים את שם הדומיין ולוחצים על הוספה כדי לשמור את הדומיין.

    הקצאת מפתח reCAPTCHA יכולה להימשך כמה דקות.

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

הגדרת ה-SDK של הלקוח

מגדירים את ה-SDK של הלקוח בהתאם לפלטפורמה של האפליקציה.

אינטרנט

  1. מעדכנים לגרסה האחרונה של ה-SDK לאתרים.

    • התמיכה ב-reCAPTCHA עבור אימות באמצעות כתובת אימייל וסיסמה באפליקציות אינטרנט זמינה בגרסאות 9.20.0 ואילך של JavaScript SDK.
    • תמיכה ב-reCAPTCHA לאימות טלפוני באפליקציות אינטרנט זמינה בגרסאות JavaScript SDK 11 ואילך.

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

  2. במקרה הצורך, אפשר לאלץ שליפה של אות reCAPTCHA באופן הבא:

    import { initializeRecaptchaConfig } from '@firebase/auth';
    
    // Initialize Firebase Authentication
    const auth = getAuth();
    initializeRecaptchaConfig(auth)
      .then(() => {
        console.log("Recaptcha Enterprise Config Initialization successful.")
      })
      .catch((error) => {
        console.error("Recaptcha Enterprise Config Initialization failed with " + error)
      });
    

Android

  1. צריך לעדכן לגרסה האחרונה של Android SDK. תמיכה ב-reCAPTCHA לאימות באמצעות אימייל וסיסמה ולאימות באמצעות טלפון באפליקציות ל-Android זמינה ב-Android SDK מגרסה 23.1.0 ואילך.

    בנוסף, כדי לתמוך ב-reCAPTCHA נדרשת רמת API‏ 23 (Marshmallow) ומעלה ו-Android 6 ומעלה.

    אחרי שמשלבים את Android SDK באפליקציה, ה-SDK מאחזר באופן אוטומטי את ההגדרה של reCAPTCHA ומפעיל הגנה על הספקים שהגדרתם.

  2. מוסיפים את כלל ה-build הבא לקטע dependencies בקובץ build.gradle ברמת האפליקציה:

    implementation 'com.google.android.recaptcha:recaptcha:18.5.1'
    

    חשוב להשתמש ב-reCAPTCHA SDK בגרסה 18.5.1 ואילך.

  3. במקרה הצורך, אפשר לאלץ שליפה של אות reCAPTCHA באופן הבא:

    • ‫Kotlin:
    // Initialize Firebase Authentication
    auth = Firebase.auth
    
    auth.initializeRecaptchaConfig().addOnCompleteListener(this) { task ->
        if (task.isSuccessful) {
            Log.d(TAG, "Recaptcha Enterprise Initialization successful.")
        } else {
            Log.w(TAG, "Recaptcha Enterprise Initialization failed.")
        }
    }
    
    • ‫Java:
    // Initialize Firebase Authentication
    auth = FirebaseAuth.getInstance();
    auth.initializeRecaptchaConfig().addOnCompleteListener(
      this, new OnCompleteListener<void>() {
      @Override
      public void onComplete(@NonNull Task<void> task) {
        if (task.isSuccessful()) {
          Log.d(TAG, "Recaptcha Enterprise Initialization successful.");
        } else {
          Log.w(TAG, "Recaptcha Enterprise Initialization failed.");
        }
      }
    });
    

iOS

  1. מעדכנים לגרסה 11.6.0 ואילך של iOS SDK. אחרי שמטמיעים את ה-SDK ל-iOS באפליקציה, ה-SDK מאחזר באופן אוטומטי את הגדרות ה-reCAPTCHA ומפעיל הגנה על הספקים שהגדרתם.

  2. כדי לשלב את reCAPTCHA iOS SDK באפליקציה, אפשר לעיין במאמר בנושא הכנת הסביבה.

  3. מוודאים שהספרייה -ObjC מופיעה בדגלי המקשר. עוברים אל Target (יעד) > Build Settings (הגדרות בנייה) > All (הכול) > Linking (קישור) ומוודאים שהספרייה -ObjC מופיעה ב-Other Linker Flags.

  4. במקרה הצורך, אפשר לאלץ שליפה של אות reCAPTCHA באופן הבא:

    • ‫Swift:
    // Initialize Firebase Authentication
    try await Auth.auth().initializeRecaptchaConfig()
    
    • ‫Objective-C:
    // Initialize Firebase Authentication
    [[FIRAuth auth] initializeRecaptchaConfigWithCompletion:^(NSError * _Nullable error) {
      // Firebase Authentication initialization finished
    }];
    

מעקב אחרי מדדים של reCAPTCHA להגנה מפני בוטים

לפני שמגדירים את האכיפה של reCAPTCHA למצב אכיפה, מומלץ להשתמש במצב ביקורת ולעקוב אחרי מדדי reCAPTCHA שהפרויקט פולט כדי לוודא שתהליכי האימות מוגנים. לדוגמה, המדדים האלה יכולים לעזור לכם לקבוע אם הגדרתם את השילוב של Identity Platform עם reCAPTCHA Enterprise API בצורה נכונה. הם גם יכולים לעזור לכם לכוונן את סף הניקוד לתנועת המשתמשים. אם הקצאת מפתחות reCAPTCHA נכשלת או אם חשבונות השירות הנדרשים לא נוצרו, ניסיונות האימות של reCAPTCHA עדיין מצליחים כרגיל.

כדי לוודא שאימות reCAPTCHA פועל, בודקים את המדדים הבאים שהפרויקט שולח ל-Cloud Monitoring:

מידע נוסף זמין במאמר מעקב אחרי מדדים של reCAPTCHA.

הפעלת הגנה מפני בוטים באמצעות reCAPTCHA

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

ספק של סיסמה לאימייל

כדי להפעיל אכיפה של reCAPTCHA בתהליכי אימות של כתובת אימייל וסיסמה בפרויקט או בדייר, משתמשים ב-SDK לאדמינים כדי להריץ את הפקודה הבאה:

const enforceRequest = {
  recaptchaConfig: {
    emailPasswordEnforcementState:  'ENFORCE',
    }]
  }
};

ספק טלפון

כדי להפעיל אכיפה של reCAPTCHA בתהליכי אימות מבוססי-SMS בפרויקט או בדייר, משתמשים ב-SDK לאדמינים כדי להריץ את הפקודה הבאה:

const enforceRequest = {
  recaptchaConfig: {
    phoneEnforcementState:  'ENFORCE',
    useSmsBotScore: 'true'
    }]
  }
};

השבתת ההגנה מפני בוטים של reCAPTCHA

ספק של סיסמה לאימייל

כדי להשבית את ההגנה מפני בוטים בתהליכי אימות באמצעות כתובת אימייל וסיסמה, משתמשים ב-SDK לאדמינים כדי להריץ את הפקודה הבאה:

const disableRequest = {
  recaptchaConfig: {
    emailPasswordEnforcementState:  'OFF',
  }
};

ספק טלפון

כדי להשבית את ההגנה מפני בוטים בתהליכי אימות מבוססי-SMS, משתמשים ב-SDK לאדמינים כדי להריץ את הפקודה הבאה:

const disableRequest = {
  recaptchaConfig: {
    phoneEnforcementState:  'OFF',
    useSmsBotScore: 'false'
  }
};

ביטול פסיקות של reCAPTCHA באמצעות פונקציות Cloud Run

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

בדוגמה הבאה מוצג איך לבטל פסיקה של reCAPTCHA באמצעות פונקציות חסימה:

Node.js

  const functions = require("firebase-functions/v1");
  exports.beforesmsv1 = functions.auth.user().beforeSms((context) => {
    if (
      context.smsType === "SIGN_IN_OR_SIGN_UP" &&
      context.additionalUserInfo.phoneNumber.includes('+91')
    ) {
      return {
        recaptchaActionOverride: "ALLOW",
      };
    }

    // Allow users to sign in with recaptcha score greater than 0.5
    if (event.additionalUserInfo.recaptchaScore > 0.5) {
      return {
        recaptchaActionOverride: 'ALLOW',
      };
    }

    // Block all others.
    return  {
      recaptchaActionOverride: 'BLOCK',
    }
  });

המאמרים הבאים