Korzystanie z konta gMSA (lub sMSA) dla połączenia bazy danych MS SQL Server
Korzystanie z konta gMSA (lub sMSA) dla połączenia bazy danych MS SQL Server z Syteca On-Premises
W razie potrzeby do połączenia między bazą danych MS SQL Server a serwerem aplikacji Syteca można użyć konta gMSa/sMSA (np. ze względów bezpieczeństwa).
Instrukcje zawarte w tym przewodniku opisują, jak skonfigurować konto gMSa/sMSA (po zainstalowaniu Syteca Application Server) do połączenia między bazą danych MS SQL a serwerem aplikacji Syteca.
Uwaga: Dla celów niniejszego przewodnika, zarówno terminy gMSA (Group Managed Service Account), jak i sMSA (Standalone Managed Service Account) są dalej określane łącznie jako po prostu „konto gMSA”.
Spis treści
1. Konfiguracja konta gMSA
1.1. Tworzenie klucza KDS
-
Dodaj klucz KDS, który będzie używany do generowania i przechowywania haseł gMSA (gdzie hasło obraca się), uruchamiając następujące polecenie:
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))
- Sprawdź, czy klucz został dodany, uruchamiając następujące polecenie (gdzie oczekiwanym wynikiem jest True):
Test-KdsRootKey -KeyId (Get-KdsRootKey).KeyId
1.2. Tworzenie konta gMSA
- Uruchom następujące polecenia za pomocą PowerShell, które włączą obsługę gMSA:
Install-WindowsFeature RSAT-AD-PowerShell
Import-Module ActiveDirectory -
Utwórz grupę Active Directory i dodaj do niej komputery docelowe, na których będzie używane konto gMSA.
Na przykład, gmsaServers zostanie użyty jako argument do parametru PrincipalsAllowedToRetrieveManagedPassword w poleceniu tworzenia konta gMSA, w następujący sposób:New-ADServiceAccount <gmsa_login> -DNSHostName <FQDN_server> -PrincipalsAllowedToRetrieveManagedPassword <AD_group> -KerberosEncryptionType AES128, AES256Na przykład:
New-ADServiceAccount MykGmsa -DNSHostName "MykGmsa.myk.test" -PrincipalsAllowedToRetrieveManagedPassword "gmsaservers" -KerberosEncryptionType AES128, AES256
Uwaga: Parametr „-KerberosEncryptionType” jest opcjonalny, ale zaleca się jego wyraźne określenie w celu uniknięcia ewentualnych przyszłych problemów z uwierzytelnianiem Kerberos.
- Po utworzeniu konta gMSA uruchom ponownie komputery, które zostały dodane do grupy gmsaServers Active Directory.
1.3. Instalacja konta gMSA
Aby użyć konta gMSA na komputerach docelowych, wykonaj następujące czynności:
- Uruchom następujące polecenie (aby zainstalować wymagane moduły dla PowerShell):
Install-WindowsFeature RSAT-AD-PowerShell
- Uruchom następujące polecenie, aby zainstalować konto gMSA:
Install-ADServiceAccount <gmsa_login>
Na przykład:
Install-ADServiceAccount MykGmsa
- Sprawdź, czy konto gMSA zostało zainstalowane, uruchamiając następujące polecenie (gdzie oczekiwanym wynikiem jest True):
Test-ADServiceAccount -Identity <gmsa_login>
Na przykład:
Test-ADServiceAccount -Identity MykGmsa
- Powtórz powyższe kroki na wszystkich komputerach, na których będzie używane konto gMSA.
1.4. Przyznawanie uprawnień gMSA do konta „Zaloguj się jako usługa”
-
Otwórz Lokalne zasady bezpieczeństwa za pomocą msc, a następnie otwórz Lokalne zasady > Przypisanie praw użytkownika i dla zasady Logowanie jako usługa dodaj konto gMSA.
- Powtórz powyższe kroki na wszystkich komputerach, na których będzie używane konto gMSA.
1.5. Przyznawanie uprawnień dostępu do liczników produktywności systemu
Aby zapobiec problemowi z wyświetlaniem pulpitów nawigacyjnych na stronie kondycji systemu i wystąpieniu następującego błędu „Odmowa dostępu do klucza rejestru 'Global'.” w dziennikach serwera aplikacji, należy przyznać uprawnienia pełnej kontroli dla konta gMSA w rejestrze do folderu:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib.
1.6. Nadawanie uprawnień dla konta gMSA do folderu Ekran System
Aby informacje były zapisywane w dziennikach Serwera Aplikacji Syteca, należy nadać uprawnienia pełnej kontroli dla konta gMSA do folderu C:\Program Files\Ekran System\Ekran System.

