TsgcWebSocketProxyServer › Propriedades › Authentication
Habilita e configura a autenticação por usuário/senha para clientes WebSocket de entrada que se conectam ao proxy.
property Authentication: TsgcWSAuthenticationServer_Options read FAuthentication write SetAuthentication;
Enabled=False
Quando Authentication.Enabled é True, o proxy autentica cada conexão downstream de entrada contra a lista AuthUsers (formato user=password por linha) antes de abrir o link correspondente ao servidor upstream definido em Proxy. 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). O evento OnAuthentication permite que você conecte sua própria verificação de credenciais; OnUnknownAuthentication trata esquemas não padrão, como Bearer/JWT. A autenticação é realizada apenas no lado downstream; o proxy não encaminha credenciais ao servidor upstream automaticamente.
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.
oProxy := TsgcWebSocketProxyServer.Create(nil);
oProxy.Authentication.Enabled := true;
oProxy.Authentication.Basic.Enabled := true;
oProxy.Authentication.AuthUsers.Add('user=secret');
oProxy.Proxy.Host := 'upstream.example.com';
oProxy.Proxy.Port := 8080;
oProxy.Active := true;