2013-07-16 26 views
17

tôi đang tìm kiếm một số thông tin trên Internet về điều đó và kết thúc trên RFC cho OAuth 1.0 Nghị định thư: http://tools.ietf.org/html/rfc5849Tôi có nghĩ rằng OAuth 1.0 đã không còn được dùng để ủng hộ OAuth 2.0 không?

Bạn có thể đọc "lỗi thời bởi: 6749" ở phía trên cùng của nó và nếu bạn làm theo liên kết đó, bạn kết thúc trên Khung ủy quyền OAuth 2.0 RFC.

Dựa trên đó, tôi có thể suy luận một cách an toàn rằng OAuth 1.0 đã không còn được dùng để ủng hộ OAuth 2.0 không?

Cảm ơn.

+0

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 :-) –

+2

@Simon "bạn không nên cho 500 câu hỏi như vậy" - Tôi hoàn toàn đồng ý. – dan

+0

@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 –

Trả lời

22

Có và Không

IETF đã công bố một phiên bản mới của OAuth 2 obsoleting OAuth 1.x và nó mạnh mẽ khuyến cáo các nhà cung cấp Auth mới chuyển sang OAuth2.

Có bản sửa đổi cho OAuth 1.0a để khắc phục nhiều lỗ hổng bảo mật được tìm thấy trong 1.0 và được coi là phiên bản OAuth an toàn nhất.

OAuth2 là giao thức hoàn toàn mới và không tương thích ngược với OAuth 1.x. Những khác biệt chính đối với OAuth 1 được liệt kê trong số thread này.

Tuy nhiên, không phải ai cũng hài lòng với tiêu chuẩn mới. Eran Hammer-Lahav, tác giả chính và biên tập viên của các chi tiết kỹ thuật OAuth, đã từ chức khỏi ủy ban viện dẫn lý do trong số blog post này.

Homakov, người đã nổi tiếng với khai thác của mình trên Github, has not so nice things to say about OAuth 2.

Vì vậy, có, OAuth 2 đã chính thức thay thế OAuth 1.x, nhưng có ý kiến ​​mâu thuẫn trên mạng về việc liệu có nên sử dụng OAuth2 hoặc gắn bó với OAuth 1.0a hay không.

+1

Là một lưu ý thú vị, bạn có thể đọc một sự bác bỏ cho mục blog của Eran, tại đây: http://blogs.mnt.se/the-bitter-taste-of-good-intentions/ –

+0

Đã đọc một số phản hồi, nhưng không bao giờ đến qua liên kết này, vì vậy cảm ơn vì điều đó. Đối với những gì giá trị của nó, tôi đã chọn Oauth2 trên các phiên bản khác. – anfab

+0

@anfab Đọc các liên kết đã được cung cấp, có vẻ như một lựa chọn kỳ lạ là chọn 2.0. Có phải vì trong thời gian chờ đợi, các triển khai tham chiếu đã xuất hiện? –

5

Yes)

Phần lớn các công ty sử dụng 2,0 - ví dụ google:

Chú ý: OAuth 1.0 đã chính thức phản đối tính đến tháng 20, 2012. Nó sẽ tiếp tục làm việc theo chính sách không dùng nữa của chúng tôi, nhưng chúng tôi khuyên bạn nên di chuyển sang OAuth 2.0 càng sớm càng tốt.

nhưng có một số bằng 1,0 hoặc 1.0a như bạn có thể nhìn thấy wiki: OAuth trong chương Danh sách các nhà cung cấp dịch vụ OAuth

Ngoài ra còn có một thông tin chính thức rằng 1.0 bị phản RFC 6749: The OAuth 2.0 Authorization Framework

.. Đặc điểm kỹ thuật này thay thế và lỗi thời giao thức OAuth 1.0 được mô tả trong RFC 5849.

Và RFC 5849 là The OAuth 1.0 Protocol

+0

Không phải những gì tôi liên kết trong thông tin chính thức về câu hỏi của tôi? – dan

+0

@dan - trong liên kết của bạn * Giao thức OAuth 1.0 * Tôi không tìm thấy thông tin 1.0 bị từ chối – MikroDel

+0

Ở trên cùng, thông báo "Lỗi thời: 6749" - phải không? – dan

1

Tôi không thực sự nghĩ rằng bạn có thể nói rằng OAuth 1.0 đã không còn được dùng để ủng hộ OAuth 2.0. Bạn vẫn có thể làm việc với 1.0 nếu nó phù hợp với nhu cầu của bạn.

2.0 là tốt hơn cho quy mô lớn như Twitter đã không dùng nữa và thay đổi API của nó từ 1 đến 1.1, do đó, để tận dụng OAuth mới, nhưng điều đó liên quan đến twitter. Trong trường hợp khác có thể 1.0. vẫn hoạt động hoàn hảo, vì vậy không cần phải nâng cấp.

OAuth 2.0. phải làm nhiều hơn như với mã hóa công khai, khóa công khai. Và không riêng tư, không phải là tin tức tuyệt vời vì phương pháp đó được biết đến nhiều năm nay. Vì vậy, đó là cách vẫn còn có ý kiến ​​khác nhau về nếu là tốt hay xấu.

Ở đây Oauth2.0 and the road to hell và tại đây OAuth 2.0'bad' tôi nghĩ bạn có thể tìm thấy thông tin thú vị và chi tiết hơn về những gì bạn muốn.

4

Câu trả lời trực tiếp cho câu hỏi của bạn là . 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 tokensJWT 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.

Các vấn đề liên quan