Matryca funkcji sgcAuth: OAuth2, JWT i WebAuthn | eSeGeCe

sgcAuth Matryca funkcji

Wszystko, co robi sgcAuth, rozpisane na dwa komponenty klienckie, typy przyznania uprawnień i roszczenia, które implementują, oraz możliwość WebAuthn, którą pakiet odblokowuje razem z sgcCustomIndy. Każda funkcja działa tak samo w Delphi i C++ Builder, a każda licencja zawiera pełny kod źródłowy.

OAuth2

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

JWT

Podpisz, dołącz albo zweryfikuj

WebAuthn

Klucze dostępu, przez sgcCustomIndy

Standardy i platformy

Delphi od 7 do 13, C++ Builder

sgcAuth jest samowystarczalny. Jest dostarczany z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core, więc nie jest dodatkiem dla klientów OAuth2 i JWT.

Także wewnątrz sgcWebSockets. Zarówno klient OAuth2, jak i klient JWT są dostarczane także wewnątrz sgcWebSockets od edycji Standard wzwyż. All-Access zawiera wszystko. sgcAuth to pakiet samodzielny dla zespołów, które potrzebują wyłącznie klientów uwierzytelniania.

Dwa komponenty palety

Dwie strony tego samego problemu, zarejestrowane na stronie palety SGC Auth.

KomponentKlasaZadanieOpis
OAuth2 ClientTsgcHTTP_OAuth2_ClientUzyskaj tokenPrzepływy Authorization Code, PKCE, Client Credentials, Resource Owner Password i Device Code wobec dowolnego dostawcy OAuth2/OIDC, z wbudowanym lokalnym serwerem przekierowania.
JWT ClientTsgcHTTP_JWT_ClientPodpisz tokenBuduje, podpisuje i weryfikuje tokeny JSON Web Token, samodzielnie albo jako źródło tokenu Bearer dla TsgcWebSocketClient, TsgcHTTP1Client i TsgcHTTP2Client.

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

TsgcHTTP_OAuth2_Client obejmuje OAuth 2.0 (RFC 6749) od początku do końca: uruchamia przepływ, przechwytuje przekierowanie, wymienia kod na token i zarządza tokenem po tym fakcie.

MożliwośćAPIUwagi
Authorization CodeOAuth2Options.GrantType := auth2CodeStandardowy przepływ dla zaufanych aplikacji webowych po stronie serwera, które mogą przechowywać sekret klienta.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)Ten sam przepływ z Proof Key for Code Exchange, dla aplikacji natywnych, mobilnych i jednostronicowych, które nie mogą przechowywać sekretu.
Client Credentialsauth2ClientCredentialsWywołania serwer-serwer bez udziału użytkownika: demony i konta usług.
Resource Owner Passwordauth2ResourceOwnerPasswordAplikacja pobiera hasło użytkownika bezpośrednio i wymienia je na token.
Device Codeauth2DeviceCode (RFC 8628)Dla urządzeń o ograniczonych możliwościach wprowadzania danych, smart TV, konsol multimedialnych, IoT: pokazuje kod użytkownika, który osoba wpisuje na drugim urządzeniu.
Tożsamość klientaOAuth2Options.ClientId, ClientSecret, Username, PasswordUstaw zgodnie ze specyfikacją API twojego dostawcy; Username/Password obejmują dostawców wymagających Basic Authentication na punkcie końcowym tokenu.
Punkty końcowe dostawcyAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLAdresy URL i lista zakresów opublikowane w dokumentacji OAuth2/OIDC twojego dostawcy.
Ustawienia wstępne społecznościoweTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftGotowe klasy potomne wstępnie konfigurujące punkty końcowe i zakresy Google oraz Microsoft.
Lokalny nasłuch przekierowaniaLocalServerOptions.IP, Port, RedirectURLMały serwer HTTP uruchamiany przez komponent do odbioru przekierowania kodu autoryzacyjnego; domyślnie port 8080, albo 0 dla losowego portu w aplikacjach desktopowych.
Uruchom przepływStart, StopStart otwiera przeglądarkę systemową (albo wystawia kod urządzenia) i rozpoczyna skonfigurowany typ przyznania uprawnień; Stop przerywa go i zamyka lokalny nasłuch.
OdświeżanieRefreshWymienia token odświeżający na nowy token dostępu bez kolejnego przejścia przez przeglądarkę.
Unieważnienie i introspekcjaRevoke (RFC 7009), Introspect (RFC 7662)Unieważnij token albo zapytaj o jego status i metadane u dostawcy.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignMateriał kluczowy i podpisywanie Demonstrating Proof-of-Possession (RFC 9449), dla dostawców wiążących tokeny z parą kluczy.
Transport HTTPHTTPClientOptionsKonfiguracja TLS i logowania dla wewnętrznego klienta HTTP wysyłającego żądania POST do punktów końcowych tokenu, unieważnienia i introspekcji.
Zdarzenia cyklu życiaOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenPary przed/po wokół każdego kroku przepływu.
Zdarzenia błędówOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenPo jednym na każdy punkt awarii w przepływie, każde niesie błąd, opis i URI od dostawcy.
Zdarzenia Device CodeOnDeviceCode, OnDeviceCodeExpiredDostarcza kod użytkownika i URI weryfikacyjny do wyświetlenia oraz uruchamia się, jeśli użytkownik nie ukończy autoryzacji na czas.

