Konfiguracja ograniczonej delegacji protokołu Kerberos dla serwera MSSQL(TDS)

Informacja

Jest to ogólna instrukcja, mająca na celu przybliżenie procesu konfigurowania usługi. Pewne aspekty mogą się różnić w zależności od konfiguracji środowiska Windows Server. Szczegółową instrukcję znajdziesz w dokumentacji Windows Server.

Konfiguracja uwierzytelniania Kerberos na serwerze Windows

Konfiguracja DNS:

  1. Uruchom aplikację Server Manager.
  2. Kliknij przycisk Tools w prawym górnym rogu okna, aby rozwinąć listę menu, i wybierz DNS.
../../_images/sso_win_dns1.png
  1. Przejdź do Forward Lookup Zones.
  2. Dodaj rekord A: kliknij prawym przyciskiem myszy na wybranej nazwie domeny i wybierz New Host (A lub AAAAA).
  3. Podaj NazwęAdres IP panelu administracyjnego Fudo Enterprise (np. mgmt.qa.fudo, 10.0.32.241).
  4. Kliknij Add Host.
../../_images/tds_dns.png

Tworzenie konta użytkownika serwisowego:

W tej sekcji dodajemy użytkownika serwisowego mssqluser, który będzie reprezentował serwis MSSQL w domenie.

  1. Zaloguj się na serwer, na którym chcesz skonfigurować Kerberos, używając konta administratora.
  2. Uruchom aplikację Server Manager.
  3. Kliknij przycisk Tools w prawym górnym rogu okna, aby rozwinąć listę menu, i wybierz Active Directory Users and Computers.
../../_images/tds_win_add_user_1.png
  1. W oknie Menedżera przejdź do nazwy domeny lub wybranej grupy użytkowników i kliknij prawym przyciskiem myszy na katalogu Użytkownicy.
  2. Wybierz New > User.
  3. Utwórz użytkownika (np. Nazwa logowania użytkownika: mssqluser).
../../_images/tds_win_add_user_2.png
  1. Kliknij Next.
  2. Podaj hasło dla utworzonego użytkownika (np. PaSSwOrD) i zaznacz opcję Hasło nigdy nie wygasa.
  3. Kliknij Next, a następnie Finish.
../../_images/tds_win_add_user_3.png

Dodanie SPN (Service Principal Name):

Wywołaj poniższe polecenie w konsoli PowerShell lub CMD:

setspn -S <klasa usługi>/<nazwa serwera>.<domena>:<port>@<domena> <konto serwisowe>

Przykład:

setspn -S MSSQLSvc/WIN2019-DC1.qa.fudo:1433@QA.FUDO mssqluser

SQL Server Configuration Manager:

  1. Uruchom SQL Server Configuration Manager.
  2. Rozwiń SQL Server Services, wybierz serwer i otwórz okno Properties.
../../_images/tds_sql_conf_1.png
  1. W zakładce Log On wprowadź dane uwierzytelniające konta mssqluser.
../../_images/tds_sql_conf_2.png
  1. Rozwiń SQL Server Network Configuration, wybierz serwer i upewnij się, że połączenie przez TCP/IP jest włączone.
../../_images/tds_sql_conf_3.png

Tworzenie użytkownika serwisowego reprezentującego MSSQL na Fudo:

W tej sekcji dodajemy konto serwisowe mssqlfudo, które będzie reprezentować usługę MSSQL w Fudo Enterprise.

  1. Uruchom aplikację Server Manager.
  2. Kliknij przycisk Tools w prawym górnym rogu okna i wybierz Active Directory Users and Computers.
  3. W oknie Menedżera przejdź do nazwy domeny lub wybranej grupy użytkowników i kliknij prawym przyciskiem myszy na katalogu Użytkownicy.
  4. Wybierz New > User.
  5. Utwórz użytkownika, który będzie korzystał z delegacji Kerberos do logowania na serwer MSSQL(TDS) (np. Nazwa logowania użytkownika: mssqlfudo).
../../_images/tds_win_add_user_4.png
  1. Kliknij Next.
  2. Podaj hasło dla utworzonego użytkownika (np. PaSSwOrD) i zaznacz opcję Hasło nigdy nie wygasa.
  3. Kliknij Next, a następnie Finish.

Dodanie SPN dla użytkownika MSSQL na Fudo:

