2012-05-04 23 views
5

Đặc tả OAuth 2.0 xác định Resource Owner Password Credentials Grant Type, cho phép thông tin đăng nhập mật khẩu của chủ sở hữu tài nguyên (tức là tên người dùng và mật khẩu) được sử dụng trực tiếp như ủy quyền cấp quyền truy cập mã thông báo.Sử dụng mã thông báo truy cập Facebook làm thông tin xác thực của chủ sở hữu tài nguyên trong OAuth2.0

Tôi muốn cho phép người dùng 'đăng nhập qua Facebook' trên ứng dụng khách thay vì cung cấp thông tin xác thực trực tiếp. Sau đó, khách hàng có thể trao đổi mã thông báo truy cập Facebook của người dùng cho mã thông báo truy cập cho máy chủ ủy quyền. Lược đồ này có phù hợp với khuôn khổ của OAuth2 không?

Trả lời

2

Khách hàng sau đó có thể trao đổi mã thông báo truy cập Facebook của người dùng cho mã thông báo truy cập cho máy chủ ủy quyền.

Có nghĩa là bạn có 2 máy chủ Ủy quyền (một trong những máy chủ Facebook và một máy chủ riêng tư khác) của bạn? Nếu có - bạn đang lạm dụng OAuth và nên sử dụng lược đồ Cấp quyền mã ủy quyền thay thế.

Mở Hình 5 từ OAuth 2.0 spec (v25), bạn có thể tìm thấy định nghĩa công việc:

  1. Chủ sở hữu nguồn tài nguyên cung cấp cho khách hàng với tên truy cập và mật khẩu của mình.

  2. Máy khách yêu cầu mã thông báo truy cập từ mã thông báo của máy chủ ủy quyền bằng cách bao gồm thông tin đăng nhập nhận được từ chủ sở hữu tài nguyên. Khi thực hiện yêu cầu, ứng dụng khách sẽ xác thực với máy chủ ủy quyền.

  3. Máy chủ ủy quyền xác thực ứng dụng khách và xác thực chủ sở hữu tài nguyên thông tin đăng nhập và nếu có vấn đề hợp lệ, mã thông báo truy cập.

Đây là trích dẫn từ Facebook http://developers.facebook.com/docs/guides/web/:

Để đăng nhập người dùng vào trang web của bạn, có ba điều cần phải xảy ra. Đầu tiên, Facebook cần xác thực người dùng. Điều này đảm bảo rằng người dùng là người họ nói họ đang có. Thứ hai, Facebook cần xác thực trang web của bạn. Điều này đảm bảo rằng người dùng đang cung cấp thông tin của họ cho trang web của bạn chứ không phải cho người khác. Cuối cùng, người dùng phải ủy quyền rõ ràng trang web của bạn để truy cập thông tin của họ. Điều này đảm bảo rằng người dùng biết chính xác dữ liệu nào họ đang tiết lộ cho trang web của bạn.

Ở cả hai nơi bạn có một và chỉ một máy chủ Ủy quyền - trong trường hợp của bạn - Facebook.

+0

Có, thực sự có 2 máy chủ ủy quyền trong lược đồ này. Đầu tiên là một phần của API của chúng tôi và thứ hai là FB. Vì vậy, tôi nghĩ rằng nếu khách hàng có thẻ truy cập FB của người dùng, nó có thể sử dụng mã thông báo như thông tin đăng nhập của người dùng (không cần phải nhập thông tin đăng nhập/mật khẩu). Sau đó, máy chủ ủy quyền của chúng tôi có thể kiểm tra xem mã thông báo có hợp lệ không và cấp mã thông báo mới (cho máy chủ của chúng tôi). Tôi hy vọng điều này có ý nghĩa :) –

+0

Và như tôi đã viết trong phản ứng của tôi nó có ý nghĩa để sử dụng Cấp phép Mã Grant do đó. –

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