2011-10-06 33 views
7

Tôi có những gì tôi nghĩ là một câu hỏi khá phức tạp vì vậy tôi sẽ cố hết sức để nói rõ ở đây.Thực hiện SSO trong một trang Web .NET cho một số trang web thương mại điện tử với WIF?

Tôi đang tìm giải pháp đăng nhập một lần (SSO). Tôi nhận thức được nhiều tùy chọn ngoài kia nhưng đã cai trị hầu hết chúng trong khi tôi thêm tiêu chí mà họ cần để đáp ứng. Dưới đây là các tiêu chí:

1.) SSO phải được thêm vào "hệ thống" hiện có.
2.) "hệ thống" hiện tại bao gồm số lượng trang web "X".
3.) Tất cả các trang web "x" là thương mại điện tử.
4.) Các trang web đều thuộc sở hữu của công ty Y, với 95% hệ thống được xây dựng trong nhà.
5.) Mỗi ​​"X" số trang web nằm trong cùng một trang trại.
6.) Tất cả các trang web chia sẻ các thành phần sau:

  • DAL (Data Access Layer)
  • Cơ sở dữ liệu (giỏ hàng, đơn đặt hàng, người sử dụng, hàng tồn kho, vv ...)
  • Authentication (hình thức Auth trong cả WebForms và MVC).

7.) Để môi trường hiện tại hoạt động, Khóa máy đã được đồng bộ giữa các máy chủ cân bằng tải (và đã được một thời gian).
8.) Tính khả dụng và độ ổn định cao là bắt buộc do rất lưu lượng truy cập lớn.

Tất cả các tiêu chí này đã dẫn tôi xuống đường dẫn của WIF và STS tùy chỉnh để sử dụng với các dịch vụ xác thực thành viên hiện có của chúng tôi. Những thứ như OpenID và các giải pháp mã nguồn mở khác dường như dựa vào khả năng tương tác chéo của công ty; Đó là không cần thiết hoặc muốn. Các giải pháp lý tưởng sẽ được 100% nội bộ và cho phép người dùng đăng nhập trên trang web "1", làm bất cứ điều gì họ muốn làm và sau đó đi đến trang web "2" (cũng được lưu trữ phía sau cân bằng tải và có khả năng thậm chí trên cùng một máy chủ web với tư cách là người dùng dành cho trang web "1") và đã đăng nhập rồi.

Dưới đây là danh sách các phương pháp thay thế mà tôi đã xem xét và lý do tương ứng để loại trừ chúng ra (hoặc tôi nên xem xét lại một số lựa chọn thay thế này?).

  • OpenID: Điều này đã được loại trừ khả năng vì nhiều lý do, chủ yếu là bởi vì tổ chức tôi đang tìm kiếm "trong nhà" SSO và tích hợp với trang web bên ngoài hoặc một hệ thống ID được sử dụng với các trang web bên ngoài là không mong muốn.
  • CAS: Đối với hầu hết các phần, điều này cũng có vẻ giống như một thay thế khá. Cuối cùng nó đã bị loại trừ bởi vì các công nghệ mà nó sử dụng (Java, Apache, Maven, v.v ...) sẽ cần thêm nỗ lực và tiền bạc để hiểu, triển khai, hỗ trợ và mở rộng (Chủ yếu là Cửa hàng .NET).
  • OAuth: Có vẻ như nó được hướng nhiều hơn để lộ dữ liệu được bảo vệ thông qua dịch vụ web. Hoàn toàn tùy chỉnh (http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx): A phương pháp tiếp cận hoàn toàn tùy chỉnh có thể có thời gian thực hiện quá cao và bảo mật là mối quan tâm nhiều hơn với phương pháp này.
  • DotNetOpenAuth: Phụ thuộc/dựa trên OpenID.

Vì vậy, câu hỏi đặt ra là: WIF có hoạt động trong môi trường hiện tại của chúng tôi cho cân bằng tải và dữ liệu tài khoản người dùng đã chia sẻ trên các trang web hay không?

