mod_auth_digest - Apache HTTP Server

Apache Server 2.0

<-

아파치 모듈 mod_auth_digest

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.
설명:MD5 Digest Authentication을 사용한 사용자인증.
상태:Experimental
모듈명:auth_digest_module
소스파일:mod_auth_digest.c

요약

이 모듈은 HTTP Digest Authentication을 구현한다. 그러나 많은 테스트를 거치지 않은 실험적인 모듈이다.

top

Digest Authentication 사용하기

MD5 Digest authentication은 매우 쉽게 사용할 수 있다. 모든 AuthGroupFileAuthDigestGroupFile로 변경하고, AuthType BasicAuthUserFile 대신 AuthType DigestAuthDigestFile을 사용하여 간단히 인증을 설정할 수 있다. 그리고 최소한 보호하려는 영역의 기본 URI을 AuthDigestDomain 지시어에 사용한다.

htdigest 도구를 사용하여 사용자 (문자)파일을 만들 수 있다.

예제:

<Location /private/>
AuthType Digest
AuthName "private area"
AuthDigestDomain /private/ http://mirror.my.dom/private2/
AuthDigestFile /web/auth/.digest_pw
Require valid-user
</Location>

주의

Digest authentication은 Basic authentication보다 더 안전한 암호시스템을 제공하지만, 브라우저가 지원해야 한다. 2002년 11월 현재 digest authentication을 지원하는 브라우저에는 Opera, (질의문자열과 함께 사용하면 안되지만 - 해결방법은 아래 "MS Internet Explorer 문제 해결하기"를 참고) MS Internet Explorer, Amaya, Mozilla, 버전 7 이후의 Netscape 등이 있다. digest authentication이 basic authentication 만큼 널리 구현되지 않았기때문에 주의해서 사용해야 한다.

top

MS Internet Explorer 문제 해결하기

현재 Internet Explorer는 Digest authentication 사용시 질의문자열이 있는 GET 요청을 RFC와 다르게 처리하는 문제가 있다. 몇가지 방법으로 이 문제를 해결할 수 있다.

첫번째는 프로그램에 자료를 넘겨주기위해 GET 대신 POST 요청을 사용하는 방법이다. 이 방법이 가능하다면 가장 간단한 해결책이다.

또, 아파치 2.0.51부터 AuthDigestEnableQueryStringHack 환경변수를 제공하여 문제를 해결한다. 요청에 AuthDigestEnableQueryStringHack을 설정하면 아파치는 MSIE 버그를 피해갈 조치를 취하고 요청 URI를 digest 비교에서 제외한다. 이 방법은 다음과 같이 사용한다.

MSIE에서 Digest Authentication 사용하기:

BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On

선택적인 환경변수 설정에 대한 자세한 내용은 BrowserMatch 지시어를 참고하라.

top

AuthDigestAlgorithm 지시어

설명:digest authentication에서 challenge와 response hash를 계산하는 알고리즘을 선택한다
문법:AuthDigestAlgorithm MD5|MD5-sess
기본값:AuthDigestAlgorithm MD5
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest

AuthDigestAlgorithm 지시어는 challenge와 response hash를 계산하는 알고리즘을 선택한다.

MD5-sess는 아직 완전히 구현되지 않았다.
top

AuthDigestDomain 지시어

설명:digest authentication에서 같은 보호영역에 속하는 URI들
문법:AuthDigestDomain URI [URI] ...
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest

AuthDigestDomain 지시어는 같은 보호영역에 있는 (예를 들어 같은 영역과 사용자명/암호 정보를 사용하는) URI들을 지정한다. 지정한 URI는 접두사로 사용한다. , 클라이언트는 URI "아래" 모두를 같은 사용자명/암호로 보호한다고 가정한다. URI는 (, 스킴(scheme), 호스트, 포트 등을 포함하는) 절대 URL이거나 상대 URI이다.

이 지시어는 항상 지정해야 하며, 최소한 영역들의 기본 URI(들)를 포함해야 한다. 생략하면 클라이언트는 이 서버로 보내는 모든 요청에 Authorization 헤더를 포함한다. 그러면 요청의 크기가 커지며, AuthDigestNcCheck를 사용한다면 성능에 나쁜 영향을 줄 수 있다.

다른 서버의 URI를 지정하면, (이를 이해하는) 클라이언트는 여러 서버마다 매번 사용자에게 묻지않고 같은 사용자명/암호를 사용할 수 있다.

top

AuthDigestFile 지시어

설명:digest authentication에 사용할 사용자명과 인코딩된 암호 목록을 저장한 문서파일 위치
문법:AuthDigestFile file-path
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest

