2010-08-13 5 views
3

내 응용 프로그램 용 웹 서버 API를 구현 중이며 사용자 (및 다른 클라이언트 응용 프로그램)가 요청을 인증하는 데 사용해야하는 인증 방법을 파악하는 과정에 갇혀 있습니다. 나는 OAuth와 다른 인증 프로토콜이 무엇인지 이해하지 못했다고 생각한다.내 웹 API에 세션 기반 인증을 사용할 수 있습니까?

전적으로 웹 브라우저를 사용하지 않고 인증을 수행하고 싶습니다. 전적으로 iPhone 앱 또는 다른 맞춤 타사 클라이언트로부터 인증을 받고 싶습니다. 세션 기반 인증이 여기에 좋은 방법입니까? 어떻게 (예를 들어) 페이스 북의 아이폰 클라이언트는 웹 API로 자신을 인증합니까? 터치 로그인/권한 양식이 표시되지 않기 때문에 OAuth 또는 그와 비슷한 것을 사용한다고 생각하지 않습니다. OAuth는 내가 아는 한 제 3 자 앱에만 사용됩니다. 그런데 왜 그렇게됩니까? iPhone 클라이언트도 타사 앱으로 간주 될 수 없었습니까?

질문이 모호하고 명확하지 않은 경우 불편을 끼쳐 드려 죄송합니다. 빠진 내용 등을 자세히 알려주십시오. 고맙습니다.

답변

3

OAuth의 "인증"은 인증이 아니라 인증입니다. 즉, 서비스 제공 업체 인 경우 OAuth를 지원하여 사용자가 원하는 경우 OAuth 친화적 인 고객을 위해 개별 리소스에 대한 액세스 권한을 부여 할 수 있습니다. OAuth는 유효성 검사, 권한 부여 및 권한 부여의 전 과정을 보안하기 위해 자체 보안 아키텍처를 갖추고 있습니다. 그러면 인증은 이후 요청에 필수적인 단계입니다.

당신 말이 맞습니다. Facebook iPhone은 OAuth를 사용하여 인증 할 수는 있지만 OAuth를 사용하지 않습니다. 당신은 그것을 here으로 확인할 수 있습니다. 그리고 그것은 Facebook 자체에 의한 앱이기 때문에 당신이 정확하게 사이트 소유자 일 때 또 다른 보안 계층을 추가하는 것은 번거로 롭다고 생각합니다.

다른 제 3 자 클라이언트가 사용자의 리소스에 액세스하도록 지원하지 않으려는 경우 쿠키 기반 인증도 괜찮습니다. 그렇지 않으면 OAuth를 제공하기를 원할 것입니다. 미래에 YGNI가 누구인지 알고 있기 때문에 구현할 가치가 있다고 생각합니다.

+0

감사합니다. 귀하의 답변은 매우 유익했습니다. :) OAuth를 타사 앱에서 필요로한다면 앞으로 구현할 것입니다. 지금은 쿠키 기반 인증을 사용하겠습니다. – eugeniodepalo

관련 문제