Trước tiên, tôi muốn giải thích sự khác biệt giữa OAuth và OpenID. Người dùng adrianbanks tương phản với hai giếng trong số answer này. Tóm lại, OpenID là về xác thực - chứng tỏ bạn là ai. Trong khi OAuth là về ủy quyền - bạn có quyền truy cập vào chức năng, dữ liệu, ứng dụng của bạn hay không. Bây giờ, quay lại câu hỏi của bạn.
Cho dù bạn cần OAuth hay không, bạn nên xem xét các phần mềm trung gian OWIN (Open Web Interface for .NET). Chúng tôi hiện đang sử dụng OWIN để triển khai API mở của riêng chúng tôi với chức năng OAuth 2.0 Authorization Server. Tuy nhiên, OWIN không bị giới hạn khi triển khai máy chủ xác thực OAuth. Chắc chắn cung cấp cho nó một cái nhìn để xem nếu nó có thể phù hợp với nhu cầu của bạn.
Trong trường hợp của bạn, việc triển khai OAuth 2.0 có thể không cần thiết; tuy nhiên, đó là những gì tôi đang đề xuất. Đối với vấn đề này, nó là một giải pháp tốt, an toàn. Không chỉ giải quyết vấn đề này, nhưng trong tương lai, nếu bạn muốn cho phép người dùng ủy quyền tích hợp của bên thứ ba, OAuth - tùy chọn an toàn hơn - đã được triển khai.
Nếu bạn không có người dùng sử dụng tích hợp bên thứ ba, bạn có thể sử dụng khóa API. Miễn là bạn triển khai nó theo cách an toàn, đây là một lựa chọn tốt. Nếu điều này là nhiều hơn những gì bạn đang tìm kiếm, hãy đọc điều này post về cách sử dụng các khóa API để xác thực một cách an toàn (và ủy quyền) các ứng dụng của bên thứ ba cho một dự án ASP.NET Web API.
Nguồn
2017-02-16 15:58:38
Cách tốt nhất là chia sẻ khóa bí mật với ứng dụng của bên thứ 3 và bên thứ 3 để xây dựng JWT từ phía họ dựa trên khóa bí mật, api của bạn chỉ xác minh mã thông báo. –
@CuongLe bạn có thể vui lòng thêm nhận xét của bạn làm câu trả lời để thảo luận không? – Homam
Nhận xét của tôi có thực sự giải quyết được vấn đề của bạn không? –