LDAP/ca: Diferència entre les revisions
De Guifi.net - Wiki Català
Línia 1: | Línia 1: | ||
{{en desenvolupament}} | {{en desenvolupament}} | ||
== LDAP == | == 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. | + | 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. | 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. |
Revisió de 09:42, 26 març 2011
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.
- usar repositoris per al desenvolupament
- documentació
- Per usar-los s'ha de configurar les credencials del mysql a export_drupal_users.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
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=rotobator,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 {MD5}
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.