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.