2010년 4월 16일 금요일

사용자 인증

1. 사용자 인증이란?

사용자 인증이란, 서버 상의 특정 디렉토리를 ID, 암호입력 등의 특별한 과정을 거친 후 사용할 수 있도록 하는 기능입니다. 보통 사용자 이름과 암호를 입력하라는 입력박스를 띄우는 방식이 이에 해당합니다.

 
2. .htaccess 파일 작성

사용자 인증방법은 우선, 인증이 필요한 특정디렉토리에 다음과 같은 내용의 .htaccess 라는 파일을 만들어서 아스키(ASCII) 모드로 업로드 합니다.

AuthName "(입력박스에 나타나는 메시지)"
AuthType Basic
AuthUserFile /usr/home/loginID/public_html/특정디렉토리/.htpasswd
AuthGroupFile /dev/null

<Limit GET POST>
require valid-user
</Limit>

AuthName: 사용자 이름 및 암호 입력박스에 나타나는 메시지입니다. 내용은 반드시 따옴표로 감싸 주십시오.
AuthUserFile: 사용자 이름 및 암호를 저장하는 파일과 경로를 지정합니다. 파일경로는 반드시 위와 같이 절대경로로 표시해야 합니다. 파일이름은 대부분 .htpasswd로 사용합니다. 생성 방법은 아래에서 설명합니다.

그 밖의 항목은 위 내용과 동일하게 작성합니다.


3. .htpasswd 파일 생성

.htpasswd 파일을 최초로 생성하기 위해서는 서버에 텔넷으로 접속하여, .htpasswd 파일을 생성하고자 하는 디렉토리에서 다음과 같이 입력합니다.

admin이란 디렉토리에 helper란 사용자 이름을 만들기 위한 예:




위와 같이 암호를 입력해 주면, .htpasswd 파일이 admin 디렉토리에 만들어 집니다. 이 때, .htpasswd 파일이 있는 경로는 반드시 위에서 작성한 .htaccess 파일에 지정된 경로와 일치해야 합니다.


4. 사용자 추가

두 번째 사용자인 info라는 사용자를 입력하기 위해서는

htpasswd .htpasswd info

와 같이 두 번째 사용자부터는 -c를 빼고 적어줍니다.

위의 과정을 거치면, .htpasswd 파일에 사용자 이름과 암호가 (암호화 되어) 저장이 됩니다. 이제 .htpasswd에 입력된 사용자만 해당 디렉토리를 사용할 수 있습니다.

[고급] SSL서버 사용자 인증
만약 SSL서버를 사용하고 계신다면 htpasswd 명령어 대신에 sslhtpasswd 라는 명령어를 사용하셔야 보안이 강화된 사이트를 만드실 수 있습니다. 그리고, htpasswd로 생성된 암호파일은 sslhtpasswd로 생성된 암호파일과는 전혀 호환되지 않으므로 주의하시기 바랍니다

댓글 없음:

댓글 쓰기