TsgcHTTP_OAuth2_Server

Ce composant fournit l'implémentation du protocole OAuth2 dans les composants côté serveur.

Introduction

Ce composant fournit l'implémentation du protocole OAuth2 dans les composants côté serveur.

Les composants serveur disposent d'une propriété appelée Authorization.OAuth.OAuth2 à laquelle vous pouvez assigner une instance de TsgcHTTP_OAuth2_Server. Ainsi, si l'authentification est activée et que la propriété OAuth2 est attachée au composant OAuth2 Server, les requêtes WebSocket et HTTP nécessitent un jeton Bearer pour être traitées ; sinon la connexion sera fermée automatiquement.


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

Le serveur prend en charge les types d'autorisation suivants :

Le type d'autorisation peut être personnalisé lors de l'enregistrement de l'application ; par défaut, tous les types d'autorisation sont pris en charge.

Points de terminaison

Par défaut, le composant est configuré avec les points de terminaison suivants pour gérer la demande d'autorisation et de jeton

Autorisation : /sgc/oauth2/auth

Token : /sgc/oauth2/token

Révocation : /sgc/oauth2/revoke

Introspection : /sgc/oauth2/introspect

Autorisation d'appareil : /sgc/oauth2/device

Vérification de l'appareil : /sgc/oauth2/device/verify

Donc si le serveur écoute sur le port 443 et que le domaine est www.esegece.com, les points d'accès seront :

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

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

Révocation : https://www.esegece.com/sgc/oauth2/revoke

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

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

Vérification de l'appareil : https://www.esegece.com/sgc/oauth2/device/verify

Les points de terminaison peuvent être configurés dans la propriété OAuth2Options.

Par défaut, PKCE (une extension du flux de code d'autorisation pour prévenir les attaques CSRF et d'injection de code d'autorisation) est activé.

Configuration

Avant de pouvoir démarrer le processus OAuth2, vous devez enregistrer les applications qui seront disponibles. Cela se fait à l'aide de la propriété Apps du composant serveur OAuth2.

Enregistrer l'application

Utilisez Apps.AddApp pour ajouter une nouvelle application au serveur OAuth2 ; vous devez définir les paramètres suivants :

Vous pouvez optionnellement définir les paramètres suivants :

Supprimer l'application

Utilisez Apps.RemoveApp pour supprimer une application existante.

AddToken

Si le serveur a été redémarré alors que des jetons avaient été émis, vous pouvez récupérer ces jetons en utilisant la méthode AddToken avant de démarrer le serveur OAuth2 et après l'enregistrement des applications

RemoveToken

Supprime un token déjà émis.

OAuth2Options

La propriété OAuth2Options permet de configurer les points de terminaison du serveur et les fonctionnalités optionnelles.

Révocation

Révocation de jeton conformément à la RFC 7009. Lorsqu'elle est activée, les clients peuvent révoquer les jetons d'accès ou de rafraîchissement précédemment émis.

Introspection

Introspection de token selon la RFC 7662. Lorsqu'elle est activée, les serveurs de ressources peuvent interroger le serveur d'autorisation pour déterminer l'état actif et les métadonnées d'un token.

DeviceAuthorization

Octroi d'autorisation d'appareil selon RFC 8628. Lorsqu'il est activé, les appareils à contraintes d'entrée peuvent demander une autorisation en faisant autoriser l'utilisateur sur un appareil secondaire.

 

Référence

Guides