요즘처럼 보안이 중요한 시대, 간단한 로그인 시스템만으로는 부족합니다. 특히 여러 서비스에 공통된 인증 시스템이 필요하거나, 민감한 정보가 오가는 환경이라면 더욱 그렇죠. 오늘 소개할 Authelia는 이러한 보안 문제를 확실하게 해결해주는 오픈소스 인증/인가 솔루션입니다.
✅ Authelia란?
Authelia는 자체 호스팅이 가능한 인증/인가(Authentication & Authorization) 서버로, 다음과 같은 기능을 제공합니다:
- 2단계 인증(2FA)
- 싱글 사인온(SSO)
- 세분화된 접근 제어
- LDAP/AD 통합
- 역방향 프록시 연동(Nginx, Traefik 등)
주로 홈서버 유저나 기업 내부망에서 자주 사용되며, 개인부터 엔터프라이즈까지 폭넓게 활용됩니다.
🧩 Authelia 주요 기능
기능설명
✅ 2FA 지원 | TOTP (Google Authenticator), WebAuthn (U2F), 이메일 OTP 등 |
🧑🤝🧑 LDAP/AD 통합 | 기업용 Active Directory 또는 OpenLDAP 연동 |
🧱 접근 제어 | IP/도메인/사용자 그룹 기준으로 정책 설정 가능 |
🔐 SSO 지원 | 하나의 로그인으로 여러 애플리케이션 접속 가능 |
💻 역방향 프록시 통합 | Nginx, Traefik, Caddy 등과 원활하게 연동 가능 |
🎛️ 심플한 UI | 사용자 친화적인 웹 기반 대시보드 제공 |
🛠️ 설치 방법 (Docker 기반)
Authelia는 Docker로 간편하게 배포할 수 있습니다.
1. 디렉토리 구성
authelia/
├── docker-compose.yml
├── config/
│ ├── configuration.yml
│ └── users_database.yml
2. Docker Compose 파일 예시
version: '3.8'
services:
authelia:
image: authelia/authelia
volumes:
- ./config:/config
ports:
- "9091:9091"
environment:
- TZ=Asia/Seoul
restart: unless-stopped
3. 실행
docker-compose up -d
⚙️ 설정 요약
configuration.yml 주요 설정
authentication_backend:
file:
path: /config/users_database.yml
access_control:
default_policy: deny
rules:
- domain: "secure.example.com"
policy: two_factor
session:
secret: your_secret_key
redis:
host: redis
port: 6379
totp:
issuer: authelia.com
사용자 DB 예시 (users_database.yml)
users:
user1:
password: "$argon2id$v=19$..." # 해시 비밀번호
email: user1@example.com
groups:
- admin
🌐 실전 활용 시나리오
1. 홈랩 서비스 보호
Nextcloud, Home Assistant 등의 웹 서비스에 2FA 적용
access_control:
rules:
- domain: "home.example.com"
policy: two_factor
Nginx 연동 예시:
location / {
auth_request /authelia-auth;
error_page 401 =302 https://auth.example.com?rd=$request_uri;
}
2. 부서별 내부 시스템 접근 제어
예: hr.example.com은 HR 부서만 접근
access_control:
rules:
- domain: "hr.example.com"
policy: two_factor
subject:
- group: hr
3. 외부 접근 차단 (내부망 전용)
access_control:
rules:
- domain: "internal.example.com"
policy: two_factor
networks:
- 192.168.1.0/24
4. WebAuthn으로 강력한 2FA 구현
설정 예시:
webauthn:
display_name: Authelia
timeout: 60s
사용자는 웹 UI에서 보안 키 등록 가능
🔗 통합 가이드
Traefik 연동
labels:
- "traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.example.com"
LDAP/AD 연동
authentication_backend:
ldap:
url: ldap://ldap.example.com
user: cn=admin,dc=example,dc=com
password: your_ldap_password
base_dn: dc=example,dc=com
⚠️ 주의사항
- HTTPS 필수: Authelia는 반드시 TLS 환경에서 사용해야 합니다.
- Redis 분리 운영 권장: 세션 정보를 안정적으로 저장하려면 외부 Redis 사용 권장
- 설정 파일 백업 필수: configuration.yml, users_database.yml은 정기 백업하세요.
✨ 마무리
Authelia는 단순한 인증 서버를 넘어 현대적인 보안 기능을 누구나 활용할 수 있도록 도와주는 솔루션입니다. 홈 서버든 기업 내부망이든, 오픈소스로 비용 부담 없이 엔터프라이즈급 보안 인프라를 구축할 수 있습니다.
📘 공식 문서: https://www.authelia.com
지금 바로 도입해보세요!
🔐 안전한 디지털 환경, Authelia로 시작하세요.
원하시면 Markdown 블로그 포맷이나 HTML 템플릿으로도 변환해드릴 수 있습니다.
댓글