Matriz de recursos do sgcAuth: OAuth2, JWT & WebAuthn | eSeGeCe

sgcAuth matriz de recursos

Tudo o que o sgcAuth faz, mapeado nos dois componentes cliente, nos tipos de concessão e claims que eles implementam, e no recurso WebAuthn que o pacote desbloqueia junto com o sgcCustomIndy. Todo recurso funciona igual no Delphi e no C++ Builder, e toda licença entrega o código-fonte completo.

OAuth2

Cinco tipos de concessão, um componente

JWT

Assine, anexe ou verifique

WebAuthn

Passkeys, via sgcCustomIndy

Especificações & plataformas

Delphi 7 a 13, C++ Builder

O sgcAuth é autossuficiente. Ele já vem com o runtime sgcWebSockets Core embutido, então não é um complemento para os clientes OAuth2 e JWT.

Também dentro do sgcWebSockets. Tanto o cliente OAuth2 quanto o cliente JWT também vêm dentro das edições do sgcWebSockets a partir da Standard. O All-Access inclui tudo. O sgcAuth é o pacote autônomo para equipes que precisam apenas dos clientes de autenticação.

Dois componentes de paleta

Dois lados do mesmo problema, registrados na página de paleta SGC Auth.

ComponenteClasseFunçãoDescrição
Cliente OAuth2TsgcHTTP_OAuth2_ClientObter um tokenFluxos Authorization Code, PKCE, Client Credentials, Resource Owner Password e Device Code contra qualquer provedor OAuth2/OIDC, com um servidor de redirecionamento local embutido.
Cliente JWTTsgcHTTP_JWT_ClientAssinar um tokenConstrói, assina e verifica JSON Web Tokens, sozinho ou como a fonte de Bearer token para TsgcWebSocketClient, TsgcHTTP1Client e TsgcHTTP2Client.

Cinco tipos de concessão, um componente

TsgcHTTP_OAuth2_Client cobre o OAuth 2.0 (RFC 6749) de ponta a ponta: inicia o fluxo, captura o redirecionamento, troca o código por um token e gerencia o token depois disso.

RecursoAPIObservações
Authorization CodeOAuth2Options.GrantType := auth2CodeO fluxo padrão para aplicações web server-side confiáveis que podem guardar um client secret.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)O mesmo fluxo com uma Proof Key for Code Exchange, para aplicativos nativos, móveis e single-page que não podem guardar um segredo.
Client Credentialsauth2ClientCredentialsChamadas servidor a servidor sem um usuário no meio: daemons e contas de serviço.
Resource Owner Passwordauth2ResourceOwnerPasswordA aplicação coleta a senha do usuário diretamente e a troca por um token.
Device Codeauth2DeviceCode (RFC 8628)Para dispositivos com entrada limitada, smart TVs, consoles de mídia, IoT: mostra um código de usuário que a pessoa digita em um segundo dispositivo.
Identidade do clienteOAuth2Options.ClientId, ClientSecret, Username, PasswordConfigure de acordo com a especificação de API do seu provedor; Username/Password cobrem provedores que exigem Basic Authentication no endpoint de token.
Endpoints do provedorAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLAs URLs e a lista de escopos publicadas na documentação OAuth2/OIDC do seu provedor.
Predefinições sociaisTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftDescendentes prontos que pré-configuram os endpoints e escopos do Google e da Microsoft.
Listener de redirecionamento localLocalServerOptions.IP, Port, RedirectURLO pequeno servidor HTTP que o componente inicia para receber o redirecionamento do código de autorização; padrão porta 8080, ou 0 para escolher uma porta aleatória em aplicativos desktop.
Executar o fluxoStart, StopStart abre o navegador do sistema (ou emite o device code) e inicia a concessão configurada; Stop aborta e encerra o listener local.
RefreshRefreshTroca um refresh token por um novo access token sem outra ida ao navegador.
Revogar & introspecçãoRevoke (RFC 7009), Introspect (RFC 7662)Invalida um token, ou consulta o seu status e metadados no provedor.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignMaterial de chave e assinatura Demonstrating Proof-of-Possession (RFC 9449), para provedores que vinculam tokens a um par de chaves.
Transporte HTTPHTTPClientOptionsConfiguração de TLS e log para o cliente HTTP interno que faz POST para os endpoints de token, revogação e introspecção.
Eventos do ciclo de vidaOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenPares antes/depois em torno de cada etapa do fluxo.
Eventos de erroOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenUm por ponto de falha do fluxo, cada um carregando o erro, a descrição e a URI do provedor.
Eventos de Device CodeOnDeviceCode, OnDeviceCodeExpiredEntrega o código de usuário e a URI de verificação para exibir, e dispara se o usuário não concluir a autorização a tempo.

