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 des 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 utilisations abusives de SMS peuvent se produire.
La fonctionnalité "Régions SMS" vous permet de définir les régions pouvant recevoir des autorisations téléphoniques par 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 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 stratégie de région Identity Platform. Vous pouvez configurer les types de règles suivants, mais un seul peut être actif:
- Autorisation par 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, sauf 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 "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 l'authentification Firebase.
Accéder aux paramètres Firebase Auth
Sélectionnez Règle de région pour 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 souhaitez envoyer des SMS. Les régions qui ne figurent pas sur la liste sont bloquées.
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
Dans la console Google Cloud, pour imprimer un jeton d'accès pour votre projet, exécutez la commande suivante:
gcloud auth print-access-token --project=
PROJECT_ID
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 exempleIN
ouUS
.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 blocage uniquement, procédez comme suit:
Console Firebase
Dans la console Firebase, accédez à la page Paramètres Firebase Auth, puis sélectionnez Règle de région pour les SMS dans le volet de navigation.
Accéder aux paramètres Firebase Auth
Sélectionnez Refuser.
Cliquez sur Sélectionner des régions.
Ajoutez les régions dans lesquelles vous souhaitez bloquer l'envoi de messages SMS. Les régions qui ne figurent pas sur la liste seront autorisées.
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
Dans la console Google Cloud, pour imprimer un jeton d'accès pour votre projet, exécutez la commande suivante:
gcloud auth print-access-token --project=
PROJECT_ID
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 exempleIN
ouUS
.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 d'utilisation des SMS régionales
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 de Cloud Monitoring:
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.
Calculez le taux de réussite de la vérification en tant que
verification_success_rate = phone_verification_count/sent_sms_count
, dans une région donnée. 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 pensez qu'un SMS est utilisé de manière abusive, vous pouvez définir une règle par région.