2011-10-06 11 views
7

Mam to, co myślę, że jest dość skomplikowanym pytaniem, więc zrobię co w mojej mocy, aby go tu wyartykułować.Wdrażanie logowania jednokrotnego w farmie sieci Web .NET dla kilku witryn e-commerce z WIF?

Szukam rozwiązania jednokrotnego logowania (SSO). Zdaję sobie sprawę z wielu dostępnych opcji, ale większość z nich wykluczyłem, dodając kryteria, które muszą spełnić. Oto kryteria:

1.) SSO należy dodać do istniejącego "systemu".
2.) Istniejący "system" składa się z "X" liczby stron internetowych.
3.) Wszystkie witryny "x" to e-commerce.
4.) Strony internetowe są własnością firmy Y, dla której 95% systemu zostało zbudowane wewnętrznie.
5.) Każda z "X" stron znajduje się w tej samej farmie sieci Web.
6.) Wszystkie strony internetowe udostępniać następujące składniki:

  • DAL (Warstwa dostępu do danych)
  • Database (wózki, Zamówienia, Użytkownicy, Magazyn, etc ...)
  • uwierzytelniania (formularze Auth w obu WebForms i MVC).

7.) Aby obecne środowisko działało, klucze maszynowe zostały już zsynchronizowane między serwerami z obciążeniem load (i były przez pewien czas).
8.) Wysoka dostępność i stabilność są wymagane z powodu dużego natężenia ruchu w zakresie bardzo.

Wszystkie te kryteria doprowadziły mnie na ścieżkę WIF i niestandardowy STS do użycia z naszymi istniejącymi usługami uwierzytelniania członkostwa. Rzeczy takie jak OpenID i inne rozwiązania open source wydają się skłaniać do interoperacyjności między firmami; Który nie jest potrzebny ani potrzebny. Idealne rozwiązanie będzie w 100% wewnętrzne i pozwoli użytkownikowi zalogować się na stronie "1", zrób to, co chce zrobić, a następnie przejdź do strony "2" (również hostowane za loadbalancerem i potencjalnie nawet na tym samym serwerze). serwer internetowy, ponieważ użytkownik był na stronie internetowej "1") i być już zalogowany.

Oto lista alternatywnych metod, które obejrzałem i odpowiadający im powód ich wykluczenia (lub czy powinienem rozważyć niektóre z tych alternatyw?).

  • OpenID: ta została wykluczona z kilku powodów, przede wszystkim dlatego, że mój organizacja szuka „in-house” OSM i integracji z zewnętrznych stron internetowych lub systemu identyfikacyjnego używanego z zewnętrznych stron internetowych nie jest życzenia.
  • CAS: W przeważającej części, to także wydaje się przyzwoitą alternatywą. Ostatecznie został wykluczony, ponieważ technologie, których używa (Java, Apache, Maven, itp.) Będą wymagać dodatkowego wysiłku i pieniędzy, aby zrozumieć, zaimplementować, obsłużyć i rozszerzyć (przede wszystkim sklep .NET).
  • OAuth: Wydaje się, że jest bardziej ukierunkowany na udostępnianie chronionych danych za pośrednictwem usług internetowych. Całkowicie niestandardowe (http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx): całkowicie niestandardowe podejście może mieć zbyt wysoki czas realizacji i bezpieczeństwo jest bardziej niepokojące z tą metodą.
  • DotNetOpenAuth: zależny/oparty na OpenID.

Pytanie brzmi: czy WIF działa w naszym obecnym środowisku, biorąc pod uwagę system równoważenia obciążenia i już udostępnione dane konta użytkownika na stronach internetowych czy istnieje lepsze podejście?

Proszę dać mi znać, jeśli potrzebujesz wyjaśnienia.

EDIT:

Wystarczy, aby wyjaśnić to, czego szukam w celu osiągnięcia (lub myśleć staram się osiągnąć ze względu na badania Zrobiłem) wynosi:

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

Odpowiedz

2

ADFS v2.0 uwierzytelnia tylko przeciwko AD. Jeśli twoja obecna metoda uwierzytelniania jest czymś innym (np. SQL Server), potrzebujesz niestandardowego STS.

Czy te aplikacje są wszystkie ASP.NET?

Jeśli tak, wszystkie muszą mieć włączone roszczenia za pomocą WIF.

Jeśli nie, np. Java musisz chronić je innym rozwiązaniem np. OpenSSO/Ping Federuj i stowarzyszaj ten produkt z programem ADFS.

W przypadku klasycznej ASP istnieją sposoby zezwalania ADFS na obsługę uwierzytelniania, ale autoryzacja jest problemem. Role będą znajdować się wewnątrz obiektu Claim, do którego Classic ASP nie ma dostępu. Do tego można również użyć C2WTS.

Czy szukasz uwierzytelnienia lub autoryzacji, czy obu? Program ADFS dostarcza ról do obiektu oświadczeń, więc istniejący mechanizm autoryzacji w programach może się zmienić.

Możesz załadować saldo ADFS witryn.

Program ADFS z pewnością może włączyć funkcję SSO we wszystkich witrynach. Potencjalnie pozwala także na łączenie się z innymi witrynami/organizacjami i korzystanie z zewnętrznych danych uwierzytelniających (np. Facebooka) za pośrednictwem usługi Azure ACS, jeśli jest to coś, co należy wziąć pod uwagę w przyszłości.

Umożliwia również integrację z SharePoint 2010, CRM Dynamics 2010 i Office 365, z których wszystkie są włączone.

+0

Wszystkie witryny są .NET, bez klasycznych. Moje zrozumienie z programem ADFS polega na tym, że usługa Active Directory jest źródłem, z którego STS zatwierdza roszczenie użytkownika (może się mylić). W takim przypadku program ADFS nie jest realną opcją, ponieważ nasze dane dotyczące członkostwa w ogóle nie mają związku z AD. Czy WIF może być wykorzystany bez AD? Jeśli nie jest to program ADFS, czy nie może on być zrównoważony? Sądzę również, że potrzebowalibyśmy zarówno uwierzytelnienia, jak i autoryzacji, ponieważ niektóre strony zachowują się inaczej, gdy użytkownicy zostali uwierzytelnieni. – ooPeanutButter

+0

Sposób, w jaki będzie działać, polega na stowarzyszeniu STS (który uwierzytelnia się np. Z programem SQL Server) z programem ADFS. Niestandardowy STS może uwierzytelniać wbrew wszystkim, co chcesz. Atrybuty używane do autoryzacji mogą pochodzić z dowolnej kombinacji AD, SQL Server lub LDAP. Nie musisz używać WIF/ADFS do autoryzacji. Możesz go użyć po prostu do SSO (uwierzytelniania) i zostawić swój kod autoryzacji w taki sposób, jak jest – nzpcmad

+0

Wygląda na to, że twoja odpowiedź jest poprawna, ale czy mógłbyś potwierdzić to na podstawie diagramów dodanych w edycji? Zwróć uwagę na całkowity brak jakichkolwiek elementów związanych z AD na diagramach. Dzięki! – ooPeanutButter

Powiązane problemy