2012-06-12 15 views
6

Mamy kilku klientów korzystających z naszej aplikacji internetowej (nie intranetu), niektórzy klienci chcą, aby ich login był zintegrowany z ich organizacją Active Directory. Po prostu chcą, aby ten użytkownik zalogował się na swoje konto Windows i może uzyskać dostęp do aplikacji internetowej bez wprowadzania poświadczeń użytkownika.Jednokrotne logowanie do aplikacji .NET zintegrowanej z Active Directory

Czytałem niektóre artykuły dotyczące programu ADFS, ale nadal nie wiem, jak to zintegrować lub wdrożyć. Jakieś proponowane rozwiązanie?

Dzięki!

+0

Czy aplikacja jest dostępna w chmurze lub hostowana? – bloudraak

+0

hostowane w chmurze. – Sabby62

+0

Pytanie jest po prostu zbyt otwarte. Wygląda na to, że nie czytałeś dużo o ADFS - w przeciwnym razie nie zadałbyś takiego pytania, jak "jak to zaimplementować". Wystarczy pobrać program ADFS, zainstalować go w pobliżu usługi Active Directory, udostępnić go i uczynić swoją federację aplikacji zdalną. Istnieją dobre książki na ten temat, takie jak bezpłatny e-book od MS, "Tożsamość roszczeń i kontrola dostępu". Proszę przeczytać ebook, zadać bardziej szczegółowe pytania, a otrzymasz odpowiedzi. –

Odpowiedz

0

Więcej szczegółów wymaganych w komentarzach.

Istnieje dobre źródło tutaj: AD FS 2.0 Content Map.

"E-book" to here.

Mogę sobie wyobrazić jeden scenariusz, w którym wiążesz aplikację w chmurze z usługą Azure ACS, klienci instalują program ADFS na swoich usługach AD i stowarzyszają system ADFS z usługą ACS. Zapewniłoby to wymaganą funkcjonalność.

Aktualizacja po komentarzu:

ADFS może uwierzytelnić tylko przeciwko AD. Nie może uwierzytelnić się na bazie danych. Może pobierać atrybuty z SQL Server DB, które następnie może przekształcić w roszczenia, tj. Może użyć SQL DB do autoryzacji.

Jeśli chcesz uwierzytelnić się przy SQL DB, możesz wybrać dwie opcje.

  1. Tworzenie niestandardowych STS
  2. użyć istniejącego "custom" STS jak Identity Server który pozwala tej funkcji.
+0

Wymagana jest większa wiedza na temat: Obecnie użytkownik jest zalogowany do aplikacji internetowej, sprawdzając poświadczenia przechowywane w bazie danych. Czy istnieje możliwość zaimplementowania czegoś takiego jak mapy konta użytkownika aktywnego katalogu do określonego konta w bazie danych i mają takie same role i funkcje, jak w bazie danych. – Sabby62

1

Twoje pytanie nie wskazuje jednoznacznie, czy jesteś ograniczony do używania programu ADFS do wdrażania SSO. Program ADFS jest z pewnością jednym ze sposobów robienia tego. Możesz spojrzeć na OpenID-LDAP (był na www.openid-ldap.org, ale projekt jest już nieczynny) i inne identity providers jako alternatywy dla wdrażania SSO.

Jedną z alternatyw jest wdrożenie dostawcy OpenID, który korzysta ze zintegrowanego uwierzytelniania systemu Windows. Mogą zainstalować go w DMZ, wyświetlając go w Internecie zamiast ADFS. Może zezwalać na pojedyncze logowanie z Internet Explorera i Chrome.

Wdrożenie dostawcy OpenID nie jest banalne. Będziesz musiał zwracać szczególną uwagę na bezpieczeństwo. Na szczęście istnieje wiele frameworków, takich jak DotNetOpenAuth, które mogą ci pomóc.

Używając OpenID, twoja "chmura" będzie działała jako OpenID i otrzyma zastrzegany identyfikator wśród innych atrybutów dostawcy OpenID. Powinieneś zapisać to w swojej bazie danych, aby jednoznacznie zidentyfikować użytkownika. Możesz zdecydować się na wdrożenie dostawcy OpenID tak, aby mógł on również dostarczyć aplikacji w chmurze minimalną informację, taką jak adres e-mail, nazwisko osoby itp.

Zaletą korzystania z OpenID jest to, że Twoja aplikacja "chmura" może nadal wspierać inni znani dostawcy OpenID, tacy jak Google i Yahoo, bez większych zmian.

Na koniec musisz zapytać klientów, z jakich technologii są one wygodne. Przekonasz się, że brak zaufania (cecha biznesowa) między organizacjami jest częściej niż wyzwaniem, a nie technologią.

3

Jeśli tworzymy aplikację opartą na .NET, Microsoft udostępnia bibliotekę o nazwie WIF, która służy do komunikacji z AD FS w sposób + - komfortowy (konfiguracja + małe dostosowania kodu w celu uzyskania oświadczeń od komunikatu uwierzytelnienia przez AD FS).

Istnieje niewiele protokołów, które obsługują zarówno usługi AD FS 2.0, jak i WIF, w celu wykonywania operacji jednokrotnego logowania. Najczęstsze z nich to (afaik) SAML 2.0 i federacja WS. Oba są zbudowane na wiadomościach XML, ale nie musisz znać szczegółów, jeśli używasz WIF.

W przypadku WS-Federation biblioteka WIF udostępnia wtyczkę do programu Visual Studio, która umożliwia skonfigurowanie witryny jako strony ufającej dla AD FS.

Możesz użyć danych uwierzytelniających w bazie danych do identyfikacji użytkowników, tak naprawdę możesz customize całej strony logowania i uwierzytelniania AD FS. Jednak podstawowa instalacja wymaga zdefiniowania każdego użytkownika w Active Directory. Możesz także użyć DB jako magazynu roszczeń (inna baza danych AD FS użyje do dostarczenia aplikacjom zależnym informacji o użytkownikach). Zauważ, że jeśli zamierzasz używać AD za AD FS, twoja usługa AD FS musi mieć możliwość uzyskania do niej dostępu, a zapytanie LDAP, które nie jestem pewien, zadziała, jeśli twoi użytkownicy zalogują się do swojej domeny lokalnej, Usługi AD FS nie są znane.



JEŚLI nie wymaga się obsługi standardowych protokołów SSO w branży (wspomniałem SAML 2.0), nie jestem pewien, czy wdrożenie AD FS będzie tak dobrym rozwiązaniem. Zmusza cię do pracy w określony sposób, co nie zawsze jest takie wygodne.

+0

Link WIF jest martwy. Droga do Microsoftu. – Maslow

+0

@Maslow Naprawiono link. – techvice

Powiązane problemy