Wywołaj poniższe polecenie w konsoli PowerShell lub CMD:

setspn -S <klasa usługi>/<nazwa panelu admina Fudo>:<port>@<domena> <konto serwisowe>

Przykład:

setspn -S MSSQLSvc/mgmt.qa.fudo:1433@QA.FUDO mssqlfudo

Delegacja Kerberos

Informacja

  • Po ustawieniu SPN dla użytkownika mssqlfudo w oknie edycji użytkownika pojawi się nowa zakładka Delegation.
  • Jeśli zakładka Delegation nie jest widoczna, spróbuj odświeżyć konsolę Active Directory Users and Computers.
  1. Kliknij prawym przyciskiem myszy na konto mssqlfudo (utworzone w poprzednich krokach) w oknie Active Directory Users and Computers i wybierz Properties.

  2. Przejdź do zakładki Delegation.

  3. Zaznacz Trust this user for delegation to specified services only.

  4. Wybierz opcję Use Kerberos only.

  5. Dodaj usługi:

    • Kliknij przycisk Add.
    • W oknie Select Users or Computers wpisz mssqluser i kliknij Check Names, aby upewnić się, że nazwa jest prawidłowa.
    • Kliknij OK, aby kontynuować.
../../_images/tds_delegation.png
  1. Wybierz usługi do delegacji:

    • W oknie Add Services pojawi się lista SPN-ów powiązanych z kontem mssqluser.
    • Możesz wybrać wszystkie dostępne usługi lub wskazać konkretne SPN-y.
    • Kliknij OK, aby zatwierdzić wybór.
  2. Kliknij Apply, a następnie OK, aby zapisać ustawienia.

  3. Jeśli zmiany nie są natychmiast widoczne, odśwież konsolę Active Directory Users and Computers naciskając F5 lub klikając prawym przyciskiem myszy na katalog Użytkownicy i wybierając Refresh.

Generowanie Keytab:

  1. Wywołaj następujące polecenie w konsoli PowerShell lub CMD:

    ktpass -princ HTTP/hostname.yourdomain.local@yourdomain.local -mapuser netbios_domain_name\username -pass password -ptype KRB5_NT_PRINCIPAL -out hostname.yourdomain.local.keytab

    • Przykład dla tego przypadku:

    ktpass -princ MSSQLSvc/mgmt.qa.fudo:1433@QA.FUDO -mapuser QA\mssqlfudo -pass PaSSwOrD -pType KRB5_NT_PRINCIPAL -out mssqlfudo.keytab

  2. Skopiuj wygenerowany plik Keytab na stację roboczą, na której będziesz konfigurować Fudo.

Informacja

Jest to alternatywna metoda uwierzytelniania zamiast hasła. Hasło musi być zgodne z tym podanym podczas tworzenia użytkownika. W przypadku zmiany hasła użytkownika, jego plik keytab stanie się nieaktywny.

Konfiguracja Fudo Enterprise

Konfiguracja DNS:

  1. Przejdź do Ustawienia > Konfiguracja sieci.
  2. Przełącz się na zakładkę Nazwa i DNS.
  1. Skonfiguruj serwer DNS tak, aby wskazywał na serwer DNS w domenie yourdomain.local (w tym przykładzie użyjemy adresu IP kontrolera domeny):

    • Kliknij Dodaj serwer DNS, aby dodać nowy serwer DNS.
    • Wprowadź adres IP serwera DNS (np. 10.0.242.100).
    • Kliknij Zapisz.

Tworzenie użytkownika w Fudo:

  1. Wybierz Zarządzanie > Użytkownicy, a następnie kliknij Dodaj użytkownika.
  1. Wprowadź nazwę użytkownika, która odpowiada nazwie utworzonej wcześniej w Active Directory (np. Administrator).
  2. Wybierz rolę user.
  3. W zakładce Ustawienia, w sekcji Sejfy, wybierz main, aby przyznać dostęp do Panelu Administratora Fudo Enterprise.
  1. Kliknij Zapisz.
  1. Przejdź do zakładki Dane użytkownika, wprowadź Domena Fudo (np. QA.FUDO).

Informacja

Domena Fudo powinna odpowiadać nazwie domeny podanej w bilecie Kerberos.

../../_images/tds_fudo_user.png
  1. Uzupełnij pozostałe parametry w zależności od potrzeb konfiguracji. Więcej informacji znajdziesz w rozdziale Dodawanie użytkownika.
  1. Kliknij Zapisz i wyjdź.

