2013-05-10 49 views
7

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.

+0

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

+0

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

+0

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

Trả lời

2

Dưới đây là câu trả lời của tôi theo thứ tự,

  1. OAuth 2.0 là phù hợp nhất cho bạn. Tôi sẽ nói bạn nên đi cho OAuth.
  2. Chắc chắn là có.
  3. Có thư viện. Apache OltuGoogle client library.
  4. Đặc điểm kỹ thuật OpenID Connect được xây dựng trên OAuth có thể được sử dụng để triển khai SSO.
+0

nhờ divyanshm cho chỉnh sửa – SureshAtt

+0

Tài liệu dành cho thư viện khách hàng của Google chỉ định rằng "thư viện này là một thư viện máy khách Java dễ sử dụng và hiệu quả để truy cập API Google bằng JSON và OAuth 2.0.". Tôi bị mất, tôi nghĩ đây sẽ là thư viện để triển khai nhà cung cấp OAuth của riêng tôi? – SiN

+0

Bạn đã thử Oltu chưa? – SureshAtt

2
  1. Ứng dụng dành cho thiết bị di động hoạt động hoàn toàn tốt với OAuth.
  2. SSO có thể được bật bằng OAuth.

Một số thông tin về làm thế nào để thiết lập một máy chủ OAuth/nhà cung cấp - How would an efficient OAuth2.0 server/provider work?

Như bạn nói, bạn cần phải hỏi người dùng cho phép một ứng dụng (chấp nhận/từ chối quyền mà ứng dụng yêu cầu) - trường hợp sử dụng hoàn hảo cho OAuth 2.0.

Hãy theo dõi nếu bạn cần thêm thông tin chi tiết về cách hoạt động của OAuth.

PS - Không có ý tưởng về tích hợp với Shiro.

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