Contents
개요
시놀로지는 다 좋고 편한데 회원 가입을 능동적으로 처리하는 기능이 없습니다. 기본 기능만을 사용할 경우, 관리자가 계정을 생성하고 사용자가 최초 로그인 시 무조건 비밀번호를 변경하도록 구성하는 것 정도가 최선이죠.
왜냐하면, 계정 컨트롤은 시놀로지 DSM이 수행해야 할 본연의 기능이고, 외부 클라이언트는 ‘인증’정도만 거들어주게 되어있기 때문입니다.
그런데, AD/LDAP의 경우에는, DSM을 클라이언트로 가입시키면, 해당 서비스에 있는 계정이 자동적으로 연동됩니다. 이를 이용해서 관리자의 특별한 행동이 없어도, 이용자가 자동적으로 시놀로지 계정을 얻을 수 있도록 구성할 수 있습니다.
Authentik 구성하기
Authentik 회원 가입 구성
먼저, 기본적으로 Authentik에서 이용자가 스스로 계정을 생성할 수 있도록 환경을 만들어 주어야 합니다. 이를 위한 선택지에는, 외부 OpenID 소스를 연동(구글 등)하거나, 비밀번호 규칙을 설정한 뒤 회원 가입 스테이지를 열어주는 등의 방법이 있습니다.
해당 내용은 이전에 작성한 글의 링크로 대신하겠습니다.
LDAP 구성
Authentik의 계정 정보를 DSM에서 연동하기 위해서는 Authentik의 LDAP가 필수적으로 구성되어야 합니다.
LDAP를 구성하고, 시놀로지 DSM과 연동하는 방법 역시 기존 글의 링크로 대신하겠습니다.
Authentik은 LDAP 정보를 넘겨줄 때 uuid값을 넘겨주기 때문에, 클라이언트 측에선 계정ID가 해쉬값으로 넘어오는 단점이 있습니다.
따라서 아래 링크글의 내용대로 맵핑 시 uid=cn으로 매핑해주는 과정이 꼭 필요합니다.
OIDC 구성
이 예제글에서는 DSM에 연결할 도메인을 dsm.example.com으로 사용하겠습니다.
제일 먼저 OAuth2/OpenID Provider를 생성합니다.
- 이름 : 자유
- 인가 플로우 : default-provider-authorization-implict-consent
- 클라이언트 유형 : 기밀
- Redirect URIs/Origins : (Regex)https://dsm.example.com/#/signin
- 서명 키 : 자체 인증서
- Subject 모드 : 사용자의 사용자이름 기반



구성을 마친 후에 애플리케이션도 하나 생성해 줍니다.

여기까지 구성을 완료했다면, 다음 과정은 DSM에서 진행하게 됩니다.
Synology DSM 구성하기
LDAP링크글을 따라 시놀로지에서 LDAP연동까지 완료했다면, 제어판 → LDAP/도메인 → SSO 클라이언트를 순차적으로 클릭합니다.
그리고 OpenID Connect SSO 서비스 활성화를 클릭합니다.

그리고 아래와 같이 입력합니다.
- 프로파일 : OIDC
- 계정 유형 : 도메인/LDAP/로컬
- 이름 : Authentik
- Well-known URL : https://{authentik도메인}/application/o/{slug}/.well-known/openid-configuration
(Authentik 공급자에서 확인 가능) - 응용 프로그램 ID : 클라이언트 ID
- 응용 프로그램 비밀 : 클라이언트 기밀
- 리디렉션 URI : https://dsm.example.com/#/signin
- 권한 부여 범위 : openid email profile
- 사용자 이름 클레임 : sub(또는 preferred_username)

여기까지 입력을 완료했다면 저장 클릭 후 로그아웃을 해봅니다.
그러면 새로운 SSO인증 창이 나타나게 되고, 화살표를 클릭해보면 2~3초의 시간이 경과된 후 팝업창이 나타나 Authentik 로그인을 요구합니다.


로그인 수행 결과, 시놀로지에서 생성한 적 없는 계정이어도 LDAP를 통해 연동된 계정이기 때문에, 문제 없이 로그인됩니다.

LDAP를 통해 생성된 계정의 초기권한을 조절하여 어플리케이션, 공유 폴더 등에 대한 접근권한을 설정해두면 유용하게 사용할 수 있게 됩니다.
문제 해결(Trouble-Shooting)
Synology Drive등 DSM 어플 로그인 불가 문제
시놀로지 어플리케이션에 대해 별도의 subdomain을 연동하고(예를 들어 Synology Drive와 https://dsmdrive.example.com을 연동), Authentik을 이용해 로그인하려 하면 아래처럼 에러메세지가 출력됩니다.

Redirect URI를 여러 개 구성하면 해결될 문제로 보이지만, 실제로 여러 개 구성시 가장 최근에 구성된 URI를 따라가기 때문에, 기존에 설정한 어플리케이션에서 문제가 발생하게 됩니다.
위와 같은 에러를 해결하기 위해 로그인 포털에서 subdirectory를 지정한 뒤, 외부 도메인을 이용해서 구성할 수 있습니다.
아래 스크린샷을 예로 들면, https://dsm.example.com/drive로 접속하여 SSO를 수행할 수 있게 됩니다.
