En général, les serveurs TURN sont configurés AVEC authentification pour les requêtes TURN et sans authentification pour les requêtes STUN.
Le serveur TURN sgcWebSockets prend en charge les identifiants à long terme, vous pouvez donc configurer TsgcTURNServer pour n'autoriser que les requêtes avec des informations d'identification à long terme.
Pour le configurer, accédez à la propriété TURNOptions.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).
oTURN := TsgcTURNServer.Create(nil);
oTURN.Port := 3478;
oTURN.STUNOptions.Authentication.Enabled := False;
oTURN.TURNOptions.Authentication.Enabled := True;
oTURN.TURNOptions.Authentication.LongTermCredentials.Enabled := True;
oTURN.TURNOptions.Authentication.LongTermCredentials.Realm := 'sgcWebSockets';
oTURN.TURNOptions.Authentication.LongTermCredentials.StaleNonce := 600;
oTURN.Active := True;
procedure OnSTUNRequestAuthorization(Sender: TObject; const aRequest: TsgcSTUN_Message;
const aUsername, aRealm: string; var Password: string);
begin
if (aUsername = 'my-user') and (aRealm = 'sgcWebSockets') then
Password := 'my-password';
end;