OAuth 2.0 Provider

Execute seu próprio servidor de autorização OAuth 2.0 em Delphi. Endpoints de autorização, token, refresh e revogação com PKCE, tokens de acesso JWT assinados e armazenamento plugável.

TsgcHTTP_OAuth2_Server_Provider

Implementação completa de servidor de autorização OAuth 2.0: registra clientes, emite códigos de autorização, troca-os por tokens de acesso + refresh, assina JWTs e suporta PKCE, rotação de refresh e revogação.

Classe do componente

TsgcHTTP_OAuth2_Server_Provider

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Enterprise

Solte, configure clientes, execute

Solte um TsgcHTTP_OAuth2_Server_Provider, registre seus client_ids e redirect_uris, vincule ao TsgcWebSocketHTTPServer — os endpoints padrão (/authorize, /token, /revoke) ficam disponíveis.

uses
  sgcWebSocket, sgcHTTP;

var
  Server: TsgcWebSocketHTTPServer;
  Provider: TsgcHTTP_OAuth2_Server_Provider;
begin
  Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
  Provider.ProviderOptions.AuthorizationEndpoint := '/oauth/authorize';
  Provider.ProviderOptions.TokenEndpoint         := '/oauth/token';
  Provider.ProviderOptions.RevocationEndpoint    := '/oauth/revoke';
  Provider.ProviderOptions.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->ProviderOptions->AuthorizationEndpoint = "/oauth/authorize";
Provider->ProviderOptions->TokenEndpoint        = "/oauth/token";

TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->OAuth2->Provider = Provider;
Server->Active = true;

O que tem por dentro

Um servidor de autorização auto-hospedado — tudo, do /authorize à rotação de refresh-token, em um único componente Delphi.

Endpoint de autorização

Processa requisições GET /authorize, valida response_type, client_id e redirect_uri, depois dispara OnAuthorizeRequest para sua UI de login de sessão de usuário.

Endpoint de token

POST /token emite tokens de acesso + refresh para os grants authorization_code, refresh_token e client_credentials. O code_verifier PKCE é verificado conforme RFC 7636.

Tokens de acesso assinados com JWT

Emita opcionalmente tokens de acesso JWT autocontidos (HS ou RS / ES) para que servidores de recursos possam validar sem uma rodada de introspecção.

Rotação de refresh-token

Quando ProviderOptions.RefreshToken.Rotation está habilitado, cada refresh emite um novo refresh-token e invalida o anterior — alinhado com a prática recomendada do OAuth 2.1.

Endpoint de revogação

POST /revoke invalida um token de acesso ou refresh conforme RFC 7009 — suporta revogações Bearer e client_credentials.

Armazenamento plugável

OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken e similares permitem usar FireDAC, SQLite, Redis ou seu próprio DAL como backend do provider.

Especificações e referências

Fontes autoritativas dos padrões que este componente implementa.

Documentação e demos

Acesse a referência do componente, obtenha o projeto demo pronto para executar e baixe a versão de avaliação.

Ajuda online — TsgcHTTP_OAuth2_Server_Provider Referência completa de propriedades, métodos e eventos deste componente.
Projeto de demonstração — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider Projeto de exemplo pronto para executar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Documento técnico (PDF) Recursos, início rápido, exemplos de código para Delphi & C++ Builder e referências de fontes primárias — somente este componente.
Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca.

Pronto para executar seu próprio OAuth 2.0 Provider?

Baixe a versão de avaliação gratuita e levante um servidor de autorização OAuth 2.0 em Delphi.