Modifié par jhurst le 2020/10/29 13:32

Afficher les derniers auteurs
1 {{ddtoc/}}
2
3 ----
4
5 (% class="wikigeneratedid" %)
6 Ce document décrit la mise en place d’une valve d’authentification personnalisée pour DigDash Enterprise.
7
8 = Prérequis =
9
10 * Avoir récupéré le dossier **CustomAuthenticator** dans le répertoire **add-ons **de l’archive d’installation DigDash. Il contient tous les fichiers nécessaires à la mise en place de la valve d’authentification personnalisée dans le serveur Tomcat de DigDash. Le placement de ces fichiers est décrit dans ce document.
11 ** Le dossier Tomcat7 : les versions des librairies pour un serveur Tomcat 7
12 ** Le dossier Tomcat8 : les versions des librairies pour un serveur Tomcat 8
13 * Les manipulations suivantes sont à réaliser **le serveur DigDash stoppé**.
14
15 = Configuration du serveur DigDash =
16
17 == Copie des librairies ==
18
19 Ajouter les librairies ainsi que le fichier de configuration des logs du dossier **CustomAuthenticator/Tomcat<N>** (N : version Tomcat) dans le dossier
20
21 **<digdash_installation>/apache/lib**:
22
23 |custom_authenticator.jar|httpcore-4.4.9.jar
24 |commons-codec-1.10.jar|httpmime-4.5.5.jar
25 |commons-logging-1.2.jar|log4j-1.2.15.jar
26 |httpclient-4.5.5.jar|
27
28 __Librairies du dossier CustomAuthenticator/Tomcat8__
29
30 == Ajout de la valve d’authentification personnalisée ==
31
32 Ajouter la valve d’authentification personnalisée dans le fichier **context.xml** situé dans le dossier
33
34 **<digdash_installation>/apache-tomcat/conf**
35
36 Pour cela, ajouter l’élément Valve suivant dans l’élément **Context**.
37
38
39 (((
40 {{code language="XML"}}
41 <Context>
42 ...
43 <Valve className="custom.apache.CustomAuthenticator"
44 sharedPasswd="secret"
45 allowAddr=".*localhost.*,.*127.0.0.*"
46 portalUrl="<url>?login=${login}&amp;token=${token}"
47 fallbackAuth="LDAP"
48 expectedResponse="OK" />
49 </Context ...>
50 {{/code}}
51
52
53 __Extrait du fichier server.xml__
54
55
56 (% style="color:#c0392b" %)Valeur invariable(%%) / (% style="color:#27ae60" %)Valeur variable selon l’installation
57 )))
58
59 |Attribut|Description
60 |(% style="color:#c0392b" %)className|Nom de la classe Java, implémentant l'interface org.apache.catalina.Valve, à utiliser comme Valve ici. Cet attribut est obligatoire, car il permet de sélectionner la Valve à utiliser. Il en existe en effet plusieurs implémentations fournies par Tomcat.
61 |(% style="color:#27ae60" %)sharedPasswd|Le mot de passe partagé et vérifié à l’authentification (voir point II.5)
62 |(% style="color:#27ae60" %)allowAddr|Expression(s) régulière(s) que l’adresse d’envoi des requêtes vers le dashboard doit satisfaire. Dans le cas de regex multiples, séparer par des virgules.
63 |(% style="color:#27ae60" %)portalUrl|(((
64 L’adresse de la page de vérification de utilisateur et du jeton (token).
65
66 - Elle peut être unique et demander la validation à un seul et même serveur ; dans ce cas:
67
68 (% style="color:#27ae60" %)<protocole>:~/~/<hôte>:<port>/<contexte>/<chemin>(% style="color:#c0392b" %)?login=${login}&amp;token=${token}
69
70 - Elle peut correspondre à l’adresse de la source émettrice de la requête d’accès vers le dashboard ; indiquer dans ce cas seulement le chemin restant :
71
72 (% style="color:#27ae60" %)<contexte>/<chemin>(% style="color:#c0392b" %)?login=${login}&amp;token=${token}
73
74 La valve analysera dans les paramètres header de la requête entrante le Referer vers lequel renvoyer la demande de vérification.
75 )))
76 |(% style="color:#27ae60" %)fallbackAuth|Méthode d'authentification à  utiliser en cas d'échec de l'authentification de la valve.
77 |(% style="color:#27ae60" %)expectedResponse|Réponse renvoyée par la page en cas d'authentification valide (non sensible à  la casse), toutes autres réponses conduit à  l'échec de l'authentification.
78 |(% style="color:#27ae60" %)print_debug|Facultatif, vaut false par défaut, sinon, ajouter print_debug="(% style="color:#27ae60" %)true(%%)" pour des traces plus verbeuses.
79
80 __Tableau décrivant les attributs de l’élément Valve__
81
82 == Ajout des contraintes de sécurité ==
83
84 Ajouter les contraintes de sécurité au fichier **web.xml** situé dans le dossier
85
86 **<digdash_installation>/apache-tomcat/conf**.
87
88 {{code language="XML"}}
89 <web-app ...>
90 ...
91 <security-role>
92 <role-name>CUSTOM</role-name>
93 </security-role>
94
95 <security-constraint>
96 <display-name>CUSTOM Security Constraint</display-name>
97 <web-resource-collection>
98 <web-resource-name>Protected Area</web-resource-name>
99 <url-pattern>/*</url-pattern>
100 </web-resource-collection>
101 <auth-constraint>
102 <role-name>CUSTOM</role-name>
103 </auth-constraint>
104 </security-constraint>
105
106 <security-constraint>
107 <web-resource-collection>
108 <web-resource-name>Non-Protected Area</web-resource-name>
109 <url-pattern>/vjdbc</url-pattern>
110 </web-resource-collection>
111 </security-constraint>
112 ...
113 </web-app>
114 {{/code}}
115
116 (((
117 __Extrait du fichier web.xml__
118 )))
119
120 == URL du serveur et domaine pour le Dashboard ==
121
122 Il peut être nécessaire, et **il est conseillé** de préciser sur quel serveur/domaine le Dashboard va s’appuyer.
123
124 Pour cela, modifier dans le fichier **web.xml** dans
125
126 **<digdash_installation>/apache-tomcat/webapps/digdash_dashboard/WEB-INF.**
127
128 Pour forcer le domaine, changer la valeur du paramètre **FORCEDOMAIN** à //true//.
129 Mentionner le nom du domaine en changeant le paramètre **DOMAIN**.
130
131 Pour forcer l’adresse du serveur, changer la valeur du paramètre **FORCESERVERURL** à //true//.
132 Mentionner l’adresse du serveur en changeant le paramètre **SERVERURL**.
133
134 {{code language="XML"}}
135 <web-app ...>
136 ...
137 <servlet>
138 <servlet-name>dashServlet</servlet-name>
139 <servlet-class>com.digdash.server.DigdashServiceImpl</servlet-class>
140 ...
141 <init-param>
142 <param-name>DOMAIN</param-name>
143 <param-value>ddenterpriseapi</param-value>
144 </init-param>
145
146 <init-param>
147 <param-name>FORCEDOMAIN</param-name>
148 <param-value>true</param-value>
149 </init-param>
150
151 <init-param>
152 <param-name>SERVERURL</param-name>
153 <param-value>http://localhost:8080</param-value>
154 </init-param>
155
156 <init-param>
157 <param-name>FORCESERVERURL</param-name>
158 <param-value>true</param-value>
159 </init-param>
160 ...
161 </servlet>
162 ...
163 </web-app>
164 {{/code}}
165
166 (((
167
168
169 Valeur variable selon l’installation : "ddenterpriseapi" / "true" / "8080".
170
171
172 )))
173
174 __Extrait du fichier web.xml__
175
176
177
178 (% class="box infomessage" %)
179 (((
180 La valeur d’exemple pour le paramètre SERVERURL fera quasiment toujours référence à localhost, lorsque le tableau de bord et le serveur sont placés dans le même serveur Tomcat, ce qui représente quasiment 99 % des usages. Il faudra naturellement faire référence à l’adresse du serveur externe si ces deux éléments sont placés sur des serveurs différents.
181 )))
182
183
184
185 Ce paramètre est éditable via le fichier web.xml comme indiqué ci-dessus. Ce fichier est propre à chaque installation de DigDash. Il vous est possible de renseigner ce paramètre de manière plus globale dans le fichier
186
187 (((
188 **<utilisateur>/Application Data/Enterprise Server/dashboard_system.xml**
189
190 Pour en savoir plus, vous pouvez vous référer à la documentation DigDash « guide_avance_systeme_fr.pdf ».
191 )))
192
193 == Changement de la valeur du paramètre sharedPasswd ==
194
195 Dé-commenter et changer la valeur du paramètre **sharedPasswd** (valeur secret ci-dessous à changer) dans le fichier **web.xml** dans le dossier
196
197 **<DDE Install>/apache-tomcat/webapps/digdash_dashboard/WEB-INF**.
198
199 La valeur doit correspondre à celle mentionnée dans l’attribut **sharedPasswd** dans la valve du fichier
200
201 **<DDE Install>/apache-tomcat/conf/server.xml** (voir partie II.2).
202
203 {{code language="XML"}}
204 <web-app ...>
205 ...
206 <servlet>
207 <servlet-name>dashServlet</servlet-name>
208 <servlet-class>com.digdash.server.DigdashServiceImpl</servlet-class>
209 ...
210 <init-param>
211 <param-name>sharedPasswd</param-name>
212 <param-value>secret</param-value>
213 </init-param>
214 ...
215 </servlet>
216 ...
217  </web-app>
218 {{/code}}
219
220 (((
221 Valeur variable selon l’installation : "secret".
222
223 __Extrait du fichier server.xml__
224
225
226 )))
227
228 == Modification de la méthode d'authentification ==
229
230 Modifier le paramètre **authMethod pour changer** la méthode d'authentification (LDAP est la méthode par défaut) dans le fichier **web.xml** situé dans le dossier
231
232 **<DDE Install>/apache-tomcat/webapps/ddenterpriseapi/WEB-INF**.
233
234 "//External//" signifie que la sécurité est gérée par la valve configurée ci-dessus.
235
236 {{code language="XML"}}
237 <web-app ...>
238 ...
239 <servlet>
240 ...
241 </servlet>
242 ...
243 <servlet>
244 <description></description>
245 <display-name>DDEnterpriseAuthServlet</display-name>
246 <servlet-name>DDEnterpriseAuthServlet</servlet-name>
247 <servlet-class>com.digdash.server.DDEnterpriseAuthServlet</servlet-class>
248
249 <init-param>
250 <param-name>authMethod</param-name>
251 <param-value>External</param-value>
252 </init-param>
253 ...
254 </servlet>
255 ...
256  </web-app>
257 {{/code}}
258
259 (((
260 __Extrait du fichier web.xml__
261 )))