Trang Chủ Bảo vệ Oauth 2.0 101

Oauth 2.0 101

Mục lục:

Anonim

Nhiều chiếc xe sang trọng đi kèm với một chìa khóa valet. Đó là một chìa khóa đặc biệt mà bạn cung cấp cho nhân viên đỗ xe và không giống như chìa khóa thông thường của bạn, sẽ chỉ cho phép chiếc xe được lái một khoảng cách ngắn trong khi chặn truy cập vào cốp xe và điện thoại di động trên xe. Bất kể những hạn chế mà khóa valet áp đặt, ý tưởng là rất thông minh. Bạn cung cấp cho ai đó quyền truy cập hạn chế vào xe của bạn bằng một phím đặc biệt, trong khi sử dụng một phím khác để mở khóa mọi thứ khác. - Hướng dẫn chính thức về OAuth 1.0


Đó là cách các nguyên tắc đặc tả dựa trên cộng đồng giải thích cách OAuth trở lại vào năm 2007. Và trong khi OAuth 2.0 là một giao thức hoàn toàn mới, thì mô tả tương tự vẫn được áp dụng - OAuth vẫn là cách để người dùng cấp quyền truy cập của bên thứ ba (và quyền truy cập hạn chế) cho họ tài nguyên mà không chia sẻ mật khẩu của họ.


Nếu bạn truy cập Internet thường xuyên, rất có thể bạn đã bắt gặp một trang web sử dụng OAuth. Xét cho cùng, các trang web lớn nhất thế giới, như Facebook, Google, MySpace, Twitter, Photobcologne, Yahoo, Evernote và Vimeo, sử dụng tiêu chuẩn xác thực này. Đọc tiếp để tìm hiểu thêm về tiêu chuẩn này và tại sao thế hệ tiếp theo, OAuth 2.0, vẫn đang được sử dụng trên cơ sở tương đối thử nghiệm.

OAuth 2.0 là gì?

Trước tiên, bạn cần biết OAuth, như một giao thức, là gì: Nó cho phép ủy quyền giao diện lập trình ứng dụng giữa hai ứng dụng Web hoặc máy tính để bàn. Do đó, các trang web có thể chia sẻ tài nguyên được bảo vệ với các trang web và dịch vụ khác.


Ví dụ: nếu bạn chơi Scramble với bạn bè trên iPad, bạn có thể nhập thông tin đăng nhập Facebook của mình, cho phép trò chơi xem qua danh sách bạn bè của bạn để xem ai trong số họ đang chơi trò chơi - và mời những người khác tham gia. Hoặc bạn có thể kết nối với bạn bè trên Google+ dựa trên những người theo dõi bạn trên Twitter. Các loại ứng dụng này rất tiện lợi cho người dùng, nhưng chúng liên quan đến việc cung cấp cho một trang web hoặc chương trình quyền truy cập thông tin về bạn trên một trang web khác.


OAuth 2.0 hoạt động giống như hóa thân đầu tiên của OAuth, nhưng nó là một tiêu chuẩn hoàn toàn mới. Điều này có nghĩa là nó không tương thích ngược với OAuth 1.0. Phiên bản 2.0 đã dọn sạch nhiều vấn đề với OAuth ban đầu và thực hiện các cải tiến.


Mặc dù về cơ bản vẫn giữ kiến ​​trúc của phiên bản đầu tiên, 2.0 đã cải thiện về:

  • Chứng thực và chữ ký. OAuth 2.0 giúp người dùng ở phía máy khách dễ dàng thực hiện giao thức hơn.
  • Trải nghiệm người dùng và các cách khác để phát hành mã thông báo
  • Hiệu suất, đặc biệt là với các trang web và dịch vụ lớn hơn
Một lời giải thích toàn diện hơn về những gì mới với OAuth 2.0 được cung cấp bởi Eran Hammer, người từng là một phần của nhóm làm việc OAuth. Bạn có thể truy cập từ đây. Tuy nhiên, lưu ý rằng Hammer rời nhóm làm việc vào tháng 7 năm 2012, với lý do các vấn đề liên quan đến bảo mật khi thực hiện tiêu chuẩn. Kết quả là, mặc dù OAuth được cho là sẽ hoàn thành vào cuối năm 2010, nó vẫn là một tiêu chuẩn được đề xuất (tại thời điểm viết bài), mặc dù nó là một phần của API đồ thị của Facebook. Google và Microsoft cũng đang thử nghiệm hỗ trợ OAuth 2.0 trong API của họ.

Lợi ích của việc sử dụng OAuth 2.0

Một trong những lý do tốt nhất để sử dụng OAuth là nó giúp việc chia sẻ trở nên dễ dàng hơn rất nhiều. Chúng ta đã quen với việc tải ảnh lên Instagram và để chúng tự động đăng lên Twitter và Facebook. Trên thực tế, đây là loại dễ sử dụng và giao nhau tiếp tục làm cho phương tiện truyền thông xã hội trở nên hấp dẫn.


