TsgcHTTP_OAuth2_Server

Questo componente fornisce l'implementazione del protocollo OAuth2 nei componenti lato server.

Introduzione

Questo componente fornisce l'implementazione del protocollo OAuth2 nei componenti lato server.

I componenti server dispongono di una proprietà denominata Authorization.OAuth.OAuth2 dove è possibile assegnare un'istanza di TsgcHTTP_OAuth2_Server; se l'autenticazione è abilitata e la proprietà OAuh2 è collegata al componente Server OAuth2, le richieste WebSocket e HTTP richiedono un Bearer Token per essere elaborate, altrimenti la connessione verrà chiusa automaticamente.


    OAuth2 := TsgcHTTP_OAuth2_Server.Create(nil);
    Server.Authentication.Enabled := True;
    Server.Authentication.OAuth.OAuth2 := OAuth2;

Il server supporta i seguenti tipi di autorizzazione:

Il tipo di autorizzazione può essere personalizzato durante la registrazione dell'app; per impostazione predefinita, tutti i tipi di autorizzazione sono supportati.

EndPoints

Per impostazione predefinita, il componente è configurato con i seguenti endpoint per gestire le richieste di autorizzazione e token

Authorization: /sgc/oauth2/auth

Token: /sgc/oauth2/token

Revocation: /sgc/oauth2/revoke

Introspection: /sgc/oauth2/introspect

Autorizzazione dispositivo: /sgc/oauth2/device

Verifica del dispositivo: /sgc/oauth2/device/verify

Quindi se il server è in ascolto sulla porta 443 e il dominio è www.esegece.com, gli EndPoint saranno:

Authorization: https://www.esegece.com/sgc/oauth2/auth

Token: https://www.esegece.com/sgc/oauth2/token

Revocation: https://www.esegece.com/sgc/oauth2/revoke

Introspezione: https://www.esegece.com/sgc/oauth2/introspect

Device Authorization: https://www.esegece.com/sgc/oauth2/device

Verifica dispositivo: https://www.esegece.com/sgc/oauth2/device/verify

Gli endpoint possono essere configurati nella proprietà OAuth2Options.

Per impostazione predefinita, PKCE (un'estensione al flusso Authorization Code per prevenire attacchi CSRF e injection del codice di autorizzazione) è abilitato.

Configurazione

Prima di poter avviare il processo OAuth2, è necessario registrare le app che saranno disponibili; ciò avviene tramite la proprietà Apps del componente server OAuth2.

Registra app

Utilizzare Apps.AddApp per aggiungere una nuova applicazione al server OAuth2; è necessario impostare i seguenti parametri:

Facoltativamente è possibile impostare i seguenti parametri:

Elimina app

Utilizzare Apps.RemoveApp per eliminare un'App esistente.

AddToken

Se il server è stato riavviato mentre erano stati emessi alcuni token, è possibile recuperare questi token utilizzando il metodo AddToken prima di avviare il Server OAuth2 e dopo aver registrato le App

RemoveToken

Rimuove un Token già emesso.

OAuth2Options

La proprietà OAuth2Options consente di configurare gli endpoint del server e le funzionalità opzionali.

Revoca

Revoca del token secondo RFC 7009. Se abilitata, i client possono revocare token di accesso o refresh precedentemente emessi.

Introspezione

Introspezione del token per RFC 7662. Quando abilitata, i resource server possono interrogare il server di autorizzazione per determinare lo stato attivo e i metadati di un token.

DeviceAuthorization

Device Authorization Grant secondo RFC 8628. Quando abilitato, i dispositivi con input limitato possono richiedere l'autorizzazione facendo autorizzare l'utente su un dispositivo secondario.

 

Riferimento

Guide