Politique de limites anti-attaques

Auth0 limite l’utilisation de services pour assurer une performance optimale et une protection contre les acteurs menaçants, les erreurs techniques ou un trafic excessif illégitime.  Nous recommandons de regarder comment Auth0 applique ses limites pour configurer votre application dans l’objectif d’obtenir une expérience utilisateur optimale.

Introduction aux Limites anti-attaques

Auth0 applique des limites dans le but de protéger ses services d’un nombre excessif de requêtes et de protéger les clients d’interruptions ou dégradations de service.

Auth0 observe, et dans plusieurs cas applique, un ensemble de limites, incluant :

  • Requêtes vers des environnements (Nuage privé seulement)

  • Requêtes vers des clients via API ou point de terminaison de l’API

  • Limites diverses

Limites de requête d’environnement (Nuage privé seulement)

Dans un Nuage privé, les limites de requête sont fondées sur le niveau de la performance du Nuage privé.  Pour en savoir plus, veuillez consulter Nuage privé pour AWS ou Nuage privé pour Azure.

Actuellement, les limites anti-attaques d’environnement Nuage privé représentent la charge la plus importante où le produit Auth0 rencontrera les SLAs. Cependant, à ce jour, Auth0 applique et notifie les utilisateurs lorsque les limites anti-attaques ont été dépassées sur un client spécifique de l’environnement.Dans la majorité des cas sous Nuage privé, où le consommateur maintient un seul Locataire de production, ce n’est pas un problème; cependant, les cas où l’on trouve plus d’un client de production devraient considérer et prévoir une charge sur l’ensemble des locataires de l’environnement et mettre en place une surveillance additionnelle, le cas échéant.

Par exemple, considérez l’environnement Performance Plus où la limite anti-attaques est de 1500 requêtes par seconde (rps).  Il est possible de créer deux locataires dans cet environnement : un servant les clients à 1400 rps, et un autre servant les clients à 900 rps  Aucun des locataires ne sera limité, mais la charge combinée de l’environnement sera de 2300 rps, dépassant la limite anti-attaques de 800 rps.  En conséquence, l’expérience utilisateur peut s’en trouver diminuée, et la disponibilité de l’environnement peut tomber sous le niveau de SLAs publié.

Pour les considérations relatives aux tests de charge du nuage privé, reportez-vous à Nuage privé sur AWS et Nuage privé sur Azure.

Limites anti-attaques des locataires

Les limites Auth0 sur le nombre de requêtes pouvant être effectuées à un locataire.  Ces limites sont configurées selon l’API, et encore davantage par des points de terminaison spécifiques pour chaque API.

Limites anti-attaques de l’API

Auth0 limite le nombre de requêtes pouvant être effectué à une API spécifique, sans considération du point de terminaison de l’API. Les limites anti-attaques d’API peuvent varier selon qu’il s’agit de :

  • API

    • Authentification

    • Direction

  • Production par rapport au Développement ou Environnement de préproduction)

  • (Gratuit, Essentiel, Professionnel, Entreprise Public ou Privé)

Par exemple, un locataire non associé à la production et de compte gratuit pourrait avoir des limites différentes d’un locataire de production avec un abonnement payant. Pour des configurations particulières de limite anti-attaques, consultez Configurations de limite anti-attaques.

Requêtes des utilisateurs

Une seule requête d’un utilisateur final (par ex., une connexion ou une inscription) déclenche généralement plusieurs requêtes vers les points de terminaison de l’Authentication API. Le ratio réel entre les requêtes des utilisateurs finaux et l’Authentication API dépend de plusieurs facteurs :

  • Entity Being Authenticated (e.g., Machine or End User Mobile or Desktop Application)

  • Expérience d’authentification (par ex., Nouvelle connexion universelle ou Connexion classique)

  • Flux d’authentification (par ex., Connexion, Inscription ou Modification du mot de passe)

  • Type de flux d’authentification (p. ex., connexion par nom d’utilisateur/mot de passe; connexion par connexion sociale; connexion lorsqu’un jeton d’authentification existe déjà)

Les clients qui utilisent l’extensibilité peuvent ajouter d’autres requêtes, non seulement à l’Authentication API, mais aussi à Management API, en fonction de la configuration de l’extensibilité. Pour connaître l’incidence de votre configuration Auth0 sur l’utilisation de votre API, consultez les cas d’utilisation de la limite anti-attaques.

Limites anti-attaques de point de terminaison

