17.9 Authentification

17.9.1 Présentation

Le mécanisme d'authentification utilisé par Dynacase est paramétrable et permet de choisir :

  • l'Authenticator

    C'est le mode d'interaction avec l'utilisateur pour la saisie des information de connexion (formulaire HTML, authentification HTTP Basic, etc.) ;

  • le Provider

    C'est le mode de validation de ces informations de connexion (base locale Dynacase, serveur LDAP, fichier texte à plat, etc.).

Dynacase fournit par défaut les Authenticators et Providers suivants :

  • Authenticator

    html
    formulaire HTML (Class.htmlAuthenticator.php) ;
    basic
    authentification HTTP Basic (Class.basicAuthenticator.php) ;
    open
    authentification par jeton (Class.openAuthenticator.php) ;
  • Provider

    freedom
    authentification sur la base locale Dyancase (Class.freedomProvider.php).

Un Authenticator peut utiliser un ou plusieurs Provider. Dans ce cas, ils seront utilisés successivement : si le premier Provider autorise l'accès, l'utilisateur est connecté ; sinon on passe au Provider suivant, et ainsi de suite.

Le paramétrage de l'Authenticator, et des Provider à utiliser, s'effectue dans le fichier conf/local-dbaccess.php.

17.9.2 Workflow d'authentification

Workflow d'authentification

Figure 113. Workflow d'authentification

Lorsque l'utilisateur demande une page, un appel est effectué à la méthode checkAuthentication() (1) de l'Authenticator qui vérifie si l'utilisateur est déjà authentifié ou non.

Si l'utilisateur n'est pas authentifié, alors il est redirigé vers la méthode askAuthentication() qui est en charge de dérouter l'exécution vers le code nécessaire à la demande des informations de connexion.

L'utilisateur rentre les informations d'authentification qui sont ensuite validées auprès des Providers configurés via l'appel de la méthode validateCredential() du Provider (4).

Une fois l'utilisateur authentifié, un contrôle d'autorisation est effectué avec d'une part un premier contrôle auprès du Provider via l'appel de la méthode checkAuthorization() de l'Authenticator (2), et d'autre part, un deuxième contrôle d'autorisation final auprès de Dynacase (3).

Si l'authentification réussie, la page est redirigée sur l'url initialement demandée. Cette redirection entraine le contrôle d'accès à l'action demandée.

Si l'authentification échoue, la page de demande d'authentification est de nouveau affichée.

×