Este artículo contiene información para ayudarle a migrar de directivas existentes que utilizan el módulo mod_ibm_ldap a la utilización de módulos LDAP de código abierto (mod_authnz_ldap y mod_ldap). La migración garantizará el soporte futuro de su configuración LDAP.
Las características LDAP de código abierto las proporcionan dos módulos. El módulo mod_authnz_ldap proporciona las directivas AuthLDAP y el módulo mod_ldap proporciona las directivas LDAP. Deben cargarse ambos módulos para que las característica LDAP estén disponibles. En la siguiente sección se utiliza el nombre genérico mod_ldap para hacer referencia a los módulos LDAP de código abierto.
El módulo mod_ldap no proporciona una directiva para especificar un directorio de páginas de códigos. El directorio de páginas de códigos se instala automáticamente en el directorio correcto y no puede moverse de su ubicación instalada.
ldapCodePageDir /ubicación/de/páginas de códigos
El módulo mod_ldap no proporciona una directiva para especificar un archivo de configuración LDAP. Aunque no hay ninguna directiva mod_ldap para especificar el archivo de configuración LDAP, si desea colocar la configuración LDAP en un archivo aparte, puede utilizar la directiva include de Apache.
ldapConfigFile ldap.propen esto:
Include /location/of/ldap_conf/apache_ldap.conf
Otra alternativa para migrar la directiva LDAPConfigfile de mod_ibm_ldap es utilizar el contenedor AuthnProviderAlias del módulo mod_authn_alias para crear una o más agrupaciones de directivas ldap y, a continuación, utilizarlas haciendo referencia a las etiquetas de alias, cuando sea necesario.
El módulo mod_ldap proporciona la directiva require, con extensiones LDAP, para la seguridad de autenticación LDAP.
Si ha utilizado require valid-user previamente para IBM HTTP Server, puede dejar esta directiva require sin modificarla. Para obtener el máximo nivel de seguridad de autenticación LDAP, debe migrar require valid-user a un formato más específico. Para obtener más información, consulte la documentación de Apache para estas directivas require: ldap-user, ldap-dn, ldap-attribute, ldap-group, ldap-filter y valid-user.
LdapRequire filter "(&(objectclass=person)(cn=*)(ou=OurUnit)(o=OurOrg))" LdapRequire group MyDepartmenten esto:
require ldap-filter &(objectclass=person)(cn=*)(ou=OurUnit)(o=OurOrg) require ldap-group cn=MyDepartment,o=OurOrg,c=US
El módulo mod_ldap no proporciona una directiva que especifique un tipo de autenticación. Si se especifica un valor para la directiva AuthLDAPBindDN, se habilita la autenticación básica. Si no se especifica un valor para la directiva AuthLDAPBindDN, se habilita lo que antes era el tipo de autenticación None para el módulo mod_ibm_ldap, o anónimo.
ldap.application.authType=[None | Basic | Cert]
El módulo mod_ldap proporciona la directiva AuthLDAPBindDN para determinar el tipo de autenticación de la aplicación.
Si se especifica un valor para la directiva AuthLDAPBindDN, el valor de la directiva authType es Basic. Si no se habilita la directiva AuthLDAPBindDN, el valor de la directiva authType es None. Si se especifica un valor para la directiva LDAPTrustedClientCert, el valor de la directiva authType es Cert.
ldap.application.DN=cn=ldapadm,ou=OurDirectory,o=OurCompany,c=USen esto:
AuthLDAPBindDN "cn=ldapadm,ou=OurDirectory,o=OurCompany,c=US"
El módulo mod_ldap proporciona la directiva AuthLDAPBindPassword para especificar una contraseña de enlace. El valor se almacena en el archivo de configuración como texto sin formato. Por lo tanto, debe restringir el acceso al archivo de configuración
ldap.application.password=mypassworden esto:
AuthLDAPBindPassword mypassword
El módulo mod_ldap no proporciona una directiva para ocultar la contraseña. La directiva AuthLDAPBindPassword es el único medio de especificar una contraseña y el valor se almacena en el archivo de configuración como texto sin formato. Por lo tanto, debe restringir el acceso al archivo de configuración.
ldap.application.password.stashfile=/vía acceso/a/stashfile.sth
El módulo mod_ldap proporciona la directiva LDAPCacheTTL para especificar un tiempo de espera para la memoria caché de LDAP. La directiva LDAPCacheTTL tiene un ámbito global y debe ubicarse en el nivel superior del archivo de configuración. Esto difiere del módulo mod_ibm_ldap, ya que la directiva ldap.cache.timeout puede ubicarse en cualquier lugar del archivo de configuración.
ldap.cache.timeout=60en esto:
LDAPCacheTTL 60El valor predeterminado es 600 segundos.
El módulo mod_ldap proporciona la directiva AuthLDAPSubGroupClass para especificar las clases de objetos que identifican los grupos. Para el módulo mod_ibm_ldap, todos los valores se especificaban en una sola línea de directiva; pero para el módulo mod_ldap, los valores pueden especificarse todos en una línea o en varias líneas, con la directiva y un valor en cada línea.
ldap.group.dnattributes=groupOfNames GroupOfUniqueNamesen esto:
AuthLDAPSubGroupClass groupOfNames AuthLDAPSubGroupClass groupOfUniqueNamesEstos son los valores predeterminados.
El módulo mod_ldap proporciona la directiva AuthLDAPSubGroupAttribute para especificar las etiquetas que identifican a los miembros del subgrupo del grupo actual. Para el módulo mod_ibm_ldap, sólo podía especificar una etiqueta; no obstante, para el módulo mod_ldap, puede especificar varias etiquetas, incluyendo todas las etiquetas en una línea de directiva o proporcionando varias líneas de directiva, con cada etiqueta en una línea de directiva diferente.
ldap.group.memberattribute=memberen esto:
AuthLDAPSubGroupAttribute member AuthLDAPSubGroupAttribute uniqueMember
El módulo mod_ldap proporciona la directiva AuthLDAPGroupAttribute para especificar las etiquetas que identifican los miembros del grupo actual como, por ejemplo, un usuario o un subgrupo. Para el módulo mod_ibm_ldap, se especificaban todas las etiquetas en una línea de directiva; pero para el módulo mod_ldap, puede especificarlas todas en una línea de directiva o especificar cada etiqueta en una línea de directiva diferente.
ldap.group.membreattributes=member uniqueMemberen esto:
AuthLDAPGroupAttribute member AuthLDAPGroupAttribute uniqueMember
El módulo mod_ldap no proporciona una directiva para especificar filtros de usuario y de grupo diferentes. El módulo mod_ldap utiliza el filtro que se proporciona al final de la directiva AuthLDAPURL. Puede utilizar la directiva de contenedor AuthnProviderAlias, que proporciona el módulo mod_authn_alias, para crear distintos alias my_ldap_user_alias y my_ldap_group_alias que contengan las directivas ldap necesarias. A continuación, puede utilizar el alias de grupo en las ubicaciones donde la autorización se controla según la pertenencia a grupos.
ldap.group.name.filter=(&(cn=%v1)(|(objectclass=groupofnames)(objectclass=groupofuniquenames)))
El módulo mod_ldap proporciona la directiva AuthLDAPMaxSubGroupDepth para limitar la profundidad recurrente que se aplica antes de detener los intentos de ubicar un usuario en grupos anidados.
ldap.group.search.depth=5en esto:
AuthLDAPMaxSubGroupDepth 5El valor por omisión es 10.
El módulo mod_ldap no proporciona una directiva para especificar un servidor LDAP para autorizar una pertenencia a grupos que sea diferente del servidor LDAP que se utiliza para autenticar usuarios.
También debe especificar el servidor de grupo LDAP en la directiva AuthLDAPURL para el contenedor. Asegúrese de especificar el filtro correcto para cada grupo.
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
El módulo mod_ldap no proporciona una directiva para especificar el tiempo de espera de las conexiones establecidas con el servidor LDAP que han quedado desocupadas. El módulo mod_ldap detecta automáticamente cuándo caducan las conexiones en el servidor LDAP, pero no hace que caduquen las conexiones.
ldap.idleConnection.timeout=60
Si no se especifica ninguna contraseña en la directiva LDAPTrustedGlobalCert, el módulo mod_ldap utiliza automáticamente un archivo /vía acceso/a/keyfile.sth (suponiendo que /vía acceso/a/keyfile.kdb es el archivo de claves que se especifica en la directiva LDAPTrustedGlobalCert).
Para obtener más información sobre cómo especificar la contraseña del archivo de claves, consulte la información de Apache para la directiva LDAPTrustedGlobalCert. El valor se almacena en el archivo de configuración como texto sin formato. Por lo tanto, debe restringir el acceso al archivo de configuración.
ldap.key.file.password.stashfile=/vía acceso/a/ldap.sth
El módulo mod_ldap proporciona la directiva LDAPTrustedGlobalCert para especificar el archivo de claves que se va a utilizar al cargar los certificados. El módulo mod_ldap también utiliza estas directivas para especificar la contraseña en texto sin formato en el archivo de configuración. Por lo tanto, debe restringir el acceso al archivo de configuración.
ldap.key.filename=/vía acceso/a/keyfile.kdben esto:
LDAPTrustedGlobalCert CMS_KEYFILE /vía acceso/a/keyfile.kdb contraseñaKDB
LDAPTrustedGlobalCert SAF saf_keyring
El módulo mod_ldap proporciona la directiva LDAPTrustedClientCert para especificar qué certificado se debe utilizar del archivo de claves KDB. Si se utiliza el certificado predeterminado, no tendrá que especificar un valor para estas directivas.
ldap.key.label=certname_from_kdben esto:
LDAPTrustedClientCert CMS_LABEL certname_from_kdb
El módulo mod_ldap proporciona la directiva LDAPReferralHopLimit para limitar el número de referencias a seguir antes de detener los intentos de ubicar un usuario en un árbol de directorio distribuido.
ldapReferralHopLimit 5en esto:
LDAPReferralHopLimit 5El valor predeterminado es 5.
El módulo mod_ldap proporciona la directiva LDAPReferrals para habilitar o inhabilitar la búsqueda de referencias cuando se localizan usuarios en un árbol de directorio distribuido.
ldapReferrals Onen esto:
LDAPReferrals OnEl valor predeterminado es On.
El módulo mod_ldap proporciona la directiva AuthName para especificar el dominio de la autorización.
ldap.realm=texto identificativoen esto:
AuthName "texto identificativo"
El módulo mod_ldap proporciona la directiva LDAPSearchTimeout para especificar cuándo se debe abandonar una solicitud de búsqueda.
ldap.search.timeout=10en
LDAPSearchTimeout 10El valor predeterminado es 10 segundos.
El módulo mod_ldap proporciona la directiva LDAPTrustedMode para especificar el tipo de transporte de red a utilizar para comunicarse con el servidor LDAP.
Si no se especifica ningún puerto en la directiva AuthLDAPURL, el módulo mod_ldap hace caso omiso de la directiva LDAPTrustedMode y especifica el valor de transporte de red SSL. Para obtener más información, consulte la documentación de Apache para las directivas LDAPTrustedMode y AuthLDAPURL.
ldap.transport=TCP (o SSL)en esto:
LDAPTrustedMode NONE (o SSL)Si se especifica ldaps://URL, la modalidad se convierte en SSL y se ignora el valor de LDAPTrustedMode.
El módulo mod_ldap proporciona la directiva AuthLDAPURL para especificar el nombre de host del servidor LDAP y el puerto, así como el DN base que se utilizará al conectar al servidor. El módulo mod_ldap también proporciona un medio para especificar el atributo de usuario, el ámbito, el filtro de usuario y la modalidad de transporte. Para obtener más información, consulte la documentación de Apache para las directivas AuthLDAPURL.
ldap.URL=ldap://our_ldap.server.org:389/o=OurOrg,c=US ldap.URL=ldaps://our_ldap.server.org:636/o=OurOrg,c=USen esto:
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)
El módulo mod_ldap no proporciona una directiva para especificar un tipo de autenticación de usuario. El módulo mod_ldap autentica a los usuarios basándose en las credenciales de ID de usuario y contraseña proporcionadas.
ldap.user.authType=Basic [Basic | Cert | BasicIfNoCert]
El módulo mod_ldap no proporciona una directiva para filtrar los certificados de cliente. El módulo mod_ldap no trabaja directamente con certificados de cliente.
ldap.user.cert.filter=(&(objectclass=person)(cn=%v1)(ou=%v2)(o=%v3)(c=%v4))
El módulo mod_ldap no proporciona una directiva para analizar las credenciales proporcionadas en subcomponentes. El módulo mod_ibm_ldap utiliza la directiva ldap.user.name.fieldsep para especificar los caracteres separadores que se utilizan para analizar las credenciales en las señales %v1, %v2, ...%vN.
ldap.user.name.fieldSep=/ ,
El módulo mod_ldap no proporciona una directiva para especificar el filtro de nombre de usuario. El módulo mod_ldap especifica el filtro de nombre de usuario como parte de la directiva AuthLDAPURL.
La directiva AuthLDAPURL combina el atributo de usuario especificado en la directiva con el filtro proporcionado para crear el filtro de búsqueda. El filtro proporcionado sigue la especificación de filtro de búsqueda estándar. El módulo mod_ldap tampoco proporciona la función de análisis de señales %vx disponible para el módulo mod_ibm_ldap.
ldap.user.name.filter=(&(objectclass=person)(cn=%v1 %v2))
El módulo mod_ldap no proporciona una directiva para especificar la versión de LDAP. El módulo mod_ldap utiliza sólo LDAP versión 3.
ldap.version=2 (o 3)
El módulo mod_ldap no proporciona una directiva para especificar un periodo de tiempo antes de reintentar una conexión anómala. El módulo mod_ldap no tiene un retardo temporizado entre reintentos de conexión cuando falla un intento de conexión. El intento de conexión se vuelve a intentar automáticamente un máximo de 10 veces antes de que falle la solicitud.
Cuando una nueva solicitud tiene que acceder al mismo servidor LDAP, la conexión se reintenta de nuevo un máximo de 10 veces. El regulador de reintentos se basa en el volumen de nuevas solicitudes enviadas al servidor LDAP.
ldap.waitToRetryConnection.interval=300