Safari 7 nie może połączyć się z intranetem przy użyciu uwierzytelniania HTTP

9

Zobacz UPDATE poniżej, aby uzyskać nowe informacje na temat rzeczywistych żądań HTTP realizowanych pod maską.

Więc zacząłem nową pracę w październiku. Jest to głównie sklep z systemem Windows i używają IIS i Active Directory do wielu wewnętrznych czynności. Mają witrynę intranetową pod adresem intranet.companyname.com.

W Chrome na Mavericks, kiedy tam wchodzę, pojawia się oczekiwane małe menu uwierzytelniania HTTP:

Co robi Chrome;  jest to coś, co POWINNY BYĆ w Safari

gdzie mogę wpisać swoją nazwę użytkownika i hasło. Nie jestem bardzo szybki z Active Directory, ale myślę, że msgdjest to domena Active Directory, w której jestem, więc piszę msgd\lheidbrederi moje hasło i mogę się pomyślnie zalogować w Chrome.

W październiku, kiedy po raz pierwszy spróbowałem tego w Safari, dostałem dziwne zachowanie; na przykład widziałem hasło, ale potem nie zadziałało, kiedy podałem swoje dane uwierzytelniające. Nie pamiętam dokładnie, co to zrobiło.

Ale po pierwszej próbie i przy każdej kolejnej próbie przejścia do intranet.companyname.comSafari pokazuje pusty ekran:

Co robi Safari 7 na Mavericks, kiedy próbuję połączyć się z moim intranetem

Ekran się nie zmienia, a pasek postępu zapełnia się o około 20% i pozostaje tam.


AKTUALIZACJA

Uruchomiłem aplikację, aby snoopować żądania HTTP i dowiedziałem się, co robił za kulisami. Nie tylko tam siedzi; Safari faktycznie żąda strony prawie 1000 razy na sekundę i za każdym razem pojawia się błąd 401 oraz strona błędu HTML z tytułem „Nie masz uprawnień do przeglądania tej strony”.

Na jedno przykładowe żądanie z połowy próby załadowania Safari wysyła ten Authorizationnagłówek:

Negotiate YEgGBisGAQUFAqA+MDygDjAMBgorBgEEAYI3AgIKoioEKE5UTE1TU1AAAQAAAAUCiGIAAAAAGAAAAAAAAAAYAAAABgGwHQ8AAAA=

A serwer odpowiada tym WWW-Authenticatenagłówkiem:

Negotiate oYIBIzCCAR+gAwoBAaEMBgorBgEEAYI3AgIKooIBCASCAQROVExNU1NQAAIAAAAOAA4AOAAAAAUCiWKPhp0o8/Y/9gAAAAAAAAAAvgC+AEYAAAAFAs4OAAAAD0EAUgBJAFMAVwBFAEIAAgAOAEEAUgBJAFMAVwBFAEIAAQAMAE4ARQBXAFcARQBCAAQAKgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAADADgATgBFAFcAVwBFAEIALgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAAFACoAYQByAGkAcwB3AGUAYgAuAGEAcgBpAHMAdABvAHQAbABlAC4AbgBlAHQAAAAAAA==

Na następne żądanie Safari wysyła identyczny Authorizationnagłówek, a następnie serwer odpowiada bardzo nieznacznie innym WWW-Authenticatenagłówkiem:

Negotiate oYIBIzCCAR+gAwoBAaEMBgorBgEEAYI3AgIKooIBCASCAQROVExNU1NQAAIAAAAOAA4AOAAAAAUCiWLa6vytPOG0owAAAAAAAAAAvgC+AEYAAAAFAs4OAAAAD0EAUgBJAFMAVwBFAEIAAgAOAEEAUgBJAFMAVwBFAEIAAQAMAE4ARQBXAFcARQBCAAQAKgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAADADgATgBFAFcAVwBFAEIALgBhAHIAaQBzAHcAZQBiAC4AYQByAGkAcwB0AG8AdABsAGUALgBuAGUAdAAFACoAYQByAGkAcwB3AGUAYgAuAGEAcgBpAHMAdABvAHQAbABlAC4AbgBlAHQAAAAAAA==

Powtórz ad infinitum.


Próbowałem usunąć wszystko, co pasuje intranetdo pęku kluczy i wyczyścić całą pamięć podręczną / pliki cookie, aby sprawdzić, czy mogę przywrócić oryginalne dziwne zachowanie, ale to nie zadziałało.

