Einführung zu Spring Security LDAP

Einführung in Spring Security LDAP

1. Überblick

In diesem kurzen Lernprogramm erfahren Sie, wie Sie Spring Security LDAP einrichten.

Bevor wir beginnen, ein Hinweis zu LDAP: Es steht für Lightweight Directory Access Protocol und ist ein offenes, herstellerneutrales Protokoll für den Zugriff auf Verzeichnisdienste über ein Netzwerk.

Weitere Lektüre:

Spring LDAP Übersicht

Erfahren Sie, wie Sie die Spring LDAP-APIs zum Authentifizieren und Suchen von Benutzern sowie zum Erstellen und Ändern von Benutzern auf dem Verzeichnisserver verwenden.

Read more

Leitfaden zu Spring Data LDAP

Erfahren Sie, wie Sie Spring Data mit LDAP verwenden.

Read more

Federdaten mit Federsicherheit

Erfahren Sie, wie Sie Spring Data in Spring Security integrieren.

Read more

2. Maven-Abhängigkeit

Schauen wir uns zuerst die Abhängigkeiten der Maven an, die wir brauchen:


    org.springframework.security
    spring-security-ldap



    org.apache.directory.server
    apacheds-server-jndi
    1.5.5

Hinweis: Wir habenApacheDS als unseren LDAP-Server verwendet, der ein erweiterbarer und einbettbarer Verzeichnisserver ist.

3. Java-Konfiguration

Lassen Sie uns als Nächstes unsere Spring Security Java-Konfiguration diskutieren:

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");
    }
}

Dies ist natürlich nur der LDAP-relevante Teil der Konfiguration - die vollständige Java-Konfiguration finden Sie inhere.

4. XML-Konfiguration

Schauen wir uns nun die entsprechende XML-Konfiguration an:


    
    


Auch dies ist nur ein Teil der Konfiguration - der Teil, der für LDAP relevant ist. Die vollständige XML-Konfiguration finden Sie inhere.

5. LDAP-Datenaustauschformat

LDAP-Daten können mit dem LDAP Data Interchange Format (LDIF) dargestellt werden. Hier ein Beispiel für unsere Benutzerdaten:

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. Die Anwendung

Zum Schluss hier unsere einfache Anwendung:

@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. Fazit

In dieser Kurzanleitung zu Spring Security mit LDAP erfahren Sie, wie Sie ein Basissystem mit LDIF bereitstellen und die Sicherheit dieses Systems konfigurieren.

Diefull implementation dieses Tutorials finden Sie inthe github project - dies ist ein Eclipse-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein.