OAuth 2.0 Provider
Monta tu propio authorization server OAuth 2.0 en Delphi. Endpoints authorize, token, refresh y revoke con PKCE, access tokens JWT firmados y almacenamiento intercambiable.
Monta tu propio authorization server OAuth 2.0 en Delphi. Endpoints authorize, token, refresh y revoke con PKCE, access tokens JWT firmados y almacenamiento intercambiable.
Implementación completa de un authorization server OAuth 2.0: registra clientes, emite authorization codes, los intercambia por access + refresh tokens, firma JWTs y admite PKCE, rotación de refresh tokens y revocación.
TsgcHTTP_OAuth2_Server_Provider
Windows, macOS, Linux, iOS, Android
Enterprise
Suelta un TsgcHTTP_OAuth2_Server_Provider, registra tus client_ids y redirect_uris y asígnalo a TsgcWebSocketHTTPServer — los endpoints estándar (/authorize, /token, /revoke) quedan disponibles.
uses
sgcWebSocket, sgcHTTP;
var
Server: TsgcWebSocketHTTPServer;
Provider: TsgcHTTP_OAuth2_Server_Provider;
begin
Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
Provider.OAuth2Options.AuthorizationEndpoint := '/oauth/authorize';
Provider.OAuth2Options.TokenEndpoint := '/oauth/token';
Provider.OAuth2Options.RevocationEndpoint := '/oauth/revoke';
Provider.OAuth2Options.PKCE.Required := True;
Provider.OnAuthorizeRequest := procedure(Sender: TObject;
const aRequest: TsgcOAuth2_AuthorizeRequest;
var aResponse: TsgcOAuth2_AuthorizeResponse)
begin
// validate user session, issue or deny the auth code
aResponse.Code := GenerateAuthCode(aRequest.ClientId, aRequest.UserId);
end;
Server := TsgcWebSocketHTTPServer.Create(nil);
Server.Port := 8443;
Server.SSL := True;
Server.OAuth2.Provider := Provider;
Server.Active := True;
end;
// uses: sgcWebSocket, sgcHTTP
TsgcHTTP_OAuth2_Server_Provider *Provider = new TsgcHTTP_OAuth2_Server_Provider(this);
Provider->OAuth2Options->AuthorizationEndpoint = "/oauth/authorize";
Provider->OAuth2Options->TokenEndpoint = "/oauth/token";
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->OAuth2->Provider = Provider;
Server->Active = true;
Un authorization server autoalojado — todo, desde /authorize hasta la rotación de refresh tokens, en un único componente Delphi.
Gestiona las peticiones GET /authorize, valida response_type, client_id y redirect_uri y después lanza OnAuthorizeRequest para tu interfaz de inicio de sesión del usuario.
POST /token emite access + refresh tokens para los grants authorization_code, refresh_token y client_credentials. El code_verifier de PKCE se verifica según RFC 7636.
Emite opcionalmente tokens de acceso JWT autocontenidos (HS o RS / ES) para que los servidores de recursos puedan validarlos sin una consulta de introspección.
Cuando OAuth2Options.RefreshToken.Rotation está activado, cada renovación emite un nuevo refresh token e invalida el anterior — en línea con las buenas prácticas de OAuth 2.1.
POST /revoke invalidates an access or refresh token per RFC 7009 — honours both Bearer and client_credentials revocations.
OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken y compañía te permiten respaldar el proveedor con FireDAC, SQLite, Redis o tu propia capa de acceso a datos.
Fuentes autorizadas de los estándares que implementa este componente.
Enlace directo a la referencia del componente, descarga el proyecto demo listo para ejecutar y la prueba gratuita.
| Online Help — TsgcHTTP_OAuth2_Server_Provider Referencia completa de propiedades, métodos y eventos de este componente. | Abrir | |
| Demo Project — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider Proyecto de ejemplo listo para ejecutar. Se incluye en el paquete sgcWebSockets — descarga la prueba gratuita más abajo. | Abrir | |
| Documento técnico (PDF) Características, inicio rápido, ejemplos de código para Delphi y C++ Builder y referencias de fuentes primarias — solo este componente. | Abrir | |
| Manual de usuario (PDF) Manual completo que cubre todos los componentes de la biblioteca. | Abrir |