아파치에게 401 대신 403으로 응답하도록하는 방법은 무엇입니까?


2

-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은 현재 반환됩니다.

답변:


3

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

AuthzSendForbiddenOnFailure On

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

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

보안 경고가 나타납니다.

보안 경고

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


예,하지만 언제 mod_rewrite를 사용합니까? 거부 할 사용자는 LDAP 그룹으로 식별됩니다. mod_rewrite 멤버 자격을 검사 할 수 있습니까?
Mikhail T. 17

@MikhailT. 현재 설정의 예를 게시 할 수 있습니까?
Dan Lowe

내 질문에 샘플 구성을 추가했습니다
Mikhail T.

@MikhailT. 아, 여기서 mod_rewrite를 사용하고 있지 않다는 것을 알았습니다 (질문의 태그가 저를 혼란스럽게했습니다). 내 답변을 업데이트했습니다.
Dan Lowe

아, 대박! 몇 년 전 (Apache-1.x 시대)에 그런 것이 있다는 것을 기억했지만 찾을 수 없었습니다. 생각, mod_rewrite는 나의 유일한 옵션입니다 ... 감사합니다!
Mikhail T. 17
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.