Czy mam coś funky w domenie? Co jeszcze mogę spróbować zdiagnozować?

75 puzon
źródło
Zamiast problemu z pękiem kluczy jest prawdopodobnie związany z plikami cookie. Możesz spróbować usunąć je z sekcji „Prywatność” panelu preferencji Safari.
Kent
Nie. Skomentowałem odpowiedź poniżej; Wyczyściłem pamięć podręczną, pliki cookie i wszystko, i robi dokładnie to samo. Powinienem otrzymywać wyskakujące okienko uwierzytelniające HTTP, więc nie sądzę, że pliki cookie dotyczą bezpośrednio tego.
75 Puzon
Przypadkowa myśl ... czy sprawdziłeś również swój pęku kluczy iCloud (jeśli łączysz swój pęku kluczy z iCloud)? W Keychain Access istnieją osobne wpisy dla pęku kluczy do logowania i pęku kluczy iCloud .
ithos67
Dobra myśl, ale mam wyłączony brelok iCloud na tym komputerze, a w każdym razie wyszukiwanie w pęku kluczy przeszukuje wszystkie dostępne breloki.
75 puzon
1
Wiem, że ci to nie pomoże, ale właśnie odkryłem, że mam dokładnie ten sam problem z Safari 7.0.4 i intranetowym SharePoint. Mogę połączyć się dobrze z Chrome i Firefox, ale Safari zaczyna się ładować, jak opisano, a potem po prostu tam siedzi. Bardzo irytujące.
nemesys

Odpowiedzi:

7

Mogę potwierdzić, że widzę identyczny problem z Safari 7.0.2 (9537.74.9), z zainstalowanymi wszystkimi aktualnymi aktualizacjami Mac OS X Mavericks. (Tysiące pakietów żądań na sekundę z tego samego rodzaju treścią, jak opisano powyżej.)

Jednak chociaż może to pomóc oryginalnemu plakatowi, ale nie musi, stwierdziłem, że ten problem występuje tylko wtedy, gdy serwer Windows ma zintegrowane uwierzytelnianie systemu Windows (znane również jako uwierzytelnianie NTLM) i włączone uwierzytelnianie negocjacyjne.

Serwer następnie wysyła te dwa nagłówki:

WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM

Safari odpowie:

Authorization: Negotiate YEgGBisGAQUFAqA+MDygDjAMBgorBgEEAYI3AgIKoioEKE5UTE1TU1AAAQAAAAUCiGIAAAAAGAAAAAAAAAAYAAAABgGwHQ8AAAA=

Stamtąd pętla zacznie działać.

Ale jeśli uwierzytelnianie negocjacyjne nie jest włączone na serwerze, będzie tylko jeden nagłówek uwierzytelniania WWW:

WWW-Authenticate: NTLM

A odpowiedź Safari będzie taka:

Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=

To zadziała dobrze. Zasadniczo wydaje się, że Negocjacja jest zepsuta w Safari, a ponieważ serwer najpierw wysyła Negocjację, wskazując preferencję, Safari spróbuje go i wejdzie w nieskończoną pętlę, która nie pozwoli mu wrócić do NTLM.

Jeśli więc można przekonać administratora serwera do wyłączenia Negocjuj w ustawieniach uwierzytelniania, problem może zostać rozwiązany.

Mogę dodać, że Firefox wysyła nagłówek „Autoryzacja: NTLM ...” bez względu na to, czy serwer oprócz negocjacji NTLM udostępnia Negocjacje. Przypuszczalnie Negotiate nie jest zaimplementowany w Firefoksie.


Aktualizacja

Safari 7.0.3 (9537.75.14) wciąż ma ten sam problem.

Wcześniej zgłaszaliśmy problem jako błąd na bugreport.apple.com, ale błąd został zamknięty jako duplikat poprzedniego błędu - którego zawartości nie widzimy, z wyjątkiem tego, że nadal jest oznaczony jako otwarty.

Aktualizacja 2

Mogę potwierdzić ustalenie Haunsa, że ​​uwierzytelnianie działa w przeglądarce Safari 7.0.4 (9537.76.4).

Aktualizacja 3

Ten problem powraca w przeglądarce Safari 7.0.5 (9537.77.4)

Aktualizacja 4

