Raccourcis : Contenu - rubriques - sous rubriques
EN FR

Table des matières

Il existe en standard plusieurs drivers pour l'authentification dans Jelix.

Leurs configuration se fait dans une section [<drivername>] du fichier auth.coord.ini.php, ou alors dans une section auth_<drivername> de la configuration générale.

Db

Le driver Db propose une authentification pour laquelle les informations sont stockées en base de données, et de ce fait utilise un DAO pour y accéder.

Jelix fournis un module, jauthdb, qui contient un dao par défaut, et installe une table en base de donnée. Pour l'utiliser, installez le :


php dev.php module:configure jauthdb

# ou si vous voulez aussi créer un utilisateur par défaut, "admin" (mot de passe : admin)
php dev.php module:configure -p defaultuser jauthdb

#puis lancer

php install/installer.php

Une table jlx_users sera créée dans votre base de données. Vous pouvez ajouter des champs dans cette table, et surcharger alors le dao par défaut, ou fournir un autre dao (voir plus loin).

Dans le fichier de configuration d'authentification, vous devriez avoir quelque chose comme ceci :


driver= Db

[Db]
dao = "jauthdb~jelixuser"
profile=

Le paramètre dao est un sélecteur vers le fichier dao que vous voulez utiliser. Le paramètre profile contient optionnellement le nom du profile de connexion jDb à utiliser.

Pour le dao que vous indiquez, il doit avoir au moins les mêmes propriétés et méthodes que le dao jelixusers. Vous pouvez rajouter d'autres propriétés, autant que vous voulez.

  • login and password
  • getByLoginPassword (login, password)
  • getByLogin(login)
  • updatePassword(login,password)
  • deleteByLogin(login)
  • findByLogin(pattern)

Note : la table sur laquelle repose le dao, doit avoir comme clé primaire le champ du login, ou alors qu'il y ait une clé autoincrementée, et un champ login déclaré avec un index de type "UNIQUE".

Pour faire votre dao, vous pouvez aussi faire un import du dao fourni par jauthdb.

Class

C'est un driver qui permet d'utiliser une classe que vous aurez développé et dans laquelle vous faîtes ce que vous voulez.

Elle doit respecter l'interface jIAuthDriverClass. Cette interface est un peu moins complexe que l'interface d'un driver pour jauth. Cependant elle pourrait être trop limitative, préférez alors développer un driver complet (voir plus bas).

Cette classe doit être stockée dans le répertoire "classes" d'un de vos modules, comme n'importe quelle classe métier.

Dans la configuration du plugin jauth, vous devez mettre :



driver= Class

[Class]
class = "monmodule~maclass"

ldap

C'est un driver permettant d'authentifier un utilisateur d'un annuaire supportant le protocole LDAP. La configuration préconisée :


driver= ldap

[ldap]
; profile dans profiles.ini.php contenant les informations de connexions ldap
profile=jauth

; paramètres de recherche LDAP. Ils peuvent être aussi stockés dans le profile

; base d'entrée de la recherche, exemple pour Active Directory de windows : "ou=ADAM users,o=Microsoft,c=US"
searchBaseDN=
; filtre de recherche, exemple pour Active Directory de windows : "(objectClass=user)"
searchFilter=
; les attributs à renvoyer , exemple pour Active Directory de windows : "cn,distinguishedName,name"
searchAttributes=

Dans le fichier profiles.ini.php, vous devez créer une section pour le profile indiqué dans la propriété profile, avec la catégorie authldap. Le profile doit contenir les informations de connexions au serveur ldap.


[authldap:jauth]

; par défaut "localhost"
hostname=
; par défaut 389
port=

; DOMAINE\utilisateur ou utilisateur@DOMAINE pour la connexion avec LDAP (utilisateur ayant au moins un accès en lecture)
ldapUser=
; mot de passe de l'utilisateur
ldapPassword=

; ldap protocol version
protocolVersion=3

; the name of the ldap property used for the login field
uidProperty=cn

; the objectclass to use for a user
ldapUserObjectClass=user

Créer un driver

Vous avez peut-être votre propre système d'authentification, que vous voulez mieux intégrer dans le framework. Dans ce cas, il vous faut créer un driver. Au passage, nous acceptons toutes contributions de ce type !

Pour les détails, voir la page sur la création des drivers d'authentification.