我们对 s 的子树有一些规则Location
,包括Require
-ingldap-group
和expr
-s。
用户受到适当的挑战,以提供经过验证的登录凭据。
但是,即使凭据正确并且由于其他原因(例如属于错误的组或来自不正确的 IP 地址)而拒绝访问,服务器的响应始终是 401,而不是 403。
结果,浏览器不断提示用户“再试一次”......我可以告诉 Apache(2.4)使用 403,如果Authorization
-header 中提供的信息签出,并且它是其他一些规则,拒绝要求?
再次,我知道,为什么在身份验证成功后,某些用户的授权被拒绝 - 它应该是。我只需要与这些用户沟通,即:“是的,我们相信你就是你所说的那个人,但你不被允许访问这个位置。”
看来,mod_rewrite 是引发 403 响应的唯一方法—— mod_rewrite 表达式是否可以检查 LDAP 组的成员资格或强制将状态从 401 更改为 403?
我在WebMaster 的网站上问过这个问题,但没有得到答案——那里的人似乎更注重内容。
这是我当前配置的相关片段:
<Location /foo>
Require ldap-group CN=foo,OU=Groups,DC=example,DC=net
</Location>
当验证提供的用户名/密码,但不满足要求时,我需要返回 403... 401 当前正在返回。
我认为您想要的是AuthzSendForbiddenOnFailure:
请注意,它带有安全警告: