mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1745885 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			330 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			330 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="EUC-KR" ?>
 | 
						|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 | 
						|
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
 | 
						|
<!-- English Revision: 105989:1745060 (outdated) -->
 | 
						|
 | 
						|
<!--
 | 
						|
 Licensed to the Apache Software Foundation (ASF) under one or more
 | 
						|
 contributor license agreements.  See the NOTICE file distributed with
 | 
						|
 this work for additional information regarding copyright ownership.
 | 
						|
 The ASF licenses this file to You under the Apache License, Version 2.0
 | 
						|
 (the "License"); you may not use this file except in compliance with
 | 
						|
 the License.  You may obtain a copy of the License at
 | 
						|
 | 
						|
     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
 Unless required by applicable law or agreed to in writing, software
 | 
						|
 distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
 See the License for the specific language governing permissions and
 | 
						|
 limitations under the License.
 | 
						|
-->
 | 
						|
 | 
						|
<modulesynopsis metafile="mod_auth_digest.xml.meta">
 | 
						|
 | 
						|
<name>mod_auth_digest</name>
 | 
						|
<description>MD5 Digest Authentication을 사용한 사용자인증.</description>
 | 
						|
<status>Experimental</status>
 | 
						|
<sourcefile>mod_auth_digest.c</sourcefile>
 | 
						|
<identifier>auth_digest_module</identifier>
 | 
						|
 | 
						|
<summary>
 | 
						|
    <p>이 모듈은 HTTP Digest Authentication을 구현한다.
 | 
						|
    그러나 많은 테스트를 거치지 않은 실험적인 모듈이다.</p>
 | 
						|
</summary>
 | 
						|
 | 
						|
<seealso><directive module="core">AuthName</directive></seealso>
 | 
						|
<seealso><directive module="core">AuthType</directive></seealso>
 | 
						|
<seealso><directive module="core">Require</directive></seealso>
 | 
						|
<seealso><directive module="core">Satisfy</directive></seealso>
 | 
						|
 | 
						|
