REST API에 대한 인증을 구현하는 가장 좋은 방법


21

모바일 용 소셜 기반 응용 프로그램을 개발합니다. 모든 애플리케이션은 RESTful API 웹 서비스를 사용합니다. 로그인을 구현할 때 보통 사용자 이름과 비밀번호를 기기 어딘가에 저장합니다. 그런 다음 보내면 응답으로 내 프로필에 액세스 할 수 있습니다. 하지만 다른 방법이 있다는 것도 알고 있습니다.

어떻게 든 특정 알고리즘으로 토큰을 생성 한 다음 사용자 이름과 비밀번호 대신 토큰을 보내 액세스 할 수 있습니다.

어떻게 구현해야합니까? 로그인 이외의 다른 모든 요청과 함께이 토큰을 보내야합니까?


11
그건 인증 하지 권한 부여 . 인증 = 자신이 본인임을 증명합니다. 승인 = 귀하가 요청한 것을 할 수 있음을 증명하십시오.
tdammers

방금 답변에 동일한 의견을 추가하려고했습니다! +1 @tdammers에게 모든 내용을 수정 했으므로 인터넷 검색 승인으로 이동하지 않습니다.
Shiplu Mokaddim

답변:


14

RESTful 컨텍스트에서 인증 을 구현하는 방법에는 여러 가지가 있으며 로그인 / 암호 대신 토큰 만 전송하는 것이 더 안전합니다. 시간 초과 또는 다른 기준에 따라 토큰을 유효하지 않게 만들고 사용자에게 다시 인증하도록 요청할 수 있습니다. .

예를 들어, HMAC를 사용한 인증 REST 요청 . 이 접근 방식에서 클라이언트는 공개비밀 키를 갖습니다 . 인증 이 필요한 모든 요청 에 publiс key를 추가 하고 비밀 키 를 사용 하여 요청의 해시를 계산해야합니다.

var myRequest = "https://myserver/resource?publicId=12345&param=value";
var requestHash = hmac_implementation(myRequest);
myRequest = myRequest + '&hmac=' + requestHash;

이제 서버는 공개 키로 요청을 식별 하고 requestHash 자체를 계산할 수 있습니다. 두 해시가 모두 같으면 사용자에게 권한이 부여됩니다.

Btw에서는 컴퓨터 네트워크를 통한 통신 보안을 위해 https를 사용해야합니다. 이렇게하면 가능한 문제 수가 크게 줄어 듭니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.