sgcAuth: komponenty OAuth2, JWT i WebAuthn dla Delphi i C++ Builder
Produkt samodzielny OAuth2, JWT i WebAuthn

sgcAuth: komponenty OAuth2, JWT i WebAuthn dla Delphi i C++ Builder

Dwa komponenty klienckie 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. sgcAuth jest samodzielny, zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym zbudowani są oba klienci.

Pełny kod źródłowy
Delphi od 7 do 13 i C++ Builder
Środowisko w zestawie sgcWebSockets Core Środowisko HTTP, TLS i JSON pod obydwoma klientami
OAuth2 TsgcHTTP_OAuth2_Client
JWT TsgcHTTP_JWT_Client
2 Komponentów klienckich Jedna strona na palecie komponentów
9 Wdrożonych RFC OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE i więcej
5 Platform Windows, macOS, Linux, iOS i Android
100% Kod źródłowy w zestawie Oba klienty oraz dołączone środowisko uruchomieniowe Core
12 Miesięcy aktualizacji Każde wydanie opublikowane w czasie aktywności twojej licencji

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.

sgcAuth jest samowystarczalny

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie: stos klienta HTTP/TLS, przez który oba komponenty wysyłają swoje żądania tokenów metodą POST, oraz mechanizmy JSON, które parsują odpowiedzi. Jedno SKU, jeden instalator.

Pełny kod źródłowy jest dostarczany z każdą licencją, więc oba klienty i środowisko uruchomieniowe pod nimi prześledzisz krok po kroku we własnym debugerze, zamiast oglądać je znikające w pliku binarnym.

Nakładanie się edycji

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. All-Access zawiera wszystko.

sgcAuth istnieje dla odwrotnego przypadku: chcesz mieć obsługę klienta OAuth2 i JWT w Delphi lub C++ Builder bez licencjonowania pełnej edycji sgcWebSockets. Sprawdź, co obejmuje twoja edycja, zanim kupisz.

Wymagany dodatek

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.

Dwaj klienci, cały cykl życia tokenu

Każdy z nich to komponent niewizualny, który umieszczasz na formularzu albo tworzysz w kodzie, zadeklarowany w module sgc i zarejestrowany na stronie palety SGC Auth. Ustaw dane dostawcy, podłącz zdarzenia, a następnie wywołaj Start.

OAuth21 komponent

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. Wskaż w AuthorizationServerOptions punkty końcowe dostawcy do autoryzacji, tokenu, unieważnienia i introspekcji, a komponent zajmie się resztą: gdy Active/Start uruchamia przepływ Authorization Code, 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 poprzez HTTPClientOptions. Refresh, Revoke i Introspect obejmują cykl życia tokenu od tego momentu, a DPoPOptions wraz z GenerateDPoPKeyPair dodają dowód posiadania DPoP (RFC 9449) dla dostawców, którzy go wymagają. Gotowe ustawienia wstępne Google i Microsoft konfigurują za ciebie typowe punkty końcowe i zakresy.

TsgcHTTP_OAuth2_Client RFC 6749 · PKCE · Device Code · DPoP
JWT1 komponent

Podpisz, dołącz albo zweryfikuj, ty wybierasz

TsgcHTTP_JWT_Client udostępnia wszystko, czego wymaga RFC 7519, poprzez JWTOptions: nagłówek JOSE Header (alg, typ, kid), zarejestrowane roszczenia Payload (iss, sub, aud, exp, nbf, iat, jti, a także własne roszczenia przez AddKeyValue), oraz materiał kluczowy pod Algorithms dla HMAC (HS.Secret), RSA (RS.PrivateKey) i ECDSA (ES.PrivateKey). Wywołaj Sign, aby od razu otrzymać token w postaci compact serialization, przydatne dla usług bez wbudowanego klienta HTTP czy WebSocket, albo ustaw RefreshTokenAfter i pozwól komponentowi automatycznie odświeżać iat/exp oraz podpisywać token 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 bez ręcznej ingerencji w nagłówek.

TsgcHTTP_JWT_Client RFC 7519 · JWS · JWE

Przepływy uwierzytelniania z kodu Delphi

Oba komponenty to zwyczajne komponenty niewizualne, więc pasują do tego, czym już jest twoja aplikacja: desktopowej aplikacji VCL, usługi Windows albo demona Linux. Oto wzorce, które budują klienci, każdy powiązany z właściwością lub metodą, która go napędza.

