Utiliser les régions SMS pour protéger votre application contre les abus liés aux SMS
Ce guide explique comment utiliser les régions SMS pour limiter l'utilisation de la validation par SMS Identity Platform et afficher les métriques d'utilisation.
Présentation des régions pour les SMS
Les régions SMS sont une fonctionnalité Identity Platform que vous pouvez utiliser pour protéger vos applications contre les utilisations abusives des SMS.
L'utilisation abusive des SMS se produit généralement lorsqu'un acteur malveillant amène un service à envoyer des SMS 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.
Identity Platform autorise l'authentification par SMS, ce qui peut entraîner des utilisations abusives des SMS.
La fonctionnalité "Régions pour les SMS" vous permet de définir les régions dans lesquelles les autorisations par SMS peuvent être reçues.
Cette fonctionnalité offre les avantages suivants :
- Interface de la console Firebase vous permettant de configurer votre règlement régional sur les SMS.
- Une API vous permettant de configurer vos règles pour les SMS par région.
- Métriques pouvant vous aider à décider d'utiliser ou non une règle pour les SMS par région.
Définir une règle pour une 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 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 le règlement. Il bloque les demandes d'autorisation par 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 "Liste d'autorisation uniquement"
Pour configurer une stratégie d'autorisation uniquement, procédez comme suit :
Console Firebase
Dans la console Firebase, accédez à la page Paramètres de Firebase Authentication.
Accéder aux paramètres de Firebase Auth
Sélectionnez Règlement régional sur les SMS dans le volet de navigation.
Sélectionnez Autoriser.
Cliquez sur Sélectionner des régions.
N'ajoutez que les régions dans lesquelles vous prévoyez d'envoyer des messages SMS. Les régions ne figurant pas dans la liste sont bloquées.
Cliquez sur Enregistrer.
Vous pouvez configurer une liste d'autorisation ou une liste de refus, mais pas les deux. Toute configuration précédente sera alors remplacée.
API Identity Toolkit
Dans la console Google Cloud , exécutez la commande suivante pour imprimer un jeton d'accès pour votre projet :
gcloud auth print-access-token --project=PROJECT_IDMettez à 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: BearerACCESS_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 exempleINouUS. Pour limiter les utilisations abusives, nous vous recommandons de n'autoriser que les régions dans lesquelles vous prévoyez d'envoyer des SMS.PROJECT_ID: ID de votre projet.
Vous devez fournir un masque de mise à jour pour éviter que d'autres champs ne soient modifiés.
Règle de liste de blocage uniquement
Pour configurer une stratégie de liste de refus uniquement, procédez comme suit :
Console Firebase
Dans la console Firebase, accédez à la page Paramètres Firebase Authentication, puis sélectionnez Règle régionale pour les SMS dans le volet de navigation.
Accéder aux paramètres de Firebase Auth
Sélectionnez Refuser.
Cliquez sur Sélectionner des régions.
Ajoutez les régions dans lesquelles vous souhaitez bloquer l'envoi de SMS. Les régions ne figurant pas dans la liste seront autorisées. Pour une protection renforcée contre les utilisations abusives, nous vous recommandons d'utiliser une règle d'autorisation uniquement et de désactiver toutes les régions dans lesquelles vous ne prévoyez pas d'envoyer de SMS.
Cliquez sur Enregistrer.
Vous pouvez configurer une liste d'autorisation ou une liste de refus, mais pas les deux. Toute configuration précédente sera alors remplacée.
API Identity Toolkit
Dans la console Google Cloud , exécutez la commande suivante pour imprimer un jeton d'accès pour votre projet :
gcloud auth print-access-token --project=PROJECT_IDMettez à 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: BearerACCESS_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 exempleINouUS.PROJECT_ID: ID de votre projet.
Vous devez fournir un masque de mise à jour pour éviter que d'autres champs ne soient modifiés.
Accéder aux métriques régionales d'utilisation des SMS
Cette section explique comment afficher les métriques d'utilisation des SMS.
Pour afficher les métriques, procédez comme suit :
Dans la console Google Cloud , accédez à la page Explorateur de métriques dans Cloud Monitoring :
Sélectionnez les champs suivants :
- identitytoolkit.googleapis.com/usage/sent_sms_count,
- identitytoolkit.googleapis.com/usage/blocked_sms_count, and
- 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 les autorisations par SMS.
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 faible verification_success_rate peut indiquer un usage abusif, en particulier dans une région où vous ne vous attendez pas à avoir des utilisateurs. En général, les taux de réussite de la validation inférieurs à 75 % sont considérés comme faibles.
Si vous pensez que les SMS sont utilisés de manière abusive, vous pouvez définir une règle régionale.