eSeGeCe — komponenty komunikacyjne klasy enterprise dla Delphi i .NET
WYRÓŻNIONE · sgcAuth

OAuth2 i JWT, natywnie w Delphi

Dwa komponenty wnoszą tokenową stronę nowoczesnego uwierzytelniania do twojej aplikacji. TsgcHTTP_OAuth2_Client obsługuje przepływy Authorization Code, PKCE, Client Credentials, Resource Owner Password i Device Code wobec dowolnego dostawcy OAuth2/OIDC. TsgcHTTP_JWT_Client buduje, podpisuje i weryfikuje tokeny JSON Web Token, samodzielnie albo jako źródło tokenu Bearer dla twoich klientów WebSocket i HTTP. Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

  • 2 komponenty klienckie
  • OAuth2 · JWT · WebAuthn
  • 9 wdrożonych RFC
  • Delphi od 7 do 13 · C++ Builder

Dwa komponenty, cały cykl życia tokenu

sgcAuth to pakiet samodzielny. Zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym jest zbudowany, a każda licencja jest dostarczana z pełnym kodem źródłowym, więc wymiany tokenów prześledzisz krok po kroku we własnym debugerze.

2 Komponentów klienckich TsgcHTTP_OAuth2_Client i TsgcHTTP_JWT_Client, na jednej stronie palety.
9 Wdrożonych RFC OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE i więcej.
5 Platform docelowych Windows, macOS, Linux 64-bit, iOS i Android z jednego drzewa źródeł.
1 Instalator samodzielny Środowisko uruchomieniowe sgcWebSockets Core i warstwa HTTP/TLS są dostarczane wewnątrz pakietu.
100% Kod źródłowy w zestawie Każda licencja niesie pełne źródło obu komponentów oraz dołączonego środowiska uruchomieniowego.
sgcAuth

Klient OAuth2, klient JWT i obsługa kluczy dostępu WebAuthn dla Delphi i C++ Builder. Pakiet samodzielny z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core, pełnym kodem źródłowym i wdrożeniem bez opłat licencyjnych.

Jeden komponent na zadanie, jeden styl API

Upuść komponent na formularz, ustaw dane dostawcy lub klucza, podepnij zdarzenia, a następnie wywołaj Start albo Sign. Nazewnictwo jest spójne w obu, więc przepływ uwierzytelniania czyta się tak samo, niezależnie od tego, którego typu przyznania uprawnień lub algorytmu używa.

OAuth2

Pięć typów przyznania uprawnień, jeden komponent

TsgcHTTP_OAuth2_Client steruje OAuth2Options.GrantType poprzez auth2Code dla zaufanych aplikacji po stronie serwera, auth2CodePKCE dla aplikacji natywnych, mobilnych i jednostronicowych, auth2ClientCredentials dla demonów i kont usług, auth2ResourceOwnerPassword, oraz auth2DeviceCode (RFC 8628) dla smart TV, kiosków i innych urządzeń o ograniczonych możliwościach wprowadzania danych. Start otwiera przeglądarkę systemową i uruchamia mały lokalny serwer HTTP z LocalServerOptions, aby przechwycić przekierowanie, wymieniając kod na token przez zwykłe HTTPS. Refresh, Revoke i Introspect obejmują cykl życia tokenu od tego momentu, a DPoPOptions dodaje dowód posiadania DPoP (RFC 9449) dla dostawców, którzy go wymagają.

Zobacz klienta OAuth2 →
JWT

Podpisz, dołącz albo zweryfikuj, ty wybierasz

TsgcHTTP_JWT_Client udostępnia wszystko, czego wymaga RFC 7519, poprzez JWTOptions: nagłówek JOSE Header, zarejestrowane roszczenia Payload (iss, sub, aud, exp, nbf, iat, jti, a także własne roszczenia), oraz materiał kluczowy dla HMAC, RSA i ECDSA. Wywołaj Sign, aby od razu otrzymać token w postaci compact serialization, albo ustaw RefreshTokenAfter i pozwól komponentowi automatycznie podpisywać go na nowo. Ten sam komponent podłącza się bezpośrednio do Authentication.Token.JWT na TsgcWebSocketClient, TsgcHTTP1Client i TsgcHTTP2Client, więc każde żądanie wychodzące niesie świeży token Bearer.

Zobacz klienta JWT →
WebAuthn

Klucze dostępu, przez sgcCustomIndy

Logowanie bezhasłowe jest obsługiwane przez TsgcWSAPIServer_WebAuthn, komponent sgcWebSockets Enterprise/All-Access zbudowany na zmodyfikowanej bibliotece Indy, którą sgcCustomIndy dostarcza jako dodatek. Jest dodawany automatycznie przy zamawianiu sgcAuth.

Zobacz, co potrafi →
Przypadki użycia