Logowanie przez Google lub Microsoft auth2CodePKCE

Gotowe ustawienia wstępne Google i Microsoft konfigurują za ciebie punkty końcowe autoryzacji i tokenu oraz zakresy.

Dostęp do API serwer-serwer auth2ClientCredentials

Zadania w tle i konta usług uwierzytelniają się do API bez udziału użytkownika.

Smart TV, kioski i urządzenia IoT auth2DeviceCode

Urządzenie wyświetla krótki kod, a użytkownik kończy logowanie na swoim telefonie lub laptopie.

Długie sesje bez ponownego logowania Refresh

Wymień token odświeżający na nowy token dostępu w tle, bez potrzeby przekazywania do przeglądarki.

Uwierzytelnij własne API WebSocket i HTTP Authentication.Token.JWT

Klient JWT automatycznie podpisuje tokeny Bearer dla TsgcWebSocketClient, TsgcHTTP1Client i TsgcHTTP2Client.

Samodzielne podpisywanie tokenów Sign

Zbuduj i podpisz ciąg JWT dla dowolnej bazy kodu, bez potrzeby komponentu WebSocket czy HTTP.

Przekazanie do przeglądarki, podpis i dołączone środowisko uruchomieniowe

OAuth2 i JWT rozwiązują różne problemy: jeden negocjuje token ze zdalnym serwerem, drugi podpisuje go lokalnie, i właśnie to jest sens ich połączenia w jednym pakiecie: sgcAuth ukrywa tę różnicę za tymi samymi konwencjami komponentów, a dołączone środowisko uruchomieniowe sgcWebSockets Core zajmuje się całą infrastrukturą pod spodem.

OAuth2 to przekazanie do przeglądarki, a potem zwykłe HTTPS

Start otwiera przeglądarkę systemową (albo, dla Device Code, przekazuje ci kod użytkownika do wyświetlenia), a lokalny nasłuch HTTP z LocalServerOptions przechwytuje przekierowanie autoryzacyjne. Wymiana na token dostępu to zwykłe żądanie POST przez HTTPS, wysyłane poprzez HTTPClientOptions, na stosie klienta HTTP środowiska uruchomieniowego Core.

JWT to podpisywanie, nie sieć

TsgcHTTP_JWT_Client nigdy nie otwiera gniazda. JWTOptions konfiguruje nagłówek, ładunek i materiał kluczowy, a Sign zwraca token w postaci compact serialization, HMAC, RSA lub ECDSA, gotowy do dołączenia do dowolnego żądania wysyłanego przez twój kod.

Środowisko uruchomieniowe Core jest w zestawie

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie. Dostarcza stos klienta HTTP/TLS, przez który oba komponenty wysyłają żądania POST, oraz parser JSON, który odczytuje odpowiedzi, a jego pełne źródło jest częścią pakietu, tak jak wszystko inne.

WebAuthn to trzeci element, przez sgcCustomIndy

Logowanie bezhasłowe jest obsługiwane przez TsgcWSAPIServer_WebAuthn, komponent serwerowy sgcWebSockets Enterprise/All-Access, który potrzebuje zmodyfikowanej biblioteki Indy dostarczanej przez sgcCustomIndy. Zamówienie sgcAuth automatycznie dodaje sgcCustomIndy do twojego koszyka.

Pobierz token, podpisz token

Oba komponenty mają ten sam kształt: skonfiguruj opcje, a następnie wywołaj metodę. 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, sgcHTTP_JWT_Client;

var
  OAuth2: TsgcHTTP_OAuth2_Client;
  JWT: TsgcHTTP_JWT_Client;
begin
  // OAuth2: Authorization Code Grant with PKCE
  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

  // JWT: sign a token for your own API
  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);
end;

procedure TForm1.OAuth2AccessToken(Sender: TObject);
begin
  Memo1.Lines.Add('Access token received.');
end;

Ten sam komponent JWT dołącza się bezpośrednio do klienta WebSocket lub HTTP: ustaw Client.Authentication.Token.Enabled := True oraz Client.Authentication.Token.JWT := JWT, a każde żądanie wychodzi z aktualnym tokenem Bearer.

// include: sgcHTTP_OAuth2_Client.hpp, sgcHTTP_JWT_Client.hpp

