LDAP/ca: Diferència entre les revisions

De Guifi.net - Wiki Català

(Configuració de clients)
(LDAP al Mediawiki)
Línia 72: Línia 72:
  
 
   //Le decimos cual es la base de la consulta
 
   //Le decimos cual es la base de la consulta
   $wgLDAPBaseDNs = array("LDAP"=>"dc=guifi,dc=net");
+
   $wgLDAPBaseDNs = array("LDAP"=>"o=webusers,dc=guifi,dc=net");
 
   $wgLDAPSearchAttributes = array("LDAP"=>"uid");
 
   $wgLDAPSearchAttributes = array("LDAP"=>"uid");
  
Línia 81: Línia 81:
 
   //facilitem el user DN
 
   //facilitem el user DN
 
   $wgLDAPSearchStrings = array(
 
   $wgLDAPSearchStrings = array(
   "LDAP"=>"uid=USER-NAME,dc=guifi,dc=net"
+
   "LDAP"=>"uid=USER-NAME,o=webusers,dc=guifi,dc=net"
 
   );
 
   );
  

Revisió de 11:56, 23 oct 2011

Icona d'esboç

Aquest article està en desenvolupament. Pràcticament totes les pàgines del Wiki de Guifi.net són editables, però en aquesta falta informació essencial. Ampliant-ho ajudaràs a millorar Guifi.net.
Potser puguis ajudar-te amb els wikis castellà i anglès si tenen una pàgina equivalent.

LDAP

Introducció

Les intencions: disposar d'una infraestructura que permeta autenticar una base única d'usuaris (drupal, wiki, trac, proxy federat...). Es tria LDAP per ser el backend més comú en el sentit que moltes eines (web i no web com ara radius) disposen de complements per autenticar/autoritzar els usuaris. En qualsevol cas,l'autenticació més segura passa per usar ssl a l'hora d'accedir a ldap, o mecanismes de desafiament resposta (només usables si al backend tenim la contrasenya en clar).

Càrrega d'usuaris

S'han desenvolupat uns scripts que poden exportar els usuaris d'un drupal 6 o els usuaris dels proxys federats i importar-los cap a un openldap. Són scripts pensats per crear una rama de l'estil: dc=guifi,dc=net, encara que es pot configurar per qualsevol altre domini, i també afegir més domain components de forma que poguem crear rames de la principal i d'esta forma, obtindre una jerarquía d'ldaps, tal volta per oferir un punt únic d'autenticació i delegar-la cap al ldap que finalment puga autenticar-nos, a l'estil d'EDUROAM.

Els scripts es troben al gitorius: git clone https://git.gitorious.org/ldapusers/ldapusers.git. Hi ha un Readme que explica com posar en marxa un directori a partir dels usuaris d'un drupal. Bàsicament, hem d'instal.lar: apt-get install slapd ldap-utils db4.6-util # ó db4.7-util i configurar config.sh amb les dades del directori i les dades d'accés a mySQL. Hi ha també uns exemples de configuració per al openLdap, pensats per a Fedora/Redhat, però l'adaptació a debian/ubuntu, és tan fàcil com canviar /etc/openldap/ per /etc/ldap a totes les referències que hi hagin a config.sh.

Una vegada instal.lats, la càrrega es pot fer periòdicament, executant: ./ldif_from_hdb.sh drupal6. Exemples de recerca:

  • ldapsearch -x -w PASSWORD -D "uid=webldap2011,o=webusers,dc=guifi,dc=net" -b "o=webusers,dc=guifi,dc=net" -H ldaps://ldap.guifi.net/ "uid=rotobator"
  • per comprovar que l'autenticació funciona podem fer bind amb un usuari: ldapsearch -x -W -D "uid=rotobator,o=webusers,dc=guifi,dc=net" -b "o=webusers,dc=guifi,dc=net" -H ldaps://ldap.guifi.net/ "(cn=rotobator)".
  • recerca d'usuaris federats a la rama del proxy: ldapsearch -x -w PASSWORD -D "uid=proxyldap2011,o=proxyusers,dc=guifi,dc=net" -b "o=proxyusers,dc=guifi,dc=net" -H ldaps://ldap.guifi.net/ "(&(uid=miquel.martos)(ou=2624))"

