2010-07-30 8 views
129

thể trùng lặp:
What's the difference between OpenID and OAuth?OpenID vs OAuth

Điều gì thực sự là sự khác biệt giữa OpenID và OAuth? Họ trông giống như tôi.

Tôi nên làm rõ, tôi định sử dụng chúng trong drupal, nếu điều đó tạo ra bất kỳ sự khác biệt nào. Vì vậy, tôi đoán tôi bị ràng buộc bởi bất kỳ thực hiện mô-đun có sẵn trong drupal.

Trả lời

103

Nếu bạn có một tài khoản (với một số nguồn lực tư nhân) trong một trang web, bạn có thể đăng nhập với vài tên người dùng/mật khẩu. Nếu một ứng dụng muốn nhận một số tài nguyên riêng tư và nếu bạn không muốn cung cấp cho họ tên người dùng/mật khẩu của bạn, hãy sử dụng OAuth.

Nhưng nếu bạn muốn đăng nhập vào nhiều trang web với tài khoản duy nhất, hãy sử dụng OpenID.

(Một số trang web sử dụng OAuth như OpenID, và OpenID có thể được sử dụng như OAuth nếu bạn có một số công cụ tin trong tài khoản OpenID của bạn)

+7

Chỉ bao gồm tất cả thông tin nhận được. Hy vọng điều này [OpenID & OAuth] (http://techastute.blogspot.com/2012/05/openid-authentication-oauth.html) hữu ích. – raksja

239

OpenID là một cách để chỉ định một danh tính cho nhiều trang web, do đó bạn không cần phải đăng ký nhiều lần.

OAuth là một cách để cho phép một ứng dụng truy cập vào một tài khoản mà không cung cấp thông tin đăng nhập tài khoản cho ứng dụng được cho biết. Bạn có thể sử dụng chúng cùng nhau.

Thông tin thêm: OAuth-OpenID: You’re Barking Up the Wrong Tree if you Think They’re the Same Thing

+26

tôi thích phản ứng này nhiều hơn một sự đánh dấu là câu trả lời. còn ai nữa? – the0ther

+0

Do sự khác biệt về số phiếu bầu, Mark có một huy hiệu tốt cho nó. Chắc chắn rồi. :) –

+0

@Mark: Vậy là bây giờ. Tôi upvoted chấp nhận một lên (và của bạn là tốt). Nên là một huy hiệu ngay bây giờ. –

20

OpenID là hoàn toàn * để xác thực multi-site với một bộ duy nhất của thông tin.

OAuth là để cho phép các ứng dụng truy cập một cách an toàn: chia sẻ dữ liệu. Hãy suy nghĩ về nó như thiết lập một liên kết của sự tin tưởng giữa hai điều, ví dụ như cho phép tài khoản flickr của bạn để đăng những thứ trên tường facebook của bạn hoặc hooking ảnh flickr của bạn vào một trang web in ấn của bên thứ ba.

OAuth không chỉ là về trang web-to-site. Bạn có thể liên kết trong các ứng dụng máy tính để bàn mà không có khái niệm "nhận dạng" thực sự cho một trang web định dạng như Facebook hoặc twitter (ví dụ: ứng dụng khách twitter có thể đăng lên nguồn cấp dữ liệu của bạn mà không phải lưu trữ chi tiết đăng nhập của bạn).

Có những điểm tương đồng nhưng OAuth thực sự là tất cả về các liên kết dịch vụ tới dịch vụ.

77

OpenID = bằng các thông tin đăng nhập từ một nhà cung cấp OpenID (Google) để đăng nhập vào một ứng dụng khác (Stack Overflow)

OAuth = Cho phép một ứng dụng (TwitPic) để hoạt động trên danh nghĩa của bạn để và truy cập thông tin từ một ứng dụng bạn sử dụng (Twitter).

Chúng có thể được sử dụng kết hợp với nhau.

+0

Không phải là trường hợp Stack Overflow hoặc các trang web khác thuộc về stackoverflow như serverfault sử dụng OAuth cho đăng ký người dùng mới bằng cách sử dụng google hoặc facebook và OpenID để đăng ký bằng cách sử dụng trang web khác của miền của họ như serverfault hoặc askubuntu. Trong OAuth, chúng tôi có thể hạn chế thông tin nào đang được truyền từ bên xác thực (facebook) đến nhà cung cấp dịch vụ (stackoverflow). Trong OpenID, chúng tôi chỉ đưa ra một chứng chỉ tượng trưng cho người đó là hợp pháp và cấp quyền truy cập vào toàn bộ cơ sở dữ liệu. Kể từ khi stackoverflow hoặc askubuntu thuộc về cùng một tên miền họ có thể trao đổi giấy chứng nhận với đầy đủ quyền truy cập vào cơ sở dữ liệu người dùng. –

20

OpenID là về xác thực cho nhiều trang web có một tên người dùng.
OAuth là về ủy quyền - trang web A có quyền gọi api của trang web B.

Đây là một bài viết tốt/tương tự giải thích sự khác biệt: http://www.dotnetopenauth.net/about/about-oauth/

+2

'trang web A có quyền gọi trang web của api.' Điều đó xóa nó cho tôi. Cảm ơn một tấn. –

+0

Ngoài ra, nếu tôi muốn người dùng truy cập trang web của mình để đăng ký trang web của tôi bằng cách đăng nhập vào Google, sau đó lưu trữ một mã băm ID email của họ đối với tất cả hoạt động của họ vì lý do kế toán, tôi sẽ sử dụng ... OpenID, phải không? –

+0

@ronnieaka OpenID sẽ hoạt động tốt cho điều đó. –