Tiêu đề ủy quyền OAuth 2.0


91

Tôi muốn phát triển một SDK đóng gói các chức năng OAuth 2.0. Tôi đã kiểm tra sự khác biệt giữa OAuth 1.0 & 2.0 và tôi có một số nhầm lẫn trên Tiêu đề ủy quyền ( 1.02.0 ), các thông số giao thức OAuth 1.0 có thể được truyền bằng tiêu đề HTTP "Ủy quyền", nhưng tôi không thể tìm thấy điều này được mô tả trong hiện tại Bản nháp OAuth 2.0.

OAuth 2.0 có hỗ trợ tiêu đề ủy quyền không?

Trong OAuth 1.0, tiêu đề của bạn sẽ giống như sau:

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"

Không trả lời câu hỏi của bạn nhưng đã có một số thư viện OpenId và OAuth ngoài kia, bạn có chắc chắn muốn phát minh lại bánh xe không?
Kane

Xin chào Kane, tôi không phát triển SDK cho OAuth, tôi chỉ cần một số chức năng OAuth trong SDK của mình, vì vậy tôi không muốn giới thiệu thư viện phần thứ ba.
JKhuang

Câu trả lời:


205

Đối với những người đang tìm kiếm ví dụ về cách chuyển ủy quyền OAuth2 (mã thông báo truy cập) trong tiêu đề (thay vì sử dụng thông số yêu cầu hoặc nội dung), đây là cách thực hiện:

Authorization: Bearer 0b79bab50daca910b000d4f1a2b675d604257e42

32
Đối với bất cứ ai đi qua chủ đề này cố gắng sử dụng Header với cURL Authorization, đây là lệnh: curl -H "Authorization: Bearer $ACCESS_TOKEN" URI
Blake G

5
Câu hỏi nhanh, vì tôi tiếp tục thấy các câu trả lời như câu này, nhưng không giải thích rõ: nếu tôi đang thực hiện điều này trong mã (thông qua API HTTPRequest), tôi sẽ thêm tiêu đề vào yêu cầu của mình với tên-tiêu đề và trường dữ liệu được liên kết. Trong câu trả lời này, phần nào là tên của tiêu đề và phần nào là dữ liệu? Đó là, là tiêu đề Authorization: Bearervới 0b...42như dữ liệu, hoặc là tiêu đề Authorization:với Bearer 0b...42như là dữ liệu, hoặc những gì? Cảm ơn! (Btw, tôi là Oauth2, nếu nó quan trọng.)
Olie

9
Authorizationlà tên tiêu đề, dấu hai chấm phân tách tên khỏi giá trị trong tất cả các tiêu đề theo phần 4.2 của RFC2616 .
Rick Mac Gillis

35

Bạn vẫn có thể sử dụng tiêu đề Ủy quyền với OAuth 2.0. Có một loại Bearer được chỉ định trong tiêu đề Ủy quyền để sử dụng với mã thông báo mang OAuth (nghĩa là ứng dụng khách chỉ cần xuất trình ("chịu") mã thông báo). Giá trị của tiêu đề là mã thông báo truy cập mà máy khách nhận được từ Máy chủ cấp quyền.

Nó được ghi lại trong thông số kỹ thuật này: https://tools.ietf.org/html/rfc6750#section-2.1

Ví dụ:

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

Trong đó mF_9.B5f-4.1JqM là mã thông báo truy cập OAuth của bạn.


OAuth 2.0 ghi lại hai loại mã thông báo truy cập làm ví dụ: Bearer và MAC ( tools.ietf.org/html/rfc6749#section-7.1 )
Clauds

1
Thật không may, MAC chưa bao giờ được chuẩn hóa hoàn toàn (xem thông số kỹ thuật bản nháp đã hết hạn: tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05 ) và không được sử dụng trong thực tế.
Scott T.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.