Un nouveau gestionnaire d'utilisateurs a été intégré dans le correctif D JMap 4.0.2 : Active Directory.
Quoiqu'il était déjà possible de se connecter à Active Directory avec le gestionnaire d'utilisateurs LDAP, ce nouveau gestionnaire d'utilisateurs permet en plus d'activer l'authentification unique dans les applications déployées sur le réseau intranet. Par conséquent, l'ouverture d'une application JMap bien configurée ne requiert plus d'authentification, puisque l'authentification se fait par le système en utilisant le compte Windows courant via le mécanisme Kerberos *.
La procédure qui suit a été testée avec succès dans des environnements Windows Server 2003 et 2008 R2.
La configuration de l'authentification unique (SSO) dans JMap demande une série d'étapes essentielles pour son bon fonctionnement :
1- Configuration d'un Service Principal Name et de son authentification Kerberos dans Active Directory.
2- Configuration du gestionnaire d'utilisateurs dans JMapAdmin.
3- Définition des permissions des utilisateurs dans les projets.
4- Déploiement d'une application pour laquelle SSO est activé.
5- Modification de la base de registres des clients potentiels.
6- Ouverture de l'application avec SSO.
Guide étape par étape
1. Configuration d'un Service Principal Name et de son authentification Kerberos dans Active Directory.
Dans Active Directory, créer un nouvel utilisateur et faire en sorte que son mot de passe n'expire jamais. Dans mon cas, j'ai créé l'utilisateur "jmap".
Dans une fenêtre d'invite de commandes, exécuter :
setspn -a service/server.domain.com@DOMAIN.COM server
où "service" est le nom du service à créer, "server.domain.com" est le nom complet du contrôleur de domaine, "DOMAIN.COM" est le nom complet du domaine, et "server" est le nom du contrôleur de domaine.
Dans mon cas, j'ai exécuté :
setspn -a jmap_spn/osiriswinsrvr2@OSIRISLAB.NET osiriswinsrvr2
Registering ServicePrincipalNames for CN=OSIRISWINSRVR2,OU=Domain Controllers,DC=osirislab,DC=net
jmap_spn/osiriswinsrvr2@OSIRISLAB.NET
Updated object
Dans une fenêtre d'invite de commandes, exécuter :
ktpass -princ service/server.domain.com@DOMAIN.COM -ptype KRB5_NT_PRINCIPAL -crypto All -mapuser "server"
où "service/server.domain.com@DOMAIN.COM" est le nom du SPN créé et où "server" est le nom de l'utilisateur créé dans Active Directory.
Dans un environnement Windows Server 2003, il est toutefois nécessaire de spécifier un type d'encryption, puisque la valeur "All" n'est pas supportée. Dans cet environnement, des tests concluants ont été effectués avec le type "DES-CBC-CRC".
Dans mon cas, j'ai exécuté :
ktpass -princ jmap_spn/osiriswinsrvr2@OSIRISLAB.NET -ptype KRB5_NT_PRINCIPAL -crypto All -mapuser jmap
Targeting domain controller: OSIRISWINSRVR2.osirislab.net
Using legacy password setting method
Successfully mapped jmap_spn/osiriswinsrvr2 to jmap.
Référence de Microsoft sur les Service Principal Names :
http://social.technet.microsoft.com/wik ... s/717.aspx
2. Configuration du gestionnaire d'utilisateurs dans JMapAdmin.
Dans JMapAdmin -> Utilisateurs / Groupes -> Gestionnaire, sélectionner "Gestionnaire d'utilisateurs Active Directory".
Configurer :
- Adresse du serveur : L'adresse du serveur (Ex. : 192.168.0.207).
- DN : le Distinguished Name de la configuration à utiliser dans LDAP (Ex. : dc=osirislab,dc=net).
- Domaine : le nom complet du domaine (Ex. : OSIRISLAB.NET).
- utilisateur / SPN : le nom de l'utilisateur créé dans Active Directory pour lequel un SPN a été créé (Ex. : jmap).
- Mot de passe : le mot de passe de cet utilisateur.
et s'assurer que la case à cocher Activer l'authentification unique est bien cochée.
3. Définition des permissions des utilisateurs dans JMapAdmin et dans les projets.
S'assurer qu'au moins un utilisateur pour lequel le mot de passe est connu est configuré comme administrateur de JMapServer.
Donner la permission d'ouverture de projet à l'utilisateur créé dans Active Directory.
4. Déploiement d'une application pour laquelle SSO est activé.
S'assurer que l'application sera utilisé sur le réseau intranet seulement. Une communication avec le contrôleur de domaine doit être possible.
L'authentification unique ne fonctionne que pour les applications de type "applet" et "Java Web Start".
Lors du déploiement, cocher les cases Accès contrôlé et Activer l'authentification unique.
5. Modification de la base de registres des clients potentiels.
Par défaut, Windows ne permet pas aux applications d'obtenir le ticket Kerberos (TGT) enregistré dans le système. Dans le client JMap, il est nécessaire d'obtenir celui-ci pour valider l'authenticité de la session Windows en cours avec le serveur Kerberos (Active Directory), et pour éviter de refaire l'authentification dans le client JMap. Pour contourner cette limitation, il est nécessaire d'ajouter une valeur de type DWORD nommée allowtgtsessionkey dans la base de registres de chacun des postes, et de lui assigner la valeur 1.
Cette valeur doit être ajoutée à l'endroit suivant :
Windows XP
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\
Autres Windows
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Référence de Microsoft à ce sujet :
http://support.microsoft.com/kb/308339
6. Ouverture de l'application avec SSO.
Une fois la configuration terminée, l'ouverture de l'application déployée ne devrait pas afficher d'authentification.
Si une boite d'authentification est affichée :
- Valider que l'ordinateur du client est enregistré sur le domaine configuré dans JMapAdmin et qu'une session Windows sur ce domaine a été initiée.
- Valider que l'utilisateur a les permissions d'ouverture du projet en question.
- Valider la configuration du gestionnaire d'utilisateurs Active Directory dans JMapAdmin.
- Valider qu'il n'y a pas un grand écart entre l'heure affichée sur les postes clients et celle des serveurs.
- Valider la configuration de l'utilisateur et du SPN dans Active Directory.
- Consulter le support technique téléphonique de JMap.
Légende :
* : le transfert du ticket Kerberos (TGT) entre le client JMap et JMapServer se fait se façon sécurisée.
English version
A new User Manager has been integrated into the patch D JMap 4.0.2 : Active Directory.
Although it was possible to connect to Active Directory with LDAP User Manager, this new User Manager allows to active the unique authentication in applications deployed on the intranet. Therefore, the opening of a well configured JMap application do not requires authentication, since authentication is done by the system using the current Windows account via Kerberos* mechanism.
The following procedure has been tested successfully in Windows Server 2003 and 2008 R2 environments.
Configuring single authentication (SSO) in JMap request a series of essential steps for proper operation:
1. Configuring a Service Principal Name and its Kerberos authentication in Active Directory.
2. Configuring the User Manager in JMapAdmin.
3. Definition of user permissions on the projects.
4. Deploying an application for which SSO is enabled.
5. Changing the registry database of potential customers.
6. Opening the application with SSO.
Step-by-step guide