Logowanie, konta usług i twoje własne API

Logowanie przez Google lub Microsoft, dostęp do API serwer-serwer, smart TV i kioski, długie sesje bez ponownego logowania oraz tokeny Bearer dla twoich własnych API WebSocket i HTTP. Oba komponenty działają bez problemu wewnątrz aplikacji VCL lub FMX, usługi albo procesu konsolowego.

Matryca funkcji →
Wieloplatformowość

Czyste HTTPS i podpisywanie, bez natywnej biblioteki

Żaden z komponentów nie zależy od niczego poza stosem klienta HTTP środowiska uruchomieniowego Core i prymitywami kryptograficznymi platformy, więc oba kompilują się i działają wszędzie tam, gdzie Delphi. Od Delphi 7 po RAD Studio 13, także w C++ Builder.

Matryca funkcji →

Strony referencyjne każdego komponentu:

Pobierz token, podpisz token

Skonfiguruj opcje, a następnie wywołaj metodę. Oba komponenty kompilują się w Delphi od 7 do 13 oraz w C++ Builder, a te same właściwości są wystawione w .NET.

uses
  sgcHTTP_OAuth2_Client;
var
  OAuth2: TsgcHTTP_OAuth2_Client;
begin
  OAuth2 := TsgcHTTP_OAuth2_Client.Create(nil);
  OAuth2.OAuth2Options.GrantType := auth2CodePKCE;
  OAuth2.OAuth2Options.ClientId := 'your-client-id';
  OAuth2.AuthorizationServerOptions.AuthURL := 'https://provider.com/oauth2/authorize';
  OAuth2.AuthorizationServerOptions.TokenURL := 'https://provider.com/oauth2/token';
  OAuth2.AuthorizationServerOptions.Scope.Text := 'openid profile';
  OAuth2.LocalServerOptions.IP := '127.0.0.1';
  OAuth2.LocalServerOptions.Port := 8080;

  OAuth2.OnAfterAccessToken := OAuth2AccessToken;
  OAuth2.Start;   // opens the browser; the redirect lands on the local server
end;

procedure TForm1.OAuth2AccessToken(Sender: TObject);
begin
  Memo1.Lines.Add('Access token received.');
end;
uses
  sgcHTTP_JWT_Client;
var
  JWT: TsgcHTTP_JWT_Client;
begin
  JWT := TsgcHTTP_JWT_Client.Create(nil);
  JWT.JWTOptions.Header.alg := jwtHS256;
  JWT.JWTOptions.Algorithms.HS.Secret := '79F66F1E-E998-436B-8A0A-3E5DEFA4FD9E';
  JWT.JWTOptions.Payload.iss := 'your-service';
  JWT.JWTOptions.Payload.sub := '1234567890';
  JWT.JWTOptions.Payload.iat := DateTimeToUnix(Now);

  ShowMessage(JWT.Sign);

  // or attach it to a WebSocket / HTTP client directly:
  // Client.Authentication.Token.Enabled := True;
  // Client.Authentication.Token.JWT := JWT;
end;

Ten sam kształt w Object Pascalu i w C++ Builder. Pełna matryca funkcji →

Trzy rzeczy, które warto wiedzieć najpierw

Czego sgcAuth od ciebie wymaga, czy już posiadasz te komponenty, i czego dodatkowo potrzebuje WebAuthn. Wszystkie trzy odpowiedzi są krótkie i wszystkie znajdziesz na tej stronie, a nie drobnym drukiem.

Komponenty i typy uprawnień
zadanie      komponent                typy uprawnień / algorytmy
OAuth2       TsgcHTTP_OAuth2_Client   Code, PKCE, Client Credentials,
                                       Resource Owner Password, Device Code
JWT          TsgcHTTP_JWT_Client      HS256/384/512, RS256/384/512, ES256/384/512

masz to już?
Zarówno klient OAuth2, jak i klient JWT są dostarczane
  wewnątrz sgcWebSockets od edycji Standard wzwyż.
sgcAuth służy do licencjonowania OAuth2 + JWT bez pełnej
  edycji sgcWebSockets.

sgcAuth jest samodzielny

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie: stos klienta HTTP/TLS, przez który oba komponenty wysyłają metodą POST swoje żądania tokenów, oraz mechanizmy JSON, które parsują odpowiedzi. Jeden instalator, pełny kod źródłowy w pakiecie.

Masz to już w swojej edycji sgcWebSockets?

Zarówno klient OAuth2, jak i klient JWT są dostarczane wewnątrz sgcWebSockets od edycji Standard wzwyż, więc jeśli posiadasz jakąkolwiek edycję sgcWebSockets, masz już oba komponenty. sgcAuth istnieje dla odwrotnego przypadku: chcesz mieć obsługę klienta OAuth2 i JWT bez licencjonowania pełnej edycji sgcWebSockets.

