Inleiding tot Spring Security LDAP

1. Overzicht

In deze korte handleiding leren we hoe u Spring Security LDAP instelt.

Voordat we beginnen, een opmerking over wat LDAP is: het staat voor Lightweight Directory Access Protocol en het is een open, leverancierneutraal protocol voor toegang tot directoryservices via een netwerk.

2. Maven Afhankelijkheid

Laten we eerst eens kijken naar de maven-afhankelijkheden die we nodig hebben:

 org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5 

Opmerking: we gebruikten ApacheDS als onze LDAP-server, een uitbreidbare en in te sluiten directoryserver.

3. Java-configuratie

Laten we vervolgens onze Spring Security Java-configuratie bespreken:

public class SecurityConfig breidt WebSecurityConfigurerAdapter uit {@Override protected void configure (AuthenticationManagerBuilder auth) genereert uitzondering {auth.ldapAuthentication () .userSearchBase ("ou = people") .userSearchFilter ("(uid = {0})") .groupSearchBase ("ou = groups ") .groupSearchFilter (" member = {0} ") .contextSource () .root (" dc = baeldung, dc = com ") .ldif (" classpath: users.ldif "); }}

Dit is natuurlijk alleen het LDAP-relevante deel van de configuratie - de volledige Java-configuratie is hier te vinden.

4. XML-configuratie

Laten we nu eens kijken naar de bijbehorende XML-configuratie:

Nogmaals, dit is slechts een deel van de configuratie - het deel dat relevant is voor LDAP; de volledige XML-configuratie is hier te vinden.

5. Indeling voor LDAP-gegevensuitwisseling

LDAP-gegevens kunnen worden weergegeven met behulp van de LDAP Data Interchange Format (LDIF) - hier is een voorbeeld van onze gebruikersgegevens:

dn: ou = groepen, dc = baeldung, dc = com objectclass: top objectclass: organisationUnit ou: groepen dn: ou = people, dc = baeldung, dc = com objectclass: top objectclass: organisationUnit ou: people dn: uid = baeldung, ou = mensen, dc = baeldung, dc = com objectclass: top objectclass: person objectclass: organisationPerson objectclass: inetOrgPerson cn: Jim Beam sn: Beam uid: baeldung userPassword: password dn: cn = admin, ou = groups, dc = baeldung, dc = com objectclass: top objectclass: groupOfNames cn: admin member: uid = baeldung, ou = people, dc = baeldung, dc = com dn: cn = user, ou = groups, dc = baeldung, dc = com objectclass: top objectclass : groupOfNames cn: gebruiker lid: uid = baeldung, ou = mensen, dc = baeldung, dc = com

6. De applicatie

Eindelijk is hier onze eenvoudige applicatie:

@Controller publieke klasse MyController {@RequestMapping ("/ secure") public String beveiligd (Mapmodel, Principal principal) {model.put ("title", "SECURE AREA"); model.put ("message", "Alleen geautoriseerde gebruikers kunnen deze pagina zien"); terug naar huis"; }}

7. Conclusie

In deze korte handleiding voor Spring Security met LDAP hebben we geleerd hoe we een basissysteem met LDIF kunnen voorzien en de beveiliging van dat systeem kunnen configureren.

De volledige implementatie van deze tutorial is te vinden in het GitHub-project - dit is een op Eclipse gebaseerd project, dus het zou gemakkelijk te importeren en uit te voeren moeten zijn zoals het is.