Intro to Spring Security LDAP

Introduction à Spring Security LDAP

1. Vue d'ensemble

Dans ce didacticiel rapide, nous allons apprendre à configurer Spring Security LDAP.

Avant de commencer, une note sur ce qu'est LDAP - il signifie Lightweight Directory Access Protocol et c'est un protocole ouvert et indépendant du fournisseur pour accéder aux services d'annuaire sur un réseau.

Lectures complémentaires:

Spring LDAP Présentation

Apprenez à utiliser les API Spring LDAP pour authentifier et rechercher des utilisateurs, ainsi que pour créer et modifier des utilisateurs sur le serveur d'annuaire.

Read more →

Guide de printemps des données LDAP

Apprenez à utiliser les données de printemps avec LDAP.

Read more →

Données Spring avec Spring Security

Découvrez comment intégrer Spring Data à Spring Security.

Read more →

2. Dépendance Maven

Voyons d’abord les dépendances maven dont nous avons besoin:


    org.springframework.security
    spring-security-ldap



    org.apache.directory.server
    apacheds-server-jndi
    1.5.5

Remarque: Nous avons utiliséApacheDS comme serveur LDAP qui est un serveur d'annuaire extensible et intégrable.

3. Configuration Java

Ensuite, parlons de notre configuration Java Spring Security:

public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.ldapAuthentication()
            .userSearchBase("ou=people")
            .userSearchFilter("(uid={0})")
            .groupSearchBase("ou=groups")
            .groupSearchFilter("member={0}")
            .contextSource()
            .root("dc=example,dc=com")
            .ldif("classpath:users.ldif");
    }
}

Il ne s'agit bien sûr que de la partie LDAP pertinente de la configuration - la configuration Java complète peut être trouvéehere.

4. Configuration XML

Voyons maintenant la configuration XML correspondante:


    
    


Encore une fois, ce n'est qu'une partie de la configuration - la partie qui est pertinente pour LDAP; la configuration XML complète peut être trouvéehere.

5. Format d'échange de données LDAP

Les données LDAP peuvent être représentées à l'aide du LDAP Data Interchange Format (LDIF) - voici un exemple de nos données utilisateur:

dn: ou=groups,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: groups

dn: ou=people,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: people

dn: uid=example,ou=people,dc=example,dc=com
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Jim Beam
sn: Beam
uid: example
userPassword: password

dn: cn=admin,ou=groups,dc=example,dc=com
objectclass: top
objectclass: groupOfNames
cn: admin
member: uid=example,ou=people,dc=example,dc=com

dn: cn=user,ou=groups,dc=example,dc=com
objectclass: top
objectclass: groupOfNames
cn: user
member: uid=example,ou=people,dc=example,dc=com

6. L'application

Enfin, voici notre application simple:

@Controller
public class MyController {

    @RequestMapping("/secure")
    public String secure(Map model, Principal principal) {
        model.put("title", "SECURE AREA");
        model.put("message", "Only Authorized Users Can See This Page");
        return "home";
    }
}

7. Conclusion

Dans ce guide rapide sur Spring Security avec LDAP, nous avons appris à approvisionner un système de base avec LDIF et à configurer la sécurité de ce système.

Lesfull implementation de ce didacticiel se trouvent dansthe github project - il s'agit d'un projet basé sur Eclipse, il devrait donc être facile à importer et à exécuter tel quel.