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

Ce guide explique comment utiliser des 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 de SMS

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

L'utilisation abusive des SMS se produit généralement lorsqu'un acteur malveillant provoque l'envoi de SMS par un service via un opérateur avec lequel il a conclu un accord de partage des revenus. L'utilisation abusive des SMS peut entraîner des coûts plus élevés et nuire à la réputation de votre produit auprès des clients.

Étant donné qu'Identity Platform autorise les autorisations par SMS, des abus peuvent se produire.

La fonctionnalité Régions de SMS vous permet de définir les régions dans lesquelles vous pouvez recevoir des SMS des autorisations.

Cette fonctionnalité offre les avantages suivants :

  • Une interface de la console Firebase pour configurer votre règle de région pour les SMS.
  • Une API pour configurer votre règle pour les SMS par région.
  • Métriques pouvant vous aider à décider d'utiliser une règle pour les SMS par région.

Définir une règle pour la région

Cette section décrit une règle régionale Identity Platform. Vous pouvez configurer les types de règles suivants, mais un seul peut être actif :

  • Autorisation uniquement sur la liste d'autorisation : 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 blocage 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 blocage.

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

Règle concernant les listes d'autorisation uniquement

Pour configurer une stratégie basée uniquement sur une liste d'autorisation, procédez comme suit :

Console Firebase

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

    Accéder aux paramètres d'authentification Firebase

    1. Sélectionnez Règle de région pour les 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 souhaitez 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. Cette opération remplace toute configuration précédente.

API Identity Toolkit

  1. Pour imprimer un jeton d'accès pour votre projet dans la console Google Cloud, 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.
  • PROJECT_ID : ID de votre projet.

Vous devez fournir un masque de mise à jour pour empêcher la modification d'autres champs.

Règle de liste de blocage uniquement

Pour configurer une stratégie de liste de blocage uniquement, procédez comme suit :

Console Firebase

  1. Dans la console Firebase, accédez à la page Paramètres d'authentification Firebase, puis sélectionnez Règle pour la région des 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 sur la liste seront autorisées.

  3. Cliquez sur Enregistrer.

    Vous pouvez configurer une liste d'autorisation ou une liste de refus, mais pas les deux. Cette opération remplace toute configuration précédente.

API Identity Toolkit

  1. Pour imprimer un jeton d'accès pour votre projet dans la console Google Cloud, 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':{'denylist_only':{'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 de votre projet.

Vous devez fournir un masque de mise à jour pour empêcher d'autres champs d'être modifié.

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

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

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

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

    Accédez à 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". Ce code vous permet afficher les régions qui reçoivent des autorisations SMS.

  3. Calculer le taux de réussite de la vérification sous la forme verification_success_rate = phone_verification_count/sent_sms_count, dans un dans une région particulière. En général, un taux de réussite de validation supérieur à 75 % est considéré comme acceptable.

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

Si vous suspectez une utilisation abusive des SMS, vous pouvez définir une règle pour la région.