Rejestrowanie nazwy głównej usługi Kerberos przy użyciu składnika Http.sys

Macierzysty usług XML sieci Web jest niezalecane.Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja.

Podczas tworzenia lub modyfikowania punktów końcowych HTTP za pomocą utworzyć punkt końcowy lub zmienić punkt końcowy, określ typ uwierzytelnianie używany do uwierzytelnianie użytkowników, które wysyłasz żądanie HTTP SOAP do punktu końcowego.Aby uzyskać więcej informacji, zobacz Utwórz punkt końcowy (Transact-SQL) i ZMIEŃ punkt końcowy (Transact-SQL).

Za pomocą TWORZYĆ zmieniać końcowy, można skonfigurować punkty końcowe do obsługi uwierzytelnianie Kerberos w następujący sposób:

  • Ustawienie uwierzytelniania KERBEROS, = Kerberos jest używany jako jedyny środek uwierzytelnianie HTTP

  • Podczas uwierzytelniania zintegrowanego, = uwierzytelnianie HTTP dla punktu końcowego mogą oferować następujące opcje uwierzytelniania wyzwanie w ramach: Negocjuj protokół KERBEROS i NTLM.Opcja NEGOCJUJ klient i serwera próby ustanowienia uwierzytelnianie Kerberos.Jeśli Kerberos nie jest obsługiwany przez klient lub negocjacje nie jest możliwe, uwierzytelnianie powróci do NTLM.W celu uniknięcia powrotu do NTLM podczas używania NEGOTIATE klienta, zalecane klienta zestaw uwierzytelniania = KERBEROS dla punktu końcowego.

Wspieranie wzajemnego uwierzytelnianie, w obszarze Kerberos wystąpienie SQL Server należy skojarzyć głównej nazwy usługi (główna nazwa usługi) konta, zostanie ona uruchomiona, takich jak system lokalny domena lub konta konto użytkownika.Szczegółowe główna nazwa usługi rejestracji przez konkretne wystąpienie SQL Server są określane przez typ konta usługa skonfigurowano pod.Jeśli SQL Server działa zgodnie z lokalnego konta systemowego lub konto usługa sieciowej SPN musi być zarejestrowany w obszarze Nazwa komputera.Jeśli SQL Server działa na koncie użytkownika domena SPN musi być zarejestrowany w obszarze Nazwa użytkownika domena.

Korzystanie z narzędzia SetSPN.exe

Aby włączyć skojarzenia główna nazwa usługi konta, wystąpienie SQL Server działa, należy użyć narzędzie obsługi systemu Windows SetSPN.exe.To narzędzie dodaje główna nazwa usługi dla nazwy komputera, na którym SQL Server wystąpienie jest uruchomiona w ramach konta użytkownika usługa domena systemu Windows znajduje się w usłudze Active Directory.W tym scenariuszu narzędzie SetSPN.exe umożliwia dodawanie dwóch SPN: jedną dla nazw NetBIOS i drugą dla w pełni kwalifikowanej nazwy DNS.

Na przykład, jeśli narzędzie SetSPN.exe jest wykonywane z SQL Server uruchomione wystąpienie MyComputer, po dwie nazwy SPN są skojarzone z kontem SQL Server wystąpienie jest uruchomiony i musi zostać dodany do katalogu:

HTTP/MyComputer;
HTTP/MyComputer.fully.qualified.domain.name.com

Należy zauważyć, że pojedyncze konto może mieć wiele główna nazwa usługi, ale nazwa główna nazwa usługi może być rejestrowane tylko dla jednego konta.

Aby usunąć te same dwie nazwy główna nazwa usługi, NetBIOS i DNS w pełni kwalifikowana użyć SetSPN.exe.

Uwagi

  • Podobnie jak Httpcfg.exe, SetSPN.exe jest dostępne z Windows Server 2003 i jest instalowany podczas używania tej samej procedury, aby zainstalować Httpcfg.exe i innych narzędzi obsługi systemu Windows.Aby uzyskać więcej informacji, zobacz Konfigurowanie sterownika trybu jądra protokołu HTTP (Http.sys).

  • Jeśli SQL Server wystąpienie nie jest uruchomiona jako konto system lokalny, tylko zintegrowane uwierzytelnianie użytkowników, którzy mają uprawnienia administratora domeny można zmienić nazwy główna nazwa usługi rejestracji za pomocą narzędzie SetSPN.exe.

  • If a SQL Server instance is running as the local system account, only members of the SQL Server sysadmin fixed server role can change SPN registrations by using the SetSPN.exe tool.

  • Jeśli konto usługa jest System lokalny, nazwa główna nazwa usługi jest dodawana do konta usługa Active Directory z komputera bez konieczności korzystania z narzędzie SetSPN.exe.

Składnia SetSPN.exe

Składnia SetSPN.exe jest:

setspn { -ASPN | -DSPN | -L } service_account

Argumenty

  • -A
    Dodaje określoną nazwę główna nazwa usługi do konta.

  • -D
    Usuwa określony główna nazwa usługi konta.

  • -L
    Wyświetla wszystkie nazwy SPN zarejestrowany na koncie.

Przykłady

Jeśli wystąpienie SQL Server działa jako użytkownik domena (MyDomain\MySQLAccount) na komputerze o nazwie MySQLHost, następujących poleceń można używać do zestaw odpowiednie nazwy SPN:

