2010-04-14 18 views
37

http://httpd.apache.org/docs/trunk/mod/mod_authn_core.html#authtype habla de "AuthType None", y tiene un impresionante ejemplo de lo que tengo que hacer, desafortunadamente, parece ser nuevo en 2.3/2.4. ¿Hay alguna característica equivalente en 2.2?Cómo lograr "AuthType None" en Apache 2.2

El tipo de autenticación Ninguno deshabilita la autenticación . Cuando la autenticación es habilitada, normalmente se hereda por cada sección de configuración posterior, a menos que se especifique un tipo de autenticación diferente . Si no se desea autenticación en para una subsección de una sección autenticada , se puede usar el tipo de autenticación Ninguno; en el siguiente ejemplo, los clientes pueden acceder al/docs/directorio público/www sin necesidad de autenticación:

<Directory /www/docs> 
AuthType Basic 
AuthName Documents 
AuthBasicProvider file 
AuthUserFile /usr/local/apache/passwd/passwords 
Require valid-user 
</Directory> 

<Directory /www/docs/public> 
AuthType None 
Require all granted 
</Directory> 

Respuesta

5
<Directory /www/docs/public> 
AuthType None 
Require all granted 
Satisfy Any 
</Directory> 

Esto funcionará

1

Creo que tiene razón: no es soportado en apache 2.2.

Me gustaría probar la solución fea en https://issues.apache.org/bugzilla/show_bug.cgi?id=10932

Algo así como:

<DirectoryMatch "^/www/docs/(?!public)"> 
AuthType Basic 
AuthName Documents 
AuthBasicProvider file 
AuthUserFile /usr/local/apache/passwd/passwords 
Require valid-user 
</Directory> 

o

<DirectoryMatch "^/www/docs/[^p][^u][^b][^l][^i][^c]"> 
AuthType Basic 
AuthName Documents 
AuthBasicProvider file 
AuthUserFile /usr/local/apache/passwd/passwords 
Require valid-user 
</Directory> 
94

Algo parecido a continuación funciona para mí con Apache 2.2. Lo tomé de http://httpd.apache.org/docs/2.2/mod/core.html#require

<Directory /www/docs> 
    AuthType Basic 
    AuthName Documents 
    AuthBasicProvider file 
    AuthUserFile /usr/local/apache/passwd/passwords 
    Require valid-user 
</Directory> 
<Directory /www/docs/public> 
    # All access controls and authentication are disabled 
    # in this directory 
    Satisfy Any 
    Allow from all 
</Directory> 
+4

@Technorati tal vez debería considerar aceptar una respuesta ya? Esta solución ha funcionado bien para mí hasta ahora. – amn

+1

De acuerdo, esta respuesta debe ser aceptada. –

+0

Si solo desea permitir ciertos archivos, puede anidar una directiva de Archivos bajo la directiva Directorio principal. No se puede hacer con aunque – balping

1

Esto funcionó para mí en apache2.2:

<Location /trac> 
     #.... 
     AuthType Basic 
     AuthName "BLA domain" 
     AuthUserFile /etc/.passwd 
     Require valid-user 
     Allow from all 
     Satisfy Any 
    </Location> 
7

Sólo tiene que establecer Dejar de todas y adaptarse a cualquier

Esto funcionó para mí:

Alias /example "/opt/example.com" 

<Directory "/opt/example.com"> 
    Options None 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
    Satisfy Any 
</Directory> 
1

Solo quería agregar este bit de información:

En Apache 2.2.22 es necesario tener el orden correcto para que funcione:

Esto no funcionó para mí para la ubicación "/ foo/sub":

Satisfy Any 
Allow from all 

Es decir, la autenticación de la ubicación "/ foo" definida antes de "/ foo/sub" aún se aplicó.

Esto funciona para la ubicación "/ foo/sub":

Allow from all 
Satisfy Any 

es decir, la autenticación desde la ubicación "/ foo" definida antes de "/ foo/sub" fue anulada.

Cuestiones relacionadas