TsgcWebSocketServer_HTTPAPI › Eigenschappen › Authentication

Authentication Eigenschap

Enables and configures user/password authenticatie for inkomend WebSocket and HTTP requests.

Syntaxis

property Authentication: TsgcWSAuthenticationServer_Options read FAuthentication write SetAuthentication;

Standaardwaarde

Enabled=False

Opmerkingen

Wanneer Authentication.Enabled True is, authenticeert de server elke inkomende verbinding tegen de AuthUsers-lijst (formaat gebruiker=wachtwoord per regel). Drie ingebouwde schema's worden ondersteund: Session (client doet eerst een HTTP GET, ontvangt een sessie-ID en opent vervolgens de WebSocket met de ID als parameter), URL (gebruikersnaam en wachtwoord worden verzonden in de querytekenreeks van de WebSocket-handshake) en Basic (HTTP Basic Access Authenticatie — alleen gebruikt door VCL-clients/servers en HTTP-verzoeken). De OnAuthentication-gebeurtenis laat u uw eigen credentialcontrole inpluggen; OnUnknownAuthentication verwerkt niet-standaard schema's zoals Bearer/JWT. Gebruik CustomHeaders om extra HTTP-headers toe te voegen die worden geretourneerd bij authenticatiefouten.

Negotiate (Kerberos / SPNEGO, met NTLM als terugval op Windows) wordt geconfigureerd in de subeigenschappen van Authentication.Negotiate en vereist sgcWebSockets Enterprise Edition. Negotiate.Enabled (Boolean, standaard False) schakelt het in en vereist Authentication.Enabled. Negotiate.ServicePrincipal (String) is een optionele SPN zoals HTTP/host.example.com@EXAMPLE.COM; als de waarde leeg is, wordt elke sleutel in de keytab of het machineaccount geaccepteerd. Negotiate.Keytab (String, alleen Linux) is het pad van de service-keytab; als de waarde leeg is, wordt KRB5_KTNAME of de systeemstandaard gebruikt. Bij de http.sys-server wordt de authenticatie uitgevoerd door de kernelmodusauthenticatie van Windows (serviceaccount of machine-SPN), dus ServicePrincipal en Keytab worden genegeerd. Het resultaat wordt gemeld door OnNegotiateAuthentication. Zie Kerberos- en Negotiate-authenticatie.

Voorbeeld


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

Terug naar Properties