מבוא ל- LDAP באבטחת אביב
1. סקירה כללית
במדריך מהיר זה, נלמד כיצד להגדיר את Spring Security LDAP.
לפני שנתחיל, הערה לגבי מה זה LDAP - זה מייצג פרוטוקול גישה קלה לספריות וזה פרוטוקול פתוח ונטרלי ספקים לגישה לשירותי ספריות ברשת.
2. תלות של Maven
ראשית, בואו נסתכל על התלות המעוותות הדרושות לנו:
org.springframework.security spring-security-ldap org.apache.directory.server apacheds-server-jndi 1.5.5
הערה: השתמשנו ב- ApacheDS כשרת LDAP שלנו שהוא שרת ספריות הניתן להרחבה וניתנה להטמעה.
3. תצורת Java
לאחר מכן, בואו נדון בתצורת Java של אבטחת האביב שלנו:
מחלקה ציבורית SecurityConfig מרחיב את WebSecurityConfigurerAdapter {@Override מוגן ריק מוגדר (AuthenticationManagerBuilder auth) זורק חריג {auth.ldapAuthentication () .userSearchBase ("ou = people") .userSearchFilter ("(uid = {0})") .groupSearchBase ("ou = קבוצות ") .groupSearchFilter (" חבר = {0} ") .contextSource () .root (" dc = baeldung, dc = com ") .ldif (" classpath: users.ldif "); }}
זה כמובן רק החלק הרלוונטי ל- LDAP בתצורה - את תצורת ה- Java המלאה תוכלו למצוא כאן.
4. תצורת XML
עכשיו, בואו נסתכל על תצורת ה- XML המתאימה:
שוב, זה רק חלק מהתצורה - החלק הרלוונטי ל- LDAP; את תצורת ה- XML המלאה תוכלו למצוא כאן.
5. פורמט מחליף נתונים LDAP
ניתן לייצג נתוני LDAP באמצעות פורמט מחליף נתונים LDAP (LDIF) - הנה דוגמה לנתוני המשתמש שלנו:
dn: ou = קבוצות, dc = baeldung, dc = com objectclass: top objectclass: organisationalUnit ou: קבוצות dn: ou = people, dc = baeldung, dc = com objectclass: top objectclass: organisational Unit אחד: אנשים dn: uid = baeldung, ou = אנשים, dc = baeldung, dc = com אובייקט קלאס: אובייקט קלאס עליון: אדם אובייקט קלאס: ארגוני פיסת אובייקט מחלקה: inetOrg פרסה cn: ג'ים קרן sn: קרן uid: משתמש baeldung סיסמה: סיסמה dn: cn = מנהל, ou = קבוצות, dc = baeldung, dc = com objectclass: top objectclass: groupOfNames cn: חבר מנהל: uid = baeldung, ou = people, dc = baeldung, dc = com dn: cn = user, ou = groups, dc = baeldung, dc = com objectclass: class top object : groupOfNames cn: חבר משתמש: uid = baeldung, ou = people, dc = baeldung, dc = com
6. היישום
לבסוף, הנה היישום הפשוט שלנו:
@Controller מחלקה ציבורית MyController {@RequestMapping ("/ מאובטח") ציבורי מחרוזת מאובטחת (מודל מפה, מנהל ראשי) {model.put ("כותרת", "אזור מאובטח"); model.put ("הודעה", "רק משתמשים מורשים יכולים לראות דף זה"); לחזור הביתה"; }}
7. מסקנה
במדריך מהיר זה לאבטחת אביב עם LDAP, למדנו כיצד לספק מערכת בסיסית עם LDIF ולהגדיר את האבטחה של אותה מערכת.
ה יישום מלא של הדרכה זו ניתן למצוא בפרויקט GitHub - זהו פרויקט מבוסס ליקוי חמה, כך שיהיה קל לייבא ולהפעיל אותו כפי שהוא.