Ten problem jest nadal obecny w przeglądarce Safari 7.0.6 (9537.78.2), jak zauważają hauns, z zamontowanymi woluminami cifs lub smb.

Otto G.
źródło
Dzięki za informację. Powinieneś rozważyć skopiowanie oficjalnego raportu o błędzie do Open Radar i link do niego tutaj.
75 puzon
1
Ten problem został rozwiązany w OS X 10.11.5
Claus Jørgensen
3

W Safari 7.0.5 nadal występuje problem: uwierzytelnianie ulega awarii, jeśli wyszukiwarka współdzieli zasoby sieciowe za pośrednictwem SMB: (lub CIFS :). po odłączeniu wszystkich podłączonych woluminów sieciowych Safari wznawia prawidłowe uwierzytelnianie.

Regresja:

  1. obecny w Yosemite 10.10.1 / Safari 8.0.2
  2. obecny w El Capitan 10.11.2 / Safari 9.0.2
  3. obecny w Safari 10.0.1

Odpowiedni błąd Apple 22990203 jest nadal aktywny. Żaden śmiertelnik nie może go zobaczyć (por. Bugreporter.apple.com)

Zobacz także: https://discussions.apple.com/message/27727310#27727310

hauns
źródło
1

Mamy ten sam problem. Dlatego nie zaktualizowaliśmy jeszcze naszych komputerów Mac do Mavericks. Wygląda na to, że próbuje zalogować się do intranetu bez poświadczeń domeny (intranet \ „blank”). Powinien używać domeny \ nazwa użytkownika. Rozumiem, że może to być frustrujące, ale wydaje się, że w safari brakuje uwierzytelnienia.

Zaledwie kilka sekund wysadzi kłody.

Firefox wydaje się jednak działać świetnie.

Daniel
źródło
1
„Ja [n] zaledwie kilka sekund zdmuchnie kłody” - Naprawdę? Nie pokazuję, że rejestruję coś w Console.app. Do jakiego dziennika pisze dla ciebie?
75 Puzon
Do logowania używamy Solarwinds. Jednak uderza w dzienniki systemowe na naszym serwerze intranetowym.
Daniel
1

To może być długa szansa, ale jeśli masz bilet Kerberos (od zalogowania się do innej usługi), Safari może próbować go użyć.

Otwórz / System / Library / CoreServices / Ticket Viewer.app, aby sprawdzić, czy masz bilety Kerberos. Jeśli tak, kliknij bilet, Usuń tożsamość i spróbuj ponownie.

Alternatywnie, jeśli nic nie ma na liście, spróbuj użyć opcji Dodaj tożsamość i sprawdź, czy to działa z Safari.

Firefox i Chrome nie używają Kerberos, nie sądzę, dlatego właśnie pytają cię osobno o poświadczenia.

zapalny
źródło
1
Nic tam nie ma na liście, a gdy próbuję wprowadzić poświadczenia, pojawia się komunikat „Nieprawidłowe hasło”.
75 puzon
1
Kiedy dodajesz bilet, używasz msgd \ lheidbreder jako nazwy użytkownika, prawda?
łatwopalny
1
Tak, na pewno jestem.
75 puzon
0

Breloki to dobry pomysł, ale nie posunąłeś się wystarczająco daleko.

W Safari, jeśli spojrzysz pod Safarimenu, zobaczysz Reset Safari...Wybierz to, a kilka pamięci podręcznych zostanie wyczyszczonych.

Teraz otwarte Safari> Preferences> Autofilli wyłącz User names and passwords. Teraz wybierz Passwordsi usuń wymienione tam hasła. Wybierz Privacyi kliknij Remove All Website Data. Wybierz Extensionsi jeśli masz jakieś rozszerzenia, przełącz rozszerzenia na Off.

Teraz idź i wypróbuj swoją stronę internetową. Po podjęciu próby Privacyzobacz, czy nie pozostały jakieś pliki cookie i Passwordsczy Safari zapisało twoje hasło.

Może to przybliżyć Cię do rozwiązania. Powiedz nam, jak to będzie potem. Jeśli Chrome działa, chciałbym wiedzieć dokładnie, co robi, że działa. Czy może być wymagane nieco więcej węszenia?

Tylko na chichot wypróbuj adres URL http://username:[email protected]/(oczywiście zastępując bity) i zobacz, co się stanie.

