Utiliser des régions de SMS pour protéger votre application contre l'utilisation abusive des SMS

Ce guide vous 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 zones géographiques SMS

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

Une utilisation abusive des SMS se produit généralement lorsqu'un acteur malveillant oblige un service à envoyer des SMS par l'intermédiaire d'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 de SMS par téléphone, une utilisation abusive des SMS peut se produire.

La fonctionnalité des régions SMS vous permet de définir les régions dans lesquelles les autorisations d'envoi de SMS sont autorisées pour les SMS.

Cette fonctionnalité offre les avantages suivants:

  • Une interface de console Firebase pour vous permettre de configurer vos règles de région SMS.
  • Une API vous permettant de configurer des règles 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 de région

Cette section décrit une règle de région Identity Platform. Vous pouvez configurer les types de règles suivants. 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 téléphonique.
  • Liste de blocage uniquement:toutes les régions peuvent recevoir les demandes d'autorisation téléphonique, à 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. Elle bloque les requêtes d'autorisation téléphonique provenant des régions non autorisées par la règle en fonction du code régional du numéro de téléphone.

Règle de liste d'autorisation uniquement

Pour configurer une règle autorisant uniquement l'envoi de contenus à la liste d'autorisation, 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 pour les SMS dans le volet de navigation.

    2. Sélectionnez Autoriser.

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

  2. Ajoutez uniquement les régions auxquelles 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 soit une liste d'autorisation, soit une liste de blocage, mais pas les deux. Cette action écrase toutes les configurations précédentes.

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 règle 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 les 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 vers lesquelles vous voulez bloquer l'envoi de SMS. Les régions qui ne figurent pas dans la liste seront autorisées.

  3. Cliquez sur Enregistrer.

    Vous pouvez configurer soit une liste d'autorisation, soit une liste de blocage, mais pas les deux. Cette action écrase toutes les configurations précédentes.

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 la modification d'autres champs.

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

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 dans Cloud Monitoring:

    Accédez à Cloud Monitoring.

  2. Sélectionnez les champs suivants:

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

    Notez que les métriques ont un champ region_code. Ce code vous permet d'afficher les régions qui reçoivent les autorisations de SMS.

  3. Calculez le taux de réussite de la validation en tant que verification_success_rate = phone_verification_count/sent_sms_count dans une région particulière. En règle générale, nous considérons comme acceptables un taux de réussite de la validation supérieur à 75 %.

Une valeur verification_success_rate faible peut indiquer un abus, en particulier dans une région dans laquelle 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 soupçonnez une utilisation abusive des SMS, vous pouvez définir une règle régionale.