Skip to content

Client form-indirect

Description

Ce client gère l'authentification via un formulaire HTML. Il supporte l'authentification forte par TOTP (Time based One Time Password).

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

Paramètres

loginUrl obligatoire
URL du formulaire de login.
usernameParam
Nom du champ de formulaire dans lequel l'utilisateur devra saisir son nom d'utilisateur. Si non défini, le champ attendu sera username.
passwordParam
Nom du champ de formulaire dans lequel l'utilisateur devra saisir son mot de passe. Si non défini, le champ attendu sera password.
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.
totpUrl

URL de formulaire pour la saisie du token TOTP. Ce formulaire n'est affiché que si une authentification forte est attendue pour l'utilisateur, c'est-à-dire si un secret TOTP est associé à l'utilisateur au niveau du repository.

Le formulaire en question est un formulaire jsp qui doit être capable d'envoyer les données sur la bonne URL. L'URL en question doit mentionné le nom du client qui va prendre en charge le formulaire. Dans le cadre du token TOTP, le client en question porte le nom du client utilisé pour le formulaire de login avec un suffixe -totp. Par exemple, si le client qui prend en charge la saisie du nom d'utilisateur et du mot de passe (c.-à-d. le client qui traite le formulaire loginUrl) est form, alors le client qui se charge du formulaire totpUrl est form-totp.

tokenParam
Nom du champ de formulaire dans lequel l'utilisateur devra saisir son code à 6 chiffres (token TOTP). Si non renseigné, le moteur s'attend à recevoir le code via le champ token.
checkParam
Nom du champ de formulaire dans lequel le moteur véhicule un UUID. Ce dernier ne joue aucun rôle du point de vue de l'authentification. Il s'agit uniquement d'un contrôle éviter des problèmes de cache. Si non renseigné, le moteur s'attend à retrouver cette valeur via le champ check.
maxAttempts
Nombre de tentatives de saisie du code à 6 chiffres accordées à l'utilisateur. La valeur par défaut est 3.
maxDuration
Durée maximale autorisée pour une authentification, en secondes. Le calcul de la durée commence au moment où le formulaire de login est affiché.
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.

Voir la documentation du client basic pour le détail.

Exemple

Le bloc ci-dessous déclare un client effectuant une authentification par formulaire en deux étapes : l'authentification par nom d'utilisateur et mot de passe dans un premier temps, puis l'authentification forte par OTP (à condition que celle-ci soit activée sur la fiche de l'utilisateur).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<client name="form-client" type="form">
    <loginUrl>/ewt/login.jsp</loginUrl>
    <repository>script-file-repo</repository>
    <hashAlgo>MD5</hashAlgo>
    <usernameParam>j_username</usernameParam>
    <passwordParam>j_password</passwordParam>

    <!-- éléments spécifiques totp -->
    <totpUrl>/ewt/login-token.jsp</totpUrl>
    <tokenParam>j_token</tokenParam>
    <checkParam>j_check</checkParam>
    <maxAttempts>5</maxAttempts>
    <maxDuration>300</maxDuration>   <!-- 5 minutes -->

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