Câu trả lời trực tiếp cho câu hỏi của bạn là có. Từ OAuth 2.0 spec:
đó là mục đích của đặc tả này là triển khai mới hỗ trợ OAuth 2.0 như được chỉ định trong tài liệu này và OAuth 1.0 chỉ được sử dụng để hỗ trợ triển khai hiện tại.
Mặc dù tôi thích OAuth 2.0 và đã triển khai máy chủ ủy quyền 2.0 và đóng góp vào thông số kỹ thuật, tôi không thể nói rằng cái này tốt hơn cái kia. Tôi tin rằng 2.0 là dễ dàng hơn để làm việc với.
Là một giao thức hữu ích, OAuth 1.0 không lỗi thời hoặc không liên quan. Kể từ phiên bản 1.0a (RFC 5849 là 1.0a), tôi biết không có lỗ hổng nào làm cho nó kém an toàn hơn 2.0 và trên thực tế nó được cho là an toàn hơn theo mặc định. 1.0 chỉ có khả năng xử lý hầu hết các trường hợp sử dụng.
OAuth 2.0 không tương thích với OAuth 1.0; nó là một giao thức hoàn toàn mới. Các quyết định thiết kế thúc đẩy sự phát triển 2.0 không bắt nguồn từ các lỗ hổng 1.0, trên mỗi giây, nhưng đúng hơn là 2.0 đã được mong muốn làm cho OAuth đơn giản hơn để triển khai và thanh lịch hơn cho các trường hợp sử dụng khó 1.0 (như vậy như ứng dụng gốc).
Một số khác biệt đó có thể đáng chú ý:
2,0 dựa vào sự an toàn được cung cấp bởi các kết nối mã hóa TLS. 1.0 không yêu cầu TLS, và kết quả là giao thức phức tạp hơn vì nó phải bao gồm sự phòng thủ riêng của mình chống lại các cuộc tấn công man-in-the-middle. Ví dụ: 1.0 dựa trên signed requests để truy cập tài nguyên được bảo vệ, trong khi 2.0 cung cấp nhiều đơn giản Bearer loại mã thông báo truy cập đơn giản hơn.
2.0 chia máy chủ OAuth thành hai conceptual roles: (1) máy chủ ủy quyền và (2) máy chủ tài nguyên. Sự tách biệt các mối quan tâm này phù hợp một cách tự nhiên với các doanh nghiệp mà các mối quan tâm cấp phép được lan truyền trên nhiều máy chủ chịu trách nhiệm về các loại tài nguyên khác nhau.
2.0 phân biệt giữa confidential and public clients. Khách hàng công cộng là những người chạy trên thiết bị của người dùng và do đó họ không thể giữ bí mật một cách đáng tin cậy (thông tin đăng nhập được mã hóa cứng). Phân biệt giữa khách hàng bí mật và công khai giúp dễ dàng đưa ra quyết định triển khai an toàn phù hợp với nhu cầu của nhà phát triển ứng dụng khách.
2.0 giới thiệu nhiều authorization grant types. Mỗi loại tài trợ có luồng giao thức riêng và các luồng giao thức này tạo OAuth 2.0 có thể điều chỉnh cho nhiều trường hợp sử dụng và loại ứng dụng khách.
2.0 tạo ra một nỗ lực tuyệt vời để có thể mở rộng. Section 8 of the spec thực hiện các điều khoản để xác định loại mã thông báo truy cập mới, loại cấp và thông số giao thức. Ví dụ: ngoài mã thông báo của người mang, công việc sẽ đi vào MAC tokens và JWT bearer tokens.
Đây là chủ quan, nhưng có thể nói rằng OAuth 2.0 cố gắng linh hoạt trong nhiều trường hợp sử dụng, nơi OAuth 1.0 yêu cầu nhà phát triển phải phù hợp với trường hợp sử dụng của họ vào một khuôn khổ cứng nhắc hơn.
Nguồn
2013-07-30 06:35:38
1.0 hoàn toàn không được chấp nhận vì lý do bảo mật, 1.0a vẫn có thể sử dụng được và trên thực tế, sử dụng (ví dụ: Tweeter sử dụng 1.0a: https://dev.twitter.com/docs/auth/oauth) IMHO bạn không nên dùng Không đưa ra 500 câu hỏi như vậy :-) –
@Simon "bạn không nên cho 500 câu hỏi như vậy" - Tôi hoàn toàn đồng ý. – dan
@dan Vậy tại sao bạn làm vậy, dan? Tôi chỉ tò mò thôi. Tôi đoán anh chàng này là may mắn XD –