Sun Java System Web Proxy Server 4.0.8 관리 설명서

사용자 그룹용 액세스 제어

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

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

사용자 그룹 인증은 서버에 구성된 디렉토리 서비스에 의해 수행됩니다. 자세한 내용은 디렉토리 서비스 구성을 참조하십시오.

디렉토리 서비스가 액세스 제어를 구현하는데 사용하는 정보는 다음 중 한 가지 소스에서 구합니다.

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

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

사용자 그룹 인증의 경우 사용자가 액세스 권한을 얻기 전에 자신의 아이디를 증명합니다. 인증 과정에서 사용자는 사용자 이름과 비밀번호를 제공하거나 클라이언트 인증서 또는 Digest 인증 플러그인을 사용하여 자신의 아이디를 증명합니다. 클라이언트 인증서를 사용하려면 암호화가 필요합니다.

Default 인증

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

Basic 인증

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

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


주 –

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


인증에 성공하면 사용자에게 요청된 자원이 표시됩니다. 사용자 이름 또는 비밀번호가 잘못된 경우 액세스를 거부하는 메시지가 표시됩니다.

권한 없는 사용자에 의해 수신된 메시지를 사용자 정의할 수 있습니다. 자세한 내용은 액세스가 거부된 경우의 응답을 참조하십시오.

SSL 인증

서버가 보안 인증서가 있는 사용자의 아이디를 확인하는 방법은 두 가지입니다.

클라이언트 인증을 위해 인증서 정보를 사용하도록 서버를 구성한 경우 서버는 다음 작업을 수행합니다.

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

액세스 제어와 함께 클라이언트 인증이 필요한 경우 Proxy Server용 SSL 암호를 사용하도록 설정해야 합니다. SSL 사용에 대한 자세한 내용은 5 장인증서 및 키 사용을 참조하십시오.

SSL 인증이 요구되는 자원에 성공적으로 액세스하려면 Proxy Server가 신뢰할 수 있는 인증 기관으로부터 클라이언트 인증서가 발급되어야 합니다. Proxy Server의 certmap.conf 파일이 브라우저에 있는 클라이언트 인증서를 디렉토리 서버에 있는 클라이언트 인증서와 비교하도록 구성된 경우에는 클라이언트 인증서가 디렉토리 서버 내에 게시되어야 합니다. 그러나 certmap.conf 파일은 인증서의 선택된 정보만 디렉토리 서버 항목과 비교되도록 구성할 수 있습니다. 예를 들어 브라우저 인증서에 있는 사용자 아이디와 전자 메일 주소만 디렉토리 서버 항목과 비교하도록 certmap.conf 파일을 구성할 수 있습니다. certmap.conf 및 인증서 매핑에 대한 자세한 내용은 5 장인증서 및 키 사용을 참조하십시오. 또한 Sun Java System Web Proxy Server 4.0.8 Configuration File Reference를 참조하십시오.

Digest 인증

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

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

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

LDAP 기반 인증의 경우 Proxy Server에 포함된 역변환 가능한 비밀번호 플러그인과 Digest 인증 관련 플러그인을 사용하도록 설정해야 합니다. Digest 인증을 처리하도록 Proxy Server를 구성하려면 server-root/userdb/에 있는 dbswitch.conf 파일에서 데이터베이스 정의의 digestauth 등록 정보를 설정합니다.

여기서는 샘플 dbswitch.conf 파일입니다.


directory default ldap://<host_name>:<port>
default:binddn cn=Directory Manager
default:encoded bindpw ***********
default:digestauth on

또는


directory default ldap://<host_name>:<port>/
default:binddn cn=Directory Manager
default:encoded bindpw ***********
default:digestauthstate on

서버는 Digest 인증에 보이는 것과 같이 지정된 ACL 방법에 기반하여 LDAP 데이터베이스에 대한 인증을 시도합니다. ACL 방법을 지정하지 않으면, 서버는 인증이 요구되는 경우 Digest 또는 Basic을 사용하며 인증이 요구되지 않는 경우 Basic을 사용합니다.

다음 표에서는 인증 데이터베이스에서 지원하거나 지원하지 않는 Digest 인증에 대해 나열합니다.

표 8–1 Digest 인증 질문 생성

ACL 방법 

인증 데이터베이스에서 지원 

인증 데이터베이스에서 지원하지 않음 

Default 

지정된 사항 없음 

