Zazwyczaj serwery STUN są konfigurowane bez uwierzytelniania, dzięki czemu dowolny klient STUN może wysłać żądanie powiązania i oczekiwać odpowiedzi serwera bez uwierzytelniania.
Serwer STUN sgcWebSockets obsługuje długoterminowe poświadczenia, dzięki czemu można skonfigurować TsgcSTUNServer tak, aby zezwalał wyłącznie na żądania powiązania zawierające informacje o długoterminowych poświadczeniach.
Aby skonfigurować, należy uzyskać dostęp do właściwości STUNOptions.Authorization i ją włączyć.
Następnie należy uzyskać dostęp do właściwości LongTermCredentials i włączyć ją. Domyślnie ten typ autoryzacji jest już skonfigurowany z ciągiem Realm oraz domyślną wartością StaleNonce wynoszącą 10 minut (= 600 sekund).
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;