이 절에서는 IBM® HTTP Server의 파일을
보호하기 위해 LDAP을 구성하는 방법에 대해 설명합니다.
시작하기 전에
제거된 기능: mod_ibm_ldap 명령은
이전 릴리스와의 호환성을 위해 이 IBM HTTP Server 릴리스에
제공됩니다. LDAP 구성에 대해 mod_ibm_ldap 모듈을 사용하는 경우
LDAP 구성에 대한 향후 지원을 보장하기 위해 mod_authnz_ldap 및 mod_ldap modules를
사용하려면 기존 구성을 마이그레이션해야 합니다. mod_ldap 모듈 사용 방법에 대한 설명은
mod_ldap을 사용하여 IBM HTTP Server에서
LDAP으로 인증
주제를 참조하십시오.
depfeat
기본적으로
LDAP 모듈은 IBM HTTP Server에 로드되지 않습니다. LoadModule
지시문이 없는 경우, LDAP 피처를 사용할 수
없습니다. LDAP 기능을 사용하려면
다음과 같이 IBM HTTP Server httpd.conf
파일에 LoadModule 지시문을 추가하십시오.
컴퓨터에 LDAP 클라이언트를 설치한 경우
ldapsearch를 다양한 설정에 사용하려는 값을 테스트하는
도구로 사용할 수 있습니다.
이 태스크 정보
LDAP(mod_ibm_ldap) 지시문의 상세한 설명을
보려면 LDAP 지시문의 내용을 참조하십시오.
프로시저
- httpd.conf IBM HTTP Server 구성 파일을 편집하십시오.
- 액세스를 제한하려는 자원을 결정하십시오. 예: <Directory "/secure_info">.
- 사용자의 환경에 고유한 값으로 보호되는 디렉토리
위치(컨테이너)로 httpd.conf에 지시문을
추가하십시오. 예:
- LdapConfigFile path_to_ldap.prop
- AuthType Basic
- AuthName "보호 설정된 영역의 제목"
- Require valid-user
- 기존 LDAP 설치를 인증하는 데 IBM HTTP Server를
사용하는 방법에는 세 가지 옵션이 있습니다.
- LDAP 그룹 멤버쉽을 기반으로 하는 권한.
LDAP을
사용하여 사용자 비밀번호를 확인하고 사용자가 LDAP에 정의된
그룹에 있는지 확인합니다.
참고: 사용자가 자원에 액세스할 수 있는지 식별하는 멤버쉽은 사용자 자체 LDAP 입력 파트가 아니라
그룹의 파트입니다.
예를 들어, 그룹에 대한 액세스를
제한하려면 다음 지시문을 추가하십시오.
LDAPRequire group grp1
이
양식의 LDAPRequire에 대해 그룹을 다음 규칙을 준수하는 LDAP
저장소에서 구성해야 합니다(예제의 그룹 이름
grp1 사용).
- LDAP 저장소에 다음 검색 필터에 일치하는 항목이
있습니다. (여기서 groupofnames 및 groupofuniquenames
값은 ldap.group.dnattributes에 지정된 예제 값입니다.)
참고: ldap.group.dnattributes의
적절한 값은 LDAP 스키마의 그룹을 나타내는 objectclasses의
목록입니다.
ldapsearch ... "(&(cn=grp1)(|(objectclass=groupofnames)
(objectclass=groupofuniquenames)))"
- "grp1"의 LDAP 항목의 파트로. 다음에 일치하는 일련의
속성이 있습니다(여기서 member 및 uniquemember 값은
ldap.group.memberAttributes의 예제 값입니다).
참고: ldap.group.memberAttributes의
적절한 값은 그룹의 멤버쉽을 나타내는 objectclasses의
목록입니다. 이들 항목의 값은 사용자의
식별 이름(DN)입니다.
ldapsearch ... "(&(cn=grp1)(|(objectclass=groupofnames)
(objectclass=groupofuniquenames)))" member uniquemember
예:
ldapsearch -x -h myldapserver -D cn=root -w rootpw
"(&(cn=grp1)(|(objectclass=groupofnames)(objectclass=groupofuniquenames)))"
member uniquemember
dn: cn=group1,ou=myunit,o=myorg,c=US
member: cn=user1, ou=otherunit, o=myorg, c=US
member: cn=user12, ou=otherunit, o=myorg, c=US
ldap.group.dnattributes에
나열된 유형의 오브젝트가 검색 중인 그룹의 멤버인 경우
ldap.group.search.depth에 지정된 깊이 만큼 동일한 유형으로
반복적으로 검색됩니다.
- 첫 번째, IBM HTTP Server는 ldap.group.name.filter
및 ldap.user.cert.filter를 사용하여 사용자 및 그룹에 대해 제공되는
CN을 식별 이름(DN)으로 변환합니다. 그 다음, IBM HTTP
Server가 그룹 DN을 값이 사용자 DN인 항목에 대한 기본으로 사용하여
검색합니다.
예:
ldapsearch ... -b "cn=grp1,ou=myunit,o=myorg,c=US"
"|((member=cn=user1,ou=otherunit,o=myorg,c=US)
(uniquemember=cn=user1,ou=otherunit,o=myorg,c=US))"
- 사용자의 LDAP 속성을 기반으로 하는 권한. LDAP을
사용하여 사용자 비밀번호를 확인하고 사용자가 속성(자원에
액세스할 수 있는 사용자가 사용자 자체 LDAP 입력 파트인지
식별하는 속성) 세트에 일치하는지 확인합니다.
예:
LDAPRequire filter "(&(jobtitle=accountant)(location=newyork))"
LDAPRequire의
이 양식을 사용하려면 IBM HTTP Server가
ldap.user.cert.filter를 사용하여 사용자에 대해 제공되는 CN을
DN으로 변환해야 합니다. IBM HTTP Server는 또한
사용자 DN을 기본으로 사용하여 검색하고 LDAPRequire 지시문에서 제공되는
검색 필터를 사용해야 합니다. 결과가 리턴되면 권한 부여가
성공한 것입니다.
예:
ldapsearch ... -b "cn=user1,ou=otherunit,o=myorg,c=US" "(&(jobtitle=accountant)
(location=newyork))"
LDAP의 일부 속성(동적
역할로도 부름)은 LDAP 서버가 동적으로 계산하며
검색 필터에 유효하지 않은 다른 시멘틱으로 되어 있을 수도
있습니다. 그런 값은 앞의 예에서 사용되는 경우 실패할 수 있으며 IBM HTTP Server에서의 권한 부여에 사용할 수 없습니다.
- 인증 전용: LDAP을 사용하여 사용자 비밀번호만 확인.
Require
지시문을 사용하여 특정 사용자로 제한하거나 AuthGroupFile을 사용하여
일반 그룹 파일을 유지보수할 수 있습니다.
- ldap.prop 구성 파일을 편집하십시오. 아직 없는
경우 IBM HTTP Server와 함께 제공되는
ldap.prop.sample 파일을 사용할 수 있습니다. 올바른 값을
모르는 경우 LDAP 서버 관리자와 함께 확인하십시오. 사용자
환경에 올바른 값으로 다음 지시문을 업데이트하십시오.
- 웹 서버 연결 정보를 입력하십시오.
- SSL, LDAPS 또는 SSL에서 LDAP을 사용하는 경우
결과
mod_ibm_ldap 지시문을 사용하는 검색이
ldap.application.dn 사용자로 인증하는 서버 연결 풀을
유지보수합니다. 첫 번째 연결은 첫 번째 LDAP 보호(LDAP-protected)
요청이 수신될 때 작성됩니다. 연결은 해당 연결의 후속 검색이나
다른 요청의 연결을 위해 지정된 초 동안(ldap.idleConnection.timeout)
열려 있습니다.
로그를 읽거나
IP 추적을 보고 있는 경우 다음 이벤트 순서가
발생합니다.
- IBM HTTP Server가 시작합니다.
- LDAP_TRACE_FILE이 설정된 경우 LDAP_obtain_config에 대한 몇 개의 항목이 있습니다.
- LDAP 보호(LDAP-protected) 자원의 첫 번째 요청이 수신됩니다.
- IBM HTTP Server가 ldap.application.dn 사용자 이름
및 ldap.application.password.stashFile에 숨겨진 비밀번호를 사용하여
LDAP에 바인드합니다(애플리케이션 연결).
- IBM HTTP Server가 이 연결에서 검색을 수행하여
사용자가 입력한 사용자 이름 또는 클라이언트 인증서의 컨텐츠를
user.*.filter 설정을 사용하여 식별 이름(DN)으로 변환합니다.
- IBM HTTP Server가 클라이언트에서 제공하는
사용자 이름/비밀번호로 LDAP 서버에 바인드하여 인증을 확인합니다(이것이
LDAP 서버에 대한 "사용자 연결"입니다).
- 임의의 LDAPRequire 지시문이 이 요청에 적용되는 경우 IBM HTTP
Server는 앞의 프로서지에서 설명한 방식으로 해당 지시문을 처리합니다.
- IBM HTTP Server가 사용자 연결을 바인드 해제합니다.
- 애플리케이션 연결이 다음 요청을 위해 유지됩니다.