Apache | 액세스(Access) 권한 | 그룹 단위로 인증

“Require"를 사용하여 접근할 수 있는 사용자를 설정할 시에 사용자가 적은 경우는 나열을 해도 상관 없지만, 미리 사용자를 그룹에 등록해 고, 그룹 단위로 접근을 허용할 수 있다. 그러면 그룹에 포함된 사용자는 인증이 통과하면 접근이 허용되는 것이다.

먼저 그룹명과 그룹에 속한 사용자를 작성하는 그룹 파일을 만든다.

그룹 파일 생성

비밀번호 파일의 경우는 Apache에서 “htpasswd.exe"라고 도구가 준비되어 있지만, 그룹 파일에는 그러한 도구는 준비되어 있지 않다. 그룹 파일은 단순한 텍스트 파일이기에 텍스트 편집기에서 작성을 한다.

그룹명1: 사용자명1 사용자명2 사용자명3 ...
그룹명2: 사용자명1 사용자명4 ...

그룹 파일에 등록하는 그룹마다 한 줄로 작성한다. 그룹명 뒤에 콜론(:)으로 구분하여 그룹에 등록하는 사용자 이름을 작성한다. 사용자명은 공백으로 구분하여 이어서 작성한다.

여기서는 그룹 파일명은 “C:\apache\passwd\ group"라고 지정하겠다. 이번에 생성하는 그룹 파일은 다음과 같다.

group

admin: devkuma kimkc
user: araikuma
other: happykuma

AuthGroupFile을 지정

다음은 “httpd.conf” 파일에 “AuthGroupFile"를 사용하여 그룹 파일명을 지정한다.

AuthGroupFile 그룹명

앞에서 생성한 그룹 파일을 지정은 다음과 같이 하면 된다.

AuthGroupFile "C:/apache/passwd/group"

httpd.conf에 작성 방법

그룹 파일는 어디까지나 사용자를 한번에 관리하는 위한 것이므로, 인증은 사용자 단위로 이루어진다. 그러므로 “AuthGroupFile"는 사용자 인증을 위한 설정 중에 하나로서 작성이 된다.

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

“Require"에 대한 옵션에 “group"을 지정하고, 이어서 접근를 허용할 그룹을 공백으로 구분하여 작성한다.

※ 사용자의 경우에는 모든 사용자를 허용하는 “valid-user"라고 작성을 하였지만, 그룹의 경우는 그렇지 않기에 하나 하나 작성할 수 밖에 없다.

그럼 그룹을 사용한 인증을 해보도록 하겠다. 그러면 인증이 설정되어 있는 디렉터리에 포함된 “http://localhost/admin/admin.html"에 브라우저로 접근한다.

그룹을 사용한 인증

그룹명에 의해 인증을 설정된 경우에도 브라우저에 표시되는 인증 대화 상자는 동일하다. 권한이 설정되어 있는 그룹에 포함된 사용자명으로 인증을 통과하면 해당 페이지가 표시된다.

그룹을 사용한 인증




최종 수정 : 2019-12-10