sgcWebSockets Authorizations

· Özellikler

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ürleri

Kütüphane şu başlıca kimlik doğrulama yöntemlerini destekler:

  1. Session Authentication
  2. URL Authentication
  3. Basic Authentication
  4. OAuth2
  5. JWT (JSON Web Tokens)
  6. 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

Ö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

Dezavantajlar

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.

Avantajlar

Ö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.

Başlıca Olaylar Avantajlar


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.

Özellikler

Authentication.TokenParam := srctQuery
Authentication.TokenParam := srctHeader

Bileşenler: TsgcHTTP_JWT_Client, TsgcHTTP_JWT_Server

Avantajlar

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şenler

TsgcWSAPIServer_WebAuthn

Avantajlar

7. Karşılaştırma Tablosu