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을 처리하는 경우 서버는 다음 작업을 수행하여 인증을 시도합니다.
인증 요청 헤더 확인. 헤더가 없는 경우 다이제스트 시도를 포함하는 401 응답이 생성되며 프로세스가 중지됩니다.
인증 유형 확인. 인증 유형이 Digest인 경우 서버는 다음 작업을 수행합니다.
nonce를 확인합니다. nonce가 유효하지 않은 경우 이 서버에서 새 nonce를 생성하고 401 응답이 생성되며 프로세스가 중지됩니다. nonce가 오래된 경우 stale=true로 설정된 401 응답이 생성되며 프로세스가 중지됩니다.
server-root/proxy-server_name/config/에 위치한 magnus.conf 파일에 있는 DigestStaleTimeout 매개 변수의 값을 변경하여 nonce가 새로운 상태를 유지하는 시간을 구성할 수 있습니다. 이 값을 설정하려면 magnus.conf에 다음과 같은 줄을 추가합니다.
DigestStaleTimeout seconds
여기에서 seconds는 nonce가 새로운 상태를 유지하는 초 단위 시간입니다. 지정된 시간이 경과하면 nonce가 만기되며 사용자에 대한 새로운 인증이 요구됩니다.
영역 확인. 영역이 일치하지 않는 경우 401 응답이 생성되며 프로세스가 중지됩니다.
인증 디렉토리가 LDAP 기반인 경우 LDAP 디렉토리에 사용자가 있는지 확인하거나, 인증 디렉토리가 파일 기반인 경우 파일 데이터베이스에 사용자가 있는지 확인합니다. 사용자를 찾을 수 없는 경우 401 응답이 생성되며 프로세스가 중지됩니다.
디렉토리 서버 또는 파일 데이터베이스에서 request-digest 값을 가져오고 클라이언트의 request-digest 와 일치하는지 확인합니다. 일치하지 않는 경우 401 응답이 생성되며 프로세스가 중지됩니다.
Authorization-Info 헤더를 만들고 이 헤더를 서버 헤더에 삽입합니다.