아파치에게 401 대신 403으로 응답하도록하는 방법은 무엇입니까? 한 번, 인증이 성공한

-ing 및 -s Location를 포함하는 s 의 하위 트리에 대한 규칙 이 있습니다 .Requireldap-groupexpr

사용자는 로그인 자격 증명을 제공해야하며,이 자격 증명은 확인됩니다.

그러나 자격 증명이 정확하고 다른 이유로 인해 잘못된 그룹에 속하거나 잘못된 IP 주소에서 오는 등의 이유로 액세스가 거부 된 경우에도 서버의 응답은 403이 아닌 401입니다.

결과적으로 브라우저는 사용자에게 “다시 시도”하라는 메시지를 계속 표시합니다. Authorization-header에 제공된 정보가 체크 아웃되고 다른 규칙 인 경우 아파치 (2.4)에게 403을 사용하도록 지시 할 수 있습니까? 의뢰?

다시 한 번, 인증이 성공한 후 일부 사용자에 대한 권한 부여 가 거부되는 이유를 알고 있습니다. 그런 사용자들과 대화하기 만하면됩니다. “그렇습니다. 우리는 당신이 말한 사람이라고 생각하지만이 위치에 액세스 할 수 없습니다.”

mod_rewrite는 403 응답을 유도하는 유일한 방법입니다. mod_rewrite 표현식이 LDAP 그룹의 구성원을 검사하거나 상태를 401에서 403으로 강제 변경할 수 있습니까?

웹 마스터 사이트 에서이 질문을 했지만 답변이 없습니다 . 더 많은 컨텐츠 지향적 인 사람들이 있습니다.

다음은 현재 설정의 관련 스 니펫입니다.

<Location /foo>
         Require ldap-group CN=foo,OU=Groups,DC=example,DC=net
</Location>

제공된 사용자 이름 / 비밀번호가 확인되었지만 요구 사항이 충족되지 않으면 403을 반환해야합니다 … 401은 현재 반환됩니다.



답변

당신이 원하는 것은 AuthzSendForbiddenOnFailure입니다 .

AuthzSendForbiddenOnFailure On

컨텍스트 : 디렉토리, .htaccess

인증에 성공했지만 권한 부여에 실패하면 Apache HTTPD는 기본적으로 HTTP 응답 코드 ‘401 UNAUTHORIZED’로 응답합니다. 이로 인해 일반적으로 브라우저가 사용자에게 비밀번호 대화 상자를 다시 표시하므로 모든 상황에서 원하지는 않습니다. AuthzSendForbiddenOnFailure는 응답 코드를 ‘403 FORBIDDEN’으로 변경할 수 있습니다.

보안 경고가 나타납니다.

보안 경고

권한이없는 경우 응답을 수정하면 암호를 추측 할 수 있습니다. 암호를 추측 할 가능성이있는 공격자에게 암호가 옳다는 것을 나타냅니다.


답변