Code source wiki de Authentification SAMLv2
Modifié par jhurst le 2024/04/02 14:26
Afficher les derniers auteurs
author | version | line-number | content |
---|---|---|---|
1 | Mise en place d’une valve d’authentification SAMLv2 pour DigDash | ||
2 | |||
3 | {{ddtoc/}} | ||
4 | |||
5 | ---- | ||
6 | |||
7 | = Prérequis = | ||
8 | |||
9 | * Les acronymes utilisés par la suite sont référencés dans le lexique, à la fin de ce document. | ||
10 | * Avoir configuré le serveur avec un connecteur SSL/TLS (HTTPS) (cette méthode d'authentification requiert des échanges sécurisés). | ||
11 | * Disposer du dossier **<DD Install>/add-ons/valve_saml2** contenant tous les fichiers nécessaires à la mise en place de la valve d’authentification SAMLv2 dans le serveur Tomcat. Le placement de ces fichiers est décrit dans ce document. | ||
12 | ** Le dossier apache-tomcat : transposé à **<DD Install>/apache-tomcat** | ||
13 | *** Le sous-dossier lib : librairies et fichier de configuration des logs à placer dans **<DD Install>/apache-tomcat/lib** | ||
14 | *** Le sous-dossier webapps : acs dans un .war à placer dans **<DD Install>/apache-tomcat/webapps** | ||
15 | ** Le dossier resources_samples : exemples de fichiers XML des métadonnées de l’IdP et de fichier .properties des paramètres de sécurité à éditer et placer à l’emplacement voulu. | ||
16 | ** Le dossier sp_metadata : Le fichier XML de métadonnées du SP DigDash. | ||
17 | |||
18 | * Pour le moment, seule la déconnexion initiée par le SP (SP-Initiated SLO) est prise en charge. | ||
19 | |||
20 | * Les manipulations suivantes sont à réaliser le serveur DigDash **stoppé**. | ||
21 | |||
22 | * L’utilisateur à authentifier doit exister à la fois chez l’IdP et dans le LDAP. | ||
23 | |||
24 | (% class="box warningmessage" %) | ||
25 | ((( | ||
26 | Il est conseillé d’avoir au moins un utilisateur ayant les droits d’ajout d’utilisateurs dans le LDAP avant d’installer la valve SAMLv2, ceci afin d’éviter les échecs d’authentification SSO dès les premières connexions pour cause d’absence de tel utilisateur dans le LDAP. | ||
27 | ))) | ||
28 | |||
29 | **Échanges mutuels des métadonnées du SP et de l’IdP** | ||
30 | |||
31 | Les deux parties (Identity Provider et Service Provider) devront au préalable s’échanger mutuellement leurs métadonnées respectives sous la forme de fichiers XML . Ces métadonnées permettront notamment de connaître leur point d’entrée respectif et les détails des échanges sécurisés. | ||
32 | |||
33 | = Configuration du serveur DigDash = | ||
34 | |||
35 | == Copie des librairies == | ||
36 | |||
37 | Ajoutez les librairies ainsi que le fichier de configuration des logs du dossier **<DD Install>/apache-tomcat/lib** dans le dossier | ||
38 | |||
39 | **<DD Install>/apache/lib**: | ||
40 | |||
41 | |saml2-valve.jar|slf4j-api-1.7.12.jar | ||
42 | |commons-codec-1.10.jar|log4j-1.2.15.jar | ||
43 | |commons-lang3-3.4.jar|slf4j-log4j12-1.7.7.jar | ||
44 | |commons-logging-1.2.jar|xmlsec-2.0.7.jar | ||
45 | |joda-time-2.9.4.jar|log4j.properties | ||
46 | |||
47 | //__Librairies du dossier apache-tomcat/lib__// | ||
48 | |||
49 | == Ajout de la valve d’authentification SAMLv2 == | ||
50 | |||
51 | Ajoutez la valve d’authentification SAMLv2 dans le fichier **server.xml** situé dans le dossier | ||
52 | |||
53 | **<DD Install>/apache-tomcat/conf** | ||
54 | |||
55 | Pour cela, ajoutez l’élément Valve suivant dans l’élément **Host**. | ||
56 | |||
57 | |||
58 | ((( | ||
59 | {{code language="XML"}} | ||
60 | <Server ...> | ||
61 | ... | ||
62 | <Host ...> | ||
63 | <Valve className="com.onelogin.saml2.SAML2SSOValve" | ||
64 | allowAddr="localhost,127.0.0.*,0:0:0:0:0:0:0:1" | ||
65 | idPMetadataPath="C:\idp_md.xml" | ||
66 | securitySettingsPath="C:\saml2.sec.properties" | ||
67 | uid="email" | ||
68 | sharedPasswd="sharedPassword" | ||
69 | ></Valve> | ||
70 | ... | ||
71 | </Host> | ||
72 | ... | ||
73 | </Server> | ||
74 | {{/code}} | ||
75 | |||
76 | //__Extrait du fichier server.xml__// | ||
77 | |||
78 | Valeur invariable (className) | ||
79 | |||
80 | Valeur variable selon l’installation (allowAddr, idPMetadataPath, ...) | ||
81 | ))) | ||
82 | |||
83 | |Attribut|Description | ||
84 | |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. | ||
85 | |allowAddr|Adresse IP du serveur. | ||
86 | |idPMetadataPath|Le chemin absolu du fichier XML avec les métadonnées de l’IdP | ||
87 | |securitySettingsPath|Le chemin absolu du fichier .properties avec les paramètres de sécurité | ||
88 | |uid|Un des attributs renvoyés par l’IdP dans la réponse SAMLv2 pour identifier l’utilisateur qui s’authentifie. Si cet attribut n’est pas mentionné, le nameId de la réponse SAMLv2 est utilisé pour identifier l’utilisateur. | ||
89 | |sharedPasswd|Le mot de passe partagé et vérifié à l’authentification (voir point II.5) | ||
90 | |//allowedCtxPath//|//Facultatif//, vaut "/adminconsole" par défaut ; il s’agit du chemin du contexte dont les ressources sont autorisées à passer la valve, utile lorsque l’adminconsole est nommé autrement. Exemple : allowedCtxPath="/customadminconsole" | ||
91 | |//ldapForPaths//|//Facultatif//, il s’agit des expressions régulières des URLs dont les ressources sont autorisées à passer la valve, passant ainsi en mode d’authentification LDAP. Exemple : "http:~/~/localhost:8080/.*" | ||
92 | |//cookieTimeOut//|((( | ||
93 | //Facultatif//, il s’agit du temps (en secondes) au bout duquel le cookie SSO expirera. Vaut 1800 secondes (30 minutes) par défaut . | ||
94 | Sinon, le cookie expirera après le nombre de secondes mentionné. | ||
95 | |||
96 | Exemple : cookieTimeOut="3600" (1 heure) | ||
97 | ))) | ||
98 | |print_//debug//|//Facultatif//, vaut false par défaut, sinon, ajouter print_debug="true" pour des traces plus verbeuses. | ||
99 | |||
100 | //__Tableau décrivant les attributs de l’élément Valve__// | ||
101 | |||
102 | == Ajout du .war correspondant à l’ACS du Service Provider == | ||
103 | |||
104 | Ajoutez l’archive **ddacs.war** du dossier **apache-tomcat/webapps** dans le dossier | ||
105 | |||
106 | **<DD Install>/apache-tomcat/webapps**. | ||
107 | |||
108 | (% class="box infomessage" %) | ||
109 | ((( | ||
110 | Il s’agit du point d’entrée ACS du SP accédé par l’IdP. | ||
111 | ))) | ||
112 | |||
113 | == Ajout des contraintes de sécurité == | ||
114 | |||
115 | Ajoutez les contraintes de sécurité au fichier **web.xml** situé dans le dossier | ||
116 | |||
117 | **<DD Install>/apache-tomcat/conf**. | ||
118 | |||
119 | {{code language="XML"}} | ||
120 | <web-app ...> | ||
121 | ... | ||
122 | <security-role> | ||
123 | <role-name>CUSTOM</role-name> | ||
124 | </security-role> | ||
125 | |||
126 | <security-constraint> | ||
127 | <display-name>CUSTOM Security Constraint</display-name> | ||
128 | |||
129 | <web-resource-collection> | ||
130 | <web-resource-name>Protected Area</web-resource-name> | ||
131 | <url-pattern>/*</url-pattern> | ||
132 | </web-resource-collection> | ||
133 | |||
134 | <auth-constraint> | ||
135 | <role-name>CUSTOM</role-name> | ||
136 | </auth-constraint> | ||
137 | </security-constraint> | ||
138 | |||
139 | <security-constraint> | ||
140 | <web-resource-collection> | ||
141 | <web-resource-name>Non-Protected Area</web-resource-name> | ||
142 | <url-pattern>/vjdbc</url-pattern> | ||
143 | </web-resource-collection> | ||
144 | </security-constraint> | ||
145 | ... | ||
146 | </web-app> | ||
147 | {{/code}} | ||
148 | |||
149 | //__Extrait du fichier web.xml__// | ||
150 | |||
151 | == URL du serveur et domaine pour le Dashboard == | ||
152 | |||
153 | (% class="box warningmessage" %) | ||
154 | ((( | ||
155 | **Il est fortement conseillé** de préciser sur quel serveur/domaine le Dashboard va s’appuyer. | ||
156 | ))) | ||
157 | |||
158 | Pour cela, modifiez dans le fichier **web.xml** dans | ||
159 | |||
160 | **<DD Install>/apache-tomcat/webapps/digdash_dashboard/WEB-INF.** | ||
161 | |||
162 | Pour forcer le domaine, changez la valeur du paramètre **FORCEDOMAIN** à //true//. | ||
163 | Mentionnez le nom du domaine en changeant le paramètre **DOMAIN**. | ||
164 | |||
165 | Pour forcer l’adresse du serveur, changer la valeur du paramètre** FORCESERVERURL **à //true//.** **Mentionnez l’adresse du serveur en changeant le paramètre **SERVERURL**. | ||
166 | |||
167 | {{code language="XML"}} | ||
168 | <web-app ...> | ||
169 | ... | ||
170 | <servlet> | ||
171 | <servlet-name>dashServlet</servlet-name> | ||
172 | <servlet-class>com.digdash.server.DigdashServiceImpl</servlet-class> | ||
173 | ... | ||
174 | <init-param> | ||
175 | <param-name>DOMAIN</param-name> | ||
176 | <param-value>ddenterpriseapi</param-value> | ||
177 | </init-param> | ||
178 | |||
179 | <init-param> | ||
180 | <param-name>FORCEDOMAIN</param-name> | ||
181 | <param-value>true</param-value> | ||
182 | </init-param> | ||
183 | |||
184 | <init-param> | ||
185 | <param-name>SERVERURL</param-name> | ||
186 | <param-value>http://localhost:8080</param-value> | ||
187 | </init-param> | ||
188 | |||
189 | <init-param> | ||
190 | <param-name>FORCESERVERURL</param-name> | ||
191 | <param-value>true</param-value> | ||
192 | </init-param> | ||
193 | ... | ||
194 | </servlet> | ||
195 | ... | ||
196 | </web-app> | ||
197 | {{/code}} | ||
198 | |||
199 | ((( | ||
200 | __//Extrait du fichier web.xml//__ | ||
201 | ))) | ||
202 | |||
203 | ((( | ||
204 | (% class="box infomessage" %) | ||
205 | ((( | ||
206 | Valeur variable selon l’installation | ||
207 | ))) | ||
208 | ))) | ||
209 | |||
210 | 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. | ||
211 | |||
212 | Ce paramètre est éditable via le fichier web.xml comme indiqué ci-dessus. Ce fichier est propre à chaque installation. Il vous est possible de renseigner ce paramètre de manière plus globale dans le fichier. | ||
213 | |||
214 | |||
215 | **<utilisateur>/Application Data/Enterprise Server/dashboard_system.xml** | ||
216 | |||
217 | (% class="box infomessage" %) | ||
218 | ((( | ||
219 | Pour en savoir plus, vous pouvez vous référer à la documentation DigDash « [[Guide avancé système>>doc:Digdash.deployment.configuration.advanced_system_guide.WebHome]] » | ||
220 | ))) | ||
221 | |||
222 | == Changement de la valeur du paramètre sharedPasswd == | ||
223 | |||
224 | Changez la valeur du paramètre //sharedPasswd// (valeur secret ci-dessous à changer) dans le fichier **web.xml** de Dashboard dans le dossier | ||
225 | |||
226 | **<DD Install>/apache-tomcat/webapps/digdash_dashboard/WEB-INF**. | ||
227 | |||
228 | La valeur doit correspondre à celle mentionnée dans l’attribut //sharedPasswd// dans la valve du fichier | ||
229 | |||
230 | **<DD Install>/apache-tomcat/conf/server.xml** (voir partie II.2). | ||
231 | |||
232 | {{code language="XML"}} | ||
233 | <web-app ...> | ||
234 | ... | ||
235 | <servlet> | ||
236 | <servlet-name>dashServlet</servlet-name> | ||
237 | <servlet-class>com.digdash.server.DigdashServiceImpl</servlet-class> | ||
238 | ... | ||
239 | |||
240 | <init-param> | ||
241 | <param-name>sharedPasswd</param-name> | ||
242 | <param-value>secret</param-value> | ||
243 | </init-param> | ||
244 | ... | ||
245 | </servlet> | ||
246 | ... | ||
247 | </web-app> | ||
248 | {{/code}} | ||
249 | |||
250 | ((( | ||
251 | //__Extrait du fichier server.xml__// | ||
252 | ))) | ||
253 | |||
254 | == Modification de la méthode d'authentification == | ||
255 | |||
256 | Modifiez la méthode d'authentification (LDAP est la méthode par défaut) dans le fichier **web.xml** situé dans le dossier : | ||
257 | |||
258 | **<DD Install>/apache-tomcat/webapps/ddenterpriseapi/WEB-INF**. | ||
259 | |||
260 | ((( | ||
261 | {{code language="XML"}} | ||
262 | <web-app ...> | ||
263 | ... | ||
264 | <servlet> | ||
265 | ... | ||
266 | </servlet> | ||
267 | ... | ||
268 | <servlet> | ||
269 | <description></description> | ||
270 | <display-name>DDEnterpriseAuthServlet</display-name> | ||
271 | <servlet-name>DDEnterpriseAuthServlet</servlet-name> | ||
272 | <servlet-class>com.digdash.server.DDEnterpriseAuthServlet</servlet-class> | ||
273 | |||
274 | <init-param> | ||
275 | <param-name>authMethod</param-name> | ||
276 | <param-value>External</param-value> | ||
277 | </init-param> | ||
278 | ... | ||
279 | </servlet> | ||
280 | ... | ||
281 | </web-app> | ||
282 | {{/code}} | ||
283 | |||
284 | //__Extrait du fichier web.xml__// | ||
285 | |||
286 | (% class="box infomessage" %) | ||
287 | ((( | ||
288 | "External" signifie que la sécurité est gérée par la valve configurée ci-dessus. | ||
289 | ))) | ||
290 | ))) | ||
291 | |||
292 | = Configuration de l’Identity Provider = | ||
293 | |||
294 | L’IdP devra enregistrer DigDash en tant que SP dans sa liste de SP pour que DigDash puisse tirer profit de l’Authentification unique. | ||
295 | |||
296 | L’IdP devra notamment se servir du fichier métadonnées fournit par le SP pour sa configuration. Celui-ci mentionne entre autres choses les points d’entrées du SP DigDash (URL ACS). | ||
297 | |||
298 | == Métadonnées du Service Provider == | ||
299 | |||
300 | Les métadonnées du SP seront soit fournis directement et physiquement (par email, par clé USB, etc.) soit par génération via le SP. En effet, elles seront accessibles via l’URL suivante une fois la valve mise en place : | ||
301 | |||
302 | (% class="box infomessage" %) | ||
303 | ((( | ||
304 | https:~/~/<adresse du serveur DigDash>:<port>/?spmetadata=display | ||
305 | ))) | ||
306 | |||
307 | = Configuration du Service Provider = | ||
308 | |||
309 | Le SP devra charger dans son application les métadonnées de l’IdP. | ||
310 | |||
311 | == Métadonnées de l’Identity Provider == | ||
312 | |||
313 | Placez le fichier au format XML fourni par l’IdP correspondant aux métadonnées de l’IdP dans le répertoire de votre choix. | ||
314 | |||
315 | (% class="box infomessage" %) | ||
316 | ((( | ||
317 | **NB** : Le chemin absolu de ce fichier sera connu est sera renseigné comme valeur de l’attribut idPMetadataPath de la valve SAMLv2 (voir partie II.2). | ||
318 | ))) | ||
319 | |||
320 | = Configuration des paramètres de sécurité = | ||
321 | |||
322 | Placez le fichier au format .properties correspondant aux paramètres de sécurité dans le répertoire de votre choix. | ||
323 | |||
324 | (% class="box infomessage" %) | ||
325 | ((( | ||
326 | **NB** : Le chemin absolu de ce fichier sera connu est sera renseigné comme valeur de l’attribut securitySettingsPath de la valve SAMLv2 (voir partie II.2). | ||
327 | ))) | ||
328 | |||
329 | Le tableau suivant présente les différentes propriétés possibles pour paramétrer la sécurité : | ||
330 | |||
331 | |Propriétés|Description | ||
332 | |((( | ||
333 | onelogin.saml2.sp.entityid | ||
334 | |||
335 | onelogin.saml2.sp.assertion_consumer_service.url | ||
336 | |||
337 | onelogin.saml2.sp.assertion_consumer_service.binding | ||
338 | |||
339 | onelogin.saml2.sp.single_logout_service.url | ||
340 | |||
341 | onelogin.saml2.sp.single_logout_service.binding | ||
342 | |||
343 | onelogin.saml2.sp.nameidformat | ||
344 | |||
345 | onelogin.saml2.sp.x509cert | ||
346 | |||
347 | onelogin.saml2.sp.privatekey | ||
348 | )))|((( | ||
349 | Propriétés relatives au Service Provider. | ||
350 | |||
351 | Les valeurs par défaut de ces propriétés sont automatiquement chargées côté SP. | ||
352 | |||
353 | Si besoin, il est possible de surcharger ces propriétés en les mentionnant dans le fichier properties. | ||
354 | |||
355 | La description plus détaillée de ces paramètres ainsi que les valeurs utilisées sont directement consultables dans le fichier de sécurité resources_samples\saml2.sec.properties fourni. | ||
356 | ))) | ||
357 | |(% rowspan="2" %)onelogin.saml2.strict|Indique si le SP rejette tous les messages non cryptés ou non signés si le SP s’attend à ce qu’ils le soient. | ||
358 | |((( | ||
359 | true | ||
360 | |||
361 | false | ||
362 | ))) | ||
363 | |(% rowspan="2" %)onelogin.saml2.security.nameid_encrypted|Indique si le nameID du <samlp:logoutRequest> envoyé par le SP doit être crypté. | ||
364 | |((( | ||
365 | true | ||
366 | |||
367 | false | ||
368 | ))) | ||
369 | |(% rowspan="2" %)onelogin.saml2.security.authnrequest_signed|Indique si les messages <samlp:AuthnRequest> envoyés par ce SP sont signés. Les métadonnées indiquent cette information. | ||
370 | |((( | ||
371 | true | ||
372 | |||
373 | false | ||
374 | ))) | ||
375 | |(% rowspan="2" %)onelogin.saml2.security.logoutrequest_signed|Indique si les messages <samlp:logoutRequest> envoyés par ce SP sont signés. | ||
376 | |((( | ||
377 | true | ||
378 | |||
379 | false | ||
380 | ))) | ||
381 | |(% rowspan="2" %)onelogin.saml2.security.logoutresponse_signed|Indique si les messages <samlp:logoutResponse> envoyés par ce SP sont signés. | ||
382 | |((( | ||
383 | true | ||
384 | |||
385 | false | ||
386 | ))) | ||
387 | |(% rowspan="2" %)onelogin.saml2.security.want_messages_signed|Indique si les réponses doivent être signées | ||
388 | |((( | ||
389 | true Le message est requis d’être signé | ||
390 | |||
391 | false Le message n’est pas requis d’être signé | ||
392 | ))) | ||
393 | |(% rowspan="2" %)onelogin.saml2.security.want_assertions_signed|Indique l’obligation des messages <samlp:Response>, <samlp:LogoutRequest> et <samlp:LogoutResponse> reçus par ce SP d’être signés. | ||
394 | |((( | ||
395 | true | ||
396 | |||
397 | false | ||
398 | ))) | ||
399 | |(% rowspan="2" %)onelogin.saml2.security.sign_metadata|Indique l’obligation des métadonnées de ce SP d’être signées. | ||
400 | |((( | ||
401 | true requiert la signature des métadonnées | ||
402 | |||
403 | false par défaut | ||
404 | ))) | ||
405 | |(% rowspan="2" %)onelogin.saml2.security.want_assertions_encrypted|Indique l’obligation des assertions reçues par ce SP d’être cryptés. | ||
406 | |((( | ||
407 | true | ||
408 | |||
409 | false | ||
410 | ))) | ||
411 | |(% rowspan="2" %)onelogin.saml2.security.want_nameid_encrypted|Indique l’obligation du nameID reçu par le SP d’être crypté. | ||
412 | |((( | ||
413 | true | ||
414 | |||
415 | false | ||
416 | ))) | ||
417 | |(% rowspan="2" %)onelogin.saml2.security.requested_authncontext|Contexte d’authentification | ||
418 | |((( | ||
419 | Vide si vous ne voulez qu’aucun contexte ne soit envoyé dans la requête AuthnRequest | ||
420 | |||
421 | Plusieurs valeurs séparées par des virgules sinon. | ||
422 | ))) | ||
423 | |(% rowspan="2" %)onelogin.saml2.security.onelogin.saml2.security.requested_authncontextcomparison|Active la comparaison du contexte d’authentification | ||
424 | |'exact' par défaut | ||
425 | |(% rowspan="2" %)onelogin.saml2.security.want_xml_validation|Indique si le SP valide toutes les réponses XML reçues (Si true, la validation n’est effective que si cette propriété et la propriété ‘onelogin.saml2.strict’ valent aussi true). | ||
426 | |((( | ||
427 | true | ||
428 | |||
429 | false | ||
430 | ))) | ||
431 | |(% rowspan="2" %)onelogin.saml2.security.signature_algorithm|Algorithme de hachage utilisé pour la signature. | ||
432 | |((( | ||
433 | http:~/~/www.w3.org/2000/09/xmldsig#rsa-sha1 | ||
434 | |||
435 | http:~/~/www.w3.org/2000/09/xmldsig#dsa-sha1 | ||
436 | |||
437 | http:~/~/www.w3.org/2001/04/xmldsig-more#rsa-sha256 | ||
438 | |||
439 | http:~/~/www.w3.org/2001/04/xmldsig-more#rsa-sha384 | ||
440 | |||
441 | http:~/~/www.w3.org/2001/04/xmldsig-more#rsa-sha512 | ||
442 | ))) | ||
443 | |||
444 | //__Tableau décrivant les paramètres de sécurité possible__// | ||
445 | |||
446 | (% class="box errormessage" %) | ||
447 | ((( | ||
448 | Les champs grisés sont des champs proposés par la librairie onelogin mais qui ne sont pas encore mis en œuvre pour la valve SAMLv2 de DigDash donc non pris en compte. | ||
449 | ))) | ||
450 | |||
451 | = Configuration de l’environnement Java = | ||
452 | |||
453 | L'extension JCE (Java Cryptography Extension) est requise. Vous pouvez télécharger la version jce-6, jce-7 ou jce-8, décompressez là dans le dossier suivant | ||
454 | |||
455 | **${java.home}/jre/lib/security/** | ||
456 | |||
457 | |**Versions**|**Liens de téléchargement** | ||
458 | |jce-6|__[[http:~~/~~/www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html>>url:http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html]]__ | ||
459 | |jce-7|__[[http:~~/~~/www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html>>url:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html]]__ | ||
460 | |jce-8|__[[http:~~/~~/www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html>>url:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html]]__ | ||
461 | |||
462 | == Niveau de Logs == | ||
463 | |||
464 | Vous pouvez personnaliser le niveau de log pour la valve d’authentification. | ||
465 | |||
466 | Par défaut, seuls les erreurs sont loguées. Si toutefois vous voulez avoir plus de détails sur le déroulé des actions et échanges entre les différentes entités, vous pouvez affecter la valeur ‘DEBUG’ au lieu de ‘ERROR’ dans le fichier log4j.properties qui a été importé dans le dossier lib de Tomcat. | ||
467 | |||
468 | log4j.logger.com.onelogin.saml2=**ERROR**, stdout | ||
469 | |||
470 | log4j.logger.com.onelogin.saml2=**DEBUG**, stdout | ||
471 | |||
472 | = Authentification SAML2 côté Enterprise Studio = | ||
473 | |||
474 | Pour vous authentifier avec SAMLv2 côté Enterprise Studio, veuillez vous assurer d’avoir réalisé les actions suivantes | ||
475 | |||
476 | == Définitions du serveur et du domaine dans le fichier .jnlp == | ||
477 | |||
478 | Vous pouvez, à l’instar du Dashboard, définir le serveur et le domaine sur lequel DigDash va s’appuyer. | ||
479 | |||
480 | Pour ce faire, modifier la fin du fichier digdash.jnlp dans le dossier d’installation **<DD Install>/apache-tomcat/webapps/adminconsole** | ||
481 | |||
482 | {{code language="JNLP"}} | ||
483 | <jnlp ...> | ||
484 | |||
485 | ... | ||
486 | |||
487 | <application-desc main-class="commandline.CommandLineMain"> | ||
488 | |||
489 | <argument>https://localhost:8443</argument> (1) | ||
490 | |||
491 | <argument>ddenterpriseapi</argument> (2) | ||
492 | |||
493 | <argument><%=lang%></argument> (3) | ||
494 | |||
495 | <argument><%=dashboard%></argument> (4) | ||
496 | |||
497 | <argument>-AuthMode=External</argument> (5) | ||
498 | |||
499 | <argument>-SSLNoPathCheck</argument> (A) | ||
500 | |||
501 | ... | ||
502 | |||
503 | </application-desc> | ||
504 | |||
505 | </jnlp> | ||
506 | {{/code}} | ||
507 | |||
508 | ((( | ||
509 | //__Extrait du fichier digdash.jnlp__// | ||
510 | ))) | ||
511 | |||
512 | __**Attention**__** **: les arguments notées (1), (2), (3), (4), (5) ne doivent pas changer d’ordre. | ||
513 | |||
514 | Argument (1) : l’adresse du serveur DigDash ; variable selon votre installation | ||
515 | |||
516 | Argument (2) : le nom du domaine DigDash ; variable selon votre installation | ||
517 | |||
518 | Argument (5) : La méthode d’authentification ; External, obligatoirement | ||
519 | |||
520 | Argument (A) : argument facultatif, parfois nécessaire dans les cas de connexions SSL, HTTPS. | ||
521 | |||
522 | == Connexion au DigDash Enterprise Studio == | ||
523 | |||
524 | Téléchargez et exécutez le .jnlp en vous rendant sur la page d’accueil dans la partie Enterprise Studio. | ||
525 | |||
526 | [[image:config_auth_saml2_fr_test_html_27c2ab581e0d9d7e.png||queryString="width=554&height=274" height="274" width="554"]] | ||
527 | |||
528 | Une fenêtre d’authentification doit apparaître avec la mire d’authentification de l’IdP. | ||
529 | |||
530 | Dans ce document, Salesforce est l’IdP que nous avons choisi pour illustrer nos exemples. | ||
531 | |||
532 | [[image:config_auth_saml2_fr_test_html_dff5c9e389ba1c1d.png||queryString="width=666&height=409" height="409" width="666"]] | ||
533 | |||
534 | //__Capture : mire avec formulaire d’authentification de l’IdP Salesforce__// | ||
535 | |||
536 | L’utilisateur devra rentrer ses données de connexion et s’il a bien été authentifié chez l’IdP et qu’il correspond bien à un utilisateur existant dans le LDAP DigDash, l’authentification aura réussi et la fenêtre attestera du succès de l’authentification. | ||
537 | |||
538 | [[image:config_auth_saml2_fr_test_html_6230a5f637fd4c54.png||queryString="width=612&height=376" height="376" width="612"]] | ||
539 | |||
540 | //__Capture : fenêtre d’une authentification réussie__// | ||
541 | |||
542 | La fenêtre se fermera automatiquement, puis le Studio débutera son chargement pour se lancer. | ||
543 | |||
544 | = Lexique = | ||
545 | |||
546 | Nous appellerons dans ce document : | ||
547 | |||
548 | **SSO :** Single Sign On ou Authentification unique ; SAMLv2 est une méthode SSO | ||
549 | |||
550 | **SLO :** Single LogOut ou Déconnexion unique | ||
551 | |||
552 | **IdP :** l’Identity Provider ou le Fournisseur d’identités | ||
553 | |||
554 | **SP :** le Service Provider ou le Fournisseur de services (DigDash) | ||
555 | |||
556 | **ACS :** Assertion Consumer Service ou Service consommateur d’assertion | ||
557 | |||
558 | = Références = | ||
559 | |||
560 | [[https:~~/~~/www.oasis-open.org>>https://www.oasis-open.org]] | ||
561 | |||
562 | //DigDash utilise la librairie OpenSource onelogin de OneLogin Inc pour supporter la méhode d’authentification SAMLv2.// | ||
563 | |||
564 | [[https:~~/~~/www.onelogin.com/>>https://www.onelogin.com/]] | ||
565 | |||
566 | [[https:~~/~~/github.com/onelogin/java-saml>>https://github.com/onelogin/java-saml]] |