서로 다른 서버간 인증은 어떤식으로 진행하는게 맞는 방법인가요?

안녕하세요~!

운영 서버와 데이터 서버가 분리된 환경에서의 인증 방법이 궁금해서 질문을 올립니다.

운영서버 ( www.example.com )에서 로그인 후 자신의 파일을 파일서버 ( images.example.com )에서 다운로드를 받으려 하는데요.

이게 3자가 파일 url만 알면 쉽게 다른 사용자의 파일도 다운받을수 있어 문제가 있을것 같습니다.

가령 제가 abc.txt란 파일을 업로드해서 images.example.com에 저장이 되어있는데,

다른 사람이 images.example.com/abc.txt 란 경로를 브라우저에 입력하면 손쉽게 파일을 다운로드 할 수 있습니다.

이 부분을 보완하기 위해 찾아보고 있는데 아직 개념이 안잡혀서 그런지 저에게 맞는 기능을 찾기가 힘드네요 ㅠㅠ

지금 생각중인 방법은 아래와 같습니다.

  1. 사용자가 다운로드 링크를 누른다.
  2. 운영서버의 FileDownloadController와 같은 특정 컨트롤러가 해당 요청을 받는다.
  3. 사용자 인증 후 허가된 사용자이면 1회용 토큰을 파일 경로와 함께 DB에 저장 후 파일 다운로드 URL( ex : images.example.com/abc.txt)로 리다이렉트 시킨다.
  4. 파일서버의 index.php가 해당 리퀘스트를 받아 파일 경로 & 토큰값을 DB에서 찾은 뒤 결과가 있으면 다운로드 허용한다.
  5. 다운로드 후 사용했던 토큰을 삭제한다.

이런 방색을 생각중인데요. 이 방식의 단점은 파일서버에 php를 올려야 하고 운영 db에도 접속을 해야 한다는 단점이 있는것 같습니다.

하지만 php도 안올리고 db접속도 안할 경우에 방법이 있을까.. 라는 생각이 들기도 하네요.

여러분들은 이런 경우에 어떻게 처리하셨는지 궁금합니다 ㅠㅠ

감사합니다~!

comments powered by Disqus