Assine, anexe ou verifique

TsgcHTTP_JWT_Client implementa a RFC 7519 (JSON Web Token), a RFC 7515 (JWS) e a RFC 7516 (JWE) através de uma única propriedade JWTOptions.

RecursoAPIObservações
HeaderJWTOptions.Header.alg, typ, kidO header JOSE. alg seleciona jwtHS256/384/512, jwtRS256/384/512 ou jwtES256/384/512; campos extras passam por Header.AddKeyValue.
Payload / claimsJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiAs claims registradas pela RFC 7519; claims personalizadas são adicionadas com Payload.AddKeyValue.
Material de chave de assinaturaJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeySegredo compartilhado para HMAC, chave privada em PEM para RSA ou ECDSA, selecionada por Header.alg.
Atualização automáticaJWTOptions.RefreshTokenAfterQuando maior que zero, Sign atualiza iat e recalcula exp automaticamente; 0 regenera o token a cada requisição.
Assinar isoladamenteSignConstrói, assina e retorna o token codificado (header.payload.signature) como uma única string, sem precisar de cliente HTTP ou WebSocket.
Anexar a um clienteStart, Client.Authentication.Token.JWTStart assina o JWT configurado e o entrega como Bearer token ao componente hospedeiro; defina uma vez em Authentication.Token.JWT e toda requisição sai assinada.
Funciona comTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientQualquer um dos três aceita um TsgcHTTP_JWT_Client como sua fonte de Bearer token através de Authentication.Token.
Configuração do OpenSSLJWTOptions.OpenSSL_OptionsVersão da API e caminho da biblioteca usados pelos algoritmos RS e ES (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Login sem senha, com mais uma peça

O WebAuthn faz parte da proposta do sgcAuth, mas não é um terceiro componente registrado neste pacote. Ele é servido pelo servidor WebAuthn do sgcWebSockets, e precisa do sgcCustomIndy por baixo.

ÁreaDetalhe
O que éW3C Web Authentication Level 2 (WebAuthn): login sem senha com passkeys e chaves de segurança FIDO2, servido pelo TsgcWSAPIServer_WebAuthn.
Onde viveTsgcWSAPIServer_WebAuthn é um componente server-side, parte do sgcWebSockets Enterprise e All-Access, não um cliente registrado por este pacote.
O que precisaO build Indy corrigido que o sgcCustomIndy entrega como complemento para o sgcWebSockets Core.
Como é adicionadoA página de pedido adiciona o sgcCustomIndy ao seu carrinho automaticamente quando você pede o sgcAuth. Já possui uma licença? Remova a linha no checkout, sem custo extra em nenhum dos dois casos.
Lado do clienteUma aplicação JavaScript no navegador conduz a cerimônia WebAuthn; o sgcHTML entrega um componente de UI de login WebAuthn pronto que se conecta ao servidor.

RFCs, compiladores e destinos

Especificações padronizadas, e o mesmo código-fonte em todo compilador compatível.

ÁreaDetalhe
Padrões OAuth2OAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
Padrões JWTJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
Padrão WebAuthnWeb Authentication Level 2 (W3C), via o servidor WebAuthn do sgcWebSockets.
PlataformasOs dois clientes são HTTPS puro e assinatura local, então toda plataforma Delphi está coberta: Windows Win32/Win64, Linux 64-bit, macOS, iOS e Android.
CompiladoresDelphi e C++ Builder 7 até 13.
EdiçõesO cliente OAuth2 e o cliente JWT também vêm dentro do sgcWebSockets a partir da Standard, e o All-Access inclui tudo.
LicenciamentoAutônomo. O runtime sgcWebSockets Core vem embutido e o código-fonte completo está incluído.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Construa com o sgcAuth

Baixe a avaliação gratuita e obtenha o seu primeiro access token ou JWT assinado a partir do Delphi ou do C++ Builder.