개요
안녕하세요 히단 입니다.
이번 포스팅에서는 오픈소스 인증 및 SSO 솔루션인 Authentik을 Docker 기반으로 설치하는 방법에 대해 알아보겠습니다.
1. Authentik이란?
Authentik은 로그인과 사용자 인증을 쉽게 관리할 수 있도록 도와주는 프로그램입니다.
여러 서비스에서 하나의 계정으로 로그인할 수 있게 해주는 SSO(Single Sign-On) 기능을 제공합니다.
✅ Authentik의 주요 기능
- 여러 로그인 방식 지원 (구글, 마이크로소프트, LDAP 등)
- 웹 브라우저에서 쉽게 설정 가능
- 보안 강화 기능 제공
- Docker를 이용한 간편한 설치
2. Authentik 설치하기
먼저 authentik 디렉터리를 생성합니다.
$ mkdir authentik
다음 디렉터리를 이동하고 authentik에서 제공하는 최신 docker-compose.yml 파일을 다운로드 합니다.
$ cd authentik/
$ wget https://goauthentik.io/docker-compose.yml
--2025-02-07 16:01:16-- https://goauthentik.io/docker-compose.yml
Resolving goauthentik.io (goauthentik.io)... 52.76.120.174, 52.220.155.145, 2406:da18:b3d:e200::65, ...
Connecting to goauthentik.io (goauthentik.io)|52.76.120.174|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-yaml]
Saving to: ‘docker-compose.yml’
docker-compose.yml [ <=> ] 2.65K --.-KB/s in 0s
2025-02-07 16:01:16 (14.4 MB/s) - ‘docker-compose.yml’ saved [2710]
다운로드한 `docker-compose.yml` 파일에는 다음과 같은 역할의 서비스가 정의되어 있습니다.
- postgres : Authentik에서 사용하는 데이터베이스
- redis : 캐시/큐 작업 처리용
- authentik-server : 웹 UI 및 API 제공
- authentik-worker : 백그라운드 작업 처리
만약 새로 authentik을 설치하는 경우, password와 secret key를 생성해야 합니다.
아래 명령어를 통해 새로운 password와 secret key를 생성하고, .env 파일로 저장할 수 있습니다.
- PG_PASS : PostgreSQL 데이터베이스 비밀번호
- AUTHENTIK_SECRET_KEY : authentik 앱의 암호화 키
$ echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
$ echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
옵션으로 에러 리포팅을 활성화 하시려면 다음 명령어로 옵션을 .env 파일에 추가해주세요.
- AUTHENTIK_ERROR_REPORTING__ENABLED : 에러 보고 활성화 여부
$ echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env
기본적으로 authentik은 HTTP의 경우 포트 9000에서, HTTPS의 경우 포트 9443에서 내부적으로 수신합니다.
하지만 변경이 필요하신 경우, 다음과 같이 .env 파일에 변수를 추가해서 설정할 수 있습니다
COMPOSE_PORT_HTTP=80
COMPOSE_PORT_HTTPS=443
다음으로 docker compose 명령어로 컨테이너를 생성 및 실행합니다.
$ docker compose up -d
참고로 docker-compose.yml 파일은 다운로드할 당시의 최신 버전을 가져옵니다.
따라서 새로운 버전으로 업그레이드가 필요한 경우, 아래와 같이 최신 버전을 지정해서 새로운 docker-compose.yml 파일을 다운로드 하면 된다고 하네요.
wget -O docker-compose.yml https://goauthentik.io/version/2024.12/docker-compose.yml
docker compose up -d
이제 브라우저에서 http://{my_server_ip}:9000/if/flow/initial-setup/ 로 접속해서, 기본 관리자 계정을 설정해주세요.
설정을 완료하시면, 관리자 계정으로 로그인 되면서 아래와 같이 비어있는 설정 화면이 기본적으로 보실 수 있을 겁니다.
여기까지 하시면 Authentik 설치는 완료가 되었습니다.
마무리
여기까지 Ubuntu에서 Docker를 사용하여 Authentik을 설치하는 방법을 알아보았습니다!
이제 Authentik이 준비되었으니, 다음 글에서는 Grafana를 Authentik SSO로 연동하는 방법을 다뤄보겠습니다!
감사합니다. 😊