Apache가 인증 테스트를 위해 스크립트를 호출하게 하시겠습니까?

Apache가 인증 테스트를 위해 스크립트를 호출하게 하시겠습니까?

Apache가 제공하는 특정 디렉토리에 대한 액세스를 제한하고 싶습니다. 클라이언트가 사용자 이름과 비밀번호를 입력해야 하지만 Apache가 사용자가 입력한 사용자 이름과 비밀번호를 가져와 인증을 위해 작성한 Python 스크립트에 대한 인수로 전달하기를 원합니다. 그런 다음 해당 스크립트의 출력에 따라 Apache가 액세스를 허용하거나 거부하도록 합니다. 이것이 가능한가?

답변1

내가 아는 유일한 방법은 다음을 사용하는 것입니다.mod_auth_external또는 mod_python. 첫 번째 방법을 사용하면 사용자 정의 인증 시스템을 구현할 수 있습니다. 후자는 Apache에 내장된 Python 인터프리터를 제공합니다.사용자 정의 인증 스크립트 작성. 표준 모듈도 아니고 매우 인기 있는 모듈도 아닙니다.

하지만...

가장 쉬운 방법은 인증 시스템에서 Apache가 사용하는 비밀번호 목록을 업데이트하도록 하는 것입니다. Apache에는 .htpasswd 또는 .htdigest 파일에서 사용자를 추가/업데이트/삭제하는 데 필요한 모든 도구가 함께 제공됩니다( htpasswd또는 htdigest명령을 사용자 관리 시스템에 연결하는 것은 쉽지 않습니다 ).

또는mod_auth, 다음 모듈을 통해 데이터베이스에서 (Apache의 기본 인증 시스템)을 읽을 수 있습니다 .

저는 개인적으로 이 방법을 사용하고 싶습니다. 사용자 비밀번호 해시를 별도의 텍스트 파일에 복제하는 것(비밀번호 자체를 저장하지 않기를 바랍니다)보다 더 우아하고 새로운 인증 시스템을 만드는 것이 바퀴를 재발명하는 것처럼 보이기 때문입니다.

답변2

.htaccess를 사용하여 특정 디렉터리에 대한 액세스를 제한할 수 있습니다.

http://www.elated.com/articles/password-protecting-your-pages-with-htaccess/

.htaccess 파일에서 참조하는 htpasswd 파일을 생성해야 합니다.

http://www.htaccesstools.com/htpasswd-generator/

Python: htpasswd 파일을 처리할 수 있는 라이브러리가 있는 것 같습니다.

http://pacopablo.com/wiki/pacopablo/blog/htpasswd-with-python

Python 및 htpasswd에 대한 추가 정보:

http://packages.python.org/passlib/lib/passlib.apache.html

저는 Python에 익숙하지 않아서 완전한 솔루션을 제공할 수 없습니다. 그러나 나는 그것이 가능하다고 생각하며, 약간의 인터넷 검색을 통해 Python에 익숙하다면 그리 복잡하지 않을 것입니다.

관련 정보