Introduktion til Spring Security LDAP

1. Oversigt

I denne hurtige vejledning lærer vi, hvordan du konfigurerer Spring Security LDAP.

Før vi starter, en note om hvad LDAP er - det står for Lightweight Directory Access Protocol, og det er en åben, leverandørneutral protokol til adgang til bibliotektjenester via et netværk.

2. Maven-afhængighed

Lad os først se på de afhængigheder, vi har brug for:

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

Bemærk: Vi brugte ApacheDS som vores LDAP-server, som er en udvidelig og integrerbar katalogserver.

3. Java-konfiguration

Lad os derefter diskutere vores Spring Security Java-konfiguration:

offentlig klasse SecurityConfig udvider WebSecurityConfigurerAdapter {@Override beskyttet ugyldig konfiguration (AuthenticationManagerBuilder auth) kaster undtagelse {auth.ldapAuthentication () .userSearchBase ("ou = people") .userSearchFilter ("(uid = {0})") .groupSearchBase ("ou = grupper ") .groupSearchFilter (" medlem = {0} ") .contextSource () .root (" dc = baeldung, dc = com ") .ldif (" classpath: users.ldif "); }}

Dette er naturligvis kun den LDAP-relevante del af konfigurationen - den fulde Java-konfiguration kan findes her.

4. XML-konfiguration

Lad os nu se på den tilsvarende XML-konfiguration:

Igen er dette kun en del af konfigurationen - den del, der er relevant for LDAP; den fulde XML-konfiguration kan findes her.

5. LDAP-dataudvekslingsformat

LDAP-data kan repræsenteres ved hjælp af LDAP Data Interchange Format (LDIF) - her er et eksempel på vores brugerdata:

dn: ou = grupper, dc = baeldung, dc = com objektklasse: top objektklasse: organisatorisk Enhed ou: grupper dn: ou = mennesker, dc = baeldung, dc = com objektklasse: top objektklasse: organisatorisk Enhed ou: mennesker dn: uid = baeldung, ou = mennesker, dc = baeldung, dc = com objectclass: top objectclass: person objectclass: organisationalPerson objectclass: inetOrgPerson cn: Jim Beam sn: Beam uid: baeldung userPassword: password dn: cn = admin, ou = grupper, dc = baeldung, dc = com objectclass: top objectclass: groupOfNames cn: admin medlem: uid = baeldung, ou = personer, dc = baeldung, dc = com dn: cn = bruger, ou = grupper, dc = baeldung, dc = com objectclass: top objectclass : groupOfNames cn: brugermedlem: uid = baeldung, ou = folk, dc = baeldung, dc = com

6. Ansøgningen

Endelig er her vores enkle anvendelse:

@Controller public class MyController {@RequestMapping ("/ secure") public String secure (Map model, Principal principal) {model.put ("title", "SECURE AREA"); model.put ("meddelelse", "Kun autoriserede brugere kan se denne side"); vende hjem"; }}

7. Konklusion

I denne hurtige vejledning til Spring Security med LDAP lærte vi, hvordan vi tilvejebringer et grundlæggende system med LDIF og konfigurerer sikkerheden for dette system.

Det fuld implementering af denne vejledning kan findes i GitHub-projektet - dette er et Eclipse-baseret projekt, så det skal være let at importere og køre som det er.


$config[zx-auto] not found$config[zx-overlay] not found