REST 철학의 큰 부분은 API를 디자인 할 때 가능한 많은 HTTP 프로토콜의 표준 기능을 활용하는 것입니다. 이 철학을 인증, 클라이언트 및 서버에 적용하면 API의 표준 HTTP 인증 기능을 활용할 수 있습니다.
로그인 화면은 사용자의 사용 사례에 적합합니다. 로그인 화면을 방문하고, 사용자 / 암호를 제공하고, 쿠키를 설정하고, 클라이언트는 모든 향후 요청에서 해당 쿠키를 제공합니다. 웹 브라우저를 사용하는 사람은 개별 HTTP 요청마다 사용자 ID와 비밀번호를 제공 할 것으로 기대할 수 없습니다.
그러나 REST API의 경우 각 요청이 사용자에게 영향을주지 않고 자격 증명을 포함 할 수 있으므로 로그인 화면과 세션 쿠키가 반드시 필요한 것은 아닙니다. 클라이언트가 언제든지 협력하지 않으면 401
"무단"응답이 제공 될 수 있습니다. RFC 2617 은 HTTP의 인증 지원에 대해 설명합니다.
TLS (HTTPS)는 옵션 일 수도 있으며 상대방의 공개 키를 확인하여 모든 요청에서 클라이언트를 서버로 인증 할 수 있습니다 (또는 그 반대도 가능). 또한 이는 보너스 채널을 확보합니다. 물론, 통신을하기 전에 키 페어 교환이 필요합니다. (이는 특히 TLS로 사용자를 식별 / 인증하는 것에 관한 것입니다. 공개 키로 사용자를 식별하지 않더라도 TLS / Diffie-Hellman을 사용하여 채널을 보호하는 것이 좋습니다.)
예 : OAuth 토큰이 완전한 로그인 자격 증명이라고 가정합니다. 클라이언트에 OAuth 토큰이 있으면 각 요청마다 표준 HTTP 인증에서 사용자 ID로 제공 될 수 있습니다. 서버는 처음 사용할 때 토큰을 확인하고 각 요청으로 갱신되는 유효 기간으로 검사 결과를 캐시 할 수 있습니다. 인증이 필요한 요청은 401
제공되지 않은 경우 반환 됩니다.