2. Konfiguracja Konsoli zarządzania
2.1. Cel LDAP
Aby zaktualizować/dodać cel LDAP przy użyciu konta gMSA, wykonaj następujące czynności:
-
Uruchom usługę EkranServer na koncie gMSA (np. w Usługach systemu Windows).
-
Na stronie Konfiguracja w Narzędziu do zarządzania wybierz kartę Cele LDAP i ręcznie zaktualizuj/dodaj wymagany automatyczny cel LDAP, klikając przycisk Odśwież automatyczny cel LDAP.
2.2. Baza danych i parametry archiwum
Aby móc korzystać z konta gMSA, skonfigurować bazę danych (i parametry archiwum), wykonaj następujące czynności:
- Uruchom usługę EkranServer pod kontem gMSA (np. w Usługach systemu Windows).
- Uruchom ponownie usługę SQL Server pod kontem gMSA (np. w Usługach systemu Windows).
- Edytuj parametry bazy danych zdefiniowane podczas instalacji Serwera Aplikacji Syteca, otwierając aplikację Database Parameters (DbSetupToolUI) (klikając prawym przyciskiem myszy ikonę serwera Syteca w obszarze powiadomień systemu Windows i wybierając opcję Database Parameters), a następnie zaznacz opcję Windows Authentication i pole wyboru Użyj poświadczeń procesu (na otwartej podkarcie Przechowywanie metadanych).

Uwaga: Pola Nazwa użytkownika i Hasło są wyłączone (ponieważ poświadczenia konta gMSA zostaną użyte automatycznie, jeśli jest ono poprawnie skonfigurowane).
- Ponadto podczas konfigurowania parametrów archiwum należy wprowadzić dowolne wartości w polach Użytkownik i Hasło w następujący sposób:
Uwaga: Kliknij przycisk Test Database Connection (na dole), aby sprawdzić, czy połączenie między serwerem aplikacji a zarchiwizowaną bazą danych zostało nawiązane.
3. Rozwiązywanie problemów
Problem 1: EkranServer nie działa pod kontem gMSA.
- Sprawdź, czy konto gMSA zostało poprawnie dodane, uruchamiając następujące polecenie w PowerShell:
Test-ADServiceAccount <your_gMSA_login>
Oczekiwanym wynikiem polecenia jest True, ale jeśli jest to False, sprawdź, czy konto gMSA ma dostęp do tego komputera, uruchamiając następujące polecenie:
Install-ADServiceAccount -Identity <your_gMSA_login>
- Po utworzeniu konta gMSA uruchom ponownie komputer z kontrolerem domeny.
- Sprawdź, czy zostały przyznane uprawnienia do Log on as a Service. Otwórz msc > Local Policies > User Rights Assignment > Log on as a service.
- Wyeksportuj certyfikat EkranMasterCertificate.
- Otwórz konsolę Microsoft Management Console (mmc) pod kontem gMSA, używając następującego polecenia:
.\PsExec64.exe -i -u <twoj_login_gMSA> mmc
Uwaga: PsExec jest częścią pakietu PsTools, który można pobrać pod adresem: https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
- Zaimportuj EkranMasterCertificate do Personal and Trusted Root Certification Authorities.
Problem 2: Po zaznaczeniu pola wyboru „Użyj poświadczeń procesu” połączenie z bazą danych zostaje utracone, a usługa EkranServer nie uruchamia się.
- Warto sprawdzić, jakie SPN są zarejestrowane dla gMSA i czy wśród nich znajduje się MSSQLSvc\<SQLServerFQDN>. Można skorzystać z Microsoft Kerberos Configuration Manager for SQL Server, który jest narzędziem, w którym nie tylko można sprawdzić poprawność zarejestrowanych SPN, ale także można je naprawić kilkoma kliknięciami.

Jeśli nie jest możliwe zainstalowanie narzędzia, można to zrobić ręcznie, uruchamiając następujące polecenia:setspn -S MSSQLSvc/<SQLServerFQDN> <your_gMSA_login>
Na przykład:
setspn -S MSSQLSvc/myk-server.myk.test:MSSERVER myk\MykGmsa
setspn -S MSSQLSvc/myk-server.myk.test:1433 myk\MykGmsa - Sprawdź dodane SPN, uruchamiając następujące polecenie:
setspn -L <twoj_login_gMSA>

- Nadaj uprawnienia do odczytu i zapisu dla SPN.
- Włącz funkcje zaawansowane w oknie Użytkownicy i komputery usługi Active Directory, otwórz właściwości na komputerze, na którym będzie uruchomiona usługa EkranServer (tj. na którym zainstalowany jest Syteca Application Server) i na karcie Zabezpieczenia dodaj uprawnienia dla konta gMSA (lub grupy Active Directory, na której będzie używane konto gMSA) o nazwie Validated write to service principal name i włącz właściwości Read servicePrincipalName i Write servicePrincipalName:

- Dla grupy (podczas tworzenia konta gMSA określono je jako PrincipalsAllowedToRetrieveManagedPassword), w której konto gMSA będzie używane na komputerach, dodaj uprawnienia do odczytu i zapisu dla konta SELF (w podobny sposób jak powyżej).
Dzienniki SQL Server zostaną wyświetlone w następujący sposób:
- Jeśli w dziennikach programu SQL Server występuje błąd "18456, Severity: 14, State: 38 crashes", zaloguj się do programu SSMS na koncie „sa” i we właściwościach serwera SQL, na stronie Permissions dodaj uprawnienie Control server dla konta gMSA.


