2009-08-18 37 views
8

Tôi khá mới đối với SOA và do đó thử nghiệm xung quanh.Thiết kế/xác thực dịch vụ SOA

Hiện nay, phần tạo ra vấn đề lớn nhất đối với tôi là xác thực, suy nghĩ hiện tại của tôi về nó liên quan đến những điều sau đây:

Khách hàng gửi một số loại thông điệp xác thực với dịch vụ chứng thực/người dùng, dịch vụ này yêu cầu các db và nếu người dùng được tìm thấy và mật khẩu hợp lệ, nó sẽ phản hồi với id phiên, id này sẽ được sử dụng trong tất cả các yêu cầu tiếp theo của ứng dụng khách này.

Điều này có vẻ khá ổn với tôi nhưng tôi không biết làm thế nào tôi nên xử lý các yêu cầu đến các dịch vụ khác, tôi nghĩ về ba cách tiếp cận khác nhau.

  1. Mọi dịch vụ đều yêu cầu dịch vụ xác thực nếu phiên hợp lệ và nếu có, vai trò của người dùng đó.

  2. Dịch vụ xác thực giữ tất cả thông tin phiên trong ram và phản hồi mà không có db roundtrip đến yêu cầu.

  3. Dịch vụ xác thực sẽ gửi thư được ủy quyền đến một esb, esb chuyển tiếp thư được ủy quyền này tới mọi dịch vụ và các dịch vụ này lưu trữ thư đó. Không cần thêm yêu cầu nào cho dịch vụ xác thực. Nếu người dùng đăng xuất hoặc vai trò của anh ấy thay đổi, một thông báo khác sẽ được gửi và xử lý bởi tất cả các dịch vụ.

Tôi nghĩ cách tiếp cận đầu tiên tạo ra quá nhiều áp lực đối với dịch vụ xác thực/db nhưng tốn ít công sức nhất để thực hiện.

Thứ hai vẫn rất dễ thực hiện nhưng sự căng thẳng trên dịch vụ xác thực vẫn gần như giống nhau.

Thứ ba phức tạp hơn một chút để triển khai nhưng sẽ giảm thời gian phản hồi khi không có chuyến đi đến dịch vụ xác thực diễn ra. Mặc dù, nếu có quá nhiều thông tin về phiên, cách tiếp cận này sẽ không thành công và khả năng mở rộng sẽ khó được đưa ra.

Trả lời

5

Cách tiếp cận tốt nhất nên được như thế này nếu tất cả các dịch vụ nội bộ,

  1. Dịch vụ xác thực vấn đề một mã thông báo cho khách hàng dịch vụ.
  2. Máy khách dịch vụ bao gồm mã thông báo trong thông điệp SOA được bao bọc trong WS-Security hoặc một cái gì đó tương tự.
  3. Dịch vụ phải xác thực mã thông báo với dịch vụ xác thực trước khi cung cấp dịch vụ.

Đối với dịch vụ bên ngoài, tôi khuyên bạn nên xem xét các giải pháp được liên kết như SAML.

+0

Bạn có thể vui lòng trả lời http://stackoverflow.com/questions/9553267/soa -design-parameter-decision? – Lijo

3

Đừng tối ưu hóa sớm. Tùy chọn của bạn không. 3 mà bạn thừa nhận sẽ phức tạp hơn để thực hiện là không cần thiết. Chọn tùy chọn không. 2 nếu đó là những gì bạn có thể thực hiện nhanh. Bạn có thể hồ sơ sau và thay đổi nó, nhưng tôi muốn đặt cược tiền mà bạn sẽ không có một 'nút cổ chai' khi đi với tùy chọn 2.

+0

Bạn có thể vui lòng trả lời http: // stackoverflow không.com/questions/9553267/soa-design-parameter-decision? – Lijo

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