web-dev-qa-db-fra.com

Configuration de Tomcat pour s'authentifier à l'aide de Windows Active Directory

Quelle est la meilleure façon de configurer Tomcat 5.5 ou version ultérieure pour authentifier les utilisateurs à partir de Windows Active Directory?

34
santtu

sur www.jspwiki.org

Voir: ActiveDirectoryIntegration

Essayez ceci dans le fichier server.xml avec vos paramètres ldap:

<Realm className="org.Apache.catalina.realm.JNDIRealm" debug="99"

           connectionURL="ldap://youradsserver:389"
           alternateURL="ldap://youradsserver:389"         
           userRoleName="member"
           userBase="cn=Users,dc=yourdomain"
           userPattern="cn={0},cn=Users,dc=yourdomain"
           roleBase="cn=Users,dc=yourdomain"
           roleName="cn"
           roleSearch="(member={0})"
           roleSubtree="false"
           userSubtree="true" 
   />

et définissez le rôle dans Tomcat-users.xml et web.xml de votre application

éditez le fichier webapp_root/WEB_INF/Web.xml comme suit:

<security-constraint>
   <display-name>your web app display name</display-name>
   <web-resource-collection>
     <web-resource-name>Protected Area</web-resource-name>
     <url-pattern>*.jsp</url-pattern>
     <url-pattern>*.html</url-pattern>
     <url-pattern>*.xml</url-pattern>
   </web-resource-collection>
   <auth-constraint>
     <role-name>yourrolname(ADS Group)</role-name>
   </auth-constraint>
 </security-constraint>
 <login-config>
   <auth-method>FORM</auth-method>
   <form-login-config>
     <form-login-page>/login.jsp</form-login-page>
     <form-error-page>/error.jsp</form-error-page>
   </form-login-config>
 </login-config>
 <security-role>
   <description>your role description</description>
   <role-name>yourrolename(i.e ADS group)</role-name>
 </security-role>
25
Blauohr

La réponse de Blauhr est bonne, mais le CN d'un utilisateur dans AD est basé sur son "Nom d'affichage", pas sur son saMAccountName (avec lequel l'utilisateur est habitué à se connecter). Sur la base de sa solution, il semble que quelqu'un devrait se connecter avec son nom d'affichage, basé sur userPattern.

J'ai personnellement utilisé ce qui suit:

      <Realm className="org.Apache.catalina.realm.JNDIRealm" debug="99"
        connectionURL="ldap://DOMAIN_CONTROLLER:389"
        connectionName="[email protected]"
        connectionPassword="USER_PASSWORD"
        referrals="follow"
        userBase="OU=USER_GROUP,DC=DOMAIN,DC=com"
        userSearch="(sAMAccountName={0})"
        userSubtree="true"
        roleBase="OU=GROUPS_GROUP,DC=DOMAIN,DC=com"
        roleName="name"
        roleSubtree="true"
        roleSearch="(member={0})"
  />

Tout le reste fonctionnerait à peu près de la même manière.

18
Doug

L'authentification basée sur LDAP fonctionne sans aucune étape supplémentaire sur n'importe quel système d'exploitation.

http://spnego.sf.net peut être utilisé pour l'authentification silencieuse des utilisateurs connectés au domaine Windows. Cela nécessite un compte de domaine enregistré dans le domaine pour faire autorité pour le service fourni. Il fonctionne à la fois sur Windows et Linux.

2
Hendrik Brummermann

"Bienvenue dans le projet SPNEGO SourceForge Authentification Windows intégrée en Java

L'objectif de ce projet est de fournir une bibliothèque alternative (fichier .jar) que les serveurs d'applications (comme Tomcat) peuvent utiliser comme moyen d'authentification des clients (comme les navigateurs Web).

Si votre organisation exécute Active Directory (AD) et que toutes vos applications Web passent par les services Internet (IIS) de Microsoft, et IIS a l'authentification Windows intégrée activée et tout le monde dans votre organisation utilise Internet Explorer (IE), alors ce projet peut ne pas être vous intéresse. "

0
Renani