OAuth 2.0 인증 헤더


91

OAuth 2.0 기능을 캡슐화하는 SDK를 개발하고 싶습니다. OAuth 1.0과 2.0의 차이점을 확인했고 Authorization Header ( 1.02.0 ) 에 대해 약간의 혼동이 있습니다. OAuth 1.0 프로토콜 매개 변수는 HTTP "Authorization"헤더를 사용하여 전송할 수 있지만 현재 설명 된 내용을 찾을 수 없습니다. OAuth 2.0 초안.

OAuth 2.0은 인증 헤더를 지원하나요?

OAuth 1.0에서 헤더는 다음과 같습니다.

Authorization: OAuth realm="Example",
    oauth_consumer_key="0685bd9184jfhq22",
    oauth_token="ad180jjd733klru7",
    oauth_signature_method="HMAC-SHA1",
    oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
    oauth_timestamp="137131200",
    oauth_nonce="4572616e48616d6d65724c61686176",
    oauth_version="1.0"

귀하의 질문에 대답하지 않지만 이미 많은 OpenId 및 OAuth 라이브러리가 있습니다. 휠을 다시 발명 하시겠습니까?
케인

안녕하세요 케인, 저는 OAuth 용 SDK를 개발하는 것이 아닙니다. 제 SDK에 OAuth 기능이 필요하기 때문에 서드 파트 라이브러리를 도입하고 싶지 않습니다.
JKhuang

답변:


205

헤더에서 OAuth2 인증 (액세스 토큰)을 전달하는 방법의 예를 찾는 사람들을 위해 (요청 또는 본문 매개 변수를 사용하는 것과 반대) 다음은 수행 방법입니다.

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42

32
cURL과 함께 Authorization Header를 사용하려는이 스레드를 발견 한 사람에게는 다음 명령이 있습니다. curl -H "Authorization: Bearer $ACCESS_TOKEN" URI
Blake G

5
이 질문과 같은 답변이 계속 표시되지만 설명은 없습니다. 코드에서이 작업을 수행하는 경우 (HTTPRequest API를 통해) 헤더 이름과 관련 데이터 필드를 사용하여 요청에 헤더를 추가합니다. 이 답변에서 헤더의 이름은 어느 부분이고 데이터는 어느 부분입니까? 즉, 헤더 Authorization: Bearer0b...42데이터 로 포함되어 있습니까, 아니면 헤더 Authorization:Bearer 0b...42데이터로 포함되어 있습니까? 감사! (Btw, 중요한 경우 Oauth2입니다.)
Olie

9
Authorization헤더 이름이며 콜론 은 RFC2616의 섹션 4.2에 따라 모든 헤더의 값과 이름을 구분합니다 .
Rick Mac Gillis

35

OAuth 2.0에서 여전히 Authorization 헤더를 사용할 수 있습니다. OAuth 전달자 토큰과 함께 사용하기 위해 Authorization 헤더에 지정된 전달자 유형이 있습니다 (클라이언트 앱은 단순히 토큰을 제공 ( "bear")해야 함). 헤더의 값은 클라이언트가 Authorization Server에서받은 액세스 토큰입니다.

이 사양에 문서화되어 있습니다 : https://tools.ietf.org/html/rfc6750#section-2.1

예 :

   GET /resource HTTP/1.1
   Host: server.example.com
   Authorization: Bearer mF_9.B5f-4.1JqM

여기서 mF_9.B5f-4.1JqM 은 OAuth 액세스 토큰입니다.


OAuth 2.0은 Bearer 및 MAC ( tools.ietf.org/html/rfc6749#section-7.1 )의 두 가지 액세스 토큰 유형을 예로 문서화 합니다.
Clauds

1
불행히도 MAC은 완전히 표준화되지 않았으며 (만료 된 초안 사양 참조 : tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05 ) 실제로 사용되지 않습니다.
Scott T.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.