ngx_http_auth_basic_module 모듈을 사용하면 “HTTP Basic Authentication” 프로토콜으로 사용자 이름과 비밀번호를 검증하여 리소스 액세스를 제한할 수 있습니다.
액세스는 주소, 하위 요청의 결과, JWT로 제한할 수 있습니다. 주소와 비밀번호를 사용한 액세스 동시 제한은 satisfy 명령으로 제어합니다.
예제 구성
location / {
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
}
Directives
Syntax: auth_basic string | off;
Default: auth_basic off;
Context: http, server, location, limit_except
“HTTP Basic Authentication” 프로토콜을 사용한 사용자 이름과 비밀번호 인증을 활성화합니다. 지정된 매개변수는 realm으로 사용합니다. 매개변수 값은 변수를 포함할 수 있습니다(1.3.10, 1.2.7). 특수 값 off는 이전 구성 수준에서 상속한 auth_basic 명령의 효과를 상쇄합니다.
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
사용자 이름과 비밀번호를 다음과 같은 형식으로 저장하는 파일을 지정합니다.
# comment
name1:password1
name2:password2:comment
name3:password3
file 이름은 변수를 포함할 수 있습니다.
지원되는 비밀번호 유형은 다음과 같습니다.
- crypt() 함수로 암호화합니다. Apache HTTP Server 배포판의 “htpasswd” 유틸리티나 “openssl passwd” 명령을 사용하여 생성할 수 있습니다.
- MD5 기반 비밀번호 알고리즘의 Apache 버전(apr1)으로 해싱 처리합니다. 동일한 도구로 생성할 수 있습니다.
- RFC 2307에 나와 있는 것처럼 “{scheme}data” 구문(1.0.3+)으로 지정합니다. 현재 구현된 체계에는 PLAIN(예시, 실제 사용 불가), SHA(1.3.13)(일반 SHA-1 해싱, 실제 사용 불가), SSHA(salt 처리된 SHA-1 해싱, OpenLDAP, Dovecot 등 일부 소프트웨어 패키지에서 사용)가 있습니다.
SHA 체계에 대한 지원은 다른 웹 서버에서의 마이그레이션을 돕기 위해 추가되었습니다. 새로운 비밀번호에는 사용해서는 안 됩니다. 이 체계에서 사용하는 salt 처리되지 않은 SHA-1 해싱은 레인보우 테이블 공격에 취약합니다.