OpenDJ: deshabilitar Schema Checking para importar datos

Si estamos importando datos a OpenDJ desde otro servicio de directorio es muy probable que nos encontremos con problemas a la hora de hacerlo (véase esta entrada por ejemplo: OpenDJ, import-ldif y PosixGroup: All entries must contain a structural objectclass). Por defecto, OpenDJ revisa la sintaxis de los atributos, la validación contra las definiciones de schema y estándares LDAP y que la utilización de object classes sea la correcta. Por ejemplo, en el caso anterior no podíamos importar los datos por no disponer de una structural objectclass, pasaría lo mismo si hay múltiples structural objectclass definidas por entrada.

En estos casos, si no tenemos tiempo para revisar la estructura del ldif o de importar los schemas del antiguo servidor LDAP a OpenDJ, podemos «relajar» estos chequeos o deshabilitarlos para evitar tener problemas con la importación. Lo recomendable es no hacerlo, pero si estamos haciendo pruebas o no es un servidor LDAP productivo podemos hacerlo para ahorrarnos un tiempo valioso.

Entrando en materia, hay tres posibilidades. Lo primero es si queremos deshabilitar la comprobación y schema checking cuando tenemos múltiples structural object classes por entrada. Todas estas opciones las podemos cambiar con el comando dsconfig de OpenDJ. En este caso configuramos como «warn» para que nos indique estos problemas pero no afecte al import del LDIF:

# dsconfig \
 set-global-configuration-prop \
 --hostname ldap-server \
 --port 4444 \
 --bindDN "cn=Directory Manager"
 --bindPassword mypassword \
 --set single-structural-objectclass-behavior:warn \
 --trustAll \
 --no-prompt \

También podemos deshabilitar el chequeo de sintaxis de los valores de los atributos:

# dsconfig \
 set-global-configuration-prop \
 --hostname ldap-server \
 --port 4444 \
 --bindDN "cn=Directory Manager"
 --bindPassword mypassword \
 --set invalid-attribute-syntax-behavior:warn \
 --trustAll \
 --no-prompt \

Y finalmente podemos desactivar completamente el schema checking:

# dsconfig \
 set-global-configuration-prop \
 --hostname ldap-server \
 --port 4444 \
 --bindDN "cn=Directory Manager"
 --bindPassword mypassword \
 --set check-schema:false \
 --trustAll \
 --no-prompt \