Tony Williams
źródło
intranet.companyname.comWitryna nie zawierała haseł ani plików cookie , ale i tak wyczyściłem je wszystkie i zgodnie z oczekiwaniami otrzymuję dokładnie to samo zachowanie. Zauważ, że powinienem otrzymywać modulację uwierzytelniania HTTP w przeglądarce, więc gdyby miał być gdziekolwiek, byłby w Dostępu do pęku kluczy, a nie w plikach cookie.
75 puzon
1
Dodano trochę więcej, jeśli chodzi o mnie.
Tony Williams
1
Nic się nie dzieje, gdy próbuję tego formatu adresu URL.
75 Puzon
1
Spróbuj https://również.
Tony Williams
0

Miałem podobny problem również w moim biurze. Kluczem było upewnienie się, że moje wyszukiwanie DNS wykluczyło lokalne witryny (firmy / intranetu) z szukania adresu DNS. To było spowodowane tym, że mój system chciał przejść do serwera proxy i uzyskać stały ekran logowania. Działało się tak, że moja prośba o adres intranet.company.com została pobrana przez serwer proxy i wysłana do sieci. Główny serwer zobaczyłby, że łączyłem się przez firmowy adres IP i odpowiedział, szukając poświadczeń, które zostały usunięte przez proxy ... Myślę, że.

Zasadniczo upewnienie się, że strona intranetowa nie była wysyłana do serwera proxy, rozwiązało mój problem. To plus, czyniąc Chrome moją domyślną przeglądarką ...

Bradford Benn
źródło
0

Użyj Viewer.app biletów , /System/Library/CoreServices/Ticket Viewer.appi dodać nowy bilet.

W nowym bilecie użyj nazwy użytkownika i hasła do uwierzytelnienia adresu intranetowego.

serbanc
źródło
1
Jak wskazano powyżej, ilekroć próbuję dodać nowy bilet w tej aplikacji, informuje mnie, że mam złą kombinację nazwy użytkownika i hasła. Próbowałem obu lheidbrederi msgd\lheidbrederjako mojej nazwy użytkownika; brak szczęścia.
75 puzon
To faktycznie działało dla mnie. Musiałem dodać tożsamość dla domeny, w której był mój intranet, więc na przykład „nazwa_użytkownika @ domena robocza”, używając hasła do mojej domeny.
tjeerdhans
0
  1. Utwórz nowego użytkownika na komputerze Mac.
  2. Przełącz się na tego nowego użytkownika. Możesz to zrobić, utrzymując bieżącą sesję otwartą.
  3. Uruchom Safari. To jest dziewicze safari.
  4. Spróbuj połączyć się z witryną. Zwykle pojawi się okno dialogowe uwierzytelniania.
Nicolas Barbulesco
źródło
0

To może, ale nie musi pomóc, ale okazało się, że jeśli połączę się z udziałem kogoś innego niż ja, stracę okno uwierzytelniania w przeglądarce Safari 7.0.3 z systemem OS 10.9.2

Siebie jak w moim active directory login i hasło. Jestem związany z serwerem Active Directory.

Nie testowałem tego na maszynie niezwiązanej. Przetestowałem również Chrome i FireFox i te aplikacje nie mają problemu z uschnięciem. Aurora już nie działa.

Edytuj przez innego użytkownika:

To wydaje się być przyczyną problemu. Zostało to przetestowane na niezwiązanej maszynie z systemem Mavericks, a teraz z systemem Yosemite. Po połączeniu się z udziałami SMB Safari nie będzie już wyświetlać okna dialogowego uwierzytelniania. W Mavericks, gdy tylko odłączę się od udziałów SMB, pojawia się okno dialogowe i mogę zalogować się na stronie intranetowej Sharepoint 2013 mojej firmy. Nie mam problemu z Sharepoint 2007 ani innymi stronami intranetowymi.

W Yosemite wydaje się, że mogę połączyć się z maksymalnie dwoma udziałami SMB, a Safari nadal będzie działać. Jeśli jestem podłączony do co najmniej trzech udziałów SMB, problem pojawia się. Nie jestem jeszcze pewien, czy jest to liczba akcji, czy może różne akcje mają różne uprawnienia, które mogą mieć wpływ na sytuację. Muszę przeprowadzić bardziej rygorystyczne testy na tym froncie.

Christopher Lee
źródło