Ús de ldap.guifi.net

En un principi, qualsevol màquina/servei, pot usar aquest directori per autenticar usuaris de guifi.net, però hi ha una sèrie de mesures de seguretat que cal tindre en compte:

  • El directori no permet recuperar cap data personal ni d'altres persones, només permet autenticar usuaris.
  • Només l'usuari cn=admin,o=webusers, dc=guifi,dc=net (per als usuaris importats des del drupal) o l'usuari cn=admin,o=proxyusers, dc=guifi,dc=net (per als usuaris dels proxys federats) poden obtindre les dades emmagatzemades, encara que este usuari està reservat per a ús intern i manteniment del directori.
  • L'accés al directori només és posible mijançant LDAPS, és a dir, usant TLS/SSL.

Configuració de clients

Exemples de configuracions. En general hem de configurar les llibreries client del sistema, per això hem de modificar l'arxiu /etc/ldap/ldap.conf a ubuntu o /etc/openldap/ldap.conf a fedora:

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#SIZELIMIT	12
#TIMELIMIT	15
#DEREF		never
BASE    dc=guifi,dc=net
URI     ldaps://ldap.guifi.net/ ldaps://ldap2.guifi.net/
TLS_REQCERT never

Proxy federat

LDAP al Mediawiki

  • Instal.lació de la extensió d'LDAP per a mediawiki:
    • Ubuntu:
sudo apt-get install mediawiki-extensions-ldapauth
sudo mwenext LdapAuthentication.php
  • Es passen les dades per omplir aquesta configuració. Simplement nom de domini i LDAPBaseDN. Per a $wgLDAPEncryptionType pot ser "clear" o "ssl".
## LDAP_Authentication
## http://www.mediawiki.org/wiki/Extension:LDAP_Authentication
## svn co http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/LdapAuthentication/
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();

  //Nombres de los dominios que utilizarás.
  $wgLDAPDomainNames = array("LDAP");

  //Asociación entre nombre de dominio y nombre DNS de la máquina donde se va a validar.
  $wgLDAPServerNames = array("LDAP"=>"ldap.guifi.net");

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

  //Encriptación en las solicitudes LDAP.
  $wgLDAPEncryptionType = array("LDAP"=>"ssl");

  //Le decimos cual es la base de la consulta
  $wgLDAPBaseDNs = array("LDAP"=>"o=webusers,dc=guifi,dc=net");
  $wgLDAPSearchAttributes = array("LDAP"=>"uid");

  //no usem les directives de grup de moment 
  $wgLDAPGroupsPrevail = array("LDAP"=>false);
  $wgLDAPGroupNameAttribute = array("LDAP"=>"cn");
 
  //facilitem el user DN
  $wgLDAPSearchStrings = array(
   "LDAP"=>"uid=USER-NAME,o=webusers,dc=guifi,dc=net"
   );

Proves de balanceig/distribució

Ben mirat potser més el segon que no pas el primer per tal d'implementar-ho en un futur pròxim/necessari

  1. segona instancia d'ldap, pot ser remota o a la mateixa maquina virtual amb diferents ports.
  2. haproxy i configuració.
  3. configuració ldap-drupal per que apunte a haproxy.
  4. proves de replicació.
    1. Qué passa si una instancia te problemes?
    2. s'acumulen transaccions no realitzades?
  5. avaluar despres de les proves si ens interessa replicació en línia o simplement es sincronitzen les bdd del directori ppal cap a les instancies secundaries.

Altres

Ldap per validar els usuaris dels proxys federats. Pròximament.

Eines de l'usuari