AuthDigestFile 지시어는 digest authentication에 사용할 사용자명과 인코딩된 암호를 저장하는 문서파일명을 지정한다. File-path는 사용자정보 파일의 절대경로이다.

이 파일 내용은 특별한 형식이 있다. 아파치 배포본의 support/ 하위디렉토리에 있는 htdigest 도구를 사용하여 이런 형식의 파일을 만들 수 있다.

top

AuthDigestGroupFile 지시어

설명:digest authentication에 사용할 그룹 목록을 저장한 문서파일명
문법:AuthDigestGroupFile file-path
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest

AuthDigestGroupFile 지시어는 그룹과 그룹의 구성원들(사용자명) 목록을 저장하는 문서파일명을 지정한다. File-path는 그룹정보 파일의 절대경로이다.

그룹파일은 그룹명 뒤에 콜론, 그뒤에 그룹에 속한 사용자명들을 공백으로 구분하여 한 줄로 기록한다. 예를 들어 다음과 같다.

mygroup: bob joe anne

큰 문자파일을 검색하는 것이 매우 비효율적임을 명심하라.

보안:

AuthGroupFile을 웹서버 문서들 밖에 저장해야 한다. 그룹파일이 보호하는 디렉토리 안에 그룹파일을 두지 마라. 그렇지 않으면 클라이언트가 AuthGroupFile을 다운받을 수도 있다.

top

AuthDigestNcCheck 지시어

설명:서버가 보내는 nonce-count를 검사할지 여부
문법:AuthDigestNcCheck On|Off
기본값:AuthDigestNcCheck Off
사용장소:주서버설정
상태:Experimental
모듈:mod_auth_digest
아직 구현되지 않았다.
top

AuthDigestNonceFormat 지시어

설명:nonce를 만드는 방법을 결정한다
문법:AuthDigestNonceFormat format
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest
아직 구현되지 않았다.
top

AuthDigestNonceLifetime 지시어

설명:서버 nonce가 유효한 기간
문법:AuthDigestNonceLifetime seconds
기본값:AuthDigestNonceLifetime 300
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest

AuthDigestNonceLifetime 지시어는 서버 nonce가 유효한 기간을 조절한다. 클라이언트가 만기된 nonce를 가지고 서버에 접근하면 서버는 stale=true와 함께 401을 반환한다. seconds가 0보다 크면 nonce가 유효한 기간을 지정한다. 아마도 10 초보다 작게 설정하면 안된다. seconds가 0보다 작으면 nonce는 영원히 만기되지 않는다.

top

AuthDigestQop 지시어

설명:digest authentication가 사용할 보호수준(quality-of-protection)을 지정한다.
문법:AuthDigestQop none|auth|auth-int [auth|auth-int]
기본값:AuthDigestQop auth
사용장소:directory, .htaccess
Override 옵션:AuthConfig
상태:Experimental
모듈:mod_auth_digest

AuthDigestQop 지시어는 보호수준(quality-of-protection)을 지정한다. auth는 (사용자명/암호) 인증만 하고, auth-int는 인증과 완결성 검사를 (MD5 해쉬도 계산하여 검사한다) 한다. none은 (완결성 검사를 하지않는) 오래된 RFC-2069 digest 알고리즘을 사용한다. authauth-int를 모두 지정할 수 있다. 이 경우 브라우저는 어떤 것을 사용할지 선택한다. 브라우저가 어던 이유에서건 challenge를 좋아하지 않는다면 none을 사용해야 한다.

auth-int는 아직 구현되지 않았다.
top

AuthDigestShmemSize 지시어

설명:클라이언트를 추적하기위해 할당하는 공유메모리량
문법:AuthDigestShmemSize size
기본값:AuthDigestShmemSize 1000
사용장소:주서버설정
상태:Experimental
모듈:mod_auth_digest

AuthDigestShmemSize 지시어는 클라이언트를 추적하기위해 서버가 시작할때 할당하는 공유메모리량을 정의한다. 공유메모리는 최소한 하나의 클라이언트를 추적하기위해 필요한 공간보다 작을 수 없음을 주의하라. 이 값은 시스템에 따라 다르다. 정확한 값을 알려면 AuthDigestShmemSize0으로 설정하고 서버를 시작한후 오류문을 참고하라.

size는 보통 바이트 단위이지만, 뒤에 KM을 사용하여 KBytes나 MBytes를 나타낼 수 있다. 예를 들어, 다음 지시어들은 모두 같다:

AuthDigestShmemSize 1048576
AuthDigestShmemSize 1024K
AuthDigestShmemSize 1M