Habitualmente, los servidores STUN se configuran sin autenticación, de modo que cualquier cliente STUN puede enviar una solicitud de enlace y esperar una respuesta del servidor sin autenticación.
El servidor STUN de sgcWebSockets es compatible con credenciales de larga duración, por lo que puede configurar TsgcSTUNServer para que solo permita solicitudes de enlace con información de credenciales de larga duración.
Para configurarlo, acceda a la propiedad STUNOptions.Authorization y habilítela.
A continuación, acceda a la propiedad LongTermCredentials y actívela. De forma predeterminada, este tipo de autorización ya está configurado con una cadena Realm y un valor StaleNonce predeterminado de 10 minutos (= 600 segundos).
oSTUN := TsgcSTUNServer.Create(nil);
oSTUN.Port := 3478;
oSTUN.STUNOptions.Authentication.Enabled := True;
oSTUN.STUNOptions.Authentication.LongTermCredentials.Enabled := True;
oSTUN.STUNOptions.Authentication.LongTermCredentials.Realm := 'sgcWebSockets';
oSTUN.STUNOptions.Authentication.LongTermCredentials.StaleNonce := 600;
oSTUN.Active := True;
procedure OnSTUNRequestAuthorization(Sender: TObject; const aRequest: TsgcSTUN_Message;
const aUsername, aRealm: string; var Password: string);
begin
if aUsername = 'my-user' then
Password := 'my-password';
end;