TsgcHTTP_OAuth2_Server

Este componente proporciona la implementación del protocolo OAuth2 en los componentes del lado del servidor.

Introducción

Este componente proporciona la implementación del protocolo OAuth2 en los componentes del lado del servidor.

Los componentes de servidor tienen una propiedad llamada Authorization.OAuth.OAuth2 donde puede asignar una instancia de TsgcHTTP_OAuth2_Server; si la autenticación está habilitada y la propiedad OAuth2 está asociada al componente OAuth2 Server, las solicitudes WebSocket y HTTP requieren un Bearer Token para ser procesadas; de lo contrario, la conexión se cerrará automáticamente.


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

El servidor admite los siguientes tipos de autorización:

El tipo de autorización puede personalizarse al registrar la aplicación; por defecto, se admiten todos los tipos de autorización.

EndPoints

De forma predeterminada, el componente está configurado con los siguientes endpoints para gestionar la autorización y la solicitud de token

Autorización: /sgc/oauth2/auth

Token: /sgc/oauth2/token

Revocation: /sgc/oauth2/revoke

Introspection: /sgc/oauth2/introspect

Autorización de Dispositivo: /sgc/oauth2/device

Verificación de dispositivo: /sgc/oauth2/device/verify

Por tanto, si el servidor está escuchando en el puerto 443 y el dominio es www.esegece.com, los EndPoints serán:

Autorización: https://www.esegece.com/sgc/oauth2/auth

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

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

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

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

Verificación del dispositivo: https://www.esegece.com/sgc/oauth2/device/verify

Los puntos de enlace se pueden configurar en la propiedad OAuth2Options.

Por defecto, PKCE (una extensión del flujo de Código de Autorización para prevenir ataques CSRF e inyección de código de autorización) está habilitado.

Configuración

Antes de poder iniciar el proceso OAuth2, debe registrar qué aplicaciones estarán disponibles; esto se hace usando la propiedad Apps del componente de servidor OAuth2.

Registrar Aplicación

Use Apps.AddApp para añadir una nueva aplicación al servidor OAuth2; debe establecer los siguientes parámetros:

Opcionalmente puede establecer los siguientes parámetros:

Eliminar aplicación

Use Apps.RemoveApp para eliminar una App existente.

AddToken

Si el servidor se ha reiniciado mientras había algunos tokens emitidos, puede recuperarlos usando el método AddToken antes de iniciar el servidor OAuth2 y después de registrar las aplicaciones

RemoveToken

Elimina un token ya emitido.

OAuth2Options

La propiedad OAuth2Options permite configurar los endpoints del servidor y las funciones opcionales.

Revocación

Revocación de tokens según RFC 7009. Cuando está habilitada, los clientes pueden revocar tokens de acceso o de actualización emitidos previamente.

Introspección

Introspección de tokens según RFC 7662. Cuando está habilitada, los servidores de recursos pueden consultar al servidor de autorización para determinar el estado activo y los metadatos de un token.

DeviceAuthorization

Device Authorization Grant según RFC 8628. Cuando está habilitado, los dispositivos con entrada limitada pueden solicitar autorización haciendo que el usuario autorice desde un dispositivo secundario.

 

Referencia

Guías