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
Les intencions: disposar d'una infraestructura que permeta autenticar una base única d'usuaris (drupal, wiki, trac...). 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 backedn tenim la contrasenya en clar).
Les següents instruccions indiquen com extreure els usuaris del drupal per inserir-los a un openldap, de forma que es puga usar el directori per autenticar usuaris.
- Instal.lacio slapd i configuració inicial. Dos usuaris de ldap un per a consultes i un d'altre administrador. S'usa la màquina virtual de desenvolupament.
- Per les càrregues, he deixat uns scripts de carrega per donar l'espenta inicial. Encara queda molt per fer:
- comprovació de la coherencia de la bdd generada.
- carrega des de /var/lib/ldap/bulk_load al slapd en produccio.
- mes comprovacions
no es pot fer un bind per usuari tal cual estan les contrasenyes amb md5 des de drupal, investigar mes.Ja es pot fer bind amb les mateixes contrasenyes del drupal.- usar repositoris per al desenvolupament
- documentació
- Per usar-los s'ha de configurar les credencials del mysql a export_drupal_users.sh, indicar la rootpw a ldap_import_functions.sh i llançar ./ldiff_to_hdb.sh. Això deixa una bdd que ja pot ser usada per un ldap en producció:
/etc/init.d/slapd stop cp /var/lib/ldap/bulk_load/* /var/lib/ldap chown -R openldap.openldap /var/lib/ldap /etc/init.d/slapd start
- Exemple de recerca:
ldapsearch -x -W -D "cn=admin,dc=guifi,dc=net" -b "dc=guifi,dc=net" -h localhost "(cn=rotobator)"
- Creació de certificats per al directori. Configuració d'ldap i drupal. Tenim alguna entitat de certificacio??
Mol bàsicament:
apt-get install slapd ldap-utils db4.6-util # ó db4.7-util
He usat estes configs, una per al dimoni, l'altra per fer les càrregues.
/etc/ldap/slapd.conf:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args loglevel none modulepath /usr/lib/ldap moduleload back_hdb sizelimit 500 tool-threads 1 backend hdb database hdb suffix "dc=guifi,dc=net" rootdn "cn=admin,dc=guifi,dc=net" rootpw "{SSHA}eLiioMnhTcfq/4GIWXK82HkG5UTBm4d3" directory "/var/lib/ldap" dbconfig set_cachesize 0 2097152 0 dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500 index objectClass eq lastmod on checkpoint 512 30 access to dn.base="" by * read access to * by dn="cn=admin,dc=guifi,dc=net" write by anonymous auth by * none
/etc/ldap/slapd_bulk_load.conf (bàsicament el mateix excepte directory
:
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args loglevel none modulepath /usr/lib/ldap moduleload back_hdb sizelimit 500 tool-threads 1 backend hdb database hdb suffix "dc=guifi,dc=net" rootdn "cn=admin,dc=guifi,dc=net" rootpw "{SSHA}eLiioMnhTcfq/4GIWXK82HkG5UTBm4d3" directory "/var/lib/ldap/bulk_load" dbconfig set_cachesize 0 2097152 0 dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500 index objectClass eq lastmod on checkpoint 512 30 access to dn.base="" by * read access to * by dn="cn=admin,dc=guifi,dc=net" write by anonymous auth by * none
La rootpw es genera així:
slappasswd -h {SSHA}
LDAP al Mediawiki
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"=>"domini.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"=>"dc=domini,dc=net"); $wgLDAPSearchAttributes = array("LDAP"=>"uid"); //Utilizamos los grupos LDAP para las directivas de grupo: $wgLDAPGroupsPrevail = array("LDAP"=>true); $wgLDAPGroupNameAttribute = array("LDAP"=>"cn");
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.