Validación LDAP para tu WIKI

En el CMS de wikis MediaWiki tenemos una extension para la validación de acceso LDAP: LDAP_Authentication.

Por tanto, si tenemos un Servidor de Directorio (LDAP ó Active Directory), podemos utilizar nuestra wiki con estos servicios de autenticación centralizados.

Vamos a instalar el fichero LdapAuthentication.php en su versión 1.1g en el directorio de extensiones de la wiki: /var/www/wiki/extensions.

Añadimos después las siguientes líneas en el fichero de configuración LocalSettings.php:

# Validación LDAP
require_once( "$IP/extensions/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
 
  //Nombres de los dominios que utilizarás.
  $wgLDAPDomainNames = array("LEBRIJO.COM");
 
  //Asociación entre nombre de dominio y nombre DNS de la máquina donde se va a validar.
  $wgLDAPServerNames = array("LEBRIJO.COM"=>"ldap.lebrijo.com");
 
  //Podemos permitir la convivencia de autenticación local del wiki con LDAP.
  $wgLDAPUseLocal = true;
 
  //Encriptación en las solicitudes LDAP.
  $wgLDAPEncryptionType = array("LEBRIJO.COM"=>"clear");
 
  //Le decimos cual es la base de la consulta
  $wgLDAPBaseDNs = array("LEBRIJO.COM"=>"dc=lebrijo,dc=com");
  $wgLDAPSearchAttributes = array("LEBRIJO.COM"=>"uid");
 
  //Utilizamos los grupos LDAP para las directivas de grupo:
  $wgLDAPGroupsPrevail = array("LEBRIJO.COM"=>true);
  $wgLDAPGroupNameAttribute = array("LEBRIJO.COM"=>"cn");

De esta forma los usuarios de tu LDAP tendrán acceso a la wiki.

En el mismo fichero de configuración podemos poner las restricciones al resto de visitantes de la wiki:

# VALIDACIÓN y CONTROL DE ACCESO:
# Básico para todos los visitantes por defecto:
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['read'] = true;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createtalk'] = false;

14 thoughts on “Validación LDAP para tu WIKI

  1. Buenas, mi proyecto final de carrera es una Wiki que estoy haciendo con Mediawiki y estoy intentando integrar el LDAP utilizado en mi universidad pero me esta dando muchos problemas. Cuando pongo el usuario y contraseña siempre se me queda en una pagina en blanco, sabes porque puede ser?

    Te pego el codigo que tengo (es el mismo que el tuyo):

    # Validación LDAP
    require_once( “$IP/extensions/LdapAuthentication.php” );
    $wgAuth = new LdapAuthenticationPlugin();

    //Nombres de los dominios que utilizarás.
    $wgLDAPDomainNames = array(“Alumnes”);

    //Asociación entre nombre de dominio y nombre DNS de la máquina donde se va a validar.
    $wgLDAPServerNames = array(“Alumnes”=>”dir3.udl.net”);

    //Podemos permitir la convivencia de autenticación local del wiki con LDAP.
    $wgLDAPUseLocal = true;

    //Encriptación en las solicitudes LDAP.
    $wgLDAPEncryptionType = array(“Alumnes”=>”clear”);

    //Le decimos cual es la base de la consulta
    $wgLDAPBaseDNS = array(“Alumnes”=>”dc=Udl,dc=es”);
    $wgLDAPSearchAttributes = array(“Alumnes”=>”uid”);

    //Utilizamos los grupos LDAP para las directivas de grupo:
    $wgLDAPGroupsPrevail = array(“Alumnes”=>true);
    $wgLDAPGroupNameAttribute = array(“Alumnes”=>”cn”);

  2. Hola sKoRp,

    la configuración de LDAP en la wiki es correcta.

    Se me ocurre que sea un problema de ejecución de la librería sobre tu motor de PHP. Para saber si es esto, podrías mirar los logs de apache, a ver si dá un error cuando te validas.

    Ó poner el php5.ini a modo desarrollo: display_errors = On. De esta manera te chiva en el navegador los errores que se puedan producir en la ejecución de scripts.

    En último caso (no creo) sería que no conectase bien con el LDAP, para esto te ayudarán los logs de Apache y los del mismo servidor de LDAP.

    Si quieres cuelga aquí los errores que indagues, date cuenta que lo que dices (pantalla en blanco) no define de ninguna manera el problema.
    Ya me contarás si lo has solucionado.

    Saludos,

  3. Me acaban de enviar un mail diciendome que no puedo mirar los logs ya que son maquinas protegidas y salen contraseñas que no me pueden enseñar, asi que no puedo ver el error que aparece de ninguna de las maneras que me has comentado.

    Alguna idea para intentar arreglarlo?

    Gracias por todo.

  4. Configuré la conexión para mi equipo, pero cuando trato de autenticarme aparece la página en blanco. La versión de wiki que estoy usando es la 1.9.3, la extensión quisiera que me informara si debo hacer una configuración adicional para el caso de estar instalada en Windows 2.003. El código que estoy usando es el siguiente:

    require_once( “$IP/extensions/LdapAuthentication.php” );
    $wgAuth = new LdapAuthenticationPlugin();

    //Nombres de los dominios que utilizarás.
    $wgLDAPDomainNames = array(“XXX.COM.XX”);

    //Asociación entre nombre de dominio y nombre DNS de la máquina donde se va a validar.
    $wgLDAPServerNames = array(“XXX.COM.XX”=>”XXXXXXGWEB”);

    //Podemos permitir la convivencia de autenticación local del wiki con LDAP.
    $wgLDAPUseLocal = true;

    //Encriptación en las solicitudes LDAP.
    $wgLDAPEncryptionType = array(“XXX.COM.XX”=>”clear”);

    //Le decimos cual es la base de la consulta
    $wgLDAPBaseDNs = array(“XXX.COM.XX”=>”dc=XXX,dc=COM,dc=XX”);
    $wgLDAPSearchAttributes = array(“XXX.COM.XX”=>”sAMAccountName”);

    //Utilizamos los grupos LDAP para las directivas de grupo:
    $wgLDAPGroupsPrevail = array(“XXX.COM.XX”=>true);
    $wgLDAPGroupNameAttribute = array(“XXX.COM.XX”=>”cn”);

  5. Buenas, estaria muy agradecido si me pudieras ayudar, configure la wiki tal como lo describis, pero al momento de autentificar me trae la pagina en blanco, que puede ser, o que puedo hacer, muchas gracias.

  6. Hola, yo tuve los mismos problemas que Fede y Skorp a la hora de autenticar por LDAP y fue tan sencillo como instalar un paquete para php:

    apt-get install php5-ldap

    Saludos y espero que os sirva de ayuda.

  7. Partiendo de la base de haber configurado la autenticacion de los usuarios de LDAP para mi wiki, me gustaria saber como administrar los grupos y estos usuarios traidos del LDAP para denegarle permisos de acceso algunas paginas dependiendo de si hacen parte de del grupo users, sysop, bureucreaut, etc…… Muchas gracias sobre cualquier luz sobre el asunto, sus aportes me han sido de gran utilidad…

  8. Buenos días, Estoy tomando como referencia tu post para integrar los usuarios de mi ldap en una mediawiki pero tengo los siguientes problemas.
    1)El wgLDAPBaseDNs lo he tenido que comentar por que si no no se me autenticaban los usuarios. Pero bueno con esto comentado funciona :S.
    2) Si los usuarios tienen la contraseña igual que los nombre de usuario estos no pueden acceder ¿porque? ¿es posible la modificación?
    3) Si deshabilito la convivencia de las dos BD y solo permito la autenticación con LDAP pierdo el usuario administrador, es decir que no me puedo loguear con este. ¿existe la manera de crearlo o habilitarlo?

    Si necesitas algún tipo de información pídemela y te la facilitare.
    Un saludo y gracias

  9. Tengo mediawiki corriendo y queria que me cogiera los grupos y usuarios de AD para administrar la misma. La configuración que tengo puesta en localsettings.php es:

    require_once( “$IP/extensions/LdapAuthentication.php” );
    $wgAuth = new LdapAuthenticationPlugin();

    //Nombres de los dominios que utilizarás.
    $wgLDAPDomainNames = array(“sudominio3.subdominio2.subdominio1.dominio.es”);

    //Asociación entre nombre de dominio y nombre DNS de la máquina donde se va a validar.
    $wgLDAPServerNames = array(“sudominio3.subdominio2.subdominio1.dominio.es”=>”servidorAD.sudominio3.subdominio2.subdominio1.dominio.es”);

    //Podemos permitir la convivencia de autenticación local del wiki con LDAP.
    $wgLDAPUseLocal = false;

    //Encriptación en las solicitudes LDAP.
    $wgLDAPEncryptionType = array(“sudominio3.subdominio2.subdominio1.dominio.es”=>”clear”);

    //Le decimos cual es la base de la consulta
    $wgLDAPBaseDNs = array(“sudominio3.subdominio2.subdominio1.dominio.es”=>”dc=sudominio3,dc=sudominio2,dc=sudominio1,dc=dominio,dc=extension”);
    $wgLDAPSearchAttributes = array(“sudominio3.subdominio2.subdominio1.dominio.es”=>”sAMAccountName”);

    //Utilizamos los grupos LDAP para las directivas de grupo:
    $wgLDAPGroupsPrevail = array(“sudominio3.subdominio2.subdominio1.dominio.es”=>true);
    $wgLDAPGroupNameAttribute = array(“sudominio3.subdominio2.subdominio1.dominio.es”=>”cn”);

    donde no se muy bien que es ni sAMAccountName ni cn.

    La cosa es que cuando me logeo me aparece “Error de inicio de sesión:La contraseña indicada es incorrecta. Por favor, inténtelo de nuevo.”
    ¿alguien sabe que es lo que estoy haciendo mal?

    saludos

  10. Buenas, otro mas con problemas entre ldap y media wiki.
    Probé muchos ej. pero cuando entro a la pag. de login y pongo un usuario de LDAP, me dice que no existe. Estoy seguro de:
    -Mediawiki no consulta contra el server de LDAP (Active Directory 2003), ya que NO SALE TRAFICO hacia el servidor.
    -Se que PHP esta bien configurado para “hablar” LDAP ya que tengo un mini ejemplo. que hace Binds correctamente. Si lo hago de manera anonima no puedo hacer busquedas, si lo hago con credenciales si.

    El problema es que No pasa nada!, ni errores en los logs NADA!

    Alguna idea? Gracias!

  11. Buen día me podría por favor ayudar con un problema que estoy teniendo con los parámetros de configuración.-

    Ya me funciona perfectamente la configuración que pasaron, lo que necesito que solo ciertos usuario de un grupo pueda acceder al lo datos del Wiki.-

    Cual es el parámetro que tengo que agregar para hacer esto??

    Gracias!!!!!

  12. Hola,

    He realizado las modificaciones como comentas pero solo puedo validar con el usuario root de mi dominio, el resto de usuarios del dominio existen pero me dice que la contraseña es incorrecta. ¿Alguien sabe a que es debido?gracias.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>