En général, les serveurs STUN sont configurés sans authentification, de sorte que tout client STUN peut envoyer une requête de liaison et s'attendre à une réponse du serveur sans authentification.
sgcWebSockets STUN Server prend en charge les informations d'identification à long terme, vous pouvez donc configurer TsgcSTUNServer pour n'autoriser que les demandes de liaison avec des informations d'identification à long terme.
Pour le configurer, accédez à la propriété STUNOptions.Authorization et activez-la.
Ensuite, accédez à la propriété LongTermCredentials et activez-la. Par défaut, ce type d'autorisation est déjà configuré avec une chaîne Realm et une valeur StaleNonce par défaut de 10 minutes (= 600 secondes).
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;