sgcWebSockets Authorizations

· Funktionen

Die sgcWebSockets-Bibliothek unterstützt mehrere Authentifizierungsmethoden, um die WebSocket-Kommunikation in Delphi- und C++Builder-Anwendungen abzusichern. Da das WebSocket-Protokoll selbst keinen Authentifizierungsmechanismus definiert, implementiert sgcWebSockets eigene Verfahren, die sowohl für die Server- als auch für die Client-Seite geeignet sind.

Unterstützte Authentifizierungstypen

Die Bibliothek unterstützt die folgenden Haupt-Authentifizierungsmethoden:

  1. Session Authentication
  2. URL Authentication
  3. Basic Authentication
  4. OAuth2
  5. JWT (JSON Web Tokens)
  6. WebAuthn (Web Authentication)

1. Session Authentication

 Der Client führt einen HTTP-GET-Request aus, um ein Session-Token zu erhalten:

http://host:port/sgc/req/auth/session/:user/:password

Der Server antwortet mit einem Token, das dann in der WebSocket-URL verwendet wird:

ws://host:port/sgc/auth/session/:token

Eigenschaften

Authentication.Enabled := True;

Vorteile

Beispiel

Client.URL := 'ws://localhost:443/sgc/auth/session/your-token';

2. URL Authentication

Die Anmeldedaten werden direkt in der WebSocket-URL übergeben: 

ws://host:port/sgc/auth/url/username/password

Vorteile

Nachteile

3. Basic Authentication

Verwendet den Standard-HTTP-Header Authorization:

Authorization: Basic base64(user:password)

Eigenschaften

Authentication.AuthUsers := 'user=password';

Verwende das Ereignis OnAuthentication für eine eigene Validierung.

Vorteile

Beispiel

procedure WSServerAuthentication(Connection: TsgcWSConnection; aUser, aPassword: string; var Authenticated: Boolean);
begin
  if (aUser = 'John') and (aPassword = '1234') then
    Authenticated := True;

end;

4. OAuth2-Authentifizierung

OAuth2 wird über Komponenten wie TsgcHTTP_OAuth2_Server und TsgcHTTP_OAuth2_Client unterstützt.
Funktioniert mit Anbietern wie Google, Microsoft, Azure AD und eigenen Identitätssystemen.

Wichtige Ereignisse Vorteile


5. JWT-Authentifizierung

Die Authentifizierung erfolgt über JSON Web Tokens (JWT). Die Tokens können entweder im Query-String oder in HTTP-Headern übergeben werden.

Eigenschaften

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

Komponenten: TsgcHTTP_JWT_Client, TsgcHTTP_JWT_Server

Vorteile

6. WebAuthn-Authentifizierung

WebAuthn basiert auf dem FIDO2-Standard und nutzt asymmetrische Kryptographie. Sie ermöglicht eine passwortlose Authentifizierung.

Komponenten

TsgcWSAPIServer_WebAuthn

Vorteile

7. Vergleichstabelle