Sun Java System Web Server 7.0 관리자 설명서

사용자 그룹용 액세스 제어 설정

웹 서버에 대한 액세스를 특정 사용자 또는 그룹으로 제한할 수 있습니다. 사용자 그룹 액세스 제어를 사용하려면 사용자가 해당 서버에 액세스하기 전에 사용자 이름과 비밀번호를 입력해야 합니다. 서버는 클라이언트 인증서에 있는 정보를 디렉토리 서버 항목과 비교합니다.

Administration Server는 오직 기본 인증만 사용합니다. Administration Server에 클라이언트 인증이 필요하도록 하려면 ACL 파일을 직접 편집하여 방법을 SSL로 변경해야 합니다.

사용자 그룹 인증은 Web Server에서 사용자 그룹 데이터베이스에 있는 항목을 읽어서 수행합니다. 디렉토리 서비스가 액세스 제어를 구현하는 데 사용하는 정보는 다음 중 한 가지 소스에서 구합니다.

서버가 외부 LDAP 기반 디렉토리 서비스를 사용하는 경우 서버 인스턴스용으로 다음 유형의 사용자 그룹 인증 방법을 지원합니다.

서버가 내부 파일 기반 디렉토리 서비스를 사용하는 경우 서버 인스턴스용으로 다음 유형의 사용자 그룹 인증 방법을 지원합니다.

사용자 그룹 인증을 수행하려면 사용자가 서버 또는 웹 사이트의 파일 및 디렉토리에 액세스하기 전에 자신을 인증해야 합니다. 인증 시 사용자는 클라이언트 인증서를 사용하여 사용자 이름과 비밀번호를 입력하는 방식으로 신분을 확인합니다. 클라이언트 인증서는 SSL 통신에만 필요합니다.

Default 인증

Default 인증은 가장 많이 사용되는 방법입니다. Default 설정에서는 server.xml 파일에 있는 Default 방법을 사용하고 server.xml에 설정이 없으면 "Basic"을 사용합니다. Default를 선택하면 ACL 규칙에서 ACL 파일에 방법을 지정하지 않습니다. Default를 선택한 경우 obj.conf 파일에서 한 줄만 편집하면 모든 ACL의 방법을 쉽게 변경할 수 있습니다.

Basic 인증

Basic 인증을 사용하려면 사용자가 웹 서버나 웹 사이트에 액세스하기 위해 사용자 이름과 비밀번호를 입력해야 합니다. 이 설정이 기본값입니다. Sun Java System Directory Server와 같은 LDAP 데이터베이스나 파일에 사용자 및 그룹 목록을 만들어 저장해야 합니다. 웹 서버가 아닌 다른 루트 디렉토리에 설치된 디렉토리 서버 또는 원격 컴퓨터에 설치된 디렉토리 서버를 사용해야 합니다.

Administration Server 또는 웹 사이트에서 사용자 그룹 인증이 있는 자원에 액세스하려는 경우 웹 브라우저에 사용자 이름과 비밀번호를 입력하라는 대화 상자가 표시됩니다. 서버에서 암호화 기능이 사용되는지의 여부에 따라 이 정보는 암호화 또는 암호화되지 않은 형태로 서버에 입력됩니다.


주 –

SSL 암호화가 없는 Basic 인증을 사용하는 경우 사용자 이름과 비밀번호가 암호화되지 않은 텍스트로 네트워크에 전송됩니다. 네트워크 패킷은 가로챌 수 있으며 사용자 이름과 비밀번호가 도용될 수 있습니다. Basic 인증은 SSL 암호화, 호스트-IP 인증 또는 두 가지 인증을 모두 사용하는 경우에 가장 효과적입니다. Digest 인증을 사용하면 이러한 문제를 방지할 수 있습니다.


SSL 인증

서버는 다음 두 가지 방법을 사용하여 보안 인증서가 있는 사용자의 신분을 확인합니다.

서버가 클라이언트 인증용으로 인증서 정보를 사용하도록 설정하면 서버는 다음 작업을 수행합니다.

