sgcWebSockets kütüphanesi, Delphi ve C++Builder uygulamalarında WebSocket iletişimini güvenli hale getirmek için birden fazla kimlik doğrulama yöntemini destekler. WebSocket protokolünün kendisi bir kimlik doğrulama mekanizması tanımlamadığından, sgcWebSockets hem sunucu hem de istemci tarafına uygun kendi teknik setini uygular.
Desteklenen Kimlik Doğrulama TürleriKütüphane şu başlıca kimlik doğrulama yöntemlerini destekler:
- Session Authentication
- URL Authentication
- Basic Authentication
- OAuth2
- JWT (JSON Web Tokens)
- WebAuthn (Web Authentication)
1. Session Authentication
İstemci, bir oturum tokenı almak için bir HTTP GET isteği yapar:
http://host:port/sgc/req/auth/session/:user/:password
Sunucu bir tokenla yanıt verir, bu token daha sonra WebSocket URL'sinde kullanılır:
ws://host:port/sgc/auth/session/:token
Özellikler
Authentication.Enabled := True;
Avantajlar
- Token tabanlı erişim onu güvenli ve basit kılar.
- Oturum açma sistemine sahip uygulamalar için uygundur.
Örnek
Client.URL := 'ws://localhost:443/sgc/auth/session/your-token';
2. URL Authentication
Kimlik bilgileri doğrudan WebSocket URL'sine dahil edilir:
ws://host:port/sgc/auth/url/username/password
Avantajlar
- Uygulaması çok basittir.
- Tarayıcı tabanlı WebSocket istemcileriyle uyumludur.
Dezavantajlar
- Kimlik bilgileri URL'de açığa çıkar.
- Yalnızca SSL/TLS ile kullanılmalıdır.
3. Basic Authentication
Standart HTTP Authorization başlığını kullanır:
Authorization: Basic base64(user:password)
Özellikler
Authentication.AuthUsers := 'user=password';
Özel doğrulama için OnAuthentication olayını kullanın.
- Basit ve tanıdıktır.
- Sunucu, geçerli kullanıcıların bir listesini yönetir.
Örnek
procedure WSServerAuthentication(Connection: TsgcWSConnection; aUser, aPassword: string; var Authenticated: Boolean);
begin
if (aUser = 'John') and (aPassword = '1234') then
Authenticated := True;
end;
4. OAuth2 Authentication
OAuth2, TsgcHTTP_OAuth2_Server ve TsgcHTTP_OAuth2_Client gibi bileşenler aracılığıyla desteklenir.
Google, Microsoft, Azure AD ve özel kimlik sistemleri gibi sağlayıcılarla çalışır.
- OnOAuth2Authentication
- OnOAuth2AfterAccessToken
- Modern ve güvenli.
- Web uygulamaları ve bulut ortamları için çok uygundur.
5. JWT Authentication
Kimlik doğrulama, JSON Web Tokens (JWT) kullanılarak gerçekleştirilir. Tokenlar query string'de veya HTTP başlıklarında geçirilebilir.
ÖzelliklerAuthentication.TokenParam := srctQuery
Authentication.TokenParam := srctHeader
Bileşenler: TsgcHTTP_JWT_Client, TsgcHTTP_JWT_Server
Avantajlar- Durumsuz ve ölçeklenebilir.
- Yaygın olarak benimsenir, harici hizmetlerle kolayca entegre olur.
6. WebAuthn Authentication
WebAuthn, FIDO2 standardına dayanır ve açık anahtar kriptografisi kullanır. Parolasız kimlik doğrulamayı mümkün kılar.
BileşenlerTsgcWSAPIServer_WebAuthn
Avantajlar- Çok güçlü güvenlik.
- Kimlik avına ve kimlik bilgisi hırsızlığına dayanıklı.
7. Karşılaştırma Tablosu