// OAuth2: Authorization Code Grant with PKCE
TsgcHTTP_OAuth2_Client *OAuth2 = new TsgcHTTP_OAuth2_Client(this);
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

// JWT: sign a token for your own API
TsgcHTTP_JWT_Client *JWT = new TsgcHTTP_JWT_Client(this);
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());

void __fastcall TForm1::OAuth2AccessToken(TObject *Sender)
{
  Memo1->Lines->Add("Access token received.");
}

Ten sam komponent JWT dołącza się bezpośrednio do klienta WebSocket lub HTTP: ustaw Client->Authentication->Token->Enabled = true oraz Client->Authentication->Token->JWT = JWT, a każde żądanie wychodzi z aktualnym tokenem Bearer.

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.

TsgcHTTP_OAuth2_Client Authorization Code, PKCE, Client Credentials, Resource Owner Password, Device Code
Windows Win32 Windows Win64 Linux64 macOS iOS Android
TsgcHTTP_JWT_Client HS256/384/512, RS256/384/512, ES256/384/512
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Obsługa IDE Jedno drzewo źródeł, pakiety projektowe dla każdej wersji
Delphi od 7 do 13 C++ Builder
Instalator próbny Wersja próbna sgcWebSockets All-Access zawiera komponenty Auth
Jedno pobranie, oba komponenty

Pobierz instalator wersji próbnej →

Pakiet samodzielny

sgcAuth jest licencjonowany samodzielnie, już od €149 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz od 50% do 70% rabatu na odnowienie: 50% przy odnowieniu jednego pakietu, 60% przy dwóch, 70% przy trzech lub więcej. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth i sgcHTTP liczą się każdy jako jeden pakiet.

sgcAuth

€149

Dostępne licencje Single, Team i Site.

  • Klient OAuth2: Authorization Code, PKCE, Client Credentials, Device Code
  • Klient JWT do wystawiania, podpisywania i weryfikowania tokenów
  • Klucze dostępu WebAuthn, przez sgcCustomIndy (dodawany automatycznie)
  • Środowisko uruchomieniowe sgcWebSockets Core w zestawie
  • Delphi od 7 do 13 i C++ Builder
  • Pełny kod źródłowy
  • 1 rok aktualizacji

sgcAuth zawiera środowisko uruchomieniowe sgcWebSockets Core, więc nie ma nic więcej do kupienia dla klientów OAuth2 i JWT.

Zamówienie zawiera dwie pozycje: uprawnienie do środowiska uruchomieniowego sgcWebSockets Core, naliczane jako zero, oraz sam pakiet sgcAuth. sgcCustomIndy jest dodawany automatycznie dla WebAuthn, usuń go, jeśli już posiadasz licencję. Pełne szczegóły cennika.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Wdrażaj uwierzytelnianie, nie bibliotekę tokenów

OAuth2 i JWT z natywnego kodu Delphi i C++ Builder, ze środowiskiem uruchomieniowym w zestawie i pełnym kodem źródłowym w pakiecie. Pobierz już dziś instalator próbny All-Access i umieść oba komponenty na formularzu.

Inne produkty eSeGeCe

Połącz sgcAuth z naszymi pozostałymi bibliotekami komponentów dla Delphi, C++ Builder i .NET.

sgcWebSockets

Pełna biblioteka: klienci i serwery WebSocket, HTTP/2, IoT, P2P oraz komponenty AI. Jej edycje zawierają także klienty OAuth2 i JWT.

Dowiedz się więcej →

sgcCustomIndy

Niestandardowa biblioteka Indy, na której zbudowany jest sgcWebSockets Enterprise, dostępna jako dodatek. Wymagana dla WebAuthn, dodawana automatycznie do zamówień sgcAuth.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP. Jeden komponent czatu sięga do OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral.

Dowiedz się więcej →

sgcMQ

Natywne komponenty klienckie MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka i STOMP, z dołączonym środowiskiem uruchomieniowym Core.

Dowiedz się więcej →

sgcSocial

Komponenty klienckie WhatsApp Business Cloud API i Telegram TDLib, z dołączonym środowiskiem uruchomieniowym Core.

Dowiedz się więcej →

sgcHTML

Serwerowe komponenty HTML/UI świadome danych dla Delphi, C++ Builder i .NET, z Bootstrap 5 oraz htmx, w tym komponent UI logowania WebAuthn.

Dowiedz się więcej →