본문 바로가기

4.개발 및 운영 환경

[synology] LDAP을 활용한 인증 통합관리

작성자: http://ospace.tistory.com/,2018.03.26 (ospace114@empal.com)

들어가기

LDAP(Lightwegith Directory Access Protocol)은 경량형 디렉터리 접근 프로토콜을 의미한다. 조직 냉의 장치나 자원 등의 위치를 찾을 수 있는 프로토콜이다. 네트워크 내의 디렉터리 서비스 표준인 X.500의 일부이다.

(LDAP에 대한 설명이 필요)

LDAP 설치

시놀리지의 Package Center에 가면 Directory Server가 있다. 이를 먼저 설치한다. 이미 LDAP 서버가 별도로 있다면 따로 설치할 필요는 없다.

Fig.01 Directory Server설치

Fig.02 Directory Server 설치된 상태

설치가 완료되면 상단 메인메뉴를 클릭하면 Directory Server 어플리케이션이 보이고, 클릭해서 실행한다.

Fig.03 Main Menu에서 Direcotory Server

그러면 아래와 같은 설정화면이 표시된다. 여기서 "Enable LDAP Server"을 체크 표시해서 활성화시키고 기존에 별도 LDAP 서버를 동작중이지 않기 때문에 "As The Provider server"가 선택되면 된다. FQDN에 자신의 도메인 명을 입력하던지, 또는 적당한 이름을 적어넣는다. 로컬에서만 사용한다면 크게 상관이 없다. 물론 추후 DN를 사용하는 경우에는 중요하기 때문에 아무렇게나 지으면 된다.

FIg.04 Directory Server Settings

그리고 패스워도도 입력해서 보안성을 높이고 [Connection Settings] 버튼을 클릭해서 아래 항목을 체크표시한다.

  • Disallow anonymous binds
  • Force clients to use encrypted conne3ctions

마지막으로 Apply 버튼을 클릭하면 적용이 된다. 그러면 "Authentication Information"에 "Base DN"과 "Bind DN"이 표시된다. 이는 추후 사용할대 중요하기 때문에 기억하기 바란다.

이렇게 하면 기본적은 LDAP 서버 설치가 끝났다. Synology 덕분에 서버 환경설정이 간편하게 끝이 난다.

LDAP 사용자 및 그룹 관리

사용자 및 그룹 관리는 적당하게 입력하면 된다. 가급적 그룹을 추가해서 사용자에 할당하는 것이 추후 관리 차원에서 편리하다. 그리고 사용자를 추가하는 경우 일부 서비스에서 구체적인 정보가 필요하는 경우도 있기 때문에 가급적이면 정확하게 입력이 필요하다. 특히 이메일인 경우는 명시적으로 입력하는게 좋다.

NAS 사용자 인증을 LDAP으로 연동

NAS 인증시 사용하는 계정을 앞의 LDAP 서버로 연동하려고 한다. 먼저 제어판(control panel)에서 "File Sharing" 항목에서 "Domain/LDAP"를 실행한다.

Fig.05 Domin/LDAP

LDAP 탭을 선택해서 "Enable LDAP Client"를 체크표시한다. 아래 처럼 설정한다.

  • LDAP Server address: localhost (별도 LDAP 서버가 설정되었다면 해당 서버 IP 또는 URL 주소)
  • Encryption: SSL/TLS (암호화하도록 설정되었다)
  • Base DN: dc=test, dc=com
  • Profile: Standard
  • Update user/group list(minutes): 5

여기서는 로컬에 있는 Directory Server가 설치하는 기준으로 설명하기 때문에 서버 주소가 localhost이다. 다른 서버를 사용하고 있다면
"Base DN"은 앞의 fig.04의 A에 해당하는 "Base DN" 값을 입력하면 된다. 마지막으로 [Apply] 버튼을 클릭하면 된다.
"LDAP Users"나 "LDAP Group" 탭에 가서 [Update LDAP] Data 버튼을 클릭하면 LDAP 서버와 연동되면서 User및 Group 정보가 갱신된다. 해다 도메인명에서 계정명이 덧붙여서 표시된다.(e.g. admin@test.com)
마지막으로 "Control Panel"의 "Group"설정에서 LDAP의 그룹에 대한 설정을 하면 LDAP 사용자들에 대한 권한 관리도 쉽게 적용된다.

Redmain을 LDAP으로 연동

먼저 "Package Center"에서 Redmine을 설치한다. 그리고 Redmine을 실행한다. 그러면 Redmine 홈페이지에 접속하게 된다. 처음 접속하면 admin 계정 기본 설정을 해야하는데, 여기서는 이미 했다고 생각하고 진행하도록 하겠다. Redmine 설치관련 내용은 검색하면 많이 나오고 있으지 참고하는데 어렵지 않을 것이라고 생각한다.
LDAP을 설정하기 위해서는 admin 계정으로 접속하고 Administraction > LDAP authentication 을 이동하면 된다. 또는 URL로는 "test.com/auth_sources"로 접속하면 된다. "test.com"은 redmine이 설치된 서비스 IP나 URL 주소를 적으면 된다.

Fig.06 새로운 인증 모드 추가

"Authentication modes" 화면에서 [New authentication mode]를 클릭하여 LDAP 설정을 아래와 같이 한다.

  • Name: ldap
  • Host: 192.168.0.3
  • Port: 636, LDPAS 체크 (암호화 채널을 사용하는 경우)
  • Account: uid=root,cn=users,dc=test,dc=com
  • Password: ******
  • Base DN: cn=users,dc=test,dc=com
  • On-the-fly user creation: 체크표시

Name은 적당한 이름을 적으면 된다.
Host는 Readmin이 Docker에 설치되기에 localhost는 안되고 직접 IP을 입력해야 연결이 된다. 주의가 필요하다.
Port는 암호화 채널을 사용하는 경우 636 포트와 LDPAS 체크표시하여 암호화를 하도록 설정한다.
Account은 root에 대한 계정 정보로 Fig.04에서 B에 해당하는 "Bind DN"으로 root 사용자에 대한 정보가 표시되는데 이를 입력하면 된다. 이를 앞에서 암호입력하도록 설정하기 때문에 필요한 내용으로 Password도 같은 패스워드를 입력하면 된다.
"On-the-fly user creation"은 LDAP에 의해서 인증되고 Redmine에 해당 사용자는 없다면 사용자를 새로 등록 하도록 한다.
Attributes 설정은 다음과 같다.

  • Login attribute: uid
  • Firstname attribute: givenName
  • Lanstname attribute: sn
  • Email attribute: mail

각각 항목은 LDAP에서 해당 자원을 접근하는데 사용했던 식별자들입니다. Login Attribute은 로그인하기 위해 필요한 사용자 ID를 식별하기 위한 키가 무엇인지 지정한다. LDAP에 의해서 사용자 계정이 uid에 의해 넘어오기 때문이다.
여기까지 했다면 거의 다 했다고 보면 된다. 새로 앞의 LDAP에 입력한 사용자 계정을 입력하면 인증이 성공적으로 통과하면 "On-the-fly user creation"에 의해서 새로운 사용자를 등록하도록 유도한다.

참조

[1] OpenLDAP를 활용한 중앙 인증, 2018.03.26, from https://wiki.gentoo.org/wiki/Centralized\_authentication\_using\_OpenLDAP/ko

[2] LDAP란 무엇인가?, 2018.03.26, from http://jabcholove.tistory.com/89

반응형