domingo, 27 de febrero de 2011

Autenticar Apache contra ldap

1. Tenemos que compilar apache con las siguientes opciones en el configure:
  1. --enable-authnz-ldap
  2. --with-ldap
  3. --enable-ldap
2. Una vez compilado el apache, creamos un usuario y un grupo en el directorio ldap: (el campo gidNumber, home y uidNumber varian de un usuario a otro)

##### Usuario ########
dn: cn=jroman,ou=Usuarios,dc=casa,dc=loc
cn: jroman
sn: Roman
uid: jroman
userPassword: {MD5}/gz+58AqfPH5ekA==
objectClass: inetOrgPerson
objectClass: shadowAccount
objectClass: top
objectClass: posixAccount
gidNumber: 10000
homeDirectory: /home/jroman
uidNumber: 10000


###### Grupo ########
dn: cn=Manager,ou=Grupos,dc=casa,dc=loc
cn: Manager
gidNumber: 10000
objectClass: posixGroup
objectClass: top



3. Ahora vamos a crear un site al cual vamos a acceder autenticando contra el ldap. La autenticacion se va a hacer por grupo, es decir van a poder entrar al site todos los usuarios que tengan como grupo el elegido por el site. Aqui vamos a usar el atributo ldap-attribute.

######## Alias documentacion O'Reilly #######
  Alias /libreria "/DATA/proyects/libreria"
  <Directory "/DATA/proyects/libreria">
    Options -Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName "Secure Area"
    AuthBasicProvider "ldap"
    AuthzLDAPAuthoritative   Off
    AuthLDAPURL "ldap://localhost:389/ou=Usuarios,dc=casa,dc=loc?uid"
    Require ldap-attribute gidNumber=10000
  </Directory>



4. Ahora autenticamos por la pertenencia a una Unidad Organizativa.
 
######## Alias documentacion O'Reilly #######
 Alias /libreria "/DATA/proyects/libreria"
 <Directory "/DATA/proyects/libreria">
    Options -Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName "Secure Area"
    AuthBasicProvider "ldap"
    AuthzLDAPAuthoritative   Off
    AuthLDAPURL "ldap://localhost:389/ou=Usuarios,dc=casa,dc=loc?uid"
    Require valid-user
 </Directory>





 5. Si lo que queremos es autenticar por pertenencia a un grupo determinado, creamos un grupo que tenga el objectclass groupOfUniqueNames:
 
dn: cn=web,ou=Grupos,dc=casa,dc=loc
objectClass: groupOfUniqueNames
uniqueMember: cn=jroman,ou=Usuarios,dc=casa,dc=loc
uniqueMember: cn=admin,ou=Usuarios,dc=casa,dc=loc

Ahora le decimos al apache que autentique contra ldap y busque los usuario que pertenecen al grupo web:
####### Alias proxy #######
  Alias /proxy "/DATA/proyects/proxy"
  <Directory "/DATA/proyects/proxy">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName "Secure Area"
    AuthBasicProvider "ldap"
    AuthzLDAPAuthoritative   Off
    AuthLDAPURL "ldap://localhost:389/dc=casa,dc=loc?uid"
    Require ldap-group cn=web,ou=Grupos,dc=casa,dc=loc
 </Directory>
############################################

1 comentario:

  1. Hola, como estas?
    Te comento que quiero agregar 680usuarios en un grupo de ldap que tiene las siguientes caracteristicas
    dn: cn=AC-00-OS-00-00-DESACLARITYUSERS,ou=grupos,dc=osde,dc=com,dc=ar,dc=grupoos
    de
    objectClass: top
    objectClass: groupOfUniqueNames
    cn: AC-00-OS-00-00-DESACLARITYUSERS
    como sabras ldap tarda mucho agregar uno por uno los usuarios por eso quiero ver si es posible armar un archivo ldif y agregar la cantidad de usuarios que te comente

    Si podes avisarme quedaria muy agradecido

    Saludos

    mail: pinto.sandoval@gmail.com

    ResponderEliminar