2014-06-14 4 views
3

nodejs express REST API를 구축 중입니다. 다음 설정이 있습니다.node.js - REST API 보안. SSL 또는 OAuth2?

API 서버 (nodejs)는 mongodb에서 데이터를 반환합니다.

웹 서버 (nodejs)가 앵귤러 웹 응용 프로그램을 호스팅합니다.

약간의 google-ing은 내 REST API 보안을 위해 OAuth2를 사용해야한다고 말했습니다.

일부 링크에서는 SSL을 사용하도록 제안했습니다.

SSL이 OAuth2의 대체 솔루션인지 확실치 않거나 보안 강화를 위해 OAuth2와 함께 사용해야합니까?

내 웹 서버와 API 서버 간의 통신에 SSL을 사용하는 경우! OAuth2를 사용해야합니까?

저는 "처음 API 빌더"입니다. 이 질문이 모호하게 들린다면 정말 유감입니다.

답변

3

클라이언트 측 응용 프로그램을위한 API를 구축하는 것이 일반적입니다. 때로는 API를 담당하는 응용 프로그램과 클라이언트 측 응용 프로그램을 호스팅하는 응용 프로그램을 분리하는 것이 좋습니다 (이 경우 Angular 응용 프로그램 인 것 같습니다). 그러나 이것들이 같은 것에 속할 수 있고, 분리하기에 충분히 커질 때까지는 아마도 추천 될 것입니다. 별도의 경우 same-origin policy 문제가 발생하며 클라이언트 측 응용 프로그램에서 별도로 호스팅되는 API 응용 프로그램으로 요청을 프록시해야합니다. 그렇지 않으면 nginx 나 같은 도메인을 사용하여 프록시를 실행할 수 있습니다. 아파치. 이 두 가지로 시작하는 것은 하나의 응용 프로그램으로 시작하는 것이 좋습니다.

보안으로 이동하면 SSL은 클라이언트의 서버 연결을 안전하게하는 방법입니다. HTTPS로 생각하는 것이 가장 쉽습니다. 이것은 좋은 전략이며 다른 사람이 볼 수 없어서 클라이언트와 서버간에 데이터가 전송되면 누군가 구현하도록 권장됩니다. SSL은 Node.js 또는 REST에만 해당되는 것이 아니라 웹 요청/응답 통신을 보호하는 방법 일뿐입니다.

요청을 안전하게 처리 한 후에도 을 알고 있어야하며이 요청하는 사람과 요청하는대로 액세스 할 수있는 사람이 있어야합니다. 당신이 누군지 증명하는 것은 authentication이며, 허용되는 것은 authorization입니다. 인증 방법은 여러 가지가 있으며 일반적으로 사용자 인증을 결정하는 응용 프로그램의 책임입니다. OAuth은이 프로세스를 돕기위한 방법 중 하나이며 Facebook, Google, Twitter 등의 웹 사이트 로그인을 통해 널리 알려졌습니다. OAuth를 응용 프로그램과 통합하는 데 도움이되는 많은 도구가 있습니다. Passport은 Node에 대한 인기있는 선택 중 하나입니다.

질문이 다소 모호하지만, SSL과 OAuth의 차이점을 이해하는 데 도움이되기를 바랍니다.