Authentik으로 홈서버 SSO 구현하기 (7) – 시놀로지 회원 가입(계정 자동 생성) 구현하기

개요

시놀로지는 다 좋고 편한데 회원 가입을 능동적으로 처리하는 기능이 없습니다. 기본 기능만을 사용할 경우, 관리자가 계정을 생성하고 사용자가 최초 로그인 시 무조건 비밀번호를 변경하도록 구성하는 것 정도가 최선이죠.

왜냐하면, 계정 컨트롤은 시놀로지 DSM이 수행해야 할 본연의 기능이고, 외부 클라이언트는 ‘인증’정도만 거들어주게 되어있기 때문입니다.

그런데, AD/LDAP의 경우에는, DSM을 클라이언트로 가입시키면, 해당 서비스에 있는 계정이 자동적으로 연동됩니다. 이를 이용해서 관리자의 특별한 행동이 없어도, 이용자가 자동적으로 시놀로지 계정을 얻을 수 있도록 구성할 수 있습니다.

Authentik 구성하기

Authentik 회원 가입 구성

먼저, 기본적으로 Authentik에서 이용자가 스스로 계정을 생성할 수 있도록 환경을 만들어 주어야 합니다. 이를 위한 선택지에는, 외부 OpenID 소스를 연동(구글 등)하거나, 비밀번호 규칙을 설정한 뒤 회원 가입 스테이지를 열어주는 등의 방법이 있습니다.

해당 내용은 이전에 작성한 글의 링크로 대신하겠습니다.

Authentik으로 홈서버 SSO 구현하기 (6) – 회원 가입, 초대 코드, 소셜 로그인

LDAP 구성

Authentik의 계정 정보를 DSM에서 연동하기 위해서는 Authentik의 LDAP가 필수적으로 구성되어야 합니다.

LDAP를 구성하고, 시놀로지 DSM과 연동하는 방법 역시 기존 글의 링크로 대신하겠습니다.

Authentik은 LDAP 정보를 넘겨줄 때 uuid값을 넘겨주기 때문에, 클라이언트 측에선 계정ID가 해쉬값으로 넘어오는 단점이 있습니다.

따라서 아래 링크글의 내용대로 맵핑 시 uid=cn으로 매핑해주는 과정이 꼭 필요합니다.

Authentik으로 홈서버 SSO 구현하기 (2) – LDAP

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를 수행할 수 있게 됩니다.


관련 글

Authentik으로 홈서버 SSO 구현하기 (1) – 설치

Authentik으로 홈서버 SSO 구현하기 (2) – LDAP

Authentik으로 홈서버 SSO 구현하기 (3) – OAuth/OpenID

Authentik으로 홈서버 SSO 구현하기 (4) – SAML

Authentik으로 홈서버 SSO 구현하기 (5) – Proxy

Authentik으로 홈서버 SSO 구현하기 (6) – 회원 가입, 초대 코드, 소셜 로그인

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