LDAP/ca
De Guifi.net - Wiki Català
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=webldap2011,o=webusers, dc=guifi,dc=net (per als usuaris importats des del drupal) o l'usuari cn=proxyldap2011,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://serveis.guifi.net/debian guifi/ deb http://serveis.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 amb el plugin simple LDAP login
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".
Requeriments: Es necessari tenir suport LDAP a PHP (en sistemes debian/ubuntu, paquet php5-ldap) També, 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
LDAP al WP amb el plugin wpDirAuth
Aquest plugin és el més adequat per a la integració, donat que és el més actualitzat (funciona correctament la v1.7.6 amb el WordPress v 3.5.1). Una vegada hem instal.lat el plugin (http://wordpress.org/extend/plugins/wpdirauth/installation/), els prerequisits són els mateixos que amb el "simple LDAP login" (secció d'abans), i la configuració bàsica és la següent:
Enable Directory Authentication?: Yes Enable SSL Connectivity?: Use SSL (ldaps) Directory Servers (Domain Controllers): ldap.guifi.net, ldap2.guifi.net Account Filter: uid Base DN: o=webusers,dc=guifi,dc=net Bind DN: uid=webldap2011,o=webusers,dc=guifi,dc=net Bind Passwor: XXXXXXXX
Este plugin necessita un usuari administrador que tinga permís al ldap per poder buscar usuaris de forma anònima, el dit usuari és "uid=webldap2011,o=webusers,dc=guifi,dc=net" i la contrasenya "XXXXXXX" l'heu de demanar a rotobator AT gmail.com (Antonio Garcia), de moment, fins que disposem d'un mètode més seriós. D'esta forma tenim constància des usuaris que usen esta contrasenya per tal d'avisar-los quant es canvíe, etc.
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
- segona instancia d'ldap, pot ser remota o a la mateixa maquina virtual amb diferents ports.
- haproxy i configuració.
- configuració ldap-drupal per que apunte a haproxy.
- proves de replicació.
- Qué passa si una instancia te problemes?
- s'acumulen transaccions no realitzades?
- 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ó.