Utiliser les régions SMS pour protéger votre application contre les utilisations abusives des SMS

Ce guide explique comment utiliser les régions SMS pour limiter l'utilisation de la validation par SMS d'Identity Platform et afficher les métriques d'utilisation.

Présentation des régions SMS

Les régions SMS sont une fonctionnalité d'Identity Platform que vous pouvez utiliser pour protéger vos applications contre les utilisations abusives des SMS.

Les utilisations abusives des SMS se produisent généralement lorsqu'une personne malveillante amène un service à envoyer des SMS via un opérateur avec lequel elle a conclu un accord de partage des revenus. Les utilisations abusives des SMS peuvent entraîner des coûts plus élevés et nuire à la réputation de votre produit auprès des clients.

Comme Identity Platform autorise les autorisations par téléphone via SMS, des utilisations abusives des SMS peuvent se produire.

La fonctionnalité des régions SMS vous permet de définir les régions qui peuvent recevoir des autorisations par téléphone via SMS.

Cette fonctionnalité offre les avantages suivants :

  • Une interface de la console Firebase pour configurer votre règle de région SMS.
  • Une API pour configurer votre règle de région SMS.
  • Des métriques qui peuvent vous aider à décider d'utiliser une règle de région SMS.

Définir une règle de région

Cette section décrit une règle de région Identity Platform. Vous pouvez configurer les types de règles suivants, mais une seule peut être active :

  • Liste d'autorisation uniquement : seules les régions que vous spécifiez dans une liste d'autorisation peuvent recevoir des demandes d'autorisation par téléphone.
  • Liste de refus uniquement : toutes les régions peuvent recevoir des demandes d'autorisation par téléphone, à l'exception de celles que vous spécifiez dans une liste de refus.

Une fois la configuration modifiée, le système commence immédiatement à appliquer la règle. Il bloque les demandes d'autorisation par téléphone provenant des régions interdites par la règle en fonction du code de région du numéro de téléphone.

Règle de liste d'autorisation uniquement

Pour configurer une règle de liste d'autorisation uniquement, procédez comme suit :

Console Firebase

  1. Dans la console Firebase, accédez à la page Paramètres d'authentification Firebase.

    Accéder aux paramètres d'authentification Firebase

    1. Sélectionnez Règle de région SMS dans le volet de navigation.

    2. Sélectionnez Autoriser.

    3. Cliquez sur Sélectionner des régions.

  2. N'ajoutez que les régions dans lesquelles vous prévoyez d'envoyer des SMS. Les régions qui ne figurent pas dans la liste sont bloquées.

  3. Cliquez sur Enregistrer.

    Vous pouvez configurer une liste d'autorisation ou une liste de refus, mais pas les deux. Si vous le faites, toute configuration précédente sera écrasée.

API Identity Toolkit

  1. Dans la Google Cloud console, pour imprimer un jeton d'accès pour votre projet, exécutez la commande suivante :

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Mettez à jour la configuration de votre projet pour inclure votre nouvelle règle à l'aide de l'API Identity Toolkit :

    curl -X PATCH -d "{'sms_region_config':{'allowlist_only':{'allowed_regions':['REGION_LIST']}}}" \
    -H 'Authorization: Bearer ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=sms_region_config'
    

Remplacez les éléments suivants :

  • ACCESS_TOKEN : jeton d'accès que vous avez généré précédemment.
  • REGION_LIST : une ou plusieurs régions, par exemple IN ou US. Pour limiter les utilisations abusives, nous vous recommandons d'autoriser uniquement les régions dans lesquelles vous prévoyez d'envoyer des SMS.
  • PROJECT_ID : ID du projet.

Vous devez fournir un masque de mise à jour pour éviter que d'autres champs ne soient modifiés.

Règle de liste de refus uniquement

Pour configurer une règle de liste de refus uniquement, procédez comme suit :

Console Firebase

  1. Dans la console Firebase, accédez à la page Paramètres d'authentification Firebase et sélectionnez Règle de région SMS dans le volet de navigation.

    Accéder aux paramètres d'authentification Firebase

    1. Sélectionnez Refuser.

    2. Cliquez sur Sélectionner des régions.

  2. Ajoutez les régions dans lesquelles vous souhaitez bloquer l'envoi de SMS. Les régions qui ne figurent pas dans la liste seront autorisées. Pour une protection plus efficace contre les utilisations abusives, nous vous recommandons d'utiliser une règle de liste d'autorisation uniquement et de désactiver toutes les régions dans lesquelles vous ne prévoyez pas d'envoyer de SMS.

  3. Cliquez sur Enregistrer.

    Vous pouvez configurer une liste d'autorisation ou une liste de refus, mais pas les deux. Si vous le faites, toute configuration précédente sera écrasée.

API Identity Toolkit

  1. Dans la Google Cloud console, pour imprimer un jeton d'accès pour votre projet, exécutez la commande suivante :

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Mettez à jour la configuration de votre projet pour inclure votre nouvelle règle à l'aide de l'API Identity Toolkit :

    curl -X PATCH -d "{'sms_region_config':{'allow_by_default':{'disallowed_regions':['REGION_LIST']}}}" \
    -H 'Authorization: Bearer ACCESS_TOKEN' \
    -H 'Content-Type: application/json' \
    'https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=sms_region_config'
    

Remplacez les éléments suivants :

  • ACCESS_TOKEN : jeton d'accès que vous avez généré précédemment.
  • REGION_LIST : une ou plusieurs régions, par exemple IN ou US.
  • PROJECT_ID : ID du projet.

Vous devez fournir un masque de mise à jour pour éviter que d'autres champs ne soient modifiés.

Accéder aux métriques d'utilisation régionale des SMS

Cette section explique comment afficher les métriques d'utilisation des SMS.

Pour afficher les métriques, procédez comme suit :

  1. Dans la Google Cloud console, accédez à la page Explorateur de métriques dans Cloud Monitoring :

    Accéder à Cloud Monitoring.

  2. Sélectionnez les champs suivants :

    • identitytoolkit.googleapis.com/usage/sent_sms_count,
    • identitytoolkit.googleapis.com/usage/blocked_sms_count et
    • firebaseauth.googleapis.com/phone_auth/phone_verification_count.

    Notez que les métriques comportent un champ region_code. Vous utilisez ce code pour afficher les régions qui reçoivent des autorisations par SMS.

  3. Calculez le taux de réussite de la validation comme suit : verification_success_rate = phone_verification_count/sent_sms_count, dans une région spécifique. En général, les taux de réussite de la validation supérieurs à 75% sont considérés comme acceptables.

Un verification_success_rate faible peut indiquer une utilisation abusive, en particulier dans une région dans laquelle vous ne vous attendez pas à avoir d'utilisateurs. En général, les taux de réussite de la validation inférieurs à 75 % sont considérés comme faibles.

Si vous soupçonnez une utilisation abusive des SMS, vous pouvez définir une règle de région.