Tôi bị mất một chút với thông tin tràn và tôi cần một số hướng dẫn về cách tốt nhất để tôi có thể hỗ trợ việc cung cấp truy cập API chỉ cho các khách hàng đáng tin cậy.Nhà cung cấp API tập trung - oAuth hay không?
môi trường hiện tại:
Chúng tôi hiện có một máy chủ tập trung để xử lý xác thực người dùng/uỷ quyền qua Apache Shiro.
Chúng tôi có API nội bộ giao tiếp nội bộ với máy chủ tập trung để xác thực và quản lý mã thông báo. (Vì vậy cho phép SSO).
Giao tiếp giữa các ứng dụng khách và API của chúng tôi được bảo mật qua SSL.
Xác thực dựa trên mã thông báo được sử dụng.
Target:
mục tiêu của chúng tôi là để cho phép các ứng dụng bên thứ 3 và API để giao tiếp với máy chủ chứng thực tập trung của chúng tôi. Nhưng mối quan tâm chính của chúng tôi là lừa đảo, vì chúng tôi chỉ muốn các bên "hợp lệ" liên lạc với chúng tôi và tốt nhất là không cho phép hiển thị thông tin xác thực ở bên thứ ba.
Câu hỏi:
1- cách tốt nhất để thực hiện một kiến trúc như vậy là gì? Chúng ta có nên tiếp tục với OAuth không? Nếu có, có cách nào tốt để tích hợp nó với Shiro không?
2- OAuth có hoạt động tốt trên ứng dụng dành cho thiết bị di động không? (ví dụ: Hạn chế quyền truy cập vào REST API trừ khi ứng dụng được tin cậy)
3- Có thư viện nhà cung cấp OAuth tôi có thể sử dụng với Java hay OAuth đơn giản là "chuẩn" mà tôi phải thực hiện? (Ví dụ: ví dụ: triển khai API RESTful)
4- SSO có hỗ trợ dễ dàng với OAuth không?
Xin lỗi vì những câu hỏi mơ hồ. Tôi chỉ cần hướng dẫn và tư vấn chung.
2) Câu hỏi của tôi là - tại sao OAuth không hoạt động trên thiết bị di động? :) Tôi không thấy lý do nào, tại sao nó không hoạt động ở đó .. – Dworza
Có phải tùy chọn Shibboleth không? Dường như điều đó cũng tích hợp với các ứng dụng dành cho thiết bị di động và có API hơi nhất quán hơn so với oAuth. [xem câu hỏi SO này về nó] (http://stackoverflow.com/questions/1935011/integrating-iphone-application-with-shibboleth) – David
Có yêu cầu người dùng của bạn có thể cấp/từ chối truy cập vào dữ liệu của họ không các ứng dụng của bên thứ ba này? – Perception