Konfiguracja serwera MSSQL(TDS):

  1. Wybierz Zarządzanie > Serwery, a następnie kliknij + Dodaj serwer.
  1. Wprowadź unikalną nazwę serwera (np. tds).
  2. W sekcji Ustawienia, na liście protokołów, wybierz MSSQL(TDS).
  3. W sekcji Adres źródłowy wybierz Host i wprowadź nazwę hosta serwera (np. win2019-dc1.qa.fudo).
  4. Wprowadź port: 1433.
../../_images/tds_fudo_server.png
  1. Kliknij Zapisz i wyjdź.

Konfiguracja konta:

  1. Wybierz Zarządzanie > Konta, a następnie kliknij Dodaj konto.
  1. Zdefiniuj unikalną nazwę obiektu (np. tds:forward).
  1. W sekcji Typ wybierz FORWARD.
  2. W sekcji Cel kliknij Serwer i z rozwijanej listy wybierz utworzony wcześniej serwer (np. tds).
  3. W sekcji Zastąp sekret wybierz Brak.
  4. Kliknij Zapisz.

Informacja

Typo konta forward jest zalecany w tym scenariuszu, ponieważ w przypadku delegacji S4U2Proxy konieczne jest posługiwanie się istniejącym biletem użytkownika do uwierzytelniania względem serwera TDS. Dlatego zawsze używana jest nazwa użytkownika, który zalogował się do Fudo Enterprise, natomiast jakiekolwiek poświadczenia wprowadzone dla konta nie zostaną wykorzystane.

Konfiguracja gniazda nasłuchiwania:

  1. Wybierz Zarządzanie > Gniazda nasłuchiwania, a następnie kliknij Dodaj gniazdo nasłuchiwania.
  1. Wprowadź unikalną nazwę listenera (np. tds-listener).
  1. Przejdź do zakładki USTAWIENIA i w polu Protocol wybierz MSSQL(TDS).
  2. Zaznacz opcję Włącz ograniczoną delegację.
  3. W polu Service principal name wprowadź: MSSQLSvc/mgmt.qa.fudo:1433@QA.FUDO.
  4. Prześlij plik Keytab.
  5. W sekcji Tryb połączenia wybierz proxy.

Informacja

Możliwe jest również użycie trybu bastion, jednak w tym trybie nie można używać loginów bastionowych.

  1. Ustaw lokalny adres (np. Any) oraz port 1433.
../../_images/tds_fudo_listener.png
  1. Kliknij Zapisz i wyjdź.

Konfiguracja Safe:

  1. Wybierz Zarządzanie > Sejfy, a następnie kliknij Dodaj sejf.
  1. Wprowadź unikalną nazwę Safe (np. tds-safe).

  2. Kliknij Zapisz, aby zapisać obiekt i przejść do dalszej konfiguracji.

  3. Przejdź do zakładki Użytkownicy, aby przypisać użytkowników z dostępem do kont przypisanych do tego Safe.

    • Kliknij Zarządzaj użytkownikami.
    • Zaznacz pole wyboru przed nazwami użytkowników, aby umożliwić im dostęp do serwera przez monitorowany Safe (np. Administrator).
    • Kliknij Zapisz, aby zamknąć okno modalne.
  4. Wybierz zakładkę Konta, aby dodać konta dostępne w ramach tego Safe.

    • Kliknij Zarządzaj kontami.
    • Zaznacz pole wyboru przed nazwami kont, aby dodać je do Safe (np. tds:forward).
    • Kliknij Zapisz, aby zamknąć okno modalne.
  5. Kliknij Zapisz i wyjdź, aby zapisać konfigurację Safe.

Nawiązanie połączenia:

Aby nawiązać połączenie:

  1. Uruchom aplikację klienta SQL.
  2. Wybierz File > Connect object explorer….
  3. W polu Server name podaj nazwę panelu administracyjnego Fudo Enterprise ustawioną w wpisie DNS: mgmt.qa.fudo.
  4. Z listy Authentication wybierz Windows Authentication.
  5. Kliknij Connect.
../../_images/sql_client_login.png

Informacja

Logowanie przy użyciu trybu SQL Server Authentication jest również możliwe, jeśli listener ma włączoną ograniczoną delegację.

Powiązane tematy: