9
votes

Spring LDAP - Lier pour une connexion réussie

J'essaie d'authentifier, puis à interroger notre LDAP d'entreprise à l'aide de Spring LDAP et de Security Spring. J'ai réussi à faire du travail d'authentification mais quand j'essaie de courir la recherche, j'ai toujours l'exception suivante

Pour effectuer cette opération, une liaison réussie doit être complétée sur la connexion p> BlockQuote>

Après de nombreuses recherches, j'ai une théorie qu'après que j'aurai authentifier et avant que je puisse interroger, j'ai besoin de se lier à la connexion. Je ne sais tout simplement pas quoi et comment? P>

Juste pour mentionner - je peux parcourir et rechercher notre LDAP à l'aide de JXplorer afin que mes paramètres sont corrects. P>

section de mon SecurityContext. XML P>

org.springframework.ldap.UncategorizedLdapException: 
    Uncategorized exception occured during LDAP processing; nested exception is 
    javax.naming.NamingException: [LDAP: error code 1 - 00000000: LdapErr: 
    DSID-0C090627, comment: In order to perform this operation a successful bind 
    must be completed on the connection., data 0, vece]; remaining name 
    'DC=TD,DC=FOO,DC=COM'


2 commentaires

Je sais que c'est vieux mais @bostone pouvez-vous m'aider à résoudre ce problème. Je reçois exactement la même exception, mais je reçois cette erreur sur la page de connexion où l'utilisateur entre d'abord des informations d'identification. Le LDAP revient avec succès lorsque le nom d'utilisateur et le mot de passe corrects sont entrés, mais je reçois la suite d'erreur: [LDAP: Code d'erreur 1 - 00000000: LDAPERR: DSID-0C090627, Commentaire: Pour effectuer cette opération, une liaison réussie doit être complétée sur la connexion. , données 0, vecefe]; Nom renvanant ''


@ user1647708 Voir ma réponse ci-dessous. Ça a fonctionné pour moi


3 Réponses :


4
votes

On dirait que votre LDAP est configuré pour ne pas autoriser une recherche sans se lier (pas de liaison anonyme). Vous avez également implémenté PasswordComparonaTuthentiCator et non BindAuthenticator à authentifier à LDAP.

Vous pouvez essayer de modifier votre QueryemployesponsbyName () pour lier, puis recherchez quelques exemples dans le doc .


3 commentaires

Ceci lit comme un commentaire, que suggérez-vous? Je sais que cela est possible car je peux utiliser JXplorer (qui est une application Java) pour se connecter et rechercher LDAP, je ne peux tout simplement pas comprendre comment se lier. Je pense que j'ai essayé Binauthenticator dans le passé et fini par la même exception


@ Droidln.net. Édité la réponse avec une suggestion explicite.


C'est très doc que j'avais l'habitude de coder l'authentification. Quand ils parlent se lient / entrentent, ils signifient insérer / supprimer des enregistrements dans cet exemple particulier



3
votes

Je vais accepter @Raghuram répond principalement parce que cela m'a fait penser dans la bonne direction.

Pourquoi mon code a échoué? Il s'est avéré - la façon dont je l'ai câblée J'essayais d'effectuer une recherche anonyme qui est interdite par le système - d'où l'erreur. P>

Comment réveille l'exemple ci-dessus pour travailler? Première chose (et laidy chose à cela), vous devez fournir un nom d'utilisateur et un mot de passe de l'utilisateur qui sera utilisé pour accéder au système. Très contre-intuitif Même lorsque vous vous connectez et authentifiez, même si vous utilisez BindAuthenticator code> Système ne tentera pas de réutiliser vos informations d'identification. Dommage. Donc, vous devez coller 2 paramètres dans CONTEXTSOURCE CODE> Définition Comme: P>

   <bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <constructor-arg value="ldap://foo.com:389/dc=td,dc=foo,dc=com" />
    <!-- TODO - need to hide this or encrypt a password -->
    <property name="userDn" value="CN=admin,OU=Application,DC=TD,DC=FOO,DC=COM" />
    <property name="password" value="blah" />
</bean>


1 commentaires

Avez-vous défini les valeurs du userdn et mot de passe sur les valeurs réelles? Je veux dire si je fais cela, tout le monde le verra en texte clair. Comment puis-je le lire par exemple à partir d'un formulaire de connexion?



0
votes

J'ai la même erreur, je n'ai pas trouvé de solution. Enfin, j'ai changé l'identité du pool d'applications au service réseau et tout a fonctionné comme un charme. (J'ai une authentification Windows et Anonyme activé sur mon site)


0 commentaires