2014-11-05 2 views
0

우리는 현재 사용자 인증을 위해 https를 통한 기본 인증을 사용하는 웹 서비스를 보유하고 있습니다. 또한 서비스를 사용하는 웹 사이트와 웹 서비스를 사용하는 기본 Windows 클라이언트가 있습니다. 저는 OAuth에 대해 읽었으며, 외부 리소스 (예 : 위임)를주고받는 데 항상 사용되는 것처럼 보입니다.하지만 Basic Auth 대신 사용할 수 있는지 이해하려고합니다.기본 인증 대신 OAuth를 사용 하시겠습니까?

모든 부품이 어떻게 어울리는 지 잘 모르겠습니다. Basic을 통해 https를 사용하여 웹 사이트에 비밀을 검색 한 다음 Basic 대신 OAuth를 사용하여 REST 서비스에 대한 요청을 웹 서비스에 인증하는 javascript를 사용합니까?

사용자가 사용자 이름과 비밀번호를 양식에 입력해야하는 시점이 있습니다. 다음에 일반적으로 어떤 일이 발생하는지 잘 모르겠습니다. 이것도 OAuth의 유스 케이스인가요?

답변

0

사용자 (리소스 소유자)에 대한 로컬 데이터베이스 계정이있는 경우 기본 인증을 "Resource Owner Password Credentials"이라는 OAuth 플로우로 대체 할 수 있습니다. 포스트 몸이 grant_type=password&username=Taiseer&password=SuperPass

하나 같은 것을 포함 할 수 있도록 그것은 당신이 보통이 HTTP 사후 조치에 대한 내용 유형이 x-www-form-urlencoded입니다 /token라는 이름의 HTTP 서버에 지정된 엔드 포인트에 HTTP 포스트를 발행 매우 간단 흐름이다 요청이 /token 끝점으로 보내지면 서버는 데이터베이스 저장소에 대한 사용자 자격 증명의 유효성을 검사하고 모두 유효한 경우이 자원 소유자 (사용자)에 대한 모든 클레임이 들어있는 토큰 (서명 된 문자열)을 생성해야합니다. 그런 다음 클라이언트 응용 프로그램은 bearer 구성표를 사용하여 모든 종단점에 대한 각 호출과 함께이 토큰을 Authorization 헤더에 표시해야합니다. 이 토큰은 특정 기간이 지나면 만료되며 AuthZ 서버에서이 토큰을 구성 할 수 있습니다. 자세한 내용을 보려면 내 세부 블로그 게시물 Token Based Authentication을 읽을 수 있습니다.

+0

당신이 묘사 한 바는 OAuth 자체의 토큰 기반 보안 방법입니다. 비슷한 계획을 고려했지만 표준을 사용하고 싶었습니다. – bpeikes

+0

또한 기사에서는 HTTP를 통한 양식 기반 인증을 요구합니다. 이는 엄청난 보안 허점이됩니다. – bpeikes

+0

Nop 나는 너에게 동의하지 않는다. 이것은 OAuth 흐름의 단일 흐름이다. 이것은 폼 인증이 아니며 프로덕션 환경에서 https를 통해 수행되어야한다고 언급했다. 네가 잘 읽지 않은 것 같아. 이 흐름에 대한 자세한 내용은 [link] (https://tools.ietf.org/html/rfc6749#section-1.3.3)을 참조하십시오. –

관련 문제