Uvod u proljetni sigurnosni LDAP

1. Pregled

U ovom brzom vodiču naučit ćemo kako postaviti Spring Security LDAP.

Prije nego što započnemo, napomena o tome što je LDAP - skraćenica je od Laganog protokola za pristup direktorijima i to je otvoreni protokol koji je neutralan od dobavljača za pristup uslugama direktorija putem mreže.

2. Ovisnost Mavena

Prvo, pogledajmo maven ovisnosti koje su nam potrebne:

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

Napomena: ApacheDS smo koristili kao LDAP poslužitelj koji je proširivi i ugradivi poslužitelj direktorija.

3. Java konfiguracija

Dalje, razgovarajmo o našoj Spring Security Java konfiguraciji:

javna klasa SecurityConfig proširuje WebSecurityConfigurerAdapter {@Override zaštićena void konfiguracija (AuthenticationManagerBuilder auth) baca izuzetak {auth.ldapAuthentication () .userSearchBase ("ou = people") .userSearchFilter ("(uid = {0})" ouase = {0}) "ouBase .group. = grupe ") .groupSearchFilter (" member = {0} ") .contextSource () .root (" dc = baeldung, dc = com ") .ldif (" classpath: users.ldif "); }}

Ovo je naravno samo LDAP relevantan dio konfiguracije - cijelu Java konfiguraciju možete pronaći ovdje.

4. XML konfiguracija

Sada, pogledajmo odgovarajuću XML konfiguraciju:

Opet, ovo je samo dio konfiguracije - dio koji je relevantan za LDAP; cjelovitu XML konfiguraciju možete pronaći ovdje.

5. LDAP format razmjene podataka

LDAP podaci mogu se predstaviti pomoću LDAP Format razmjene podataka (LDIF) - evo primjera naših korisničkih podataka:

dn: ou = groups, dc = baeldung, dc = com objectclass: top objectclass: organizationUnit ou: groups dn: ou = people, dc = baeldung, dc = com objectclass: top objectclass: organisationUnit ou: people dn: uid = baeldung, ou = people, dc = baeldung, dc = com objectclass: top objectclass: person objectclass: organizationPerson objectclass: inetOrgPerson cn: Jim Beam sn: Beam uid: baeldung userPassword: lozinka 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: član korisnika: uid = baeldung, ou = people, dc = baeldung, dc = com

6. Prijava

Na kraju, evo naše jednostavne aplikacije:

@Controller javna klasa MyController {@RequestMapping ("/ secure") javni niz siguran (model karte, glavni nalogodavac) {model.put ("naslov", "SIGURNO PODRUČJE"); model.put ("poruka", "Samo ovlašteni korisnici mogu vidjeti ovu stranicu"); Povratak kući"; }}

7. Zaključak

U ovom kratkom vodiču za Spring Security s LDAP-om naučili smo kako pružiti osnovni sustav s LDIF-om i konfigurirati sigurnost tog sustava.

The puna provedba ovog vodiča možete pronaći u projektu GitHub - ovo je projekt zasnovan na Eclipseu, pa bi ga trebalo lako uvesti i pokrenuti kakav jest.