Skip to content

Client basic-direct

Description

Ce client gère l'authentification de type "basic" fournie via le header Authorization. Il supporte l'authentification forte par TOTP (Time based One Time Password).

Ce client présente beaucoup de similitudes avec le client form.

Paramètres

repository
Repository sur lequel s'appuyer pour l'identification des utilisateurs.
hashAlgo
Méthode de hashage des mots de passe utilisés par le repository.
realm
Nom du realm sur lequel l'utilisateur s'authentifie.
lockOut

Paramètres de lock out. Ce mécanisme apporte une sécurité dans le sens qu'il bloque les comptes utilisateurs effectuant un trop grand nombre de tentatives d'authentification en échec. Il reprend le principe de lock out de la classe org.apache.catalina.realm.LockOutRealm de Tomcat.

L'élément <lockOut> ne prend pas de valeur, le seul fait de spécifier l'élément active le mécanisme de lock out. Il est cependant possible de définir des paramètres supplémentaires au moyen des attributs suivants:

failureCount
Nombre de tentatives de connexion après qu'un compte utilisateur ne soit bloqué. Par défaut la valeur est 5.
lockOutTime
Durée (en secondes) de blocage des comptes ayant effectué un trop grand nombre de tentatives en échec. Par défaut la valeur est 300 (5 minutes).
cacheSize
Taille du cache utilisé pour conserver les comptes bloqués. Le cache fonctionne sur un principe LRU (Least Recently Used), à savoir qu'une fois la limite du cache atteinte, les plus anciennes entrées sont supprimées en premier. Par défaut la valeur est 1000.
warningTime

Durée minimale (en secondes) pendant laquelle une entrée d'utilisateur ayant échoué à s'authentifier doit rester dans le cache avant d'être supprimée. Si une telle entrée est retirée du cache parce que sa taille maximale est atteinte (voir cacheSize) et que cette entrée n'a pas atteint la durée spécifiée dans warningTime, alors un message d'avertissement est envoyé dans le log de l'application. Par défaut la valeur est 3600 (1 heure).

L'idée de cette valeur est de pouvoir déceler dans le log des activités suspectes comme des attaques brut force. Dans ce cas, le cache va rapidement être saturé et les plus vieilles entrées devront en être retirées pour faire place aux nouvelles. Si ces retraits interviennent fréquemment plus vite que la durée fixée dans warningTime, cela signifie soit que le cache est trop petit, soit que le nombre de tentatives en échec est anormalement trop grand.

Clients supportant le lock out

Le mécanisme de lock out n'est disponible que pour les clients de type basic et form. Pour les autres types de clients, veuillez vous référer à la documentation du fournisseur de l'IAM correspondant.

Exemple

Le bloc ci-dessous déclare un client effectuant une authentification "basic" et s'appuyant sur le repository tomcat-file-repo. La vérification du mot de passe doit tenir compte du fait que ces derniers sont chiffrés avec l'algorithme SHA.

1
2
3
4
5
6
7
8
<client name="basic-client" type="basic">
    <realm>UserDatabase</realm>
    <repository>tomcat-file-repo</repository>
    <hashAlgo>SHA</hashAlgo>

    <lockOut failureCount="5" lockOutTime="300"
             cacheSize="1000" warningTime="3600"/>
</client>