Apache에서 Django의 사용자 데이터베이스에 대해 인증하는 방법Link to this heading
Apache를 처리할 때는 여러 인증 데이터베이스를 동기화하는 것이 일반적인 문제이므로 Django의 :doc:’인증 시스템’에 대해 직접 인증하도록 Apache를 구성할 수 있습니다. 이를 위해서는 Apache 버전 > > 2.2 및 mod_wsgi > > 2.0이 필요합니다. 예를 들어 다음과 같은 작업을 수행할 수 있습니다.
정적/미디어 파일을 Apache에서 인증된 사용자에게만 직접 제공합니다.
특정 사용 권한을 가진 Django 사용자에 대해 Subversion_repository에 대한 액세스를 인증합니다.
특정 사용자가 mod_dav_로 생성된 WebDAV 공유에 연결할 수 있습니다.
“mod_wsgi”로 인증Link to this heading
mod_wsgi가 설치 및 활성화되었는지 확인하고, 다음 단계를 따라 설정했는지 확인합니다:doc:mod_wsgi가 있는 아파치 </howto/deployment/wsgi/modwsgi>.
그런 다음 인증된 사용자만 볼 수 있는 위치를 추가하려면 Apache 구성을 편집하십시오.
WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com
WSGIProcessGroup %{GLOBAL}
WSGIApplicationGroup %{GLOBAL}
<Location "/secret">
AuthType Basic
AuthName "Top Secret"
Require valid-user
AuthBasicProvider wsgi
WSGIAuthUserScript /path/to/mysite.com/mysite/wsgi.py
</Location>
‘’WSGIAuthUserScript’’ 지시문은 mod_wsgi에 지정된 wsgi 스크립트에서 “check_password” 기능을 실행하라고 지시하고 프롬프트에서 수신하는 사용자 이름과 암호를 전달한다. 이 예에서 ``WSGAuthUserScript”는 당신의 애플리케이션을 정의하는 ``WSGIScriptAlias”와 동일하며 이는 django-admin start project에서 만들어진 doc:”이다.
마지막으로 WSGI 스크립트 ``내 사이트”를 편집하십시오.wsgi는 다음과 같은 “check_password” 기능을 가져와 아파치의 인증을 사이트의 인증 메커니즘과 연결한다.
import os
os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"
from django.contrib.auth.handlers.modwsgi import check_password
from django.core.handlers.wsgi import WSGIHandler
application = WSGIHandler()
`/secret/``로 시작하는 요청은 이제 사용자가 인증해야 한다.
mod_wsgi ‘액세스 제어 메커니즘 설명서’는 다른 인증 방법에 대한 추가 세부 정보와 정보를 제공한다.