2011-07-14 10 views
5

Konfiguruję pole testowe Server 2008 z Active Directory i ADFS 2.0. Mam aplikację ASP.NET, która używa WIF do stowarzyszenia tożsamości. Program ADFS jest skonfigurowany do korzystania z usługi Active Directory w celu uzyskania informacji o tożsamości. Użyłem WIF, aby skonfigurować aplikację kliencką do używania punktu końcowego programu ADFS.ADFS 2.0 - Jak mogę debugować "401 - Nieautoryzowane"?

Gdy próbuję załadować aplikację ASP.NET jako użytkownik z przeglądarki, następuje przekierowanie do punktu końcowego programu ADFS i pojawia się monit o podanie poświadczeń. Podjęto próbę zalogowania się na kilku kontach użytkowników, a nawet zresetowania haseł, ale dane uwierzytelniające nigdy nie wydają się poprawne i zwrócono nieautoryzowane 401. Mogę z powodzeniem logować się do innych systemów z tymi samymi danymi uwierzytelniającymi.

Mam włączone śledzenie debugowania w trybie szczegółowym i włączone inspekcje w trybie pełnym, ale nie mogę znaleźć żadnych błędów ani informacji, które pomogłyby mi znaleźć przyczynę problemu.

Jak uzyskać więcej informacji, aby zawęzić problem?

UPDATE:

Okazało się, że ten problem jest spowodowany moim środowisku testowym. Moja maszyna deweloperska znajduje się w naszej domenie korporacyjnej (acme.com). Stworzyłem dwie maszyny wirtualne 2008R2 dla testowego kontrolera domeny (notacme.com) i serwera internetowego.

Jeśli próbuję uzyskać dostęp do witryny z komputera w domenie acme.com, występuje błąd opisany powyżej. Jeśli spróbuję uzyskać dostęp do witryny z komputera w domenie notacme.com, to działa.

Co mogę zrobić, aby uzyskać dostęp do witryny z komputera w domenie acme.com?

+0

W jaki sposób skonfigurowano tryb uwierzytelniania ADFS? Formularze lub zintegrowane? – shizik

+0

Myślę, że jest skonfigurowany dla zintegrowanego. Jak mogę się upewnić? – chief7

+1

Tryb zintegrowany nie działa w przeglądarkach innych niż IE. Możesz sprawdzić konfigurację w Internecie.plik konfiguracyjny dla aplikacji internetowej adfs, która zwykle znajduje się w C: \ inetpub \ adfs \ ls w sekcji konfiguracji microsoft.identityServer. – shizik

Odpowiedz

5

Widocznie było to spowodowane funkcja rozszerzonej ochrony wbudowana w program ADFS. Próbując rozwiązać ten problem, miałem Fiddlera do śledzenia żądań/odpowiedzi, ale w pewnym momencie przysięgam, że go wyłączyłem, żeby przetestować, ale nadal nie działa. Wygląda na to, że nie usunąłem całkowicie serwera proxy Fiddlera, ponieważ po zrestartowaniu IE i uruchomieniu Fiddlera działało w IE, ale okazało się, że nadal nie działa w Firefoksie ani w Chrome. To doprowadziło mnie do artykułu TechNet, który opisał zachowanie, które widziałem w związku z używaniem Skrzypka.

http://social.technet.microsoft.com/wiki/contents/articles/ad-fs-2-0-continuously-prompted-for-credentials-while-using-fiddler-web-debugger.aspx

0

Z mojego doświadczenia wynika, że ​​każda awaria logowania w IIS (w tym AD FS) jest rejestrowana w dzienniku zdarzeń "Zabezpieczenia" jako zdarzenie "Niepowodzenia inspekcji", które zawiera więcej szczegółów. Przeszukałem więc przeglądarkę zdarzeń w systemie AD FS i widziałem, co te zdarzenia mają do powiedzenia. Również w przeglądarce zdarzeń sprawdź "Dzienniki aplikacji i usług" -> "AD FS 2.0" -> Dziennik zdarzeń administratora.

Wygląda na to, że próbowałeś spojrzeć na ruch HTTP, np. Używając Fiddlera. Dobre. Zakładam, że problem występuje również, gdy Skrzypek nie jest używany?

(Czy może mieć problem powtarzającego logowania formularza, po wpisałeś poprawną nazwę użytkownika i hasło, a następnie przyjrzeć się następującym zdaniem:. ADFS authentication - IE8 works, Chrome fails)

(widziałem też przypadek, w którym wstępna autoryzacja przebiegła pomyślnie, w wyniku zdarzeń „audyt Success”, a następnie 401 wynikał z późniejszym przekierowania. również w tym przypadku dzienników zdarzeń w systemie AD FS pomogło.)

+0

Nie widzę żadnych błędów w żadnym z tych dzienników. Jakieś pomysły? – chief7

+0

Czy w dzienniku zdarzeń zabezpieczeń w systemie AD FS nie widzisz żadnych zdarzeń związanych z "sukcesem audytu" i "zdarzeń związanych z inspekcją", odpowiadających czasowi, w którym próbujesz się zalogować? Jeśli tak, to jestem w błędzie. Z mojego doświadczenia wynika, że ​​te zdarzenia są zawsze obecne, przynajmniej jeśli AD FS jest poprawnie zainstalowany (i wygląda na to, że wygląda na to, że pomyślnie używasz tej samej instancji programu AD FS z innej aplikacji internetowej). Ponadto, zgodnie z sugestiami, spójrz na ruch HTTP. –

+0

Nie, widzę komunikaty o sukcesie kontroli. Jeśli wprowadzę złe hasło, zobaczą błędy audytu. Widzę również zdarzenia związane z usługą Kerberos Service Ticket i zdarzenia usługi uwierzytelniania Kerberos. Tak czy inaczej jestem nieustannie przedstawiany z wyskakującym okienkiem poświadczeń i 401. – chief7