Nhưng đó không phải là tất cả. Đối với người dùng cuối, OAuth có nghĩa là bạn không phải tạo hồ sơ khác. Ví dụ: nếu bạn muốn để lại nhận xét về một bài viết, bạn có thể sử dụng thông tin đăng nhập Facebook hoặc Twitter của mình để làm như vậy, thay vì phải đăng ký tài khoản trên một trang web nhất định. Điều này rất tốt cho các trang web mà bạn không thường xuyên hoạt động hoặc bạn có thể không tin tưởng. Nó cũng có thể mang lại lợi ích cho các trang web bằng cách đảm bảo rằng người dùng có danh tính trên Facebook, khiến khả năng spam bình luận ít xảy ra hơn.


OAuth cũng có nghĩa là ít mật khẩu để nhớ. Đó là cách tốt nhất để có mật khẩu khác nhau cho các dịch vụ trang web khác nhau. Vì vậy, thay vì ghi nhớ một mật khẩu khác, bạn chỉ phải sử dụng mật khẩu Facebook để truy cập dịch vụ. Nhân tiện, sẽ không thấy mật khẩu của bạn.


Bạn cũng có thể giới hạn những tài nguyên nào được truy cập thông qua OAuth của bạn. Ví dụ: khi chơi một trò chơi trên Facebook, bạn có thể chỉ định xem bạn có muốn trò chơi được đăng trên tường của bạn thay mặt bạn hay không.


Đối với nhà phát triển, OAuth 2.0 cung cấp mã đã được phát triển để xác thực, hiển thị tương tác xã hội và hiển thị hồ sơ người dùng. Điều này có nghĩa là ít lỗi hơn cho các nhà phát triển tranh chấp và rủi ro thấp hơn vì API đã được gỡ lỗi, thử nghiệm và chứng minh. Cuối cùng, bạn cũng được hưởng lợi từ việc có ít dữ liệu được lưu trữ trên các máy chủ của riêng bạn.

Làm thế nào OAuth 2.0 trở thành

Một điều khá rõ ràng là OAuth là một phản hồi cho lời kêu gọi tính toán an toàn và dễ sử dụng cho các dịch vụ Web khác nhau. OAuth 2.0, mặt khác, nảy sinh từ nhu cầu làm cho OAuth ít phức tạp hơn. Nhưng toàn bộ ý tưởng cho cả hai thực sự đến từ OpenID.


OpenID là một dịch vụ cho phép người dùng đăng nhập vào các dịch vụ khác nhau bằng cách sử dụng thông tin đăng nhập từ một trang web khác. Nhưng OpenID rất hạn chế, vì vậy một nhóm người làm việc trên các giao thức ủy quyền khác nhau cho các trang web của riêng họ đã kết hợp với nhau. Việc triển khai OAuth đầu tiên được thực hiện vào năm 2007 và lần sửa đổi đầu tiên diễn ra hai năm sau đó.


OAuth 2.0 xuất hiện trong bối cảnh vào năm 2010. Mục đích của nó là tập trung vào sự đơn giản của nhà phát triển khách hàng và có thể dễ dàng mở rộng hơn đồng thời cải thiện trải nghiệm người dùng.

Thách thức phía trước?

Mặc dù Google, Klout và các tên tuổi lớn khác đang triển khai OAuth 2.0, nhưng vẫn có thể có một con đường đầy đá phía trước giao thức này. Có những lời chỉ trích từ cộng đồng OAuth 2.0, bao gồm những lo ngại về bảo mật của giao thức (nhiều người tin rằng nó kém an toàn hơn OAuth 1.0).


Theo Hammer, nếu được sử dụng bởi một lập trình viên có năng lực, thành thạo về bảo mật Web, OAuth 2.0 hoạt động. Thật không may, chỉ một số ít các nhà phát triển phù hợp với dự luật đó.


Ngoài ra, mã OAuth 2.0 không thể tái sử dụng. Ví dụ: các giao thức OAuth 2.0 được sử dụng bởi Facebook sẽ không thể sử dụng được bởi các trang web khác. Hơn nữa, giao thức mới thực sự phức tạp hơn nhiều so với bản gốc.


Nhưng cú hích thực sự đối với nhiều người là OAuth 2.0 dường như không cung cấp bất kỳ lợi thế hoặc cải tiến thực sự nào trên 1.0. Hammer viết rằng nếu bạn đang thực hiện thành công 1.0, không có lý do gì để nâng cấp lên 2.0.


OAuth 2.0, tuy nhiên, vẫn còn sống rất nhiều. Nếu nó giải quyết những chỉ trích và vấn đề đang được nêu ra, nó vẫn có thể tìm thấy một nơi như một giao thức rất mạnh mẽ. Tuy nhiên, tại thời điểm viết bài, phiên bản 1.0 vẫn được coi là phiên bản chính thức, ổn định và được thử nghiệm của OAuth. Tuy nhiên, đối với các nhà phát triển có mục tiêu làm việc với các tên tuổi lớn trong thế giới trực tuyến, việc thực hiện giao thức này một cách an toàn có thể trở thành một kỹ năng quan trọng trong tương lai không xa.

Oauth 2.0 101