2013-07-22 30 views
7

Tôi biết rằng câu hỏi này đã được hỏi hàng nghìn lần trước nhưng tôi vẫn không thể hiểu được câu trả lời đúng cách. Khi tôi googled về chủ đề này tôi thấy hầu hết những người đề nghị sử dụng Oauth để bảo đảm an toàn webservice.Làm cách nào để bảo mật dịch vụ web an toàn với oauth?

Tôi tin rằng oauth chỉ áp dụng khi bạn muốn các ứng dụng của bên thứ ba cho phép truy cập vào tài nguyên được bảo mật mà không cần chia sẻ thông tin đăng nhập của người dùng.

Trong trường hợp của tôi, tôi muốn bảo mật dịch vụ an toàn chỉ có thể được truy cập bằng ứng dụng di động được phát triển của riêng chúng tôi. Tôi không thể hiểu rằng chỉ cho mục đích này làm thế nào tôi có thể sử dụng oauth để bảo đảm tài nguyên an toàn. Yêu cầu của tôi là đối với người dùng lần đầu tiên sẽ nhập thông tin đăng nhập của mình vào ứng dụng. Sau khi ứng dụng xác thực thành công sẽ nhận được một mã thông báo truy cập mà sau đó sẽ được sử dụng để truy cập các tài nguyên được bảo mật.

Trong trường hợp người dùng ouath trước hết được chuyển hướng đến trang web của nhà cung cấp ủy quyền từ ứng dụng di động (giả sử ứng dụng dành cho thiết bị di động làm ứng dụng của bên thứ ba) nơi anh ta nhập thông tin đăng nhập và sau đó thông qua url gọi lại, ứng dụng di động nhận mã thông báo truy cập để có quyền truy cập vào các tài nguyên được bảo mật.

Tôi đọc hướng dẫn Thiết kế API Web từ Apigee, trong đó họ khuyên bạn nên sử dụng ouath. Trong thực tế, Apigee App Services được bảo mật bằng oauth và họ đang làm những thứ tương tự mà tôi cần sử dụng oauth. Như sau lệnh curl cho thấy làm thế nào để có được mã thông báo truy cập bằng cách sử dụng tên người dùng và mật khẩu theo tài liệu API apigee.

curl -X POST -i -H "Content-Type: application/json" " https://api.usergrid.com/my-org/my-app/token " -d '{"grant_type":"password","username":"john.doe","password":"testpw"}'

câu hỏi đầu tiên của tôi là nếu tôi làm theo phương pháp tương tự cho phép ứng dụng của bên thứ ba để có được quyền truy cập thẻ mà không cần bất kỳ chuyển hướng và gọi lại, nó sẽ gây ra vi phạm Oauth đặc điểm kỹ thuật hay không? Câu hỏi thứ hai của tôi là chúng ta có thể sử dụng ouath cho các tình huống mà không có ứng dụng của bên thứ ba nào tham gia và truy cập tài nguyên được bảo đảm giữa người dùng ứng dụng và nhà cung cấp tài nguyên mà không có bất kỳ loại xác nhận nào.

+0

Tìm thấy câu trả lời trên blog công nghệ hybris. Kịch bản mà tôi đã thảo luận trong chuỗi được đề cập trong luồng mật khẩu chủ sở hữu tài nguyên Oauth2. http://techblog.hybris.com/2012/06/11/oauth2-resource-owner-password-flow/ – Noor

+0

Bạn trở thành nhà cung cấp oAuth của riêng mình và sau đó ứng dụng dành cho thiết bị di động của bạn có thể thiết lập Người dùng oAuth riêng của mình sử dụng các nhà cung cấp. –

Trả lời

0

Điều này hoàn toàn có thể xảy ra với OAuth2. Với OAuth1 đó là một chút vụng về hơn khi bạn phải sử dụng 'auth 2 chân', mà không cảm thấy tất cả những gì tự nhiên, nhưng trong OAuth2 bạn có thể sử dụng một trong các khoản tài trợ:

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