WebAuthn wymaga sgcCustomIndy

Logowanie bezhasłowe z WebAuthn jest obsługiwane przez TsgcWSAPIServer_WebAuthn, komponent sgcWebSockets Enterprise/All-Access zbudowany na zmodyfikowanej bibliotece Indy, którą sgcCustomIndy dostarcza jako dodatek. WebAuthn wymaga dodatku sgcCustomIndy, który jest dodawany automatycznie przy zamawianiu sgcAuth. Posiadasz już licencję sgcCustomIndy? Usuń automatycznie dodaną pozycję z koszyka przed finalizacją zamówienia, w obu przypadkach bez dodatkowych opłat.

Delphi i C++ Builder

sgcAuth jest przeznaczony dla Delphi od 7 do RAD Studio 13 oraz C++ Builder. Bezpłatny instalator próbny to wersja próbna sgcWebSockets All-Access, więc oba komponenty możesz wypróbować już dziś.

PKCE Device Code DPoP HMAC · RSA · ECDSA Pełne źródło

Każdy komponent i właściwość →

sgcAuth komunikuje się z opublikowanymi standardami OAuth2/OIDC i JWT/JWS, zamiast opakowywać SDK dostawcy, więc wybór dostawcy należy do ciebie: Google, Microsoft, Auth0, Okta, Keycloak lub dowolny serwer autoryzacji zgodny z RFC. Typy uprawnień, odświeżanie, unieważnianie i podpisywanie to w pełni pierwszorzędne metody i zdarzenia, a pełny kod źródłowy oznacza, że nic pomiędzy nimi nie jest czarną skrzynką.

Dwanaście bibliotek, jedna skrzynka narzędziowa

sgcAuth to jedna z dwunastu bibliotek komponentów eSeGeCe dla Delphi, C++ Builder i .NET. Dzielą te same konwencje, dostarczane są z pełnym kodem źródłowym i wdrażane bez opłat licencyjnych.

sgcAuth

Klient OAuth2, klient JWT i obsługa WebAuthn dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTTP

Klient HTTP/2, klient gRPC oraz klienty Google Cloud Pub/Sub, Calendar i FCM dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API dla Delphi, C++ Builder, Lazarus i .NET. To tutaj mieszka środowisko uruchomieniowe Core.

Dowiedz się więcej →

sgcMQ

Komponenty klienckie MQTT, AMQP 0.9.1 i 1.0, Apache Kafka oraz STOMP dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcSocial

Komponenty klienckie Telegram i WhatsApp Business dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTML

Serwerowe komponenty HTML i UI na Bootstrap 5 i htmx, w tym komponent UI logowania WebAuthn.

Dowiedz się więcej →

sgcQUIC

Surowy transport QUIC oraz klient i serwer HTTP/3, z WebTransport. Dodatek do sgcWebSockets Enterprise.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP dla Delphi oraz C++ Builder. Siedmiu dostawców LLM za jednym komponentem, a do tego MCP, embeddingi i mowa. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcOpenAPI

Parser OpenAPI 3.x, natywny generator SDK w Pascalu, komponent serwera OpenAPI oraz ponad 1 195 gotowych SDK chmurowych.

Dowiedz się więcej →

sgcSign

XAdES, PAdES, CAdES i ASiC dla dokumentów, Authenticode, ClickOnce, NuGet i VSIX dla kodu.

Dowiedz się więcej →

sgcBiometrics

Windows Hello, czytniki linii papilarnych i Windows Biometric Framework dla Delphi i C++ Builder.

Dowiedz się więcej →

sgcIndy

Zaktualizowane komponenty Indy TCP/IP z nowoczesnym TLS, IPv6 i HTTP/2 od Delphi 7 do 13.

Dowiedz się więcej →

Zobacz cennik i licencje Pobierz bezpłatną wersję próbną

Co mówią programiści

Zaufali nam programiści Delphi, C++ Builder, Lazarus i .NET na całym świecie.

Wasza biblioteka sgcWebSockets jest bardzo przydatna i łatwa w konfiguracji. Tak trzymać!

Simone Moretti Programista Delphi

sgcWebSockets jest niesamowity, a wasze wsparcie jest najlepsze!

Christian Meyer Założyciel i CTO

Bardzo dziękuję za pomoc i wsparcie, uwielbiam wasze komponenty.

Mark Steinfeld CTO

Oglądasz widok Uwierzytelnianie eSeGeCe.

Pokaż mi inne ujęcie →

Wdrażaj uwierzytelnianie, nie bibliotekę tokenów

OAuth2 i JWT w jednym pakiecie, ze środowiskiem uruchomieniowym sgcWebSockets Core w zestawie i pełnym kodem źródłowym w pakiecie.