2012-04-25 10 views
0

클라이언트가 기본 인증을 사용하여 API에 로그인을 시도 할 때 서버가 API 키와 공유 비밀 키를 반환하면 괜찮습니까? 사용자가이 링크 http://api.example.com/authorize?auth=some_encoded_Base64_string을 입력하면 예를 들어, 응답은 다음과 같습니다Rest API 기본 인증

Content-Type: application/xml 
Date: Fri, 10 Nov 2006 20:04:45 GMT  
Transfer-Encoding: chunked 
Authorization: apiKey;secretKey 

나는이 방법을 사용하여 문제가 있습니까? 나는 API 핵심 메소드가 APIKey 해시만을 받아들이 기 때문에 기본 인증을 사용해야한다는 것을 알기 때문에 첫 번째 단계이므로 이렇게하고 싶었다. 여기서는 OAuth를 사용하지 않을 것입니다.

나는이 프로젝트를 위해 새로운 ASP.NET 웹 API를 시험하고있다.

+0

전체 통신이 HTTPS를 초과하는 한 괜찮습니다. –

+0

괜찮다고 생각합니다. 예를 들어, FogBugz는 정확히 똑같은 방식으로 작동합니다. –

+0

고마워, 내가 이것을 사용하여 공개 API를 찾고 있었지만 찾지 못했습니다. FogBugz가 어떻게 구현하는지 살펴 보겠습니다. – gnaungayan

답변

0

HTTP는 응답에 Authorization 헤더를 정의하지 않으므로 사용자 정의 헤더를 정의해야 할 경우 X- 접두어를 사용하십시오.

또한 디자인 포인트에서 HTTP 헤더는 직교 코드 인 데이터를 전달해야합니다. 헤더를 사용하지 않으려면 페이로드에 있어야하는 데이터 조각을 전달하려고하는 것 같습니다.

페이로드에이 데이터를 전달합니다.

SSL을 사용하고 URL의 데이터를 전달하는 경우 HTTP 헤더 또는 페이로드는 안전합니다.

+0

답장을 보내 주셔서 감사합니다. 나는 당신이 말한 것을 소화하려하지만 페이로드가 의미하는 것을 얻지 못하는 것 같습니까? 권한 부여 란 HTTP 승인 헤더를 사용한다는 의미입니다. – gnaungayan

+0

페이로드 (payload) 다시 보내는 데이터의 일부를 의미합니다. HTTP 권한 부여 헤더는 요청에는 적합하지만 응답에는 적합하지 않습니다. – Aliostad

+0

알 겠어. 서버 응답을 어디에 넣어야합니까? URI에서? – gnaungayan