Single sign-on NTLM

Modifié par Aurelie Bertrand le 2024/05/07 16:42


Ce document décrit comment connecter la valve Waffle dans DigDash Enterprise pour activer la Sécurité Intégrée Windows (NTLM...).

Cet add-on est situé dans le dossier <DDE install>/add-ons/singlesignon/Waffle.

La version actuelle de Waffle est 1.8.1.

Ce document décrit chaque dossiers et fichiers à modifier pour activer cette valve.

Configuration de Tomcat

apache-tomcat / lib

Désinstallation de la version précédente de Waffle :

Dans le cas ou vous mettez à jour DigDash, il est possible qu’une ancienne version de Waffle ait été déployée sur votre Tomcat. Vous devez d’abord supprimer cette version de <DDE install>/apache-tomcat/lib avant d’installer la nouvelle.

Veuillez vous référer au guide de déploiement Waffle de votre version précédente de DigDash Enterprise pour connaître la liste des fichiers de la librairie Waffle à supprimer..

Tomcat 9 (à partir de la version 2020R2 patch 20210105)

Ajoutez les librairies JAR Waffle du dossier <DDE install>/add-ons/singlesignon/Waffle/Tomcat9 dans le dossier <DDE install>/apache-tomcat/lib :

  • caffeine-2.8.4.jar
  • guava-19.0.jar
  • jna-5.6.0.jar
  • jna-platform-5.6.0.jar
  • slf4j-api-1.7.21.jar
  • slf4j-log4j12-1.7.21.jar
  • log4j-1.2.15.jar
  • waffle-jna-2.3.0.jar
  • waffle-tomcat9-2.3.0.jar
  • waffle_digdash_extension_tomcat9.jar
  • log4j.properties

Tomcat 8

Ajoutez les librairies JAR Waffle du dossier <DDE install>/add-ons/singlesignon/Waffle/Tomcat8 dans le dossier <DDE install>/apache-tomcat/lib :

  • guava-19.0.jar
  • jna-4.2.1.jar
  • jna-platform-4.2.1.jar
  • slf4j-api-1.7.21.jar
  • slf4j-log4j12-1.7.21.jar
  • log4j-1.2.15.jar
  • waffle-jna-1.8.1.jar
  • waffle-tomcat8-1.8.1.jar
  • waffle_digdash_extension_tomcat8.jar
  • log4j.properties

Tomcat 7

Ajoutez les librairies JAR Waffle du dossier <DDE install>/add-ons/singlesignon/Waffle/Tomcat7 dans le dossier <DDE install>/apache-tomcat/lib :

  • guava-19.0.jar
  • jna-4.2.1.jar
  • jna-platform-4.2.1.jar
  • slf4j-api-1.7.21.jar
  • slf4j-log4j12-1.7.21.jar
  • log4j-1.2.15.jar
  • waffle-jna-1.8.1.jar
  • waffle-tomcat7-1.8.1.jar
  • waffle_digdash_extension_tomcat7.jar
  • log4j.properties

apache-tomcat / conf / context.xml

Décommentez ou ajoutez le XML suivant pour la valve de sécurité :

<Valve className="waffle.apache.SharedNegotiateAuthenticator"
       principalFormat="fqn"
       roleFormat="both"
       sharedPasswd="SecretPwdToChange"
       allowAddr="localhost,127.0.0.*">
</Valve>

Pour décommenter, supprimez les séquences <!-- et --> entourant le code xml.

Il est nécessaire de changer le mot de passe partagé (sharedPasswd). Ce mot de passe devra être identique à celui spécifié lors de la configuration du Tableau de bord et du Web Studio.

Vous pouvez aussi ajouter les adresses des hôtes distants autorisés (allowAddr) pour permettre à d'autres applications (digdash_dashboard) de se connecter au serveur DigDash Enterprise. Dans l'attribut allowAddr, vous devriez ajouter au minimum l'adresse IP de votre serveur.

apache-tomcat / conf / web.xml

Décommentez ou ajoutez le XML suivant pour la contrainte de sécurité :

<security-role>
  <role-name>Tout le monde</role-name><!-- Voir ci-dessous pour plus d'informations  -->
</security-role>
<security-constraint>
  <display-name>Waffle Security Constraint</display-name>
  <web-resource-collection>
     <web-resource-name>Protected Area</web-resource-name>
     <url-pattern>digdash_dashboard*</url-pattern> <!-- Mettre ici l'url de la webapp sur laquelle
      va s'appliquer la waffle ou utiliser /* pour tout limiter  -->

  </web-resource-collection>
  <auth-constraint>
     <role-name>Tout le monde</role-name>
  </auth-constraint>
