이 문서에는 mod_ibm_ldap 모듈을 사용하는 기존 지시문에서 개방형 소스 LDAP 모듈(mod_authnz_ldap 및 mod_ldap) 사용으로의 마이그레이션을 돕기 위한 정보가 포함되어 있습니다. 마이그레이션을 통해 향후에도 LDAP 구성을 지원할 수 있습니다.
개방형 소스 LDAP 기능은 두 모듈로 제공됩니다. AuthLDAP 지시문은 mod_authnz_ldap 모듈이 제공하고 LDAP 지시문은 mod_ldap 모듈이 제공합니다. LDAP 기능을 사용하려면 두 모듈을 모두 로드해야 합니다. 다음 절에서는 개방형 소스 LDAP 모듈을 나타내기 위해 일반적인 이름, mod_ldap을 사용합니다.
mod_ldap 모듈은 코드페이지 디렉토리를 지정하는 지시문을 제공하지 않습니다. 코드페이지 디렉토리는 올바른 디렉토리에 자동으로 설치되며 코드페이지 디렉토리는 설치된 위치에서 이동할 수 없습니다.
ldapCodePageDir /location/of/codepages
mod_ldap 모듈은 LDAP 구성 파일을 지정하는 지시문을 제공하지 않습니다. LDAP 구성 파일을 지정하는 mod_ldap 지시문은 없지만 LDAP 구성을 개별 파일에 배치하려는 경우 Apache 포함 지시문을 사용할 수 있습니다.
ldapConfigFile ldap.prop다음과 같이 변환하십시오.
Include /location/of/ldap_conf/apache_ldap.conf
mod_ibm_ldap LDAPConfigfile 지시문을 마이그레이션하는 또 다른 방법은 mod_authn_alias 모듈 AuthnProviderAlias 컨테이너를 사용하여 LDAP 지시문 그룹을 하나 이상 작성한 다음 필요에 따라 별명 레이블을 참조하여 해당 그룹을 사용하는 것입니다.
mod_ldap 모듈은 LDAP 인증 보안을 위해 require 지시문에 LDAP 확장기능을 제공합니다.
이전에 IBM HTTP Server에 require valid-user를 사용한 경우 이 require 지시문을 수정 없이 그대로 유지할 수 있습니다. 가장 높은 수준의 LDAP 인증 보안을 위해서는 require valid-user를 보다 구체적인 양식으로 마이그레이션해야 합니다. 자세한 정보는 require 지시문(ldap-user, ldap-dn, ldap-attribute, ldap-group, ldap-filter, valid-user)에 대한 Apache 문서를 참조하십시오.
LdapRequire filter "(&(objectclass=person)(cn=*)(ou=OurUnit)(o=OurOrg))" LdapRequire group MyDepartment다음과 같이 변환하십시오.
require ldap-filter &(objectclass=person)(cn=*)(ou=OurUnit)(o=OurOrg) require ldap-group cn=MyDepartment,o=OurOrg,c=US
mod_ldap 모듈은 인증 유형을 지정하는 지시문을 제공하지 않습니다. AuthLDAPBindDN 지시문에 대한 값이 지정되면 기본 인증을 사용할 수 있습니다. AuthLDAPBindDN 지시문에 대한 값이 지정되지 않으면 mod_ibm_ldap 모듈의 이전 None 인증 유형 또는 익명을 사용합니다.
ldap.application.authType=[None | Basic | Cert]
mod_ldap 모듈은 애플리케이션 인증 유형을 결정하기 위해 AuthLDAPBindDN 지시문을 제공합니다.
AuthLDAPBindDN 지시문에 대한 값이 지정되는 경우 authType 지시문 값은 Basic입니다. AuthLDAPBindDN 지시문을 사용하지 않는 경우 authType 지시문의 값은 None입니다. LDAPTrustedClientCert 지시문에 값이 지정되는 경우 authType 지시문의 값은 Cert입니다.
ldap.application.DN=cn=ldapadm,ou=OurDirectory,o=OurCompany,c=US다음과 같이 변환하십시오.
AuthLDAPBindDN "cn=ldapadm,ou=OurDirectory,o=OurCompany,c=US"
mod_ldap 모듈은 바인드 비밀번호를 지정하기 위해 AuthLDAPBindPassword 지시문을 제공합니다. 값은 구성 파일에 일반 텍스트로 저장됩니다. 따라서 구성 파일에 대한 액세스를 제한해야 합니다.
ldap.application.password=mypassword다음과 같이 변환하십시오.
AuthLDAPBindPassword mypassword
mod_ldap 모듈은 비밀번호를 숨기기 위한 지시문을 제공하지 않습니다. AuthLDAPBindPassword 지시문은 비밀번호를 지정하기 위한 유일한 방법이며 구성 파일에 일반 텍스트로 값이 저장됩니다. 따라서 구성 파일에 대한 액세스를 제한해야 합니다.
ldap.application.password.stashfile=/path/to/stashfile.sth
mod_ldap 모듈은 LDAP 캐시에 대한 제한시간을 지정하기 위해 LDAPCacheTTL 지시문을 제공합니다. LDAPCacheTTL 지시문은 글로벌 범위에 적용되므로 구성 파일의 최상위 레벨에 있어야 합니다. 이는 mod_ibm_ldap 모듈과 다릅니다. ldap.cache.timeout 지시문의 구성 파일 내 위치는 제약이 없기 때문입니다.
ldap.cache.timeout=60다음과 같이 변환하십시오.
LDAPCacheTTL 60기본값은 600초입니다.
mod_ldap 모듈은 그룹을 식별하는 오브젝트 클래스를 지정하기 위해 AuthLDAPSubGroupClass 지시문을 제공합니다. mod_ibm_ldap 모듈의 경우에는 모든 값이 단일 지시문 행에 지정되었습니다. 그러나 mod_ldap 모듈의 경우에는 모든 값을 한 행에 또는 여러 행에 지정(각 행마다 지시문과 하나의 값)할 수 있습니다.
ldap.group.dnattributes=groupOfNames GroupOfUniqueNames다음과 같이 변환하십시오.
AuthLDAPSubGroupClass groupOfNames AuthLDAPSubGroupClass groupOfUniqueNames기본값입니다.
mod_ldap 모듈은 현재 그룹의 서브그룹 멤버를 식별하는 라벨을 지정하기 위해 AuthLDAPSubGroupAttribute 지시문을 제공합니다. mod_ibm_ldap 모듈의 경우에는 하나의 레이블만 지정할 수 있습니다. 그러나 mod_ldap 모듈의 경우에는 하나의 지시문 행에 모든 레이블을 나열하거나 여러 지시문 행을 제공하여(개별 지시문 행에 하나의 레이블) 여러 레이블을 지정할 수 있습니다.
ldap.group.memberattribute=member다음과 같이 변환하십시오.
AuthLDAPSubGroupAttribute member AuthLDAPSubGroupAttribute uniqueMember
mod_ldap 모듈은 현재 그룹의 멤버(예: 사용자 또는 서브그룹)를 식별하는 레이블을 지정하기 위해 AuthLDAPGroupAttribute 지시문을 제공합니다. mod_ibm_ldap 모듈의 경우 하나의 지시문 행에 모든 레이블을 지정했습니다. 그러나 mod_ldap 모듈의 경우에는 모든 레이블을 하나의 지시문 행에 지정하거나 개별 지시문 행에 각 레이블을 지정할 수 있습니다.
ldap.group.membreattributes=member uniqueMember다음과 같이 변환하십시오.
AuthLDAPGroupAttribute member AuthLDAPGroupAttribute uniqueMember
mod_ldap 모듈은 개별 사용자 및 그룹 필터를 지정하는 지시문을 제공하지 않습니다. mod_ldap 모듈은 AuthLDAPURL 지시문 끝에 제공되는 필터를 사용합니다. mod_authn_alias 모듈이 제공하는 AuthnProviderAlias 컨테이너 지시문을 사용하면 필요한 LDAP 지시문을 포함하는 개별 my_ldap_user_alias 및 my_ldap_group_alias 별명을 작성할 수 있습니다. 그런 다음 그룹 멤버십으로 권한을 제어하는 위치에서 그룹 별명을 사용할 수 있습니다.
ldap.group.name.filter=(&(cn=%v1)(|(objectclass=groupofnames)(objectclass=groupofuniquenames)))
mod_ldap 모듈은 중첩된 그룹에서 사용자 찾기 시도를 중지하기 전에 추적하는 반복 깊이를 제한하기 위해 AuthLDAPMaxSubGroupDepth 지시문을 제공합니다.
ldap.group.search.depth=5다음과 같이 변환하십시오.
AuthLDAPMaxSubGroupDepth 5기본값은 10입니다.
mod_ldap 모듈은 사용자를 인증하는 데 사용되는 LDAP 서버와 다른 그룹 멤버십 권한을 부여하기 위해 LDAP 서버를 지정하는 지시문을 제공하지 않습니다.
컨테이너의 AuthLDAPURL 지시문에도 LDAP 그룹 서버를 지정해야 합니다. 각 그룹에 올바른 필터를 지정해야 합니다.
ldap.group.URL=ldap://groups_ldap.server.org:389/o=OurOrg,c=US ldap.group.URL=ldaps://groups_ldap.server.org:636/o=OurOrg,c=US
mod_ldap 모듈은 유휴 상태가 된 LDAP 서버에 대해 설정된 연결의 제한시간이 초과되는 시점을 지정하기 위한 지시문을 제공하지 않습니다. mod_ldap 모듈은 LDAP 서버 연결이 만기되는 시점을 자동으로 발견하지만 이로 인해 연결이 만기되지는 않습니다.
ldap.idleConnection.timeout=60
LDAPTrustedGlobalCert 지시문에 비밀번호가 지정되지 않으면 mod_ldap 모듈이 /path/to/keyfile.sth 파일을 자동으로 사용합니다(/path/to/keyfile.kdb가 LDAPTrustedGlobalCert 지시문에 지정된 키 파일인 것으로 가정).
키 파일 비밀번호를 지정하는 방법에 대한 정보는 LDAPTrustedGlobalCert 지시문에 대한 Apache 정보를 참조하십시오. 값은 구성 파일에 일반 텍스트로 저장됩니다. 따라서 구성 파일에 대한 액세스를 제한해야 합니다.
ldap.key.file.password.stashfile=/path/to/ldap.sth
mod_ldap 모듈은 인증서를 로드할 때 사용할 키 파일을 지정하기 위해 LDAPTrustedGlobalCert 지시문을 제공합니다. mod_ldap 모듈은 또한 이러한 지시문을 사용하여 구성 파일에서 일반 텍스트로 비밀번호를 지정합니다. 따라서 구성 파일에 대한 액세스를 제한해야 합니다.
ldap.key.filename=/path/to/keyfile.kdb다음과 같이 변환하십시오.
LDAPTrustedGlobalCert CMS_KEYFILE /path/to/keyfile.kdb myKDBpassword
LDAPTrustedGlobalCert SAF saf_keyring
mod_ldap 모듈은 KDB 키 파일에서 사용할 인증서를 지정하기 위해 LDAPTrustedClientCert 지시문을 제공합니다. 기본 인증을 사용하는 경우 이러한 지시문에 대한 값을 지정하지 않아도 됩니다.
ldap.key.label=certname_from_kdb다음과 같이 변환하십시오.
LDAPTrustedClientCert CMS_LABEL certname_from_kdb
mod_ldap 모듈은 분산 디렉토리 트리에서 사용자 찾기 시도를 중지하기 전에 추적할 레퍼럴 수를 제한하기 위해 LDAPReferralHopLimit 지시문을 제공합니다.
ldapReferralHopLimit 5다음과 같이 변환하십시오.
LDAPReferralHopLimit 5기본값은 5입니다.
mod_ldap 모듈을 분산 디렉토리 트리에서 사용자를 찾을 때 레퍼럴 추적을 사용 또는 사용 안함으로 설정하기 위해 LDAPReferrals 지시문을 제공합니다.
ldapReferrals On다음과 같이 변환하십시오.
LDAPReferrals On기본값은 On입니다.
mod_ldap 모듈은 권한 영역을 지정하기 위해 AuthName 지시문을 제공합니다.
ldap.realm=Some identifying text다음과 같이 변환하십시오.
AuthName "Some identifying text"
mod_ldap 모듈을 검색 요청을 중지해야 할 때 지정할 LDAPSearchTimeout 지시문을 제공합니다.
ldap.search.timeout=10다음과 같이 변경하십시오.
LDAPSearchTimeout 10기본값은 10초입니다.
mod_ldap 모듈은 LDAP 서버와 통신할 때 사용할 네트워크 전송 유형을 지정하기 위해 LDAPTrustedMode 지시문을 제공합니다.
AuthLDAPURL 지시문에 포트가 지정되지 않으면 mod_ldap 모듈이 LDAPTrustedMode 지시문을 무시하며 네트워크 전송 값 SSL을 지정합니다. 자세한 정보는 LDAPTrustedMode 및 AuthLDAPURL 지시문에 대한 Apache 문서를 참조하십시오.
ldap.transport=TCP(또는 SSL)다음과 같이 변환하십시오.
LDAPTrustedMode NONE(또는 SSL)ldaps://URL을 지정하면 모드가 SSL이 되고 LDAPTrustedMode 설정을 무시합니다.
mod_ldap 모듈은 서버에 연결할 때 사용할 기본 DN과 LDAP 서버 호스트 이름을 지정하기 위해 AuthLDAPURL 지시문을 제공합니다. mod_ldap 모듈은 또한 사용자 속성, 범위, 사용자 필터, 전송 모드를 지정하기 위한 방법을 제공합니다. 자세한 정보는 AuthLDAPURL 지시문에 대한 Apache 문서를 참조하십시오.
ldap.URL=ldap://our_ldap.server.org:389/o=OurOrg,c=US ldap.URL=ldaps://our_ldap.server.org:636/o=OurOrg,c=US다음과 같이 변환하십시오.
AuthLDAPURL ldap://our_ldap.server.org:389/o=OurOrg,c=US?cn?sub?(objectclass=person) AuthLDAPURL ldaps://our_ldap.server.org:636/o=OurOrg,c=US?cn?sub?(objectclass=person)
mod_ldap 모듈은 사용자 인증 유형을 지정하는 지시문을 제공하지 않습니다. mod_ldap 모듈은 제공된 사용자 ID 및 비밀번호 신임 정보를 기반으로 사용자를 인증합니다.
ldap.user.authType=Basic [Basic | Cert | BasicIfNoCert]
mod_ldap 모듈은 클라이언트 인증서 필터링을 위한 지시문을 제공하지 않습니다. mod_ldap 모듈은 클라이언트 인증서에 대해 직접 작업하지 않습니다.
ldap.user.cert.filter=(&(objectclass=person)(cn=%v1)(ou=%v2)(o=%v3)(c=%v4))
mod_ldap 모듈은 제공된 신임 정보를 서브컴포넌트로 구문 분석하기 위한 지시문을 제공하지 않습니다. mod_ibm_ldap 모듈은 ldap.user.name.fieldSep 지시문을 사용하여 신임 정보를 %v1, %v2, ...%vN 토큰으로 구문 분석하는 데 사용되는 구분 기호 문자를 지정합니다.
ldap.user.name.fieldSep=/ ,
mod_ldap 모듈은 사용자 이름 필터를 지정하는 지시문을 제공하지 않습니다. mod_ldap 모듈은 사용자 이름 필터를 AuthLDAPURL 지시문의 일부로 지정합니다.
AuthLDAPURL 지시문은 지시문에 지정된 사용자 속성과 검색 필터를 작성하기 위해 제공된 필터를 결합합니다. 제공된 필터는 표준 검색 필터 스펙을 따릅니다. mod_ldap 모듈을 또한 mod_ibm_ldap 모듈에 사용 가능한 %vx 토큰 구문 분석 기능을 제공하지 않습니다.
ldap.user.name.filter=(&(objectclass=person)(cn=%v1 %v2))
mod_ldap 모듈은 LDAP 버전을 지정하는 지시문을 제공하지 않습니다. mod_ldap 모듈은 LDAP 버전 3만 사용합니다.
ldap.version=2(또는 3)
mod_ldap 모듈을 실패한 연결을 재시도하기 전 시간을 지정하는 지시문을 제공하지 않습니다. mod_ldap 모듈은 연결 시도가 실패할 때 연결 재시도 사이에 시간 지연이 없습니다. 요청이 실패하기 전 최대 10회에 대해 자동으로 연결을 재시도합니다.
새 요청 시 동일한 LDAP 서버에 액세스해야 하는 경우 최대 10회에 대해 다시 연결을 재시도합니다. 재시도 제한은 LDAP 서버로 보낸 새 요청의 볼륨을 기반으로 합니다.
ldap.waitToRetryConnection.interval=300