2010-08-18 31 views
13

Tôi đã đọc một chút về nó tại http://oauth.net/, đó là "một cách đơn giản để xuất bản và tương tác với dữ liệu được bảo vệ" rõ ràng.Có ai có thể giải thích về OAuth không?

Tôi nghĩ đó chính xác là những gì tôi cần để cung cấp cách truy cập dữ liệu an toàn từ ứng dụng android/iphone thông qua dịch vụ web REST, nhưng tôi không thể tìm ra chính xác nó là gì. Vì vậy, đơn giản, chính xác nó làm gì và có bất kỳ ví dụ đơn giản nào (thực sự) về nó trong hành động tôi có thể làm theo, tốt nhất là thực hiện một cái gì đó trong C# có thể được truy cập từ một ứng dụng điện thoại thông minh không? Không.

+1

Giống như OpenID, ngoại trừ khác nhau. Bài đăng này giải thích rõ: http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing –

+0

Nếu cuộc gọi OAuth "đơn giản "họ nên thử xác thực cơ sở HTTP. –

Trả lời

13

Từ liên kết được cung cấp bởi Craig Stuntz:

Open ID mang đến cho bạn một đăng nhập cho nhiều trang web. Mỗi khi bạn cần đăng nhập vào Zooomr - một trang web sử dụng Open ID - bạn sẽ được chuyển hướng đến trang Open ID của bạn, nơi bạn đăng nhập, và sau đó quay trở lại Zooomr. OAuth cho phép bạn ủy quyền cho một trang web - người tiêu dùng - truy cập dữ liệu của bạn từ một trang web khác - nhà cung cấp. Ví dụ, bạn muốn ủy quyền cho một nhà cung cấp in ấn - gọi nó là Moo - để lấy ảnh của bạn từ một kho lưu trữ ảnh - gọi nó là Flickr. Moo sẽ chuyển hướng bạn đến Flickr mà sẽ hỏi bạn, ví dụ, "Moo muốn tải ảnh Flickr của bạn. Điều đó có tuyệt không? ”Và sau đó quay lại Moo để in ảnh của bạn.

DotNetOpenAuth là thư viện C# tốt cho Open ID và OAuth.

13

OAuth là một cách thay thế cho các ứng dụng để giữ dữ liệu đăng nhập mà không cần lưu trữ dữ liệu thực.

Khi bạn đăng nhập vào một số trang, bạn thường có tên người dùng và mật khẩu cá nhân hoặc bất kỳ loại thông tin đăng nhập nào khác. Bây giờ, nếu bạn muốn một ứng dụng có thể thực hiện các công cụ trên đăng nhập đó, bạn sẽ cần phải cung cấp cho ứng dụng đó dữ liệu đăng nhập ban đầu của bạn. Có nghĩa là bạn nhập cả tên người dùng và mật khẩu của bạn vào ứng dụng. Đó không phải là xấu cho đến nay, nhưng điều là nếu bạn muốn ở lại đăng nhập thông qua ứng dụng đó, nó cần phải lưu trữ thông tin đăng nhập của bạn. Nhưng để làm cho nó có thể gửi dữ liệu đăng nhập chính xác đến trang thực tế, nó cần lưu trữ chúng ở dạng ban đầu của chúng (chỉ với một số mã hóa hoặc một cái gì đó). Vì vậy, nếu ai đó biết cách dữ liệu được lưu trữ trong ứng dụng, họ có thể trích xuất thông tin đăng nhập ban đầu của bạn.

Đây là vấn đề bảo mật và chính xác vị trí của OAuth. Với OAuth, mọi ứng dụng đều được nhận dạng bằng khóa người dùng và bí mật của người tiêu dùng. Cả hai đều là duy nhất cho khách hàng và thường không có người dùng nào có thể xem được những thứ đó (đặc biệt không phải là bí mật). Bây giờ khi bạn muốn cho phép ứng dụng của bạn có quyền truy cập vào trang, bạn bắt đầu quá trình cấp phép OAuth. Bạn chỉ cần đăng nhập vào trang và cho phép rõ ràng rằng ứng dụng đặc biệt (được xác định bởi khóa người dùng) để có quyền truy cập. Nếu bạn làm điều đó, ứng dụng sẽ nhận được một cặp khóa khác, mã thông báo truy cập và bí mật truy cập. Cặp khóa đó chỉ hoạt động cho tài khoản của bạn và chỉ hoạt động khi được ứng dụng chính xác sử dụng (được xác định bằng khóa người dùng và được bảo mật là ứng dụng ban đầu của bí mật người tiêu dùng). Bây giờ tất cả các ứng dụng cần lưu trữ là cặp khóa truy cập (cùng với cặp khóa người dùng đã được lưu trữ) và nó sẽ có quyền truy cập vào trang mà không bao giờ thấy dữ liệu đăng nhập ban đầu của bạn.

Bằng cách đó, không ai có thể nhận chi tiết đăng nhập thực của bạn và không ai khác (hoặc không có ứng dụng nào khác) có thể sử dụng thông tin xác thực truy cập được tạo để truy cập trang. Và nếu bạn không muốn ứng dụng vẫn truy cập, bạn có thể dễ dàng thu hồi cặp khóa truy cập để ứng dụng không thể sử dụng ứng dụng nữa.

Vì vậy, OAuth chỉ là một cách để bảo vệ dữ liệu đăng nhập thực của bạn. Bên cạnh đó nó không thêm bất kỳ mức độ bảo mật nào khác hoặc một thứ gì đó, nó chỉ là để bảo mật dữ liệu của bạn.

+0

Đây là một lời giải thích tuyệt vời về OAuth. Một lời giải thích tốt tôi tìm thấy cho núm vú giả như tôi là tại https://blog.varonis.com/introduction-to-oauth/ – snark

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