# [openldap - apache] AuthLDAPURL not allowed here

## opotonil

Hola,

estoy probando a integrar apache con openldap, ahora mismo, mas exactamente intentando restringir el acceso al phpsysinfo para que solo puedan acceder los usuarios de openldap. Asi que hechando un vistazo a "/etc/apache2/modules.d/" he visto "46_mod_ldap.conf" del que tan solo he modificado:

```

<IfDefine AUTH_LDAP>

<IfModule authnz_ldap_module>

        AuthLDAPURL ldap://localhost/ou=users, o=localnet?uid?sub?(objectClass=*)

        require valid-user

</IfModule>

</IfDefine>

```

y he activado el soporte para ldap en "/etc/conf.d/apache2"

```

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D LDAP -D AUTH_LDAP -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D PHP5"

```

pero al iniciar apache me dice:

 *Quote:*   

> 
> 
> /etc/init.d/apache2 start
> 
>  * Apache2 has detected a syntax error in your configuration files:
> ...

 

Aun no he definido ninguna directiva para el acceso al phpsysinfo como pretendia, tan solo he modificado lo que indico arriba.

Muchas gracias y salu2.

----------

## Inodoro_Pereyra

Pregunta tonta, activaste el flag ldap al compilar apache? Si no, el modulo auth_ldap no se instala.

Salud!

----------

## opotonil

Si, la USE esta activada:

```

emerge -pv apache

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R   ] www-servers/apache-2.2.6  USE="ldap ssl threads -debug -doc -mpm-event -mpm-itk -mpm-peruser -mpm-prefork -mpm-worker -no-suexec (-selinux) -static-modules" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

```

Muchas gracias y salu2.

----------

## Inodoro_Pereyra

No tengo experiencia usando apache contra ldap pero una pequeña busqueda en google me llevó a encontrar documentación bastante extensa al respecto: http://httpd.apache.org/docs/2.0/mod/mod_auth_ldap.html

Y viendo el /etc/apache2/httpd.conf de uno de mis servidores:

```
# Authentication Modules

#    

# These modules provide authentication and authorization for

# clients. They should not normally be disabled.

#    

LoadModule access_module                 modules/mod_access.so

LoadModule auth_module                   modules/mod_auth.so

LoadModule auth_anon_module              modules/mod_auth_anon.so

LoadModule auth_dbm_module               modules/mod_auth_dbm.so

LoadModule auth_digest_module            modules/mod_auth_digest.so

```

Imagino que habría que agregar a esta lista mod_auth_ldap, no?

Estamos aprendiendo juntos me parece   :Very Happy: 

Salud!

----------

## opotonil

Por esa ya pase, al principio ni me daba error ni na de na... pasaba de mi.

asi que heche un vistazo a "/etc/apache2/httpd.conf" y vi:

```

<IfDefine AUTH_LDAP>

LoadModule authnz_ldap_module modules/mod_authnz_ldap.so

</IfDefine>

...

<IfDefine LDAP>

LoadModule ldap_module modules/mod_ldap.so

</IfDefine>

```

con lo que me fui a "/etc/conf.d/apache2" y añadi "-D LDAP -D AUTH_LDAP":

```

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D LDAP -D AUTH_LDAP -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D PHP5"

```

buscando un poco mas por google vi varios ejemplos en los que usan "AuthLDAPURL" en la definicion de permisos del directorio (no se como llamarlo, asi que un ejemplo)

```

<Directory /var/www/>

 Options Indexes FollowSymLinks MultiViews

 AllowOverride None

 Order allow,deny

 allow from all

 AuthType Basic

 AuthName “acceso LDAP”

 AuthBasicProvider ldap

 AuthzLDAPAuthoritative off

 AuthLDAPURL “ldap://localhost:389/dc=nodomain”

 Require valid-user

 </Directory>

```

pero imagino que si en Gentoo o esta version de apache existe "46_mod_ldap.conf" sera para usarlo ¿? y me parece mas comodo dejarlo definido hay que definirlo por cada directorio.

Gracias y salu2.

PD: parece que tu tienes mas experiencia con openldap, pero si que estamos aprendiendo.

----------

## Inodoro_Pereyra

Y en el .htaccess? Me quedé pensando en eso por lo de "not allowed here" mas bien tiene pinta de que viene por ahi la cosa... 

Una idea solamente.

Salud!

**EDITO** acabo de decir una estupidez. Si se me ocurre algo mas, posteo.

----------

## opotonil

Al parecer "AuthLDAPURL" tiene que ir dentro de una directiva "Directory" ya que funciona perfectamente poniendo:

```

<IfDefine AUTH_LDAP>

<IfModule authnz_ldap_module>

        #AuthLDAPURL ldap://localhost/ou=users, o=localnet?uid?sub?(objectClass=*)

        #require valid-user

        <Directory /var/www/localhost/htdocs/phpsysinfo/>

                AuthType Basic

                AuthName phpsysinfo

                AuthBasicProvider ldap

                AuthLDAPURL ldap://localhost/ou=users,dc=localnet,dc=noip,dc=es?uid?sub?(objectClass=*)

                require valid-user

        </Directory>

</IfModule>

</IfDefine>

```

Pero para ponerlo asi no se si sera el mejor sitio, quizas fuera mas adecuado ponerlo en 00_default_settings.conf que es donde tengo todas las demas reglas que limitan el acceso por IP (me parecio el sitio mas adecuado).

Gracias y salu2.

----------

## Inodoro_Pereyra

 *Quote:*   

> quizas fuera mas adecuado ponerlo en 00_default_settings.conf

 

Si hay muchos directorios accesibles desde apache o varía dinámicamente (vendes hosting o algo parecido) si, es mucho mas facil como lo hiciste...

Por suerte no he tenido necesidad todavía de implementar algo como lo tuyo nunca pero me resultó interesante la idea y nunca se sabe cuando puede venir bien...

Salud!

----------

## opotonil

Pues nada que hay se queda.

que va, ni vendo hosting ni nada parecido, es mi servidor casero... ya ves las que me da por preparar x)

Muchas gracias y salu2.

----------

