Section: Les drivers pour jAuth
^ jAuth : système d'authentification |
− Table des matières
Il existe en standard plusieurs drivers pour l'authentification dans Jelix.
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 cmd.php installmodule jauthdb
# ou si vous voulez aussi créer un utilisateur par défaut, "admin" (mot de passe : admin)
php cmd.php installmodule -p defaultuser jauthdb
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"
password_crypt_function = "sha1"
Ce que vous indiquez au niveau du paramètre dao
, c'est un sélecteur vers le
fichier dao que vous voulez 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
andpassword
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".
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"
password_crypt_function = "sha1"
LDS/MDS ¶
C'est un driver qui repose sur un serveur LDS, projet qui a changé de nom depuis : MDS (Mandriva Directory Server). Notez que ce driver LDS n'a pas été testé avec les versions récentes de MDS.
Ce driver appelle l'API xml-rpc d'un serveur MDS. La configuration que vous devez indiquer doit donc être celle-ci :
driver= LDS
[LDS]
host=foo.com
port=80
login= foo
password= bar
scheme= https
Le driver interrogera donc le serveur foo.com sur le port 80, avec le
login foo
et le mot de passe bar
, via une connexion sécurisée https.
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]
; 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=
; paramètres de recherche LDAP
; 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=
; fonction utilisée pour crypter le mot de passe dans la base de données
password_crypt_function = sha1
; exemple : salt avec sha1
;password_crypt_function = "1:sha1WithSalt"
;password_salt = "here_your_salt"
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.