Vui lòng cho tôi biết nếu bạn cần làm rõ.

EDIT:

Chỉ cần làm rõ những gì tôi đang tìm cách để đạt được (hoặc nghĩ rằng tôi đang cố gắng để đạt được các nghiên cứu tôi đã thực hiện) là:

Current Setup (JPEG hosted on dropbox)
Desired Setup (JPEG hosted on dropbox)

Trả lời

2

ADFS v2.0 chỉ xác thực với AD. Nếu phương pháp xác thực hiện tại của bạn là một phương pháp khác (ví dụ: SQL Server) thì bạn cần một STS tùy chỉnh.

Có phải tất cả các ứng dụng này đều là ASP.NET không?

Nếu có, tất cả đều cần được xác nhận quyền sở hữu được bật bằng WIF.

Nếu không, nếu không, ví dụ: Java, bạn sẽ phải bảo vệ chúng bằng một giải pháp khác, ví dụ: OpenSSO/Ping Federate và liên kết sản phẩm này với ADFS.

Nếu ASP cổ điển, có nhiều cách để cho phép ADFS xử lý xác thực nhưng ủy quyền là một vấn đề. Các vai trò sẽ nằm trong một đối tượng yêu cầu mà ASP cổ điển không có cách nào để truy cập. Bạn cũng có thể sử dụng C2WTS cho việc này.

Bạn đang xem xét xác thực hoặc ủy quyền hoặc cả hai? ADFS cung cấp các vai trò bên trong một đối tượng yêu cầu để cơ chế ủy quyền hiện có trong các chương trình của bạn có thể phải thay đổi.

Bạn có thể tải các trang web ADFS cân bằng.

ADFS chắc chắn có thể bật SSO trên tất cả các trang web của bạn. Nó cũng có khả năng cho phép bạn liên kết với các trang web/tổ chức khác và sử dụng thông tin đăng nhập bên ngoài (ví dụ: Facebook) qua Azure ACS nếu đó là điều bạn cần xem xét trong tương lai.

Nó cũng cho phép bạn tích hợp với SharePoint 2010, CRM Dynamics 2010 và Office 365 tất cả đều được bật xác nhận quyền sở hữu.

+0

Các trang web đều là .NET, không cổ điển. Sự hiểu biết của tôi với ADFS là Active Directory là nguồn mà STS xác thực yêu cầu của người dùng chống lại (tôi có thể bị nhầm lẫn). Nếu đó là trường hợp, sau đó ADFS không phải là một lựa chọn khả thi vì dữ liệu thành viên của chúng tôi không liên quan đến AD. WIF có thể được sử dụng không có AD không? Nếu nó không phải là ADFS, sau đó nó có thể không được cân bằng tải không? Ngoài ra tôi tin rằng chúng tôi sẽ cần cả xác thực và ủy quyền vì các trang nhất định hoạt động khác nhau khi người dùng đã được xác thực. – ooPeanutButter

+0

Cách thức hoạt động của nó là bạn sẽ liên kết STS của mình (xác thực với SQL Server) bằng ADFS. STS tùy chỉnh có thể xác thực dựa vào bất kỳ thứ gì bạn muốn. Các thuộc tính mà bạn sử dụng để cấp quyền có thể được bắt nguồn từ bất kỳ kết hợp nào của AD, SQL Server hoặc LDAP. Bạn không phải sử dụng WIF/ADFS để ủy quyền. Bạn có thể sử dụng nó chỉ đơn giản là cho SSO (xác thực) và để lại mã ủy quyền của bạn như là – nzpcmad

+0

Có vẻ như câu trả lời của bạn là chính xác, nhưng bạn có thể vui lòng xác nhận điều này đối với biểu đồ tôi đã thêm vào trong bản chỉnh sửa không? Lưu ý thiếu hoàn toàn bất cứ điều gì liên quan đến AD trong sơ đồ. Cảm ơn! – ooPeanutButter

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