Apache | 액세스(Access) 권한 | 기본 인증 설정 (AuthType)


인증 설정

특정 디렉토리에 있는 파일이나 URL에 사용자 이름 및 비밀번호에 의한 기본 인증을 구성하는 방법을 설명한다. 인증 설정은 많은 설정이 필요하므로 하나 하나 설명하도록 하겠다.

AuthType 인증-방식
AuthName 인증-영역
AuthUserFile 암호-파일

Apache에서 사용 가능한 인증 방법은 기본 인증(Basic) 또는 다이제스트 인증 (Digest)이다. 먼저 어느 인증 방식을 사용할지를 “AuthType"으로 설정한다. 기본 인증을 사용하는 경우의 설정은 다음과 같다.

AuthType Basic

다음은 인증 영역 이름을 지정한다. 이것은 인증을 구별하기 위한 것으로 인증시 영역 이름이 같으면 브라우저 같은 “Authorization” 헤더를 보낸다. (자세한 내용은 별도로 설명한다.)

이 영역 이름에 작성한 문자열이 인증 대화 상자에 표시되는 문자열이다. “사용자명과 비밀번호를 입력하세요.“라고 표시할 경우에는 다음과 같이 작성한다. (비록 이렇게 작성을 하긴 하지만, 본래의 의미는 영역 이름이기에 인증에 대해 서로 다른 문자열로하는 것이 바람직하다고 생각된다.) 단, 브라우저에 따라 표시가 되지 않을 수도 있다.

AuthName "사용자명과 비밀번호를 입력하세요."

다음은 사용자 인증을 위한 사용자 이름과 암호가 등록되어있는 파일을 “AuthUserFile"로 지정한다. 이번 비밀번호 파일을 “C:\apache\passwd\passfile"로 한다.

AuthUserFile "C:/apache/password/pw"

허가하는 사용자 지정

인증을 통과한 모든 사용자에게 액세스를 허용할 수도 있으며, 허가하는 사용자를 지정할 수도 있다 (인증을 통과하고 권한이 있는 사용자와 일치해야 한다.) 허가된 사용자 설정에 “Require"를 사용한다.

Require 옵션 사용자명1 사용자명2 ...

먼저 옵션은 “user” 또는 “group"을 지정한다. 허가의 대상이 사용자 단위이면 “user"를 그룹 단위이면 “group"을 지정한다. (그룹에 대해서 다른 페이지에서 설명하도록 하겠다.)

그리고 부여할 사용자명을 공백으로 구분한다. 예를 들어 수있는 사용자를 “devkuma”, “kimkc”, “araikuma"의 3개로 하려면 다음과 같다.

Require user devkuma kimkc araikuma

그리고 인증을 통과한 모든 사용자의 액세스를 허용하려면 다음과 같이 작성한다.

Require valid-user

이와 같이 사용자명이나 그룹에 액세스를 허용하기위한 비밀번호 파일 전체에서 하나만 생성 해두고, 그 위에 별도의 디렉토리별로 접근을 허용할 사용자와 그룹을 지정할 수 있다 .

인증 대화 상자 표시

그러면 비밀번호 파일 작성하기 전에 인증 대화 상자가 표시되는 것까지 확인해 보자.

먼저 도큐먼트 루트에 “admin"란 디렉토리를 만들고 admin.html 을 생성한다.

<html>
<body>
<h1>Admin</h1>
This is Admin page.
</body>
</html>

그리고 기본 인증을 설정한다. 아래 내용을 “httpd.conf” 어딘가에 추가한다.

<Directory "${SRVROOT}/htdocs/admin">
    AuthType Basic
    AuthName "사용자명과 비밀번호를 입력하세요."
    AuthUserFile "C:/apache/passwd/passfile"
    Require valid-user
</Directory>

그러면 Apache를 다시 시작하여 “http://localhost/admin/admin.html"에 액세스한다.

크롬에서 접속한 경우

Microsoft Edge에서 접속한 경우

사용자명과 비밀번호를 입력을 요구하는 인증 대화 상자가 표시되었다.

그럼 다음 페이지에서 사용자명과 비밀번호를 등록하는 비밀번호 파일 작성에 대해 설명하겠다.