- 2025년 1월 6일 변경사항 : LDAP Provider 변경된 버전에 맞춰 내용 수정
LDAP 구성하기
실생활에서 LDAP를 제일 쉽게 접할 수 있는 곳은 회사입니다. 로그인, 네트워크 장치 정보 등을 중앙에 모아놓고 로그인 시 이를 통해 인증하기 때문에 내부 네트워크에서 사용하기 좋죠.
사내 전산 시스템이 갖춰져 있고, ID 한 개로 사내 서비스를 이용하고 있다면 LDAP기반일 가능성이 큽니다.
공식 문서의 설정 방법을 그대로 따라하겠습니다.
LDAP 유저 생성
좌측 메뉴의 디렉토리 – 사용자에서 ‘생성’을 클릭해 LDAP에 쓰일 유저를 생성해 줍니다. 예제에서는 ldapservice입니다.
이번엔 그룹으로 이동해 ldapsearch 그룹을 생성합니다.
그 후 다시 사용자 탭으로 이동해 ldapservice유저를 클릭한 뒤 ldapsearch 그룹에 포함시켜 줍니다.
그리고 비밀번호도 설정해 놓습니다.
LDAP 플로우 생성
좌측 메뉴에서 플로우 및 스테이지 – 스테이지 – 생성 – Identification Stage를 순차적으로 클릭합니다.
이름은 아무렇게나 붙여도 상관은 없지만, 추후 유지보수를 생각해 ldap-identification-stage로 이름 붙이겠습니다.
그리고 ‘사용자명’과 ‘이메일’을 체크하고 마침을 클릭합니다.
이번엔 Password Stage를 선택한 뒤 이름을 ldap-authentication-password로 붙이겠습니다.
그 외엔 기본으로 놔둔 채 마침을 클릭하면 됩니다.
계속해서 User Login Stage를 선택하여 이름을 ldap-authentication-login로 설정한 뒤 마침을 클릭합니다.
이번엔 플로우 및 스테이지 – 플로우 – 생성을 순차적으로 클릭한 뒤 ldap-authentication-flow라고 이름을 붙여줍니다.
‘지정’ 옵션은 ‘인증’으로 설정하고 그 외의 값은 기본값으로 놔둔 채로 생성을 클릭합니다.
생성이 완료되면 목록 하단에서 새로 만들어진 플로우를 확인할 수 있습니다.
해당 플로우를 클릭하여 상단 탭에서 스테이지 바인딩 클릭, 화면 중앙의 스테이지 바인드(혹은 ‘기존 스테이지 바인드’)를 클릭합니다.
스테이지에는 위에서 생성한 ldap-identification-stage, 순서는 10을 기입하고 생성을 클릭합니다.
다시 기존 스테이지 바인드를 클릭합니다.
ldap-authentication-login, 30을 기입하고 생성을 클릭합니다.
ldap-identification-stage의 스테이지 편집을 클릭한 뒤, 비밀번호 스테이지에 ldap-authentication-password를 지정하고 업데이트를 클릭합니다.
LDAP 공급자 생성
우측 애플리케이션 – 공급자를 클릭 후 LDAP Provider를 클릭합니다.
이름은 LDAP, 플로우 바인드는 위에서 설정한 ldap-authentication-flow를 선택, 그룹은 ldapsearch를 선택합니다.
(Authentik 최근 패치를 통해 LDAP검색을 수행할 그룹을 지정하고 권한을 습득하는 방법에서 전체 스캔 권한을 주는 방식으로 변경되었습니다.)
Base DN은 사용할 환경에 맞게 입력해 주시거나 기본값 그대로 쓰셔도 됩니다. 이 글에서는 기본값을 사용하겠습니다.
생성된 공급자를 클릭한 뒤 상단 탭에서 권한 → '새 사용자에 할당' 을 클릭해 ldapsearch사용자에게 Search full LDAP directory권한을 설정해 줍니다.


