REST API에서 권한 부여 헤더의 사용자 정의 사용


10

클라이언트가 클라이언트 인증서를 사용하여 인증되는 REST API를 작성 중입니다. 이 경우 클라이언트는 개별 사용자가 아니라 일종의 프레젠테이션 계층입니다. 사용자는 사용자 정의 접근 방식을 사용하여 인증되며 프리젠 테이션 계층은 이것이 올바르게 수행되었는지 확인해야합니다 (참고 : 이것이 올바른 접근 방법은 아니지만 API는 공개되지 않음).

각 요청 (비밀번호 아님)에 대한 사용자 이름을 전달하고 싶지만 어디에서 해야할지 모르겠습니다. Authorization 헤더를 사용하는 것이 좋습니까?

답변:


21

Authorization 헤더를 사용하는 것이 옳은 것처럼 보입니다. 권한 부여 헤더의 전체 목적입니다.

에서 http://tools.ietf.org/html/rfc7235#section-4.2 :

"Authorization"헤더 필드를 통해 사용자 에이전트는 401 (Unauthorized) 응답을받은 후 일반적으로 오리진 서버로 자체 인증 할 수 있습니다. 그 값은 요청되는 자원 영역에 대한 사용자 에이전트의 인증 정보를 포함하는 신임 정보로 구성됩니다.

자신 만의 인증 체계를 가지고 있다면이를 다시 만들 필요는 없습니다.


3
그냥하지 않는 그것이 옳은 일처럼 이다 옳은 일. (나는이 모든 일을 연구했습니다) RFC 7235의 4.1 절은 명시 적으로 표준 체계 "기본"중 구조의 그들의 선택을 사용하도록 클라이언트를 허용와 함께, "예를 들어"에서 사용자 지정 계획 "Newauth"의 사용을 보여줍니다 . 즉, "표준"체계를 사용하는 경우 올바르게 사용해야합니다. Zach의 대답은 정확하고 Filip의 대답은 정확 하지 않습니다 .
Stephen P

3

표준 HTTP 헤더를 비표준으로 사용하지 않는 것이 좋습니다. AuthoriziationHTTP 인증에 헤더가 사용되는 방법을 알고 다른 스택의 다른 부분과 동일한 요청 헤더에 대해 충돌하는 인식을 갖는 잠재적 인 문제를 피하기 위해 다른 개발자에게 오해의 소지가 있기 때문 입니다.

어떤 경우이든 X-Authorization-User, 특히 비표준 헤더를 사용자의 목적에 맞게 사용하는 것을 막을 수있는 것은 없습니다 .


100 % 동의했다. 사용자 지정 작업을 수행하려는 경우 X-접두사가 붙은 머리글이 바로 그런 것입니다. 표준 헤더를 사용하려는 경우, 비정상적이거나 예상치 못한 용도로 사용하지 마십시오.
Carson63000

2
"X-"가 더 이상 사용되지
않는다고

이 답변에 따라 Amazon S3가 잘못하고 있다는 의미입니까? docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
Tom Lianza

4
-1. Zach Dennis가 언급 한 것처럼 대부분의 다른 HTTP 헤더와 달리 Authorization 헤더는 확장되도록 설계되었으며 고유 한 인증 체계를 정의하는 방법에 대해 명확하게 지정된 방법이 있습니다. 간단히 말해서, 커스텀 인증 체계 이름을 사용해야합니다.
Lie Ryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.