Auth limite le nombre de requêtes effectuées aux points de terminaison de l’API et dans certains cas, le nombre d'opérations des points de terminaison. Les limites des points de terminaison de l’API varient également selon :

  • API

  • Type de locataire

  • Niveau d’abonnement

Par exemple, un locataire avec compte gratuit non associé à la production aura des limites différentes d’un locataire avec un abonnement payant.

Ordre des limites pour les requêtes de locataires

Alors que des requêtes à votre locataire sont effectuées, Auth0 évalue les requêtes contre la limite globale de l’API et évalue les requêtes contre la limite anti-attaques de points de terminaison d’API spécifiques.

Limites diverses

Limites de connexions de bases de données

Pour les connexions de bases de données, Auth0 limite certains types de tentatives de connexion répétées selon l’adresse IP du compte utilisateur. Pour protéger la santé générale du système, Auth0 emploie des limites anti-attaques au nom d’utilisateur/mot de passe qui atténuent la charge. Le haut niveau de personnalisation d’Auth0 émet le risque d’une dégradation de service. Ces cas comprennent :

  • Tests de stress avec une charge élevée

  • Tests de référence

  • Code inefficace amenant l’utilisateur à se connecter plusieurs fois

Les requêtes sont sujettes à des limites, telles que décrites dans les politiques des API Auth0.

De plus, il existe une même limite anti-attaques de connexion utilisateur : si une adresse IP effectue 20 tentatives de connexion en une minute pour le même compte utilisateur, la limite est alors appliquée. Ensuite, Auth0 permet 10 tentatives par minute pour cet utilisateur. Toute combinaison de tentatives de connexions réussies et échouées compte dans cette limite.

Limites qui protègent les utilisateurs

La protection contre les attaques exhaustives et la limitation des adresses IP suspectes de Auth0 peuvent également limiter les connexions et les inscriptions, mais elles sont indépendantes des limites anti-attaques. Pour en savoir plus sur comment Auth0 détecte et gère les anomalies potentiellement malveillantes, lisez Protection contre les attaques.

Limites de messages SMS pour authentification multifacteur (MFA) (utilisateurs finaux seulement)

Si vous tentez d’envoyer plus de 10 messages SMS vers votre appareil dans l’heure, vous recevrez un message d’erreur concernant une exception de limite anti-attaques.

Lorsque vous dépassez votre limite de nombre de messages, vous devez attendre au moins une heure après la première requête de message avant de faire une autre demande. Vous recevrez une tentative additionnelle après le passage de chaque heure additionnelle.

Limites associées à des réseaux sociaux natifs

Les limites s'appliquent aux requêtes de flux de connexion pour les requêtes associées à des réseaux sociaux natifs; celles-ci sont identifiées selon le critère initial suivant :

Type de requête Corps
grant_type urn:ietf:params:oauth:grant-type:token-exchange
subject_token_type http://auth0.com/oauth/token-type/apple-authz-code

Performance publique

Si le volume de transactions dépasse la limite de requêtes d’Authentication API et atteint le seuil de 100 RPS, un incrément de 15 minutes sera alors décompté. Le client devra utiliser la totalité de cet incrément pour consommer à la limite de performance maximale, avant qu’un nouvel incrément de 15 minutes ne soit déduit.

Il y a actuellement trois multiplicateurs de performance publique (2 x, 3 x et 4 x), qui autorisent respectivement 200, 300 et 400 RPS pour l’Authentication API pendant une période maximale de 48 heures par mois. Ces 48 heures sont calculées en tranches de 1 minutes, ce qui signifie que vous pouvez utiliser l’API jusqu’au niveau du multiplicateur pendant 2880 périodes de 1 minutes chaque mois.

Quand le nombre de requêtes adressées à l’Authentication API dépasse la limite par défaut de 100 RPS, une période de 1 minutes est retirée de l’allocation mensuelle. Le trafic est alors autorisé au taux déterminé par le multiplicateur. Ce trafic peut rester dans la fourchette du multiplicateur pendant les 1 minutes consécutives suivantes sans entraîner de nouvelles déductions.

Le suivi des événements de déduction d’intervalle est possible à partir des journaux des locataires. En effet, chaque déduction entraine la création d’un type particulier d’événement dans le journal du locataire `appi`. Ce dernier contient des informations sur l’allocation déjà consommée et celle qui reste.

Pour plus d'informations, voir la section Authentication API dans Limites anti-attaques – Entreprise

Burst de performance privé

