Introduksjon til Spring Security LDAP
1. Oversikt
I denne raske opplæringen vil vi lære hvordan du konfigurerer Spring Security LDAP.
Før vi begynner, et notat om hva LDAP er - det står for Lightweight Directory Access Protocol og det er en åpen, leverandørnøytral protokoll for tilgang til katalogtjenester over et nettverk.
2. Maven avhengighet
La oss først se på avhengighetene vi trenger:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
Merk: Vi brukte ApacheDS som vår LDAP-server, som er en utvidbar og innebygd katalogserver.
3. Java-konfigurasjon
Deretter, la oss diskutere vår Java Security Java-konfigurasjon:
offentlig klasse SecurityConfig utvider WebSecurityConfigurerAdapter {@Override-beskyttet ugyldig konfigurasjon (AuthenticationManagerBuilder auth) kaster unntak {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 selvfølgelig bare den LDAP-relevante delen av konfigurasjonen - den fulle Java-konfigurasjonen finner du her.
4. XML-konfigurasjon
La oss nå ta en titt på tilsvarende XML-konfigurasjon:
Igjen, dette er bare en del av konfigurasjonen - den delen som er relevant for LDAP; hele XML-konfigurasjonen finner du her.
5. LDAP-datautvekslingsformat
LDAP-data kan vises med LDAP Data Interchange Format (LDIF) - her er et eksempel på brukerdataene våre:
dn: ou = grupper, dc = baeldung, dc = com objektklasse: topp objektklasse: organisatorisk Enhet ou: grupper dn: ou = mennesker, dc = baeldung, dc = com objektklasse: topp objektklasse: organisatorisk Enhet ou: mennesker dn: uid = baeldung, ou = people, dc = baeldung, dc = com objectclass: top objectclass: person objectclass: organizationalPerson objectclass: inetOrgPerson cn: Jim Beam sn: Beam uid: baeldung userPassword: password dn: cn = admin, ou = groups, dc = baeldung, dc = com objektklasse: topp objektklasse: groupOfNames cn: admin medlem: uid = baeldung, ou = personer, dc = baeldung, dc = com dn: cn = bruker, ou = grupper, dc = baeldung, dc = com objectclass: topp objektklasse : groupOfNames cn: brukermedlem: uid = baeldung, ou = folk, dc = baeldung, dc = com
6. Søknaden
Til slutt, her er vår enkle applikasjon:
@Controller public class MyController {@RequestMapping ("/ secure") public String secure (Map model, Principal principal) {model.put ("title", "SECURE AREA"); model.put ("melding", "Bare autoriserte brukere kan se denne siden"); vende hjem"; }}
7. Konklusjon
I denne hurtigveiledningen til Spring Security med LDAP lærte vi hvordan vi skaffer et grunnleggende system med LDIF og konfigurerer sikkerheten til det systemet.
De full gjennomføring av denne veiledningen finner du i GitHub-prosjektet - dette er et formørkelsesbasert prosjekt, så det skal være enkelt å importere og kjøre som det er.