<section id="using"><title>Digest Authentication 사용하기</title>
 | 
						|
 | 
						|
    <p>MD5 Digest authentication은 매우 쉽게 사용할 수 있다.
 | 
						|
    <code>AuthType Basic</code>과 <directive
 | 
						|
    module="mod_auth_basic">AuthBasicProvider</directive> 대신
 | 
						|
    <code>AuthType Digest</code>와 <directive
 | 
						|
    module="mod_auth_digest">AuthDigestProvider</directive>를
 | 
						|
    사용하여 간단히 인증을 설정할 수 있다. 그리고 최소한 보호하려는
 | 
						|
    영역의 기본 URI을 <directive module="mod_auth_digest"
 | 
						|
    >AuthDigestDomain</directive> 지시어에 사용한다.</p>
 | 
						|
 | 
						|
    <p><a href="../programs/htdigest.html">htdigest</a> 도구를
 | 
						|
    사용하여 사용자 (문자)파일을 만들 수 있다.</p>
 | 
						|
 | 
						|
    <example><title>예제:</title>
 | 
						|
      <Location /private/><br />
 | 
						|
      <indent>
 | 
						|
        AuthType Digest<br />
 | 
						|
        AuthName "private area"<br />
 | 
						|
        AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
 | 
						|
	<br />
 | 
						|
	AuthDigestProvider file<br />
 | 
						|
        AuthUserFile /web/auth/.digest_pw<br />
 | 
						|
        Require valid-user<br />
 | 
						|
      </indent>
 | 
						|
      </Location>
 | 
						|
    </example>
 | 
						|
 | 
						|
    <note><title>주의</title> 
 | 
						|
    <p>Digest authentication은 Basic authentication보다 더
 | 
						|
    안전하지만, 브라우저가 지원해야 한다. 2002년 11월 현재 digest
 | 
						|
    authentication을 지원하는 브라우저에는 <a
 | 
						|
    href="http://www.w3.org/Amaya/">Amaya</a>, <a
 | 
						|
    href="http://konqueror.kde.org/">Konqueror</a>, (Windows용은
 | 
						|
    질의문자열과 함께 사용하면 안되지만 - 해결방법은 아래 "<a
 | 
						|
    href="#msie">MS Internet Explorer 문제 해결하기</a>"를 참고)
 | 
						|
    Mac OS X와 Windows용 <a
 | 
						|
    href="http://www.microsoft.com/windows/ie/">MS Internet
 | 
						|
    Explorer</a>, <a href="http://www.mozilla.org">Mozilla</a>,
 | 
						|
    <a href="http://channels.netscape.com/ns/browsers/download.jsp"
 | 
						|
    >Netscape</a> 버전 7, <a href="http://www.opera.com/">Opera</a>,
 | 
						|
    <a href="http://www.apple.com/safari/">Safari</a> 등이 있다.
 | 
						|
    <a href="http://lynx.isc.org/">lynx</a>는 digest authentication을
 | 
						|
    지원하지 <strong>않는다</strong>. digest authentication이
 | 
						|
    basic authentication 만큼 널리 구현되지 않았기때문에 모든
 | 
						|
    사용자가 지원하는 브라우저를 사용하는 경우에만 사용해야
 | 
						|
    한다.</p>
 | 
						|
    </note>
 | 
						|
</section>
 | 
						|
 | 
						|
<section id="msie"><title>MS Internet Explorer 문제 해결하기</title>
 | 
						|
    <p>현재 Windows용 Internet Explorer는 Digest authentication
 | 
						|
    사용시 질의문자열이 있는 <code>GET</code> 요청을 RFC와 다르게
 | 
						|
    처리하는 문제가 있다. 몇가지 방법으로 이 문제를 해결할 수
 | 
						|
    있다.</p>
 | 
						|
 | 
						|
    <p>
 | 
						|
    첫번째는 프로그램에 자료를 넘겨주기위해 <code>GET</code>
 | 
						|
    대신 <code>POST</code> 요청을 사용하는 방법이다. 이 방법이
 | 
						|
    가능하다면 가장 간단한 해결책이다.
 | 
						|
    </p>
 | 
						|
 | 
						|
    <p>또, 아파치 2.0.51부터 <code>AuthDigestEnableQueryStringHack</code>
 | 
						|
    환경변수를 제공하여 문제를 해결한다. 요청에
 | 
						|
    <code>AuthDigestEnableQueryStringHack</code>을 설정하면
 | 
						|
    아파치는 MSIE 버그를 피해갈 조치를 취하고 요청 URI를 digest
 | 
						|
    비교에서 제외한다. 이 방법은 다음과 같이 사용한다.</p>
 | 
						|
 | 
						|
    <example><title>MSIE에서 Digest Authentication 사용하기:</title>
 | 
						|
    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
 | 
						|
    </example>
 | 
						|
 | 
						|
    <p>선택적인 환경변수 설정에 대한 자세한 내용은 <directive
 | 
						|
    module="mod_setenvif">BrowserMatch</directive> 지시어를
 | 
						|
    참고하라.</p>
 | 
						|
</section>
 | 
						|
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestProvider</name>
 | 
						|
<description>이 위치에 대한 인증제공자를 지정한다</description>
 | 
						|
<syntax>AuthDigestProvider On|Off|<var>provider-name</var>
 | 
						|
[<var>provider-name</var>] ...</syntax>
 | 
						|
<default>AuthDigestProvider On</default>
 | 
						|
<contextlist><context>directory</context><context>.htaccess</context>
 | 
						|
</contextlist>
 | 
						|
<override>AuthConfig</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p><directive>AuthDigestProvider</directive> 지시어는 이
 | 
						|
    위치에서 사용자를 인증할 제공자를 지정한다. 값이
 | 
						|
    <code>On</code>이면 기본제공자(<code>file</code>)를 사용한다.
 | 
						|
    <module>mod_authn_file</module> 모듈이 <code>file</code>
 | 
						|
    제공자를 구현하기때문에 서버에 이 모듈이 있는지 확인해야
 | 
						|
    한다.</p>
 | 
						|
 | 
						|
    <p>제공자는 <module>mod_authn_dbm</module>과
 | 
						|
    <module>mod_authn_file</module>을 참고하라.</p>
 | 
						|
 | 
						|
    <p>값이 <code>Off</code>이면 제공자 목록을 지우고 기본상태로
 | 
						|
    돌아간다.</p>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestQop</name>
 | 
						|
<description>digest authentication가 사용할
 | 
						|
보호수준(quality-of-protection)을 지정한다.</description>
 | 
						|
<syntax>AuthDigestQop none|auth|auth-int [auth|auth-int]</syntax>
 | 
						|
<default>AuthDigestQop auth</default>
 | 
						|
<contextlist><context>directory</context><context>.htaccess</context>
 | 
						|
</contextlist>
 | 
						|
<override>AuthConfig</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p><directive>AuthDigestQop</directive> 지시어는
 | 
						|
    <dfn>보호수준(quality-of-protection)</dfn>을 지정한다.
 | 
						|
    <code>auth</code>는 (사용자명/암호) 인증만 하고,
 | 
						|
    <code>auth-int</code>는 인증과 완결성 검사를 (MD5 해쉬도
 | 
						|
    계산하여 검사한다) 한다. <code>none</code>은 (완결성 검사를
 | 
						|
    하지않는) 오래된 RFC-2069 digest 알고리즘을 사용한다.
 | 
						|
    <code>auth</code>와 <code>auth-int</code>를 모두 지정할
 | 
						|
    수 있다. 이 경우 브라우저는 어떤 것을 사용할지 선택한다.
 | 
						|
    브라우저가 어던 이유에서건 challenge를 좋아하지 않는다면
 | 
						|
    <code>none</code>을 사용해야 한다.</p>
 | 
						|
 | 
						|
    <note>
 | 
						|
      <code>auth-int</code>는 아직 구현되지 않았다.
 | 
						|
    </note>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestNonceLifetime</name>
 | 
						|
<description>서버 nonce가 유효한 기간</description>
 | 
						|
<syntax>AuthDigestNonceLifetime <var>seconds</var></syntax>
 | 
						|
<default>AuthDigestNonceLifetime 300</default>
 | 
						|
<contextlist><context>directory</context><context>.htaccess</context>
 | 
						|
</contextlist>
 | 
						|
<override>AuthConfig</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p><directive>AuthDigestNonceLifetime</directive> 지시어는
 | 
						|
    서버 nonce가 유효한 기간을 조절한다. 클라이언트가 만기된
 | 
						|
    nonce를 가지고 서버에 접근하면 서버는 <code>stale=true</code>와
 | 
						|
    함께 401을 반환한다. <var>seconds</var>가 0보다 크면 nonce가
 | 
						|
    유효한 기간을 지정한다. 아마도 10 초보다 작게 설정하면 안된다.
 | 
						|
    <var>seconds</var>가 0보다 작으면 nonce는 영원히 만기되지
 | 
						|
    않는다. <!-- 아직 구현되지 않았음: <var>seconds</var>가
 | 
						|
    0이면 클라이언트는 정확히 한번만 nonce를 사용할 수 있다.
 | 
						|
    한번만 사용할 수 있는 nonce는 재생공격(replay attack)에
 | 
						|
    대해 더 안전한 보안을 제공하지만, 브라우저가 요청들을 연속해서
 | 
						|
    보내거나 여러 연결을 동시에 할 수가 없어서 성능이 상당히
 | 
						|
    떨어질 수 있음을 주의하라. 브라우저는 nonce를 이미 사용하였는지
 | 
						|
    쉽게 알아낼 수 없기때문에 요청을 연속해서 보낸후, 첫번째
 | 
						|
    요청을 제외하고 401 응답을 받은 다음 요청을 다시 보내게
 | 
						|
    된다. 또 재생공격에 대한 보호는 POST 요청과 같이 동적으로
 | 
						|
    내용을 생성하는 경우에만 의미가 있음을 주의하라. 정적인
 | 
						|
    내용의 경우 공격자는 이미 완전한 내용을 가지고 있으므로,
 | 
						|
    한번만 사용할 수 있는 nonce는 의미가 없다. -->
 | 
						|
    </p>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestNonceFormat</name>
 | 
						|
<description>nonce를 만드는 방법을 결정한다</description>
 | 
						|
<syntax>AuthDigestNonceFormat <var>format</var></syntax>
 | 
						|
<contextlist><context>directory</context><context>.htaccess</context>
 | 
						|
</contextlist>
 | 
						|
<override>AuthConfig</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <note>아직 구현되지 않았다.</note>
 | 
						|
    <!-- AuthDigestNonceFormat 지시어는 nonce를 만드는 방법을
 | 
						|
    결정한다. -->
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestNcCheck</name>
 | 
						|
<description>서버가 보내는 nonce-count를 검사할지 여부</description>
 | 
						|
<syntax>AuthDigestNcCheck On|Off</syntax>
 | 
						|
<default>AuthDigestNcCheck Off</default>
 | 
						|
<contextlist><context>server config</context></contextlist>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <note>
 | 
						|
      아직 구현되지 않았다.
 | 
						|
    </note>
 | 
						|
    <!--
 | 
						|
    <p>AuthDigestNcCheck 지시어는 서버가 보내는 nonce-count를
 | 
						|
    검사할지 결정한다.</p>
 | 
						|
 | 
						|
    <p>보안상 권장하지만 이 지시어를 On으로 설정하면 성능이
 | 
						|
    크게 떨어진다. nonce-count를 검사하려면 (digest authentication
 | 
						|
    여부와 관계없이 Authorization 헤더를 보내는) *모든* 요청을
 | 
						|
    임계영역(critical section)을 통해 처리해야 한다. 서버가
 | 
						|
    Authorization 헤더를 포함한 매우 많은 요청을 처리한다면
 | 
						|
    성능이 현저히 떨어질 수 있다.</p>
 | 
						|
     -->
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestAlgorithm</name>
 | 
						|
<description>digest authentication에서 challenge와 response
 | 
						|
hash를 계산하는 알고리즘을 선택한다</description>
 | 
						|
<syntax>AuthDigestAlgorithm MD5|MD5-sess</syntax>
 | 
						|
<default>AuthDigestAlgorithm MD5</default>
 | 
						|
<contextlist><context>directory</context><context>.htaccess</context>
 | 
						|
</contextlist>
 | 
						|
<override>AuthConfig</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p><directive>AuthDigestAlgorithm</directive> 지시어는
 | 
						|
    challenge와 response hash를 계산하는 알고리즘을 선택한다.</p>
 | 
						|
 | 
						|
    <note>
 | 
						|
      <code>MD5-sess</code>는 아직 완전히 구현되지 않았다.
 | 
						|
    </note>
 | 
						|
    <!--
 | 
						|
    <p><code>MD5-sess</code>를 사용하려면
 | 
						|
    <code>mod_auth_digest.c</code>의 <code>get_userpw_hash()</code>
 | 
						|
    함수를 먼저 작성해야 한다.</p>
 | 
						|
    -->
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestDomain</name>
 | 
						|
<description>digest authentication에서 같은 보호영역에 속하는
 | 
						|
URI들</description>
 | 
						|
<syntax>AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</syntax>
 | 
						|
<contextlist><context>directory</context><context>.htaccess</context>
 | 
						|
</contextlist>
 | 
						|
<override>AuthConfig</override>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p><directive>AuthDigestDomain</directive> 지시어는 같은
 | 
						|
    보호영역에 있는 (<em>예를 들어</em> 같은 영역과 사용자명/암호
 | 
						|
    정보를 사용하는) URI들을 지정한다. 지정한 URI는 접두사로
 | 
						|
    사용한다. 클라이언트는 URI "아래" 모두를
 | 
						|
    같은 사용자명/암호로 보호한다고 가정한다. URI는
 | 
						|
    (<em>즉</em>, 스킴(scheme), 호스트, 포트 등을 포함하는)
 | 
						|
    절대 URL이거나 상대 URI이다.</p>
 | 
						|
 | 
						|
    <p>이 지시어는 항상 <em>지정해야</em> 하며, 최소한 영역들의
 | 
						|
    기본 URI(들)를 포함<em>해야</em> 한다. 생략하면 클라이언트는
 | 
						|
    이 서버로 보내는 <em>모든 요청</em>에 Authorization 헤더를
 | 
						|
    포함한다. 그러면 요청의 크기가 커지며, <directive
 | 
						|
    module="mod_auth_digest">AuthDigestNcCheck</directive>를
 | 
						|
    사용한다면 성능에 나쁜 영향을 줄 수 있다.</p>
 | 
						|
 | 
						|
    <p>다른 서버의 URI를 지정하면, (이를 이해하는) 클라이언트는
 | 
						|
    여러 서버마다 매번 사용자에게 묻지않고 같은 사용자명/암호를
 | 
						|
    사용할 수 있다.</p>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
<directivesynopsis>
 | 
						|
<name>AuthDigestShmemSize</name>
 | 
						|
<description>클라이언트를 추적하기위해 할당하는 공유메모리량</description>
 | 
						|
<syntax>AuthDigestShmemSize <var>size</var></syntax>
 | 
						|
<default>AuthDigestShmemSize 1000</default>
 | 
						|
<contextlist><context>server config</context></contextlist>
 | 
						|
 | 
						|
<usage>
 | 
						|
    <p><directive>AuthDigestShmemSize</directive> 지시어는
 | 
						|
    클라이언트를 추적하기위해 서버가 시작할때 할당하는
 | 
						|
    공유메모리량을 정의한다. 공유메모리는 최소한 <em>하나의</em>
 | 
						|
    클라이언트를 추적하기위해 필요한 공간보다 작을 수 없음을
 | 
						|
    주의하라. 이 값은 시스템에 따라 다르다. 정확한 값을 알려면
 | 
						|
    <directive>AuthDigestShmemSize</directive>를 <code>0</code>으로
 | 
						|
    설정하고 서버를 시작한후 오류문을 참고하라.</p>
 | 
						|
 | 
						|
    <p><var>size</var>는 보통 바이트 단위이지만, 뒤에
 | 
						|
    <code>K</code>나 <code>M</code>을 사용하여 KBytes나 MBytes를
 | 
						|
    나타낼 수 있다. 예를 들어, 다음 지시어들은 모두 같다:</p>
 | 
						|
 | 
						|
    <example>
 | 
						|
      AuthDigestShmemSize 1048576<br />
 | 
						|
      AuthDigestShmemSize 1024K<br />
 | 
						|
      AuthDigestShmemSize 1M
 | 
						|
    </example>
 | 
						|
</usage>
 | 
						|
</directivesynopsis>
 | 
						|
 | 
						|
</modulesynopsis>
 |