我有一个需要身份验证的 apache 服务器,但是有些调用需要允许所有人使用。
关闭这些调用基于查询字符串,例如:
/foo/api.php?Token=123&Task=DoStuff&Result=json
我用 LocationMatch 教过这会起作用,所以我制定了这个配置:
<LocationMatch ^/foo/api.php\?.*(Task=DoStuff).*>
Order Allow,Deny
Allow from All
</LocationMatch>
但这并不能让我通过身份验证(这意味着我得到了 401)。如果我只是过滤^/foo/api.php
,我会通过身份验证,但这还不够严格。
任何人都知道如何配置它以检查查询字符串中的 Task 参数?
对于身份验证,我们使用的是 kerberos,这是在整个站点上强制执行的 这是我们用于遏制的 conf
LoadModule auth_kerb_module modules/mod_auth_kerb.so
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride All
AuthType Kerberos
Require valid-user
AuthName "Kerberos Login"
KrbMethodNegotiate on
KrbMethodK5Passwd on
KrbAuthRealms FOO.LOCAL
KrbServiceName HTTP/server.foo.local@foo.LOCAL
Krb5KeyTab /etc/httpd/conf/http.keytab
Satisfy Any
Order deny,allow
Deny from all
Allow from 192.168.72.90
Allow from 192.168.72.91
Allow from 192.168.72.94
Allow from 192.168.72.95
Allow from 127.0.0.1
</Directory>