TeamPomPom / MukMap-Server

DRF / AWS 서버리스 배포를 활용한 Django api 서버 저장소 입니다.
1 stars 0 forks source link

API Key를 활용한 API 보안 #18

Closed kangraemin closed 2 years ago

kangraemin commented 4 years ago

작업 도중에 학습 한 내용 / 공유 할만한 내용들을 공유 하는것을 원칙으로 진행합니다.

해결하고자 하는 주제에 대해 설명 해 주세요.

API Key를 활용 하여 모든 API에 대해 보안을 강화하려고 합니다.

위 주제를 해결할 수 있는 방안으로는 어떤 것이 있나요?

API Key, OAuth등을 고려 해 볼 수 있고, 클라이언트에서는 Firebase의 RemoteConfig 서비스를 이용하면 좋을 것 같습니다.

어떤 이슈와 연관성이 있나요?

8 #13 과 연관성이 있습니다.

다음 작업들이 진행되어야 합니다.

앞으로 진행 되어야 할 작업 들을 설명 해 주세요.

참고 사항

https://bcho.tistory.com/955 에 정리가 잘 되어 있습니다.

kangraemin commented 4 years ago

API Key를 관리하기 위해 https://pypi.org/project/djangorestframework-api-key/ package를 사용하였습니다.

실질적인 API Key는 환경변수에 저장하여 사용 할 것이고, 클라이언트에서는 환경 변수 설정을 통해 API Key를 가져온다면 API Key의 업데이트가 힘드므로 Firebase remote config를 활용하여 API Key를 받아 오면 좋을 것 같습니다.

client의 헤더값에 X-Api-Key : prefix.secret_api_key 형식으로 심어서 api를 호출하시면 됩니다.

모든 API에 보안이 적용되어 있기 때문에, 모든 API 호출마다 header에 적절한 값을 심어서 주시면 됩니다.