Traefik DigestAuth 미들웨어
본문
DigestAuth
DigestAuth 미들웨어는 인증된 사용자에게만 서비스에 대한 접근을 허용해줘요.
설정 예시
구조화 (YAML)
# 사용자 목록 선언
http:
middlewares:
test-auth:
digestAuth:
users:
- "test:traefik:a2688e031edb4be6a3797f3882655c05"
- "test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
구조화 (TOML)
# 사용자 목록 선언
[http.middlewares]
[http.middlewares.test-auth.digestAuth]
users = [
"test:traefik:a2688e031edb4be6a3797f3882655c05",
"test2:traefik:518845800f9e2bfb1f1f740ec24f074e",
]
Labels
# 사용자 목록 선언
labels:
- "traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
Tags
// 사용자 목록 선언
{
//...
"Tags" : [
"traefik.http.middlewares.test-auth.digestauth.users=test:traefik:a2688e031edb4be6a3797f3882655c05,test2:traefik:518845800f9e2bfb1f1f740ec24f074e"
]
}
Kubernetes
# 사용자 목록 선언
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: test-auth
spec:
digestAuth:
secret: userssecret
설정 옵션
| 필드 | 설명 | 기본값 | 필수 |
| users | 인증된 사용자 배열이에요. 각 사용자는 name:realm:encoded-password 형식으로 선언해야 해요. users 옵션은 Kubernetes secrets를 지원해요. (자세한 내용은 여기) | [] | 아니요 |
| usersFile | 미들웨어의 인증된 사용자를 담고 있는 외부 파일 경로예요. 파일 내용은 name:realm:encoded-password 목록이에요. (자세한 내용은 여기) | "" | 아니요 |
| realm | 인증의 realm을 커스터마이징할 수 있어요. | "traefik" | 아니요 |
| headerField | 인증된 사용자를 저장할 헤더 필드를 정의할 수 있어요. | "" | 아니요 |
| removeHeader | 요청을 서비스로 전달하기 전에 인증 헤더를 제거할 수 있어요. | false | 아니요 |
비밀번호 형식
비밀번호를 생성하려면 htdigest를 사용하세요.
users & usersFile
-
users와 usersFile을 모두 제공하면 병합돼요. users의 값이 usersFile의 내용보다 우선해요.
-
Kubernetes에서는 파일 경로를 참조할 수 없기 때문에, Kubernetes IngressRoute에서는 users 및 usersFile 필드를 사용하지 않아요. 대신 secret 필드를 사용하세요.
Kubernetes Secrets
Kubernetes에서는 users 또는 usersFile 필드를 사용하지 않아요. 대신 Middleware 리소스의 secret 필드로 Kubernetes secret을 참조해요. 이 secret은 다음 두 가지 유형 중 하나일 수 있어요:
-
kubernetes.io/basic-auth secret: 이 secret 유형은 username과 password 두 개의 키를 담고 있어요. 하지만 일반적으로 적은 수의 사용자에게 적합해요. 이 키들은 어떤 방식으로도 해시되거나 암호화되지 않으므로, 다른 방법보다 덜 안전하다는 점을 참고하세요.
-
users 필드를 가진 Opaque secret: 여기서 secret은 단일 문자열 필드(흔히 users라고 함)를 담고 있으며, 각 줄이 한 사용자를 나타내요. 이 방식으로 하나의 secret에 여러 사용자를 저장할 수 있어요.
프로덕션에서 Traefik OSS를 사용 중이신가요?
직장에서 Traefik을 사용하고 있다면, 엔터프라이즈급 API 게이트웨이 기능이나 Traefik OSS용 상용 지원을 추가하는 걸 고려해 보세요.
-
API Gateway 데모 영상 보기
-
24/7/365 OSS 지원 요청하기
Traefik OSS에 API 게이트웨이 기능을 추가하는 건 빠르고 매끄러워요. rip-and-replace 방식이 없고 모든 구성이 그대로 유지돼요. 짧은 영상으로 직접 확인해 보세요.