L'offre Burst de performance privé (disponible actuellement sur AWS pour les niveaux 30x et 60x) comprend une capacité de performance en burst (pic) jusqu'à 30x (3 000 RPS) ou 60x (6 000 RPS) pendant un maximum de 80 heures par mois. La capacité de performance de base, qui correspond à la moitié de la capacité de performance en burst, est disponible pour le reste du mois.

En d’autres mots, le Burst de performance privé 30x comprend :

  • Capacité de base : 1 500 RPS pour tout le mois

  • Capacité en burst/pic : 3 000 RPS pour un maximum de 80 heures par mois

Si les transactions d'authentification dépassent la limite des requêtes API de base, une heure est déduite de l'allocation mensuelle. Le trafic peut rester à un taux élevé pendant une heure entière à partir de ce moment. D'autres déductions sont effectuées de la même manière si le seuil est à nouveau dépassé.

Une fois que le quota de 80 heures est épuisé, le trafic d'authentification est limité à la capacité de base jusqu'à ce que le nouveau quota mensuel prenne effet.

Limites de concurrence d’extensibilité

Pour garantir la disponibilité du système et un usage équitable des ressources du système, Auth0 limite le nombre de requêtes simultanées en cours sur tous les produits d’extensibilité : Actions, Crochets, Règles, Connexions de base de données personnalisées, Extensions et Connexions OAuth2 personnalisées. Les locataires qui dépassent leurs limites de requêtes simultanées doivent s’attendre à des erreurs pour les nouvelles requêtes, tant que les requêtes en cours ne sont pas finalisées. Les limites de concurrence sont définies ci-dessous :

Abonnement Limite de simultanéité (par locataire)
Nuage public 250
Nuage privé Tier Dev 100
Nuage privé Basic 100 RPS (1x) 200
Performance du nuage privé 500 RPS (5x) 400
Performance du nuage privé 1 500 RPS (15x) 1 200
Performance du nuage privé 3 000 RPS (30x) et 3 000 RPS en rafale (30x en rafale ) 1 200
Performance du nuage privé 6 000 RPS (60x) et 6 000 RPS en rafale (60x en rafale ) 1 200

La concurrence peut être calculée en multipliant les requêtes par seconde (RPS) attendues par la latence de chaque requête. Par exemple, un locataire ayant deux actions post-connexion associées, chacune durant 250 ms avec un taux de 400 requêtes par seconde (RPS), aura une concurrence attendue de : (2 * (400 requêtes / 1 seconde) * (0,25 seconde / 1 requête)) = 200.

Pour éviter que votre locataire ne soit impacté par ces limites de concurrence, veillez à ce que toute logique d’extensibilité potentiellement longue, comme les appels vers des API externes, dispose de délais d’expiration appropriés.

Algorithme de limite anti-attaques

Auth0 établit des limites anti-attaques et des limites de charges subites pour ses API. Alors que la limite anti-attaques est la quantité maximum durable que le système permet sur une base régulière, la limite de trafic subit court-terme est la limite permise dans les confins d’un intervalle. Les limites anti-attaques et les limites de charge subite offrent une meilleure fonctionnalité pour le trafic dynamique de volume.

Les limites anti-attaques Auth0 utilisent un algorithme de groupe de jetons selon les configurations suivantes :

  • Clés de limite anti-attaques :  

    • Typiquement, une limite anti-attaques est fondée sur deux facteurs principaux :

      • API et point de terminaison

      • Type de locataire

    • Dans certains cas, les facteurs additionnels comprennent :

      • IP de la source

      • ID de l’utilisateur visé

  • Valeurs limites :

    • Taille de groupe : Le nombre maximal de requêtes qu’une API ou un point de terminaison reçoit en général, ou reçoit à une adresse IP spécifique, avant que de nouvelles requêtes soient ajoutées.

    • Taux de remplissage   Le taux auquel les requêtes sont ajoutées au groupe.

À partir de ces deux chiffres, Auth0 calcule la limite de charge subite et la limite anti-attaque soutenue.

  • Limite de charge subite : Égale à la taille de groupe.

  • Limite anti-attaques soutenue :  Taux de remplissage en requêtes par minute ou seconde.

Si la limite anti-attaques est calculée en requêtes par seconde, les nouvelles requêtes sont ajoutées en millisecondes. Si la limite anti-attaques soutenue est calculée en requêtes par minute, les nouvelles requêtes sont ajoutées sur la base de secondes.

En savoir plus