Lors de la connexion à l'application CMS Ametys, un contributeur doit fournir des informations identification. Après vérification de ses informations, il sera autorisé ou non à accéder au CMS.
Le CMS Ametys fournit plusieurs moyens pour authentifier les utilisateurs. C'est le rôle de l'intégrateur de choisir parmi ses solutions proposées, celle qui lui convient en fonction de ses besoins.
Il devra pour cela répondre à ses 3 questions :
L'authentification est un processus en 3 étapes :
Le schéma ci-dessous représente ce processus d'authentification, détaillé dans les paragraphes suivants :
Le point d'extension org.ametys.runtime.authentication.CredentialsProvider permet de définir le mode de récupération des identifiants d'un utilisateur se connectant à l'application.
Il s'agit d'un point d'extension simple, c'est à dire qu'une seule implémentation peut être choisie
Le choix du "credentials provider" s'effectue au travers du fichier WEB-INF/param/runtime.xml de l'application (cf. Fichier runtime.xml) ou au travers de l'outil "Plugins et Workspace" disponible depuis l'interface d'administration.
A ce jour, les extensions disponibles pour ce point d'extension sont les suivantes :
L'extension org.ametys.runtime.plugins.core.authentication.Defined définit un seul contributeur "anonymous", automatiquement connecté.
Le mot de passe n'est pas vérifié dans l'étape suivante.
Cette valeur est utilisée par exemple pour une démonstration si l'on ne souhaite pas passer par l'étape de saisie du login et du mot de passe.
Pour aller plus loin
Pour créer une connexion automatique avec votre propre contributeur, veuillez consulter la page Connexion automatique personnalisée.
Dans ce mode les identifiants de connexion sont demandés à l'utilisateur par le navigateur, au travers d'une pop-up.
Ce mode requiert le paramètre de configuration "realm" identifiant le domaine de protection.
Le mot de passe doit être vérifié dans l'étape suivante.
Dans ce mode l'utilisateur fournit ses identifiant au travers d'un formulaire HTML. Le mot de passe doit être vérifié dans l'étape suivante.
Ce formulaire est utilisé par exemple quand on souhaite personnaliser la page de saisie du login et du mot de passe
Pour aller plus loin
Pour afficher votre propre formulaire de connexion, suivez les instruction de la page de Création d'un plugin de formulaire de connexion.
Ces extensions définissent une authentifications réseau. Le mot de passe n'a pas besoin d'être vérifié dans l'étape suivante.
Ces valeurs sont utilisées dans le cadre d'utilisation de réseaux d'authentification (SSO).
Ces extensions permettent une authentification sur un serveur CAS (authentification unique Single Sign On). L'utilisateur est authentifié par le serveur CAS, le mot de passe n'a donc pas besoin d'être vérifié dans l'étape suivante.
L'extension org.ametys.runtime.plugins.core.authentication.GatewayCAS permet d'utiliser CAS en mode "gateway". Il s'agit d'une implémentation réservée à l'application front-office.
En effet dans ce mode, on récupère le login de l'utilisateur si il était déjà authentifié sur le serveur CAS. Dans le cas contraire, l'écran de connexion lui est présenté uniquement si il demande explicitement à se connecter (bouton Connexion). Ainsi, dans un site de type extranet, l'internaute a accès aux pages à accès limité si il est authentifié sur le serveur CAS, en revanche s'il n'est pas connecté il pourra naviguer dans le reste du site sans avoir accès aux pages à accès limité.
Cette extension combine une authentification CAS en mode "gateway" et une authentification HTTP basique:
Le point d'extension org.ametys.runtime.authentication.AuthenticationManager détermine si le login est autorisé à se connecter à l'application.
Il s'agit d'un point d'extension multiple: c'est à dire que plusieurs implémentations peuvent cohabiter.
Le choix de la ou des instanciations du AuthenticationManager s'effectue au travers du fichier WEB-INF/param/authentication.xml de l'application ou au travers de l'outil "Plugins et Workspace" disponible depuis l'interface d'administration.
Exemple de fichier authentication.xml
<?xml version="1.0" encoding="UTF-8"?> <authentications> <authentication>org.ametys.runtime.plugins.core.authentication.UsersManagerAuthentication</authentication> <authentication>org.ametys.runtime.plugins.core.authentication.HasRightAuthentication</authentication> </authentications>
A ce jour, les extensions disponibles pour ce point d'extension sont les suivantes :
Important
Le choix du gestionnaire authentification doit être cohérent avec le choix du CredentialsProvider. En effet, certains CredentialsProvider nécessite la vérification du mot de passe, d'autres non.
Consultez règles d'utilisation pour faire votre choix.
L'extension org.ametys.runtime.plugins.core.authentication.UsersManagerAuthenticationvérifie le login et le mot de passe dans la base des contributeurs.
Cette extension est à utiliser dès lors que le choix du CredentialProvider nécessite la vérification des identifiants (login et mot de passe)
L'extension org.ametys.runtime.plugins.core.authentication.HasRightAuthentication autorise la connexion de l'utilisateur à l'application si et seulement si l'utilisateur possède au moins un droit quelconque sur l'application.
Cette valeur est utile lorsque la base des utilisateurs est plus large que la population devant avoir accès au CMS. Par exemple lorsque la base des utilisateurs se trouvent sur un annuaire LDAP contenant l'ensemble du personnel/étudiants/... alors que seulement une partie restreinte du personnel doit avoir accès au back-office.
Cette extension est à utliser uniquement dans le cas du org.ametys.runtime.plugins.core.authentication.GatewayCASBasic. Les identifiants de connexion ne sont vérifiés que dans le cas où l'utilisateur s'est connecté en mode HTTP basique.
La dernière étape consiste à vérifier que le login existe dans la base de données des contributeurs (annuaire LDAP, base de données SQL, ...).
Cette étape est délégué au gestionnaire des utilisateurs (UserManager)
Quelques règles doivent être respectées quant au choix du fournisseurs d'identifiants (CredentialsProvider), du gestionnaire d'authentification (AuthenticationManager) et du gestionnaire d'utilisateurs (UsersManager).
Le tableau ci-après liste la compatibilité des extensions entre-elles:
Si vous rencontrez un problème ou si vous vous posez une question, consultez la FAQ ou à aller sur notre forum dans la section Paramétrage et intégration.