Outils personnels
Vous êtes ici : Accueil GNU / Linux Ubuntu Dapper Drake Développement et serveurs Configuration du SSO NTLM pour Apache 2
Actions sur le document
  • Send this page to somebody
  • Print this page
  • Add Bookmarklet

Configuration du SSO NTLM pour Apache 2

Par Pierre-Yves Landuré - Dernière modification 23/05/2007 10:58

NTLM est une méthode d'identification des utilisateurs peu sécurisée disponible dans les réseaux Windows. Malgré le fait qu'elle met en place des failles de sécurité, elle est très utilisée dans les entreprises, car elle permet aux utilisateurs de ne saisir qu'une seule fois leur mot de passe : à leur arrivée sur l'ordinateur. Cet article vous explique comment mettre en place un Single Sign On NTML pour Apache 2 sur Ubuntu Dapper Drake.

Installation

Nous commençons par installer le module Perl pour Apache 2 :

sudo apt-get install libapache2-mod-perl2 perl build-essential

Nous téléchargeons ensuite les sources de Apache2::AuthenNTLM

wget --output-document=/tmp/Apache2-AuthenNTLM-0.02.tar.gz http://search.cpan.org/CPAN/authors/id/S/SP/SPEEVES/Apache2-AuthenNTLM-0.02.tar.gz

Et nous installons ce module :

tar --directory /tmp -xzf /tmp/Apache2-AuthenNTLM-0.02.tar.gz
cd /tmp/Apache2-AuthenNTLM-0.02
perl Makefile.PL
make
make test
sudo make install

Configuration

Nous pouvons maintenant configurer notre serveur afin qu'il utilise l'identification NTML. Ajoutez les lignes suivantes dans la configuration de votre VirtualHost, dans une section Directory :

    # Enable the Authentication module
PerlAuthenHandler Apache2::AuthenNTLM

# Do NTLM and basic authentication
AuthType ntlm,basic

# The name that should be displayed in the Auth box, if NTLM fails
AuthName OurCompany

# Ask for a valid user.
require valid-user

# domain pdc bdc
# Domain : Your windows domain
# pdc : Primary Domain Controller
# bdc : Backup Domain controller.
#
# Note : Multiple domains can be specified.

PerlAddVar ntdomain "OURDOMAIN domainpdc domainsdc"

# What should be the default domain
PerlSetVar defaultdomain OURDOMAIN

# The user names are in the form "OURDOMAIN\user_name". Let us split it.
PerlSetVar splitdomainprefix 1

# Set the debug variables
PerlSetVar ntlmdebug 0
PerlSetVar ntlmauthoritative off

Vous devez simplement modifier le texte en gras dans ces lignes pour qu'il corresponde à votre configuration. Il ne vous reste plus qu'a recharger la configuration d'Apache 2 :

sudo /etc/init.d/apache2 reload

Maintenant essayez de vous connecter à votre site en utilisant Internet Explorer pour vérifier que tout marche correctement.

Remerciements

éclaircissements ?

Posté par pladislav le 23/10/2007 17:42
Merci pour ce how-to,
Je l'ai appliqué, et cela ne fonctionne pas encore, il faut dire que Active Directory est capricieux,
alors je voudrais juste deux éclaircissements :
Domain : c'est le domaine Windows ? de la forme INTERNEMASOCIETE
pdc : Le nom de la machine que l'on peut avoir par ping ?


alors...

Posté par Pierre-Yves Landuré le 23/10/2007 18:18
Domaine : c'est le domaine windows.
PDC : C'est le serveur de domaine windows (Primary Domain Controleur): ton serveur active directory.
Je n'ai jamais réussi a faire marcher ce howto, mais je pense qu'il est presque fonctionnel. Si ton active directory est propre, je te conseille de regarder du coté de kerberos. Lit aussi la documentation de AuthenNTLM

Active Directory [propre ?]

Posté par pladislav le 26/10/2007 17:27
non, pas vraiment propre à mon gout l'AD de ma société... mais j'essayerai sans doute plus tard... (je veux installer AuthenNTLM juste pour interdire aux session Non AD de fouiner... sans grande prétention de sécurité)... J'ai lue la doc... mais je suis pas à l'aise en Perl (presque aussi peu qu'en Windaube)
le problème pour réussir cette connexion c'est que mon OURDOMAIN domainpdc domainsdc
Donne : interne.masociété.com dsiad1 dsiad2
J'ai mis l'adressage ip de dsiad1 dsiad2 dans /etc/hosts
et dans mon /etc/resolv.conf j'ai interne.masociete.fr
J'ai l'intuition que c'est mon domaine qui pose problème (intuition basée sur les log apache)
comment faire pour pointer comme dans le fichier /etc/hosts le domaine interne.masociete.fr en INTERNE.
Ce qui me permettrai de ne plus avoir de dot (.) dans mon fichier de config....

Merci

ouille

Posté par lwolf le 26/10/2007 17:47
déjà, ton resolv.conf doit resembler à :

search masociete.fr
nameserver adresse.ip.du.dns

sauf évidement si tu as des adresses internes du style : dsiad1.interne.masociete.fr

ensuite, je crois que l'information domainsdc est optionelle. De plus, ce n'est pas le domaine AD que tu doit utiliser dans le fichier de config, mais le domaine SAMBA, c'est à dire, non pas masociete.fr mais MASOCIETE

En espèrant que ca t'aide.


Réalisé avec Plone

Ce site respecte les normes suivantes :

Wikio