/
drivers.gtw
139 lines (97 loc) · 4.08 KB
/
drivers.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
~~LANG:EN@enman:authentication/drivers~~
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 :
<code bash>
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
</code>
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 :
<code ini>
driver= Db
[Db]
dao = "jauthdb~jelixuser"
password_crypt_function = "sha1"
</code>
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.
* @@P@login@@ and @@P@password@@
* @@M@getByLoginPassword (login, password)@@
* @@M@getByLogin(login)@@
* @@M@updatePassword(login,password)@@
* @@M@deleteByLogin(login)@@
* @@M@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
@@P@login@@ déclaré avec un index de type "UNIQUE".
===== Class =====
C'est un driver plus universel que celui de Db, dans la mesure où vous devez lui
fournir une classe, dans laquelle vous faîtes ce que vous voulez. Elle doit
respecter [[refclass:auth/jIAuthDriverClass|l'interface jIAuthDriverClass]].
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 :
<code ini>
driver= Class
[Class]
class = "monmodule~maclass"
password_crypt_function = "sha1"
</code>
===== LDS/MDS =====
C'est un driver qui repose sur un serveur MDS ([[http://mds.mandriva.org/]]),
anciennement appelé LDS. Il appelle l'API xml-rpc d'un serveur MDS. La
configuration que vous devez indiquer doit donc être celle-ci :
<code ini>
driver= LDS
[LDS]
host=foo.com
port=80
login= foo
password= bar
scheme= https
</code>
Le driver interrogera donc le serveur **foo.com** sur le port **80**, avec le
login @@L@foo@@ et le mot de passe @@L@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 :
<code ini>
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"
</code>
===== 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 [[/plugins/auth|la page sur la création des drivers d'authentification]].