LDAP/ca: Diferència entre les revisions

De Guifi.net - Wiki Català

(LDAP al WP)
(LDAP al WP)
Línia 105: Línia 105:
  
 
Requeriments:
 
Requeriments:
Es necessari tenir suport LDAP a PHP (en sistemes debian/ubuntu, paquet php5-ldap)
+
Es necessari tenir suport LDAP a PHP (en sistemes debian/ubuntu, paquet php5-ldap)
Tambe, si el servidor on s'esta instal·lant Wordpress, no te un certificat SSL (per exemple, un autogenerat), s'ha d'afegir el següent a l'arxiu /etc/ldap/ldap.conf (o /etc/ldap.conf):
+
Tambe, si el servidor on s'esta instal·lant Wordpress, no te un certificat SSL (per exemple, un autogenerat), s'ha d'afegir el següent a l'arxiu /etc/ldap/ldap.conf (o /etc/ldap.conf):
  
 
   TLS_REQCERT never
 
   TLS_REQCERT never

Revisió de 17:46, 24 feb 2013

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

Abans de començar haurem de tindre clar quin és el node ID del nostre proxy (http://guifi.net/node/NODEID) per que ens el demana en la instal.lació:

  • Afegir els repositoris a /etc/apt/sources.list
deb http://repo.vic.guifi.net/debian guifi/
deb http://repo.vic.guifi.net/debian guifi-testing/
  • executar:
sudo apt-get update
sudo apt-get install guifi-proxy3

Amb això ja tenim un squid en marxa, un cron que actualitza els ACLs i autenticació automàctica contra ldap.guifi.net. Per la configuració personalitzada hem d'usar /etc/squid3/custom.conf.

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"
   );

LDAP al WP

Per integrar els inicis de sessió Wordpress d'una delegació de guifi amb ldap.guifi.net, podem fer servir per exemple el plugin "Simple LDAP Login".

Ldap working.PNG

Requeriments: Es necessari tenir suport LDAP a PHP (en sistemes debian/ubuntu, paquet php5-ldap) Tambe, si el servidor on s'esta instal·lant Wordpress, no te un certificat SSL (per exemple, un autogenerat), s'ha d'afegir el següent a l'arxiu /etc/ldap/ldap.conf (o /etc/ldap.conf):

 TLS_REQCERT never

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

Es pot demanar la sincronització del directori principal cap a d'altres instàncies remotes per millorar el temps de resposta. Al repositori esmentat es troben els scripts de sincronització.

Eines de l'usuari