</security-constraint>
<security-constraint>
  <display-name>vjdbc Security Constraint</display-name>
  <web-resource-collection>
     <web-resource-name>UnProtected Area</web-resource-name>
     <url-pattern>/vjdbc/*</url-pattern>
  </web-resource-collection>
</security-constraint>

Pour trouver le rôle à utiliser pour la waffle (role-name) :

  • Ouvrez les logs de la waffle situé dans le fichier C:/Temp/dd-waffle.log.
  • Trouvez la ligne SharedNegotiateAuthenticator.java:441 puis là où se trouvent les rôles.
  • Sélectionnez le rôle à utiliser parmi ceux disponibles (choix client utilisateur).

Le nom du "security role" (role-name) DOIT correspondre au rôle réel que vous avez dans votre AD (localisé). Exemple : BUILTIN\Utilisateurs

Si vous n’êtes pas sûr du nom du rôle vous pouvez activer les informations de debug pour Waffle en utilisant le fichier log4j.properties fournit avec les jar.

Il suffit de le placer dans le répertoire <DDE install>/apache-tomcat/lib.

Configuration des applications DigDash

Depuis la version 2021 R1, toutes les applications de DigDash Enterprise se configurent via un seul fichier : digdash.properties

L'utilisation de ce fichier est décrite ici : Externalisation des paramètres dans un fichier properties

Dans tout ce qui suit les noms par défaut des applications seront utilisés. Si vous avez renommé certains fichiers war vous devrez modifier le fichier digdash.properties en conséquence.

Serveur (ddenterpriseapi.war)

Cherchez la définition du paramètre authMethod et changez sa valeur en NTUser ou NTUserOrLDAP:

ddenterpriseapi.authMethod=NTUser

Note :

Le mode « NTUserOrLDAP » permet une authentification sur le serveur DigDash via la sécurité Windows Intégrée, avec une option pour s’authentifier via le LDAP DigDash en cas d’échec.

Par exemple, un utilisateur du domaine NT pourra automatiquement passer la valve Waffle avec son authentifiant Windows, mais, s’il n’existe pas dans le LDAP DigDash, il se verra proposer un écran de login pour s’authentifier avec un login DigDash.

Dans ce mode, un paramètre supplémentaire « loginForm » de certaines URLs permet d’afficher de toujours afficher l’écran de login DigDash. Ainsi, l’authentifiant Windows ne sert qu’à passer la valve Waffle. Un cas typique d’usage est de permettre à un utilisateur Windows de se connecter en tant qu’ « admin » dans des pages de configuration DigDash.

Tableau de bord (digdash_dashboard.war)

Cherchez la définition du paramètre digdash_dashboard.sharedPasswd.
Décommentez la ligne en supprimant le caractère # en début de ligne.

Changez la valeur du mot de passe (toutes les applications utilisant ce même paramètre devront utiliser la même valeur).

digdash_dashboard.sharedPasswd=SecretPwdToChange

Le mot de passe spécifié doit être identique à celui que vous avez mis dans le fichier <DDE install>/apache-tomcat/conf/context.xml.

Paramètres recommandés pour le login automatique du tableau de bord :

Il est recommandé de configurer les paramètres suivants lors du déploiement en mode Sécurité Windows Intégrée (Waffle).

Spécifiez (et forcez) le domaine DigDash Enterprise :

digdash_dashboard.DOMAIN=ddenterpriseapi
digdash_dashboard.FORCEDOMAIN=true

Spécifiez (et forcez) l’URL du serveur du domain DigDash Enterprise.
Utilisez l’adresse localhost si l’application web ddenterpriseapi est installée sur le même Tomcat que l’application web digdash_dashboard.
Adaptez le port si nécessaire :

digdash_dashboard.SERVERURL=http://localhost:8080
digdash_dashboard.FORCESERVERURL=true

Spécifier une URL de déconnexion afin que l’utilisateur puisse se déconnecter de DigDash Enterprise et, par exemple, revenir à une page d’Intranet :

digdash_dashboard.urlLogout=/adminconsole

Par défaut la déconnexion du tableau de bord retourne à la page de login de ce dernier. Cette page n’existe pas dans le contexte du SSO.
Il est important de spécifier une URL de retour en cas de déconnexion.

Voir la documentation Réglages avancés des paramètres système pour plus de détails sur ces paramètres.

Studio (studio.war)

Cherchez la définition du paramètre authMethod.
Décommentez la ligne en supprimant le caractère # en début de ligne.

studio.authMethod=NTUserOrLDAP

Cherchez la définition du paramètre studio.sharedPasswd.
Décommentez la ligne en supprimant le caractère # en début de ligne.
Changez la valeur du mot de passe (toutes les applications utilisant ce même paramètre devront utiliser la même valeur).

studio.sharedPasswd=SecretPwdToChange

Le mot de passe spécifié doit être identique à celui que vous avez mis dans le fichier <DDE install>/apache-tomcat/conf/context.xml.

Paramètres recommandés pour le login automatique du Studio :

Il est recommandé de configurer les paramètres suivants lors du déploiement en mode Sécurité Windows Intégrée (Waffle).

Spécifiez (et forcez) le domaine DigDash Enterprise :

studio.FORCEDOMAIN=true
studio.DOMAIN=ddenterpriseapi

Spécifiez (et forcez) l’URL du serveur du domain DigDash Enterprise.
Utilisez l’adresse localhost si l’application web ddenterpriseapi est installée sur le même Tomcat que l’application web studio.
Adaptez le port si nécessaire :

studio.FORCESERVERURL=true
studio.SERVERURL=http://localhost:8080

Spécifiez une URL de déconnexion afin que l’utilisateur puisse se déconnecter de DigDash Enterprise et, par exemple, revenir à une page d’Intranet :

studio.urlLogout=/adminconsole

Par défaut la déconnexion du Web Studio retourne à la page de login de ce dernier. Cette page n’existe pas dans le contexte du SSO.
Il est important de spécifier une URL de retour en cas de déconnexion.