2016-09-19 3 views
0

nginx 웹 서버/역방향 프록시 뒤에있는 gunicorn 앱 서버에서 실행되는 django에서 만든 웹 응용 프로그램이 있습니다. 어떤 종류의 인증이 필요한 일부 처리 된 데이터 (csv/json)에 액세스하려면 외부 응용 프로그램이 있어야합니다. 단순한 스크립트가 간단한 요청, 쿠키 등 (나를 생성하지 않음)으로 데이터를 가져와야하기 때문에 기본 장고 인증/로그인은 최적이 아닙니다. 지금은API 액세스 인증/응용 프로그램 키 (django/nginx/gunicorn)

, 나는

    1. 이와 함께 "공격면"을 줄이기 위해 장고에 IP 필터를 생성 HTTPS/TLS를 사용할 수있는 서비스를 설정할 수 있습니다

    request.META['HTTP_X_REAL_IP']하고 전달하도록의 nginx를 사용 내가 포함 할 생각

    proxy_set_header X-Real-IP $remote_addr; 
    

    다음과 요청에 포함해야하고, 유효한 키의 목록을 DB에 대해 확인 응용 프로그램 키를 (PW 또는 무언가의 해시)와 IP.

    이 API는 적절한 API 인증입니까? 아니면 사용할 수있는 다른 것이 있습니까? 응용 프로그램 키 프레임 워크의 일종?

  • 답변

    1

    세션/쿠키 기반 인증 방법 외에 여러 가지 인증 방법이 있습니다. 귀하의 경우 간단한 토큰 인증을 제안 할 것입니다. 그냥 장고 응용 프로그램 및 외부 응용 프로그램과 장고 외부 응용 프로그램에서 각 요청에 동일한 토큰을 저장, 추가 헤더를 보내

    Authentication: Token YOUR_TOKEN_KEY 
    

    것은 이제 장고에 할 필요가 일치하는 경우 그 토큰을 가져오고 확인하는 것입니다 하나는 로컬에 저장되었습니다.

    API에 대한 추가 인증 옵션을 원하시면 Django Rest Framework documentation을 확인하십시오.

    +0

    정확히 내가 들으려고 한 것처럼 들리며 시도해보십시오. 감사! – vltrrr