TsgcWebSocketHTTPServer › Properties › Authentication

Authentication Właściwość

Włącza i konfiguruje uwierzytelnianie użytkownik/hasło dla przychodzących połączeń WebSocket i HTTP.

Składnia

property Authentication: TsgcWSAuthenticationServer_Options read FAuthentication write SetAuthentication;

Wartość domyślna

Enabled=False

Uwagi

Gdy wartość Authentication.Enabled wynosi True, serwer uwierzytelnia każde przychodzące połączenie względem listy AuthUsers (format użytkownik=hasło w każdym wierszu). Obsługiwane są trzy wbudowane schematy: Session (klient najpierw wykonuje żądanie HTTP GET, otrzymuje identyfikator sesji, a następnie otwiera WebSocket przekazując identyfikator jako parametr), URL (nazwa użytkownika i hasło są wysyłane w ciągu zapytania uzgodnienia WebSocket) oraz Basic (HTTP Basic Access Authentication — stosowane wyłącznie przez klientów/serwery VCL i żądania HTTP). Zdarzenie OnAuthentication umożliwia podłączenie własnej weryfikacji poświadczeń; OnUnknownAuthentication obsługuje niestandardowe schematy, takie jak Bearer/JWT. Właściwość CustomHeaders pozwala dodać dodatkowe nagłówki HTTP zwracane przy błędach uwierzytelniania.

Negotiate (Kerberos / SPNEGO, z awaryjnym użyciem NTLM w systemie Windows) jest konfigurowane w podwłaściwościach Authentication.Negotiate i wymaga sgcWebSockets Enterprise Edition. Negotiate.Enabled (Boolean, domyślnie False) włącza je i wymaga Authentication.Enabled. Negotiate.ServicePrincipal (String) to opcjonalna nazwa SPN, taka jak HTTP/host.example.com@EXAMPLE.COM; gdy jest pusta, akceptowany jest dowolny klucz z pliku keytab lub konto komputera. Negotiate.Keytab (String, tylko Linux) to ścieżka do pliku keytab usługi; gdy jest pusta, używana jest zmienna KRB5_KTNAME lub wartość domyślna systemu. Wynik jest zgłaszany przez OnNegotiateAuthentication. Zobacz Uwierzytelnianie Kerberos i Negotiate.

Przykład


oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Authentication.Enabled := true;
oServer.Authentication.Basic.Enabled := true;
oServer.Authentication.AuthUsers.Add('user=secret');
oServer.Active := true;

Wróć do Właściwości