LDAP 애플리케이션 생성
좌측 메뉴의 애플리케이션 – 애플리케이션에서 생성을 클릭합니다.
공급자는 조금 전 생성한 LDAP를 선택하고, 이름과 슬러그는 취향껏 붙일 수 있으나, 가시성을 위해 LDAP라고 하겠습니다.
LDAP Outpost 생성
좌측 메뉴의 애플리케이션 – Outposts에서 생성을 클릭합니다.
이름 LDAP, 유형 LDAP, 애플리케이션에서 LDAP를 선택해 준 뒤 생성을 클릭합니다.
생성된 Outpost는 처음엔 상태 및 버전에 ‘사용 불가’로 표기되어 있다가
자동적으로 ldap에 필요한 컨테이너를 deploy하면서 사용 가능 상태로 표기됩니다.
서비스 연동하기
이 단락에서는, 직관적인 이해를 돕기 위해 위에서 생성한 ldapservice계정으로 로그인을 수행합니다.
그러나, 해당 계정은 보안을 위해 root계정 대신 LDAP를 연결하기 위한 바인딩 계정 목적으로 생성한 계정이므로, 직접 사용하는 것은 추천하지 않습니다. 이 글에서는 예시를 위해 로그인에 사용했을 뿐입니다.
향후, LDAP로그인을 수행할 계정은 직접 생성해서 이용하면 됩니다.
Nextcloud와 연동
잘 작동하는지 테스트 겸 제일 먼저 Nextcloud와 연동해보겠습니다.
우선, Nextcloud에서 LDAP user and group backend 앱을 활성화 해주어야 합니다.
관리자 설정에 LDAP/AD 통합이라는 메뉴가 새로 생긴 것을 발견할 수 있습니다.
클릭해서 아래와 같이 진행해 보겠습니다.
- 호스트 : authentik을 설치한 내부IP (입력 후 포트 감지 클릭)
- 사용자 DN(Bind DN) : 위에서 생성한 ldapservice계정의 DN을 입력할 겁니다. cn=ldapservice,ou=ldapsearch,dc=ldap,dc=goauthentik,dc=io
- 암호 : 위에서 설정한 ldapservice계정의 비밀번호 입력
이후 기본 DN 감지 버튼을 클릭하면 알아서 기본 DN이 채워지고 기본 DN 시험을 클릭해 설정을 완료할 수 있습니다.
이후 설정을 확인하고 사용자 수 계산을 클릭해보면 1명의 사용자 찾음이라고 출력되는 것을 볼 수 있습니다.
정상입니다. 현재는 ldapsearch그룹에 ldapservice계정만 들어가 있으니까요.
그룹을 제외하면 outpost와 제가 따로 만든 테스트 계정까지 5명의 사용자를 인식했다고 출력됩니다.
LDAP공급자에 따라 여기서 그룹을 설정하는 옵션이 적용되지 않는 경우도 있다고 합니다. 만일 authentik이 아닌, 다른 솔루션을 사용중이신 분이 계시고, 이 페이지가 비활성화되어있는 분은 그냥 넘어가시면 됩니다.
기타 속성에서 cn을 클릭하고 ldapservice계정을 입력하여 설정 검사를 클릭합니다.
우측 상단에 ‘사용자를 찾았고 설정을 확인했습니다’라는 메세지가 출력됨을 확인합니다.
다음 마지막으로 그룹 탭에서 ldapsearch를 클릭하여 줍니다.
‘사용자’ 탭에서 설정한 그룹은 ‘해당 그룹에 속한 사용자만 쿼리로 찾는 것’이고
‘그룹’ 탭에서 설정한 그룹은 ‘해당 그룹만 Nextcloud에 로그인할 수 있는 것’이라고 합니다.
마지막으로 오른쪽 ‘전문가’ 탭에서 아래와 같이 입력해 줍니다.
- 내부 사용자 이름 속성 : cn
- 사용자 UUID 속성 : uid
이후 우측 상단의 전문가 탭에서 ‘설정 시험’을 클릭해 올바르게 연결되었다는 메세지를 확인할 수 있고,
아래와 같이 로그인도 성공적으로 수행됩니다.
Nextcloud의 관리자로 사용자 리스트를 보면, LDAP로 추가된 사용자를 확인할 수 있습니다.
Synology DSM과 연동하기
제어판 → 도메인/LDAP로 이동한 후, '가입'을 클릭합니다.


서버 주소에 Authentik LDAP Outpost가 구성된 내부 IP주소를 입력한 후 다음으로 넘어갈 수 있습니다.
LDAP구성 정보를 입력하는 창이 나타나면, 위 가이드대로 구성했다는 가정하에, 아래처럼 입력하시면 됩니다.
- Bind DN 또는 LDAP 관리자 계정 : cn=ldapservice,ou=ldapsearch,dc=ldap,dc=goauthentik,dc=io
- 패스워드 : 위에서 설정한 ldapservice계정의 비밀번호 입력
- 암호화 : 아무거나 무관(Authentik에서 이제 암호화 LDAP지원함)
- Base DN : dc=ldap,dc=goauthentik,dc=io
- 프로파일 : 사용자 지정
입력 후 다음을 누르면 테스트를 모두 잘 통과하다가 '서버 스키마 확인'에서 아래와 같은 문제점 2개를 보고합니다.
Authentik의 삼바 공유와 관련된 기능 부족(?)으로 발생하는 부분이며, 강제 활성화하여 평문지원을 활성화 할 경우 시놀로지의 "최대 SMB프로토콜"이 SMB 1로 고정됩니다. 저는 LDAP구성원에게 삼바공유를 활성화 할 일이 없어 모두 건너뛰었습니다.
이후 진행을 완료한 후 LDAP사용자 탭을 보면, 정보 매핑이 잘못된 상태로 구성이 완료되었음을 볼 수 있습니다. 심지어 outpost용 내부 서비스 계정과 Authentik 관리자 계정까지 모두 넘어왔고, 이름(username)이 설명 칸으로, 해쉬된 UUID값이 이름 칸에 할당된 것을 볼 수 있습니다. 또, LDAP 그룹도 Authentik에 존재하는 모든 그룹을 모조리 가져오죠..
문제를 해결해보겠습니다. 먼저, LDAP 설정 → 프로파일:편집을 클릭합니다.


