TsgcWebSocketServer_HTTPAPI › Özellikler › Authentication
Gelen WebSocket ve HTTP istekleri için kullanıcı/parola kimlik doğrulamasını etkinleştirir ve yapılandırır.
property Authentication: TsgcWSAuthenticationServer_Options read FAuthentication write SetAuthentication;
Enabled=False
Authentication.Enabled True olduğunda, sunucu her gelen bağlantıyı AuthUsers listesine göre doğrular (satır başına user=password biçimi). Üç yerleşik şema desteklenir: Session (istemci önce bir HTTP GET yapar, bir oturum kimliği alır ve ardından kimliği bir parametre olarak geçirerek WebSocket'i açar), URL (kullanıcı adı ve parola WebSocket HandShake'inin sorgu dizesinde gönderilir) ve Basic (HTTP Basic Access Authentication — yalnızca VCL istemcileri/sunucuları ve HTTP istekleri tarafından kullanılır). OnAuthentication olayı kendi kimlik bilgisi kontrolünüzü eklemenize olanak tanır; OnUnknownAuthentication ise Bearer/JWT gibi standart olmayan şemaları ele alır. Kimlik doğrulama hatalarında döndürülen ek HTTP başlıkları eklemek için CustomHeaders'ı kullanın.
Negotiate (Kerberos / SPNEGO, Windows'ta NTLM yedeğiyle) Authentication.Negotiate alt özelliklerinde yapılandırılır ve sgcWebSockets Enterprise Edition gerektirir. Negotiate.Enabled (Boolean, varsayılan False) onu etkinleştirir ve Authentication.Enabled gerektirir. Negotiate.ServicePrincipal (String) isteğe bağlı bir SPN'dir, örneğin HTTP/host.example.com@EXAMPLE.COM; boş olduğunda keytab içindeki veya makine hesabındaki herhangi bir anahtar kabul edilir. Negotiate.Keytab (String, yalnızca Linux) hizmet keytab dosyasının yoludur; boş olduğunda KRB5_KTNAME veya sistem varsayılanı kullanılır. http.sys sunucusunda kimlik doğrulamayı Windows çekirdek modu kimlik doğrulaması (hizmet hesabı veya makine SPN'i) gerçekleştirir, bu nedenle ServicePrincipal ve Keytab yok sayılır. Sonuç OnNegotiateAuthentication ile bildirilir. Bkz. Kerberos ve Negotiate kimlik doğrulama.
oServer := TsgcWebSocketServer_HTTPAPI.Create(nil);
oServer.Authentication.Enabled := true;
oServer.Authentication.Basic.Enabled := true;
oServer.Authentication.AuthUsers.Add('user=secret');
oServer.Active := true;