Pengenalan kepada Spring Security LDAP

1. Gambaran keseluruhan

Dalam tutorial ringkas ini, kita akan belajar bagaimana menyediakan Spring Security LDAP.

Sebelum kita memulakan, nota tentang apa itu LDAP - itu bermaksud Protokol Akses Direktori Ringan dan protokol terbuka, netral vendor untuk mengakses perkhidmatan direktori melalui rangkaian.

2. Ketergantungan Maven

Pertama, mari lihat pergantungan maven yang kita perlukan:

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

Catatan: Kami menggunakan ApacheDS sebagai pelayan LDAP kami yang merupakan pelayan direktori yang dapat diperluas dan disematkan.

3. Konfigurasi Java

Seterusnya, mari kita bincangkan konfigurasi Java Spring Security kami:

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=baeldung,dc=com") .ldif("classpath:users.ldif"); } }

Ini tentunya hanya bahagian konfigurasi LDAP yang relevan - konfigurasi Java lengkap boleh didapati di sini.

4. Konfigurasi XML

Sekarang, mari kita lihat konfigurasi XML yang sesuai:

Sekali lagi, ini hanyalah sebahagian daripada konfigurasi - bahagian yang berkaitan dengan LDAP; konfigurasi XML penuh boleh didapati di sini.

5. Format Pertukaran Data LDAP

Data LDAP dapat diwakili menggunakan Format Pertukaran Data LDAP (LDIF) - berikut adalah contoh data pengguna kami:

dn: ou=groups,dc=baeldung,dc=com objectclass: top objectclass: organizationalUnit ou: groups dn: ou=people,dc=baeldung,dc=com objectclass: top objectclass: organizationalUnit ou: people 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 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: user member: uid=baeldung,ou=people,dc=baeldung,dc=com

6. Permohonan

Akhirnya, inilah aplikasi mudah kami:

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

Dalam panduan ringkas untuk Spring Security dengan LDAP, kami belajar bagaimana menyediakan sistem asas dengan LDIF dan mengkonfigurasi keselamatan sistem tersebut.

The pelaksanaan penuh tutorial ini boleh didapati dalam projek GitHub - ini adalah projek berasaskan Eclipse, jadi ia harus mudah untuk import dan berjalan kerana ia adalah.