sgcWebSockets Authorisaties

· Functies

De sgcWebSockets-bibliotheek ondersteunt meerdere authenticatiemethoden om WebSocket-communicatie in Delphi- en C++Builder-toepassingen te beveiligen. Omdat het WebSocket-protocol zelf geen authenticatiemechanisme definieert, implementeert sgcWebSockets een eigen set technieken die geschikt zijn voor zowel server- als client-zijde.

Ondersteunde authenticatietypes

De bibliotheek ondersteunt de volgende belangrijkste authenticatiemethoden:

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

1. Session-authenticatie

 De client doet een HTTP GET-verzoek om een sessietoken te ontvangen:

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

De server antwoordt met een token, dat vervolgens in de WebSocket-URL wordt gebruikt:

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

Eigenschappen

Authentication.Enabled := True;

Voordelen

Voorbeeld

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

2. URL-authenticatie

De inloggegevens worden direct in de WebSocket-URL meegegeven: 

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

Voordelen

Nadelen

3. Basic-authenticatie

Gebruikt de standaard HTTP-header Authorization:

Authorization: Basic base64(user:password)

Eigenschappen

Authentication.AuthUsers := 'user=password';

Gebruik het OnAuthentication-event voor eigen validatie.

Voordelen

Voorbeeld

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

end;

4. OAuth2-authenticatie

OAuth2 wordt ondersteund via componenten zoals TsgcHTTP_OAuth2_Server en TsgcHTTP_OAuth2_Client.
Het werkt met providers zoals Google, Microsoft, Azure AD en eigen identity-systemen.

Belangrijke events Voordelen


5. JWT-authenticatie

Authenticatie gebeurt met JSON Web Tokens (JWT). Tokens kunnen worden meegegeven in de querystring of in HTTP-headers.

Eigenschappen

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

Componenten: TsgcHTTP_JWT_Client, TsgcHTTP_JWT_Server

Voordelen

6. WebAuthn-authenticatie

WebAuthn is gebaseerd op de FIDO2-standaard en gebruikt public key-cryptografie. Het maakt wachtwoordloze authenticatie mogelijk.

Componenten

TsgcWSAPIServer_WebAuthn

Voordelen

7. Vergelijkingstabel