Apache Basic Auth 要求组不被禁止

Apache Basic Auth 要求组不被禁止

我已经设置了用户和组的基本身份验证

AuthType Basic
AuthName "GSD Dev Area"
AuthUserFile /coding/conf/passwords/gsdesign/htpasswd
AuthGroupFile /coding/conf/passwords/gsdesign/groups    
Require valid-user      

现在我想保护一个文件夹,只允许某个组访问

require group myGroup

并且它可以正常工作,但是有一个问题。如果我不授予该文件夹的访问权限,我会再次出现登录窗口,我想通过禁止访问。我该怎么做?

多谢。

后期编辑 我已经使用有效的用户名登录,但是当我访问具有我不属于的需要组的区域时,我希望获得拒绝身份验证而不是登录框。

答案1

这样做是完全有可能的,但这需要您为 Apache 编写自定义处理程序。您可以使用 C、Perl 或 Python 或任何其他绑定为 Apache 处理程序 API 编写此处理程序。

HTTP 身份验证的标准行为是,对于没有任何身份验证信息的请求和不正确的详细信息,都返回 401 AuthenticationRequired 响应。浏览器在收到 401 响应时将显示登录对话框。对于没有身份验证信息的请求,您必须使用 401 AuthenticationRequired 响应进行响应,对于任何不正确的身份验证,您必须使用 403 Forbidden 响应进行响应。这应该可以解决您的问题。

答案2

我不确定我是否理解了这个问题,但我认为您的意思是当您提供无效的用户名/密码组合时,浏览器会再次弹出窗口,而不是显示“拒绝访问”。这是浏览器的一个功能——它会提示您输入凭据,直到您输入正确,或者单击“取消”(此时您确实会看到拒绝访问的页面)。据我所知,改变这种情况的唯一可靠方法是自己进行身份验证,而不是使用 AuthType Basic。

顺便一提,绝不,绝不使用 AuthType Basic 保护您关心的任何内容,除非您的页面通过 https 提供。AuthType Basic 以纯文本形式发送凭据,因此您需要 SSL 层为您加密。

相关内容