TsgcWebSocketHTTPServer › Propriedades › Authentication
Habilita e configura a autenticação de usuário/senha para conexões WebSocket e HTTP de entrada.
property Authentication: TsgcWSAuthenticationServer_Options read FAuthentication write SetAuthentication;
Enabled=False
Quando Authentication.Enabled é True, o servidor autentica cada conexão recebida com a lista AuthUsers (formato user=password por linha). Três esquemas integrados são suportados: Session (o cliente primeiro faz um HTTP GET, recebe um session id e então abre o WebSocket passando o id como parâmetro), URL (nome de usuário e senha são enviados na query string do HandShake WebSocket) e Basic (HTTP Basic Access Authentication — utilizado apenas por clientes/servidores VCL e requisições HTTP). O evento OnAuthentication permite que você insira sua própria verificação de credenciais; OnUnknownAuthentication trata esquemas não padrão, como Bearer/JWT. Utilize CustomHeaders para adicionar cabeçalhos HTTP extras retornados em erros de autenticação.
O Negotiate (Kerberos / SPNEGO, com fallback para NTLM no Windows) é configurado nas subpropriedades de Authentication.Negotiate e requer a Edição Enterprise do sgcWebSockets. Negotiate.Enabled (Boolean, padrão False) o habilita e requer Authentication.Enabled. Negotiate.ServicePrincipal (String) é um SPN opcional, como HTTP/host.example.com@EXAMPLE.COM; quando vazio, qualquer chave do keytab ou da conta da máquina é aceita. Negotiate.Keytab (String, somente Linux) é o caminho do keytab de serviço; quando vazio, é usado KRB5_KTNAME ou o padrão do sistema. O resultado é informado por OnNegotiateAuthentication. Consulte Autenticação Kerberos e Negotiate.
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.Authentication.Enabled := true;
oServer.Authentication.Basic.Enabled := true;
oServer.Authentication.AuthUsers.Add('user=secret');
oServer.Active := true;