Digest 및 Basic 

Basic 

Basic 

Basic 

Basic 

Digest 

Digest 

ERROR 

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

Digest 인증 플러그인 설치

LDAP 기반 디렉토리 서비스를 사용하는 Digest 인증의 경우 Digest 인증 플러그인을 설치해야 합니다. 이 플러그인은 서버 측에서 다이제스트 값을 계산하고 이 값을 클라이언트에서 제공하는 다이제스트 값과 비교합니다. 다이제스트 값이 일치하면 사용자가 인증됩니다.

파일 기반 인증 데이터베이스를 사용하는 경우 Digest 인증 플러그인을 설치할 필요는 없습니다.

UNIX에 Digest 인증 플러그인 설치

Digest 인증 플러그인은 다음 공유 라이브러리와 ldif 파일로 구성됩니다.

ProcedureUNIX에 Digest 인증 플러그인을 설치하는 방법

시작하기 전에
  1. 플러그인을 설치하려면 다음 명령을 입력합니다.

    % ldapmodify -D "cn=Directory Manager" -w password -a < libdigest-plugin.ldif

Windows에 Digest 인증 플러그인 설치

Directory Server가 다이제스트 플러그인과 함께 제대로 시작되려면 여러 개의 .dll 파일을 프로시 서버 설치 위치에서 Directory Server용 Sun Java System Directory Server 서버 컴퓨터로 복사해야 합니다.

ProcedureWindows에 Digest 인증 플러그인을 설치하는 방법

  1. server-root \bin\proxy\bin에 있는 Proxy Server의 공유 라이브러리에 액세스합니다.

  2. nsldap32v50.dll, libspnr4.dlllibplds4.dll 파일을 해당 디렉토리에 복사합니다.

  3. 복사한 파일을 다음 중 한 곳에 붙여넣습니다.

    • \Winnt\system32

      • Sun Java System Directory Server 설치 디렉토리: server-root\bin\sldap\server

DES 알고리즘 사용을 위한 Sun Java System Directory Server 설정

DES 알고리즘을 위해 다이제스트 비밀번호가 저장된 속성을 암호화해야 합니다.

ProcedureDES 알고리즘을 사용하도록 Directory Server를 설정하는 방법

  1. Sun Java System Directory Server 콘솔을 시작합니다.

  2. Sun ONE Directory Server 5.1 SP1 이상 버전의 인스턴스를 엽니다.

  3. Configuration 탭을 선택합니다.

  4. 플러그인 옆의 + 기호를 누릅니다.

  5. DES 플러그인을 선택합니다.

  6. Add를 선택하여 새 속성을 추가합니다.

  7. iplanetReversiblePassword를 입력합니다.

  8. Save를 누릅니다.

  9. Digest 인증 비밀번호를 설정합니다.


    주 –

    서버는 객체 클래스 iplanetReversiblePassword에 있는 iplanetReversiblePassword 속성을 사용합니다. 사용자의 iplanetReversiblePassword 속성에서 Digest 인증 비밀번호를 사용하려면 항목에 iplanetReversiblePasswordobject 객체가 포함되어야 합니다.

    ldapmodify를 사용하거나 Directory Server 관리 인터페이스를 사용하여 이를 수행할 수 있습니다.


    ldapmodify 사용—

    digest.ldif 파일을 만들어 LDAP 명령을 저장합니다. 비밀번호 추가 프로세스는 2단계로 구성되어 있습니다.

    1. 객체 클래스를 digest.ldif에 추가합니다.

      파일이 다음과 유사하게 표시됩니다(Directory Server 사용자 및 ACL을 기준으로 추가 ldif 파일을 가질 수 있음).


      dn:uid=user1,dc=india,dc=sun,dc=com
      changetype:modify
      add:objectclass
      objectclass:iplanetReversiblePasswordobject
      
      dn:uid=user1,dc=india,dc=india,dc=sun,dc=com
      changetype:modify
      add:iplanetReversiblePassword
      iplanetReversiblePassword:user1
    2. # ldapmodify -D “cn={CN_Value}” -w <password> -a <ldif_file_name>

  10. Sun Java System Directory Server 인스턴스를 다시 시작하고 사용자 속성이 Directory Server 데이터베이스에 추가되었는지 확인합니다.

기타 인증

액세스 제어 API를 사용하여 사용자 정의 인증 방법을 만들 수 있습니다.