Podpisz, dołącz albo zweryfikuj

TsgcHTTP_JWT_Client implementuje RFC 7519 (JSON Web Token), RFC 7515 (JWS) i RFC 7516 (JWE) poprzez jedną właściwość JWTOptions.

MożliwośćAPIUwagi
NagłówekJWTOptions.Header.alg, typ, kidNagłówek JOSE. alg wybiera jwtHS256/384/512, jwtRS256/384/512 albo jwtES256/384/512; dodatkowe pola przez Header.AddKeyValue.
Ładunek / roszczeniaJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiZarejestrowane roszczenia z RFC 7519; własne roszczenia dodawane są przez Payload.AddKeyValue.
Materiał kluczowy do podpisywaniaJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeyWspólny sekret dla HMAC, klucz prywatny w formacie PEM dla RSA lub ECDSA, wybierany przez Header.alg.
Automatyczne odświeżanieJWTOptions.RefreshTokenAfterGdy większe od zera, Sign automatycznie odświeża iat i przelicza exp; 0 regeneruje token przy każdym żądaniu.
Podpisywanie samodzielneSignBuduje, podpisuje i zwraca zakodowany token (header.payload.signature) jako pojedynczy ciąg, bez potrzeby klienta HTTP czy WebSocket.
Dołącz do klientaStart, Client.Authentication.Token.JWTStart podpisuje skonfigurowany JWT i dostarcza go jako token Bearer do komponentu nadrzędnego; ustaw go raz na Authentication.Token.JWT, a każde żądanie wychodzi podpisane.
Współpracuje zTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientKażdy z tych trzech akceptuje TsgcHTTP_JWT_Client jako swoje źródło tokenu Bearer przez Authentication.Token.
Konfiguracja OpenSSLJWTOptions.OpenSSL_OptionsWersja API i ścieżka biblioteki używane przez algorytmy RS i ES (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Logowanie bezhasłowe, z jednym dodatkowym elementem

WebAuthn jest częścią historii sgcAuth, ale nie jest trzecim zarejestrowanym komponentem w tym pakiecie. Jest obsługiwany przez serwer WebAuthn sgcWebSockets i potrzebuje sgcCustomIndy pod spodem.

ObszarSzczegóły
Co to jestW3C Web Authentication Level 2 (WebAuthn): logowanie bezhasłowe kluczami dostępu i kluczami bezpieczeństwa FIDO2, oparte na TsgcWSAPIServer_WebAuthn.
Gdzie się znajdujeTsgcWSAPIServer_WebAuthn to komponent serwerowy, część sgcWebSockets Enterprise i All-Access, a nie klient zarejestrowany przez ten pakiet.
Czego potrzebujeZmodyfikowanej biblioteki Indy, którą sgcCustomIndy dostarcza jako dodatek dla sgcWebSockets Core.
Jak jest dodawanyStrona zamówienia dodaje sgcCustomIndy do twojego koszyka automatycznie przy zamawianiu sgcAuth. Posiadasz już licencję? Usuń pozycję przy finalizacji zamówienia, w obu przypadkach bez dodatkowych opłat.
Strona klienckaAplikacja JavaScript po stronie przeglądarki prowadzi ceremonię WebAuthn; sgcHTML dostarcza gotowy komponent UI logowania WebAuthn, który współpracuje z serwerem.

RFC, kompilatory i platformy docelowe

Specyfikacje standardowe i te same źródła we wszystkich obsługiwanych kompilatorach.

ObszarSzczegóły
Standardy OAuth2OAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
Standardy JWTJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
Standard WebAuthnWeb Authentication Level 2 (W3C), przez serwer WebAuthn sgcWebSockets.
PlatformyOba klienty to zwykłe HTTPS i lokalne podpisywanie, więc każda platforma Delphi jest objęta: Windows Win32/Win64, Linux 64-bit, macOS, iOS i Android.
KompilatoryDelphi i C++ Builder od 7 do 13.
EdycjeKlient OAuth2 i klient JWT są dostarczane także wewnątrz sgcWebSockets od edycji Standard wzwyż, a All-Access zawiera wszystko.
LicencjonowanieProdukt samodzielny. Środowisko uruchomieniowe sgcWebSockets Core jest dołączone, a pełny kod źródłowy jest w zestawie.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Twórz z sgcAuth

Pobierz bezpłatną wersję próbną i uzyskaj swój pierwszy token dostępu albo podpisany JWT z Delphi lub C++ Builder.