setspn –A http/MySQLHost MyDomain\MySQLAccount
setspn –A http/MySqlHost.Mydomain.Mycorp.com MyDomain\MySQLAccount

Należy zauważyć, że jedno konto może mieć wiele główna nazwa usługi (po jednym dla każdej nazwy usługa lub hosta), ale nazwy główna nazwa usługi mogą być rejestrowane tylko jednego konta.O tej samej nazwy główna nazwa usługi zarejestrowany na wiele kont powoduje Kerberos uwierzytelnianie nie powiedzie się.

Na przykład konto MyDomain\MySQLAccount można następujące różne nazwy SPN zarejestrowano na typie.Pierwsze dwa polecenia są dla dwóch różnych usług (http i rpc).Ostatnia z nich jest dla innej nazwy hosta, przy założeniu, że komputer ma wiele nazw hostów.

setspn –A http/MySQLHost MyDomain\MySQLAccount
setspn –A rpc/MySQLHost MyDomain\MySQLAccount
setspn –A http/MySecondHost MyDomain\MySQLAccount

Natomiast poniższy scenariusz spowoduje błąd protokołu Kerberos:

setspn –A http/MySQLHost MyDomain\MySQLAccountOne
setspn –A http/MySQLHost MyDomain\MySQLAccountTwo

Błąd występuje, ponieważ istnieją dwa wystąpienia SQL Server na komputerze, na którym działa w dwóch różnych usługa kont (MySQLAccountOne i MySQLAccountTwo).Rejestrowanie zarówno nazwy SPN, jeden dla każdego wystąpienie SQL Server nie jest obsługiwany scenariusz.

Ma to wpływ po wielu wystąpień SQL Server , są uruchamiane na tym samym komputerze w różnych kont.Nazwa główna nazwa usługi może być rejestrowane tylko dla jednego konta.Jeśli wymagasz wiele wystąpień SQL Server (na przykład Inst1 i Inst2) nadal współistnieć obok inne aplikacje (takie jak IIS) i chcesz używać uwierzytelnianie HTTP Kerberos dla wszystkich usług, użyj jednej z następujących opcji Aby rozwiązać konflikty rejestracji nazwy główna nazwa usługi:

  • Mieć wszystkie wystąpienia i aplikacje uruchomione jako tego samego konta.

    Na przykład, Inst1, Inst2 i wszystkie usługi IIS są uruchamiane jako system lokalny lub Moja_domena\MyServiceAccount.

  • Zarejestrować wiele nazw hostów dla tego samego komputera oraz każdego wystąpienie i aplikacji nasłuchiwania innego hosta.Dlatego w tym przypadek należy wykonać następujące czynności:

    • Należy utworzyć trzy nazwy innego hosta dla komputera.

    • Przypisanie każdego hosta do innej aplikacji.

    • Zarejestrować trzy zestawy SPN, jeden dla każdej kombinacji nazwy i aplikacji hosta.

Rozwiązywanie problemów rejestracji nazwy główna nazwa usługi Kerberos

Najbardziej typowych problemów dotyczących rozwiązywania problemów rejestracji nazwy główna nazwa usługi Kerberos są następujące:

  • Nazwa główna nazwa usługi nie jest zarejestrowany.

    Gdy nazwa główna nazwa usługi nie jest zarejestrowany, uwierzytelnianie Kerberos będą działać z komputera lokalnego, na którym wystąpienie SQL Server jest uruchomiona, ale nie będzie na komputerach zdalnych klient.

  • Nazwa główna nazwa usługi jest zarejestrowany w więcej niż jednym czas.

    Istnieje kilka scenariuszy, w których można zduplikować administrator usługa-główna-nazwy (główna nazwa usługi) w katalogu domena, który spowoduje, że uwierzytelnianie Kerberos nie powiedzie się.Należą do nich:

    • Wprowadzeniu zmian do konta domena, w której wystąpienie SQL Server uruchamia

      Jeśli SetSpn.exe jest wykonywane podczas działania wystąpienie SQL Server jako jedno konto domena, takich jak domena\User1, a następnie konta domena, który jest używany do uruchamiania SQL Server zostanie zmieniona, takich jak domena\User2, gdy SetSPN.exe jest uruchamiany ponownie, spowoduje tej samej nazwy główna nazwa usługi w katalogu w obu kont.

    • Instalowanie wielu wystąpień SQL Server , uruchamiane w różnych kont

      Jeśli zainstalowano wiele wystąpień SQL Server , a następnie uruchom każdego wystąpienia przy użyciu innego konta, jeśli SetSpn.exe jest uruchamiana na każde wystąpienie będzie zduplikowane konta w każdym katalogu SQL Server konta usługa.Dotyczy to zarówno wystąpień, które są uruchomione na użytkownika domena jak również lokalne konto systemowe.

    • Usunięcie i ponowne zainstalowanie wystąpienie SQL Server przy użyciu innego konta

      Po zainstalowaniu SQL Server w jednym koncie zarejestrować nazwy SPN, usuń i ponownie zainstaluj SQL Server w obszarze innego konta, a następnie ponownie zarejestrować nazwy SPN, każdego konta domena będą miały te same nazwy SPN.Oznacza to, że zostaną zduplikowane nazwy SPN.

W każdym z tych scenariuszy tego problemu jest, że punkt końcowy HTTP powróci do uwierzytelnianie NTLM, aż problem zostanie rozwiązany.Obejmuje to zazwyczaj wyszukiwanie katalogu SPN zduplikowane lub przestarzałe i ręcznie.