그리고 아래와 같이 입력합니다.
- filter - passwd : (memberOf=cn=ldapsearch,ou=groups,dc=ldap,dc=authentik,dc=io)
- filter - group : (cn=ldapsearch)
- passwd - uid : cn
이후 '저장'을 클릭하고 LDAP사용자와 그룹을 조회해보면 타겟된 계정들과 그룹만 연동된 것을 확인할 수 있습니다.
문제 해결(Trouble-Shooting)
LDAP 설정 후 연결이 끊길 경우
LDAP 설정 완료 및 연결이 이루어진 후 Authentik 컨테이너를 내려버리거나 바인딩 된 계정에 변화가 일어나면 Nextcloud전체 로그인이 먹통이 됩니다.
이 경우 쉘에서 아래 명령어를 따라가야 합니다.
su -m www-data -c 'php $(pwd)/occ ldap:show-config'
여기서 configuration ID를 확인합니다.
su -m www-data -c 'php $(pwd)/occ ldap:set-config s01 ldapConfigurationActive 0'
여기까지 진행하면 LDAP가 비활성화되며 로그인을 진행할 수 있게 됩니다.
이후 WEB UI에서 설정을 변경하신 후 다시 쉘에서 아래와 같이 입력해 줍니다.
su -m www-data -c 'php $(pwd)/occ ldap:set-config s01 ldapConfigurationActive 1'
관련 글
2025.01.23 - [Apps] - Authentik으로 홈서버 SSO 구현하기 (1) – 설치
Authentik으로 홈서버 SSO 구현하기 (1) – 설치
개요여러가지 도커 이미지를 이용해 셀프 호스팅으로 서비스를 올려보고 사용해보는 재미에 빠지다 보면 만나는 문제가 한 가지 있습니다. 바로 서비스에 접속할 때마다 일일히 로그인을 해야
worklazy.net
2025.01.23 - [Apps] - Authentik으로 홈서버 SSO 구현하기 (3) – OAuth/OpenID
Authentik으로 홈서버 SSO 구현하기 (3) – OAuth/OpenID
개요LDAP는 있으면 좋지만, 이것만으로는 번거로운 로그인 과정을 전부 해결할 수는 없습니다.이번 글에서는 OAuth / OpenID Provider를 설정하는 방법을 적어 보겠습니다.LDAP가 조직 내부 네트워크 인
worklazy.net
2025.01.23 - [Apps] - Authentik으로 홈서버 SSO 구현하기 (4) – SAML
Authentik으로 홈서버 SSO 구현하기 (4) – SAML
개요SAML은 JWT기반이었던 OAuth/OpenID와 달리 XML을 기반으로 하며 각각 장단점이 있습니다. OAuth/OpenID와 비교할 때 모바일 지원이 부족하고, JWT보다 덩치가 큰 XML을 이용함에서 오는 네트워크 대역
worklazy.net
2025.01.23 - [Apps] - Authentik으로 홈서버 SSO 구현하기 (5) - Proxy
Authentik으로 홈서버 SSO 구현하기 (5) - Proxy
개요홈서버에서 사용하는 대부분의 애플리케이션들은 앞선 글에서 소개했던 OAuth/OpenID, SAML로 모두 해결할 수 있습니다.그러나, 이런 류의 인증방식을 지원하지 않는 것들도 굉장히 많죠. 예를
worklazy.net
2025.01.23 - [Apps] - Authentik으로 홈서버 SSO 구현하기 (6) – 회원 가입, 초대 코드, 소셜 로그인
Authentik으로 홈서버 SSO 구현하기 (6) – 회원 가입, 초대 코드, 소셜 로그인
개요Authentik의 Provider를 이용해 많은 서비스를 연동하는 것까진 완료했지만, 아직 회원을 받는 기능은 없습니다.주변 지인들에게 계정을 발급할 때, 하나하나 생성해 주어야 하는 귀찮은 점은 아
worklazy.net
2025.01.23 - [Apps] - Authentik으로 홈서버 SSO 구현하기 (7) – 시놀로지 회원 가입(계정 자동 생성) 구현하기
Authentik으로 홈서버 SSO 구현하기 (7) – 시놀로지 회원 가입(계정 자동 생성) 구현하기
개요시놀로지는 다 좋고 편한데 회원 가입을 능동적으로 처리하는 기능이 없습니다. 기본 기능만을 사용할 경우, 관리자가 계정을 생성하고 사용자가 최초 로그인 시 무조건 비밀번호를 변경하
worklazy.net
출처
1. https://docs.goauthentik.io/docs/add-secure-apps/providers/ldap/generic_setup
Create an LDAP provider | authentik
Create Service account
docs.goauthentik.io