Mã thông báo Bearer và token_type trong OAuth 2 là gì?


140

Tôi đang cố gắng triển khai luồng Thông tin xác thực và chủ sở hữu tài nguyên từ thông số OAuth 2. Tôi gặp khó khăn trong việc hiểu token_typegiá trị được gửi lại với một phản hồi hợp lệ. Trong thông số kỹ thuật tất cả các ví dụ hiển thị "token_type":"example"nhưng nói rằng nó nên được

token_type YÊU CẦU. Loại mã thông báo được phát hành như được mô tả trong Phần 7.1 . Giá trị là trường hợp không nhạy cảm.

Có ai đó giải thích điều này cho tôi biết không?

Câu trả lời:


158

token_typelà một tham số trong Mã thông báo truy cập tạo cuộc gọi đến máy chủ ủy quyền, về cơ bản thể hiện cách truy cập access_token sẽ được tạo và trình bày cho các cuộc gọi truy cập tài nguyên. Bạn cung cấp token_type trong cuộc gọi tạo mã thông báo truy cập đến máy chủ ủy quyền.

Nếu bạn đưa ra Bearer(Mặc định trên hầu hết các triển khai), một access_tokenđược tạo và gửi lại cho bạn. Người mang có thể hiểu đơn giản là "cấp quyền truy cập cho người mang mã thông báo này". Một mã thông báo hợp lệ và không có câu hỏi. Mặt khác, nếu bạn chọn Macsign_type(mặc định hmac-sha-1trong hầu hết các triển khai), mã thông báo truy cập được tạo và giữ bí mật trong Trình quản lý khóa dưới dạng một thuộc tính và một bí mật được mã hóa được gửi lại dưới dạngaccess_token

Có, bạn có thể sử dụng triển khai của riêng mình token_type, nhưng điều đó có thể không có ý nghĩa nhiều vì các nhà phát triển sẽ cần tuân theo quy trình của bạn thay vì triển khai OAuth tiêu chuẩn.


28
Tôi thấy "cấp quyền truy cập cho người mang mã thông báo này" để dễ hiểu hơn. Nó tương đương với việc phát hành séc "đưa tiền cho người mang séc".
NVM

@NVM Cảm ơn lời đề nghị, nó chắc chắn có ý nghĩa. Tôi đã cập nhật tương tự.
Abhishek Tyagi

33

Bất cứ ai cũng có thể định nghĩa "token_type" là một tiện ích mở rộng OAuth 2.0, nhưng loại mã thông báo "hiện tại" là loại phổ biến nhất.

https://tools.ietf.org/html/rfc6750

Về cơ bản đó là những gì Facebook đang sử dụng. Việc thực hiện của họ là một chút phía sau từ thông số kỹ thuật mới nhất mặc dù.

Nếu bạn muốn bảo mật hơn Facebook (hoặc an toàn như OAuth 1.0 có "chữ ký"), bạn có thể sử dụng loại mã thông báo "mac".

Tuy nhiên, nó sẽ là một cách khó khăn vì thông số mac vẫn đang thay đổi nhanh chóng.

https://tools.ietf.org/html/draft-ietf-oauth-v2-http-mac-05


14

Thông tin tiêu đề Mozilla MDN


thông báo mang mã thông báo bảo mật với tài sản mà bất kỳ bên nào sở hữu mã thông báo ("người mang") có thể sử dụng mã thông báo theo bất kỳ cách nào mà bất kỳ bên nào khác sở hữu. Sử dụng mã thông báo mang không yêu cầu người mang chứng minh sở hữu tài liệu khóa mật mã (bằng chứng sở hữu).

Mã thông báo Bearer hoặc Làm mới mã thông báo được tạo cho bạn bởi máy chủ Xác thực. Khi người dùng xác thực ứng dụng (máy khách) của bạn, máy chủ xác thực sẽ đi và tạo cho Mã thông báo Bearer (mã thông báo làm mới) mà sau đó bạn có thể sử dụng để nhận mã thông báo truy cập.

Mã thông báo Bearer thường là một loại giá trị mật mã được tạo bởi máy chủ xác thực, không phải ngẫu nhiên nó được tạo dựa trên người dùng cấp cho bạn quyền truy cập và ứng dụng khách của bạn có quyền truy cập.

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.