LDAP

El directorio de usuarios de las aplicaciones del software se gestiona mediante LDAP (ingl. Lightweight Directory Access Protocol). De este modo, cada empleado o colaborador del GAD Provincial tiene un nombre de usuario y una contraseña para todas las aplicaciones software (correo institucional, geoportal, etc.).

En este apartado se documentan los parámetros de conección al servidor LDAP usado: OpenLdap integrado en Zimbra.

Test del servidor LDAP:

  • con ladwhoami ldapwhoami -vvv -h webmail.gporellana.gob.ec -p 389 -D prueba -x -w 123456
  • con Apache Directory Studio (ADS) (standalone o plugin para Eclipse)

Las aplicaciones que se conectan con el directorio de usuarios tambien pueden obtener grupos del servidor LDAP. Estas aplicaciones son Spark (Chat XMPP) y DokuWiki (contenido geoportal).

Los grupos de Spark son las coordinaciones del GADPO, usado para la agrupación de los contactos según su coordinación en la que trabajan.

Los grupos de DokuWiki se usan para especificar las reglas de acceso (lectura, escritura) a los contenidos de la wiki. Actualmente son:

  • admin - administradores de la wiki
  • user - usuarios que tienen permiso a editar los apartados proyectos, manuales y calidad
  • sistemas - usuarios que tienen permiso a editar el apartado sistema
  • georellana - usuarios que tienen permiso a editar el apartado georellana

Las aplicaciones OpenProject (gestión de projectos), GeoNetwork (catálogo de metadatos) y GeoServer definen los grupos y roles mediante el mismo interfaz de administración web, por lo cual no requieren grupos LDAP para el control de acceso.

DokuWiki

La instalación de dokuwiki ya incluye el plugin AuthLDAP, por lo cual solo se requiere su configuración que se realiza mediante el archivo local.protected.php para que no pueda ser sobreescrito mediante el interfaz web de administradores de la wiki.

conf/local.protected.php
<?php
$conf['authtype'] = 'authldap';
$conf['superuser'] = 'dalton.ojeda,mmolina,jan,javier.aguilar';
$conf['plugin']['authldap']['server'] = '192.168.XX.XX';
$conf['plugin']['authldap']['usertree'] = 'ou=people,dc=gporellana,dc=gob,dc=ec';
$conf['plugin']['authldap']['grouptree'] = 'ou=wiki,dc=gporellana,dc=gob,dc=ec';
$conf['plugin']['authldap']['userfilter'] = '(&(uid=%{user})(objectClass=zimbraAccount))';
$conf['plugin']['authldap']['groupfilter'] = '(&(objectClass=groupOfNames))';
$conf['plugin']['authldap']['version'] = 3;
$conf['plugin']['authldap']['binddn'] = 'uid=readldap,cn=users,cn=zimbra';
$conf['plugin']['authldap']['bindpw'] = 'Yn$Z@Te5pVHEh9LH';
$conf['plugin']['authldap']['modPass'] = 0;
// $conf['plugin']['authldap']['debug'] = 1;

DokuWiki permite especificar un superusuario con acceso a la Wiki independiente de las restricciones ACL - que puede ser un grupo, o una lista de superusuarios seperados por comas (vea arriba).

OpenProject

La configuración de la conexión LDAP es la siguiente:

  • Nombre*: LDAP_GADPO
  • Host*: 192.168.XXX.XXX ip local del servidor LDAP
  • Puerto*: 389
  • LDAPS: no
  • Cuenta: uid=readldap,cn=users,cn=USUARIO
  • Contraseña: CONTRASEÑA
  • Base DN: dc=gporellana,dc=gob,dc=ec
  • Creación de usuario sobre la marcha: si

Atributos

  • Ingresar*: uid
  • Nombre: givenName
  • Apellido: sn
  • Correo electrónico: mail

GeoNetwork

Configuración mediante archivo, según el manual de la siguiente manera:

  • Incluir config-security-ldap.xml en el archivo config-security.ldap
  • Configurar LDAP en archivo config-security-ldap-overrides.properties
var/lib/tomcat8/webapps/portal/WEB-INF/config-security/config-security.xml
<beans 
xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context-3.0.xsd
          http://www.springframework.org/schema/security
          http://www.springframework.org/schema/security/spring-security-3.1.xsd" 
          xmlns:sec="http://www.springframework.org/schema/security"
          xmlns:ctx="http://www.springframework.org/schema/context"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xmlns="http://www.springframework.org/schema/beans">
    <!-- <sec:debug/> -->
    <import resource="config-security-core.xml"/>
    <import resource="config-security-mapping.xml"/>
    <import resource="config-security-ldap.xml"/>
    <!-- <import resource="config-security-ecas.xml"/> -->
    <!-- <import resource="config-security-cas.xml"/>
    <import resource="config-security-cas-ldap.xml"/> -->
    <!-- <import resource="config-security-cas-database.xml"/> -->
    <!-- <import resource="config-security-shibboleth.xml"/>  -->
    <ctx:property-placeholder location="WEB-INF/config-security/config-security.properties" file-encoding="UTF-8" ignore-unre$
 
</beans>
/var/lib/tomcat8/webapps/portal/WEB-INF/config-security/config-security-ldap-overrides.properties
# LDAP Connection Settings - sobreescribiendo config-security-ldap-overrides.properties
ldap.base.provider.url=ldap://192.168.XX.XX:389
ldap.base.dn=dc=gporellana,dc=gob,dc=ec
ldap.security.principal=cn=USER,dc=gporellana,dc=gob,dc=ec
ldap.security.credentials=CONTRASEÑA
 
ldap.base.search.base=ou=people
ldap.base.dn.pattern=uid={0},${ldap.base.search.base}
 
# Map user information to LDAP attributes and default values
ldapUserContextMapper.mapping[name]=givenName,
ldapUserContextMapper.mapping[surname]=sn,
ldapUserContextMapper.mapping[mail]=mail,
ldapUserContextMapper.mapping[organisation]=o,GADPO
ldapUserContextMapper.mapping[kind]=title,
ldapUserContextMapper.mapping[address]=,
ldapUserContextMapper.mapping[zip]=,
ldapUserContextMapper.mapping[state]=,
ldapUserContextMapper.mapping[city]=,
ldapUserContextMapper.mapping[country]=,
ldapUserContextMapper.mapping[privilege]=,
 
# If not set, the default profile is RegisteredUser
# Valid profiles are http://geonetwork-opensource.org/manuals/trunk/eng/developer/apidocs/geonetwork/org/fao/geonet/constants$
ldapUserContextMapper.mapping[profile]=profile,RegisteredUser

GeoServer