2008-11-06 5 views

Répondre

22

de www.jspwiki.org

Voir: ActiveDirectoryIntegration

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

<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éfinir le rôle dans le tomcat -users.xml et le fichier web.xml de votre application

modifiez 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> 
+1

Le lien est rompu – Antonio

+0

Nouveau Lien vers www.jspwiki.org (Merci Antonio) – Blauohr

+0

Comme il n'y a pas de nom d'utilisateur ou mot de passe de connexion spécifié dans le context.xml, cela ne semble fonctionner si les recherches anonymes sont autorisés à obtenir la liste des rôles. –

2

L'authentification LDAP fonctionne sans aucune étape supplémentaire sur aucun 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. Cela fonctionne à la fois sur Windows et Linux.

0

« Bienvenue au projet d'authentification intégrée de Windows en Java

SPNEGO SourceForge Le but de ce projet est de fournir une autre bibliothèque (fichier .jar) que les serveurs d'applications (comme Tomcat) peut utiliser comme moyen de 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, IIS a activé l'authentification Windows intégrée, et tout le monde dans votre l'organisation utilise Internet Explorer (IE), alors ce projet ne peut pas être de tout intérêt pour vous. "

+1

Le lien vers la page du projet ci-dessus est [SPENEGO] (http://spnego.sourceforge.net/) –

13

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

J'ai personnellement utilisé les éléments suivants:

 <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 serait à peu près le même travail.

+0

Très bien, fonctionne avec Tomcat 7! Merci –

Questions connexes