https://spring.io/guides/gs/authenticating-ldap/
LDAP라는 모듈을 사용해 보안이 걸린 서버를 만들어본다.
LDAP(Lightweight Directory Access Protocol)은 TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이라고 한다. 이렇게 위키피디아에 써져 있고, 간단히 이해하기로는 검색에 특화되어 있고 일반적으로는 단순 인증을 위해 서비스에 많이 쓰인다~ 정도로만 현재는 이해하고 넘어간다.
등장한지 30년도 더 지났다고 한다...
추가로 좋은 설명 링크를 하나 붙혀둔다.
이 부분은 가이드에서 따로 바뀌는게 없어 그대로 작업해주면 될 것 같다. 다만 Data를 Setup 하는 부분에서는 application.properties에 적어줘야할 코드에 대한 설명이 빠져있는 것 같아 이를 추가해둔다.
## application.properties
spring.ldap.embedded.ldif = classpath:test-server.ldif
spring.ldap.embedded.base-dn = dc=springframework,dc=org
spring.ldap.embedded.port = 8389
이 코드가 ldap 서버를 만드는데 추가적으로 필요한 것 같으며(확실치는 않다. 다만 없으면 예상처럼 동작하지가 않는다...) 첫번째 줄이 가이드에서 적어주는 data file을 적용시키는 property 등록이다. 이게 빠져있는게 좀 아쉽다.
해당 내용은 아래 medium에서 찾았다. 가이드 보다 좀 더 상세하니(?) 참고해도 좋을 것 같다.
https://medium.com/@renquanbo7453/spring-security-with-ldap-based-user-store-6ac947c48f7c
아무튼 여기까지 하고서 서버를 키고 테스트해보면 실제로 아이디와 비밀번호를 입력해야 접속이 가능해진다.
내용 자체는 매우 간단했던 LDAP 적용기였던 것 같다. 사실 실제 서비스를 만들때 이것을 사용할까? 싶기는 했지만 돌이켜 생각해보니 사내 툴 정도에는 꽤나 요긴하게 사용할 수 있을 것 같다는 생각이 든다.
코드는 여기서 확인할 수 있다.