sgcAuthOAuth2 i JWT,natywnie w Delphi.Klucze dostępu też.
Dwa komponenty wnoszą tokenową stronę nowoczesnego uwierzytelniania do twojej aplikacji. TsgcHTTP_OAuth2_Client runs the Authorization Code, PKCE, Client Credentials, Resource Owner Password and Device Code grants against any OAuth2/OIDC provider. TsgcHTTP_JWT_Client builds, signs and verifies JSON Web Tokens, on its own or as the Bearer token source for your WebSocket and HTTP clients. Standalone, the sgcWebSockets Core runtime is included.
Szybki start sgcAuth | podpisz JWT i zweryfikuj go na serwerze
Klient OAuth2Typy grantówKlucze dostępu WebAuthn
2Komponenty klienckie, OAuth2 i JWT, na jednej stronie palety
9Zaimplementowane RFC: OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE i inne
5Platformy docelowe: Windows, macOS, Linux 64-bit, iOS i Android
1Samodzielny instalator ze środowiskiem Core w środku
100%Kod źródłowy w każdej licencji
Zobacz, jak działa
Zobacz sgcAuth w dwie minuty.
JWT, OAuth2 i WebAuthn po stronie klienta i serwera, z poziomu Delphi. Z lektorem i napisami. Nic się nie pobiera, dopóki nie naciśniesz odtwarzania.
Szybki start sgcAuth
Tokeny, delegowana autoryzacja i klucze dostępu w jednym pakiecie.
Trzy drogi startuJWT, gdy już znasz użytkownika, OAuth2, gdy tożsamość przechowuje strona trzecia, WebAuthn, gdy w ogóle nie ma hasła.
Podpisz JWTUstaw algorytm i sekret, uzupełnij standardowe claimy, a potem podłącz komponent do klienta WebSocket lub HTTP jako token Bearer.
Zweryfikuj go na serwerzeSprawdzane są podpis, exp and nbf are checked, and a request with a bad token never reaches your handler.
OAuth2 w jednym komponencieIdentyfikator klienta, adresy dostawcy, zakresy i typ grantu. Komponent otwiera przeglądarkę i sam uruchamia lokalny serwer przekierowania.
WebAuthn i klucze dostępuRejestracja i asercja sterowane przez komponent serwera. Klucz prywatny nigdy nie opuszcza urządzenia.
Co jest w pakiecie
Jeden komponent na zadanie, jeden styl API.
Upuść komponent na formularz, ustaw dane dostawcy lub klucza, podepnij zdarzenia, a następnie wywołaj Start or Sign. The naming is consistent across both, so an authentication flow reads the same whichever grant or algorithm it uses.
Każdy typ grantu, jeden komponent
TsgcHTTP_OAuth2_Client drives OAuth2Options.GrantType through auth2Code for trusted server-side apps, auth2CodePKCE for native, mobile and single-page apps, auth2ClientCredentials for daemons and service accounts, auth2ResourceOwnerPassword, and auth2DeviceCode (RFC 8628) for smart TVs, kiosks and other input-constrained devices.
Start opens the system browser and stands up a small local HTTP server from LocalServerOptions to catch the redirect, exchanging the code for a token over plain HTTPS. Refresh, Revoke and Introspect cover the token lifecycle after that, and DPoPOptions adds proof-of-possession (RFC 9449) for providers that require it.
TsgcHTTP_JWT_Client publishes everything RFC 7519 needs through JWTOptions: the JOSE Header, the registered Payload claims (iss, sub, aud, exp, nbf, iat, jti, plus custom claims), and the key material for HMAC, RSA and ECDSA. Call Sign for the compact-serialization token directly, or set RefreshTokenAfter and let the component re-sign automatically.
Komponent JWT podłącza się bezpośrednio do Authentication.Token.JWT on TsgcWebSocketClient, TsgcHTTP1Client and TsgcHTTP2Client, so every outbound request carries a fresh Bearer token without a line of header code.
Logowanie bezhasłowe jest obsługiwane przez TsgcWSAPIServer_WebAuthn, a sgcWebSockets Enterprise/All-Access component built on the patched Indy library that sgcCustomIndy ships as an add-on. It is always included when you order sgcAuth, and so are the TOTP, LDAP, SAML, OpenID Connect and Mail OAuth2 components.
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.
Czyste HTTPS i podpisywanie, bez natywnej biblioteki
Żaden z komponentów nie zależy od niczego poza stosem klienta HTTP środowiska Core i prymitywami kryptograficznymi platformy, więc oba kompilują się i działają wszędzie tam, gdzie Delphi: w Windows, macOS, Linuksie 64-bit, iOS i Androidzie. Od Delphi 7 po RAD Studio 13 oraz w C++ Builderze.
sgcAuth mówi opublikowanymi standardami OAuth2/OIDC i JWT/JWS zamiast opakowywać SDK producenta, więc dostawcę wybierasz sam: Google, Microsoft, Auth0, Okta, Keycloak lub dowolny serwer autoryzacji zgodny z RFC. Gotowe ustawienia Google i Microsoft konfigurują za Ciebie typowe punkty końcowe i zakresy.
sgcAuth to samodzielny pakiet. Zawiera środowisko Core sgcWebSockets, na którym jest zbudowany, a każda licencja obejmuje pełny kod źródłowy, więc wymiany tokenów można prześledzić we własnym debugerze. Wdrożenie jest bez opłat licencyjnych.
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 serverend;
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;
Upuść komponent na formularzTsgcHTTP_OAuth2_Client and TsgcHTTP_JWT_Client sit on one palette page.
Ustaw dostawcę lub kluczAdresy autoryzacji i tokenu, identyfikator klienta i zakresy dla OAuth2. Algorytm, sekret lub para kluczy oraz claimy dla JWT.
Podłącz zdarzeniaOnAfterAccessToken hands you the token, and the refresh, revoke and introspect calls follow the same pattern.
Wywołaj Start lub SignAlbo przekaż komponent JWT klientowi WebSocket lub HTTP i pozwól mu dołączać świeży token Bearer do każdego żądania.
Bliższe spojrzenie
Trzy wejścia, jeden pakiet.
Klatki z filmu o szybkim starcie sgcAuth.
Podpisany po stronie klienta, sprawdzony po stronie serwera.
Klient JWT podpisuje za pomocą HMAC, RSA lub ECDSA i podróżuje w nagłówku Authorization: Bearer header. On the other side the signature is checked against the same secret or public key, expired and not-yet-valid tokens are rejected, and a request with a bad token never reaches your handler.
Wybierz grant dopasowany do aplikacji.
Authorization Code dla aplikacji webowych z backendem, PKCE dla aplikacji natywnych i mobilnych, Client Credentials dla komunikacji maszyna do maszyny, Device Code dla telewizorów i konsol. Odświeżanie, unieważnianie, introspekcja i DPoP są również obsłużone za Ciebie.
Bez hasła i bez wspólnego sekretu, który mógłby wyciec.
Serwer wysyła losowe wyzwanie, uwierzytelniacz podpisuje je kluczem prywatnym, a serwer sprawdza je względem zapisanego klucza publicznego. Użytkownik loguje się kluczem dostępu, odciskiem palca lub kluczem sprzętowym, a klucz prywatny nigdy nie opuszcza urządzenia.
Zanim kupisz
Cztery rzeczy, które warto wiedzieć na początku.
Czego sgcAuth potrzebuje od Ciebie, czy już masz te komponenty, czego WebAuthn wymaga dodatkowo i na jakie IDE jest przygotowany. Odpowiedzi są krótkie i znajdują się na tej stronie, a nie drobnym drukiem.
job component grants / algorithms
OAuth2 TsgcHTTP_OAuth2_ClientCode, PKCE, Client Credentials,Resource Owner Password, Device Code
JWT TsgcHTTP_JWT_ClientHS256/384/512, RS256/384/512, ES256/384/512already own it?
Both the OAuth2 Client and the JWT Client ship inside
sgcWebSockets from the Standard edition up.
sgcAuth is for licensing OAuth2 + JWT without a full
sgcWebSockets edition.
sgcAuth jest samodzielnyŚrodowisko Core sgcWebSockets jest w komplecie: stos klienta HTTP/TLS, przez który oba komponenty wysyłają żądania tokenów, oraz mechanizm JSON, który parsuje odpowiedzi. Jeden instalator, pełny kod źródłowy w pakiecie.
Masz to już w swojej edycji sgcWebSockets?Oba klienty są dostarczane w sgcWebSockets od edycji Standard wzwyż. sgcAuth powstał na odwrotny przypadek: obsługa klienta OAuth2 i JWT bez licencjonowania pełnej edycji sgcWebSockets.
WebAuthn wymaga sgcCustomIndyTsgcWSAPIServer_WebAuthn is built on the patched Indy library that sgcCustomIndy ships as an add-on. It is always included when you order sgcAuth, and the sgcAuth price shown already covers it.
Delphi i C++ BuildersgcAuth 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ś.
Granty, odświeżanie, unieważnianie i podpisywanie to pełnoprawne metody i zdarzenia, a pełny kod źródłowy oznacza, że nic pośrodku nie jest czarną skrzynką. Każdy komponent i właściwość →
Część sgcWebSockets
Licencjonowany osobno albo już w Twojej edycji.
sgcAuth to jeden pakiet rodziny sgcWebSockets. Kup go samodzielnie z dołączonym środowiskiem Core albo uzyskaj oba klienty z dowolną edycją sgcWebSockets od Standard wzwyż.
sgcAuth
Klienci OAuth2 i JWT, samodzielnie, ze środowiskiem Core sgcWebSockets w komplecie.
sgcAuth to jedna z bibliotek komponentów eSeGeCe dla Delphi, C++ Buildera i .NET. Mają wspólne konwencje, są dostarczane z pełnym kodem źródłowym i wdrażane bez opłat licencyjnych.