STUN 服务器 | 长期凭据

通常 STUN 服务器不配置身份验证,因此任何 STUN 客户端均可发送绑定请求,并期望在无需身份验证的情况下收到服务器响应。

 

sgcWebSockets STUN 服务器支持长期凭据,您可以配置 TsgcSTUNServer 使其只允许携带长期凭据信息的绑定请求。

 

要配置此功能,请访问 STUNOptions.Authorization 属性并启用它。

然后访问 LongTermCredentials 属性并启用它。默认情况下,此授权类型已配置了 Realm 字符串,并将默认 StaleNonce 值设为 10 分钟(= 600 秒)。

 


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;