Tôi có một sản phẩm với API REST đơn giản để người dùng có thể tích hợp trực tiếp với các tính năng của sản phẩm mà không cần sử dụng giao diện người dùng web của tôi . Gần đây tôi đã nhận được sự quan tâm từ các bên thứ ba khác nhau về việc tích hợp các máy khách của họ với API để cho phép người dùng sản phẩm của tôi truy cập dữ liệu của họ bằng ứng dụng của bên thứ ba đó.Bảo đảm REST API của tôi với OAuth trong khi vẫn cho phép xác thực thông qua các nhà cung cấp OAuth của bên thứ ba (sử dụng DotNetOpenAuth)
Tôi đã thấy rằng các ứng dụng muốn sử dụng Twitter xác thực bằng cách sử dụng trang đăng nhập được lưu trữ bởi Twitter cấp quyền ứng dụng cụ thể để truy cập dữ liệu của người dùng đó. Bạn nhấp vào nút "Cho phép" hoặc "Từ chối" và quá trình xác thực hoàn tất. Facebook sử dụng cùng một cơ chế tốt nhất mà tôi có thể nói.
Khi nghiên cứu sâu hơn, điều này có vẻ là OAuth đang hoạt động và thấy API của tôi là dựa trên Net. Tôi nghĩ mình nên sử dụng DotNetOpenAuth và cung cấp một cơ chế tương tự. Thật không may là các mẫu được ghi lại một cách thưa thớt (nếu có) và hướng dẫn duy nhất tôi có thể tìm thấy trực tuyến dường như tập trung vào việc giúp bạn cung cấp cơ chế đăng nhập cho người dùng để họ có thể đăng nhập vào trang web của bạn bằng nhà cung cấp bên thứ ba.
Điều tôi muốn thực sự là thực sự là API REST của tôi xử lý tất cả xác thực cốt lõi và logic nghiệp vụ cho ứng dụng web của tôi và dưới ứng dụng web, ứng dụng web của tôi về cơ bản là một ứng dụng khác chỉ sử dụng API qua OAuth. Người dùng sẽ xác thực trên trang web hoặc trực tiếp sử dụng tên người dùng và mật khẩu của họ hoặc thông qua nhà cung cấp bên thứ ba như MyOpenID hoặc Facebook và sau đó trang web sẽ sử dụng mã trả lại để xác thực dựa vào REST API.
Nó về cơ bản trông giống như tôi cần API của tôi bằng cách nào đó tổ chức một dịch vụ OAuth, nhưng cũng có người dùng sử dụng một dịch vụ bên thứ ba OAuth. Tôi không thể không nghĩ rằng tôi không có đủ hiểu biết về OAuth để quyết định xem tôi có quá nhiều thứ hay không, hoặc nếu những gì tôi đang cố gắng làm là một cách tốt hay xấu để làm mọi thứ.
Ai đó có thể cho tôi ít nhất một tổng quan rộng về các bước tôi cần thực hiện hoặc những gì tôi nên xem xét để thực hiện điều này? Hoặc chỉ cho tôi một số hướng dẫn? Hoặc nổ lời đề nghị của tôi và nói với tôi rằng tôi đang đi về điều này (kiến trúc) tất cả đều sai?
Xin chào Nathan, tôi đang đấu tranh với một kịch bản tương tự như bạn mô tả ở đây và tự hỏi liệu bạn có gì để thêm vào câu hỏi hoặc lời khuyên của tôi về cách hiểu được sự thiếu hiểu biết hiện tại của tôi về tích hợp OpenID với API http của tôi không : //stackoverflow.com/questions/16855131/dotnetopenauth-openid-flow-w-own-auth-server – Jammer