Modifié par jhurst le 2024/04/02 14:26

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