Modifié par jhurst le 2021/07/19 14:27

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 * Disposer du dossier **<Install DD>/add-ons/CustomAuthenticator** contenant 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 * Les manipulations suivantes sont à réaliser **le serveur DigDash stoppé**.
12
13 = Configuration du serveur DigDash =
14
15 == Copie des librairies ==
16
17 Copiez les librairies ainsi que le fichier de configuration des logs du dossier **<install DD>/add-ons/CustomAuthenticator/Tomcat<N>** (N : version Tomcat qui nous intéresse) dans le dossier :
18
19 (% class="box" %)
20 (((
21 <Install DD>/apache-tomcat/lib
22 )))
23
24 Dossier **Tomcat7 **: les versions des librairies **pour un serveur Tomcat 7**
25 Dossier **Tomcat8 **: les versions des librairies **pour un serveur Tomcat 8 ainsi que pour les versions supérieures**
26
27 Fichiers à copier :
28
29 |custom_authenticator.jar|httpcore-4.4.9.jar
30 |commons-codec-1.10.jar|httpmime-4.5.5.jar
31 |commons-logging-1.2.jar|log4j-1.2.15.jar
32 |httpclient-4.5.5.jar|
33
34 == Ajout de la valve d’authentification personnalisée ==
35
36 Activez la valve d’authentification personnalisée dans le fichier **context.xml** situé dans le dossier :
37
38 (% class="box" %)
39 (((
40 <Install DD>/apache-tomcat/conf
41 )))
42
43 Pour cela, chercher l’élément **<Context ...>** dans le fichier, décommenter ou y rajouter l’élément **<Valve ...>** ci-dessous :
44
45 (((
46 {{code language="XML"}}
47 <Valve className="custom.apache.CustomAuthenticator"
48 sharedPasswd="secret"
49 allowAddr=".*localhost.*,.*127.0.0.*"
50 portalUrl="<url>?login=${login}&amp;token=${token}"
51 fallbackAuth="LDAP"
52 expectedResponse="OK" />
53 {{/code}}
54
55 Légende : (% style="color:#c0392b" %)//Valeur invariable//(%%)// / (% style="color:#27ae60" %)Valeur variable selon l’installation//
56 )))
57
58 |(% style="width:238px" %)**Attribut**|(% style="width:1181px" %)**Description**
59 |(% style="color:#c0392b; width:238px" %)className|(% style="width:1181px" %)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; width:238px" %)sharedPasswd|(% style="width:1181px" %)Le mot de passe partagé et vérifié à l’authentification (voir point II.5)
61 |(% style="color:#27ae60; width:238px" %)allowAddr|(% style="width:1181px" %)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; width:238px" %)portalUrl|(% style="width:1181px" %)(((
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; width:238px" %)fallbackAuth|(% style="width:1181px" %)Méthode d'authentification à  utiliser en cas d'échec de l'authentification de la valve.
76 |(% style="color:#27ae60; width:238px" %)expectedResponse|(% style="width:1181px" %)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; width:238px" %)print_debug|(% style="width:1181px" %)Facultatif, vaut false par défaut, sinon, ajouter print_debug="(% style="color:#27ae60" %)true(%%)" pour des traces plus verbeuses.
78
79 == Ajout des contraintes de sécurité ==
80
81 Décommentez ou ajoutez les contraintes de sécurité au fichier **web.xml** situé dans le dossier :
82
83 (% class="box" %)
84 (((
85 <Install DD>/apache-tomcat/conf
86 )))
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
118
119 = Configuration des applications =
120
121 Pour cela, modifiez le fichier **digdash.properties** dans **<install DD> **ou** /etc/digdash** ou dans le dossier que vous auriez configuré dans setenv.bat/setenv.sh.
122
123
124 == Configuration du Serveur (ddenterprise.war) ==
125
126 Dans le fichier **digdash.properties** :
127
128 Dans l'encadré //ddenterpriseapi.war//, rechercher et dé-commenter les lignes suivantes avec les valeurs indiquées :
129
130 {{code language="properties"}}
131 ddenterpriseapi.authMethod=External
132 {{/code}}
133
134
135
136
137 == Configuration du Tableau de bord (digdash_dashboard.war) ==
138
139 Dans le fichier **digdash.properties** :
140
141 Dans l'encadré //digdash_dashbord.war//, rechercher et dé-commenter les lignes suivantes avec les valeurs indiquées :
142
143 {{code language="properties"}}
144 digdash_dashboard.SERVERURL=http://localhost:8080
145 digdash_dashboard.DOMAIN=ddenterpriseapi
146 digdash_dashboard.FORCEDOMAIN=true
147 digdash_dashboard.FORCESERVERURL=true
148 digdash_dashboard.sharedPasswd=<la valeur de l'attribut sharedPasswd dans l'élément Valve>
149 {{/code}}
150
151 (% class="box infomessage" %)
152 (((
153 La valeur d’exemple pour le paramètre //digdash_dashboard.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.9 % 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.
154 )))
155
156
157 == Configuration du Web Studio (studio.war) ==
158
159 Dans le fichier **digdash.properties** :
160
161 Dans l'encadré //studio.war//, rechercher et dé-commenter les lignes suivantes avec les valeurs indiquées :
162
163 {{code language="properties"}}
164 studio.SERVERURL=http://localhost:8080
165 studio.DOMAIN=ddenterpriseapi
166 studio.FORCEDOMAIN=true
167 studio.FORCESERVERURL=true
168 studio.PUBLICSERVERURL=<votre adresse URL publique>
169 studio.sharedPasswd=<la valeur de l'attribut sharedPasswd dans l'élément Valve>
170 {{/code}}
171
172 (% class="box infomessage" %)
173 (((
174 La valeur d’exemple pour le paramètre //studio.SERVERURL// fera quasiment toujours référence à localhost, lorsque le Studio et le serveur sont placés dans le même serveur Tomcat, ce qui représente quasiment 99.9 % 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.
175 )))
176
177
178
179 == Configuration de l'Enterprise Studio ==
180
181 (% class="box warningmessage" %)
182 (((
183 Le Desktop Studio n'est pas compatible avec cette méthode d'authentification.
184 On privilégiera l'utilisation du Studio Web.
185 )))
186 )))