특정 자원에 대한 액세스 제어를 위해 클라이언트 인증을 요구하는 것은 서버에 대한 모든 연결에 대해 클라이언트 인증을 요구하는 것과 다릅니다. 모든 연결에 대해 서버가 클라이언트 인증을 요구하도록 설정한 경우 클라이언트는 신뢰할 수 있는 인증 기관에서 발급한 유효한 인증서만 제시하면 됩니다. 서버의 액세스 제어가 사용자 및 그룹 인증을 위해 SSL 방법을 사용하도록 설정하는 경우 클라이언트는 다음 작업을 수행합니다.

액세스 제어와 함께 클라이언트 인증을 요구하는 경우 웹 서버용 SSL 암호를 사용하도록 설정해야 합니다.

SSL 인증이 요구되는 자원에 성공적으로 액세스하려면 웹 서버가 신뢰하는 인증 기관으로부터 클라이언트 인증서가 발급되어야 합니다. 웹 서버의 certmap.conf 파일이 브라우저에 있는 클라이언트 인증서와 디렉토리 서버에 있는 클라이언트 인증서를 비교하도록 구성된 경우에는 클라이언트 인증서가 디렉토리 서버에 게시되어야 합니다. 그러나 certmap.conf 파일은 인증서의 선택된 정보만 디렉토리 서버 항목과 비교하도록 구성할 수 있습니다. 예를 들어 브라우저 인증서의 사용자 아이디와 전자 메일 주소만 디렉토리 서버 항목과 비교하도록 certmap.conf 파일을 구성할 수 있습니다.


주 –

인증서는 LDAP 디렉토리와 비교해 확인되기 때문에 SSL 인증 방법을 사용하려면 certmap.conf 파일을 수정해야 합니다. 서버로의 모든 연결에 대해 클라이언트 인증이 요구되는 경우에는 이 파일을 변경할 필요가 없습니다. 클라이언트 인증서를 사용하도록 선택한 경우 magnus.confAcceptTimeout 지시문 값을 올려야 합니다.


Digest 인증

LDAP 기반 또는 파일 기반 디렉토리 서비스를 사용하여 Digest 인증을 수행하도록 서버를 구성할 수 있습니다.

Digest 인증을 사용하면 사용자가 사용자 이름과 비밀번호를 일반 텍스트로 전송하지 않고 사용자 이름과 비밀번호를 기준으로 인증할 수 있습니다. 브라우저는 MD5 알고리즘을 사용하여 Web Server가 제공하는 사용자 비밀번호 및 일부 정보를 사용하는 다이제스트 값을 만듭니다.

서버에서 LDAP 기반 디렉토리 서비스를 사용하여 Digest 인증을 수행하는 경우 이 다이제스트 값은 서버측에서 Digest 인증 플러그인을 통해서도 계산되며 클라이언트에서 제공하는 다이제스트 값과 비교됩니다. 다이제스트 값이 일치하면 사용자가 인증됩니다. 이렇게 하려면 디렉토리 서버가 일반 텍스트로 사용자의 비밀번호에 액세스해야 합니다. Sun Java System Directory Server에는 역변환 가능한 비밀번호 플러그인이 있으며, 이는 데이터를 암호화된 형태로 저장하여 나중에 원래 형태로 해독할 수 있는 대칭 암호화 알고리즘을 사용합니다. 오직 Directory Server만이 데이터의 키를 보유합니다.

LDAP 기반 Digest 인증의 경우 서버에 포함된 역전환 가능 비밀번호 플러그인과 digestauth 특정 플러그인을 사용하도록 설정해야 합니다. 웹 서버가 Digest 인증을 처리하도록 구성하려면 dbswitch.conf에 있는 데이터베이스 정의의 digestauth 등록 정보를 설정해야 합니다.

ACL 방법을 지정하지 않는 경우, 서버는 인증이 필요하면 Digest 또는 Basic 인증을 사용하고 인증이 필요하지 않으면 Basic 인증을 사용합니다. 이것이 가장 많이 사용되는 방법입니다.

표 7–1 Digest 인증 질문 생성

ACL 방법 

인증 데이터베이스가 지원하는 Digest 인증 

인증 데이터베이스가 지원하지 않는 Digest 인증 

"default" 

지정된 사항 없음 

digest 및 basic 

basic 

"basic" 

basic 

basic 

"digest" 

digest 

ERROR 

method = digest로 설정된 ACL을 처리할 경우 서버는 다음을 수행하여 인증을 시도합니다.