sgcAuth Özellik Matrisi: OAuth2, JWT & WebAuthn | eSeGeCe

sgcAuth Özellik Matrisi

sgcAuth'un yaptığı her şey; iki istemci bileşeni, uyguladıkları akış tipleri ve talepler, ayrıca paketin sgcCustomIndy ile birlikte açtığı WebAuthn yeteneği üzerinden eşlenmiş. Her yetenek Delphi ve C++ Builder'da aynı şekilde çalışır ve her lisans tam kaynak koduyla gelir.

OAuth2

Beş akış tipi, tek bileşen

JWT

İmzalayın, ekleyin ya da doğrulayın

WebAuthn

Passkey'ler, sgcCustomIndy aracılığıyla

Standartlar & Platformlar

Delphi 7'den 13'e, C++ Builder

sgcAuth kendi kendine yeterlidir. sgcWebSockets Core çalışma zamanı pakete dahil olarak gelir, bu yüzden OAuth2 ve JWT istemcileri için bir eklenti değildir.

sgcWebSockets içinde de var. Hem OAuth2 Client hem de JWT Client, sgcWebSockets sürümlerinin içinde Standard sürümünden itibaren gelir. All-Access her şeyi içerir. sgcAuth, yalnızca kimlik doğrulama istemcilerine ihtiyaç duyan ekipler için bağımsız pakettir.

İki Palet Bileşeni

Aynı sorunun iki yüzü, SGC Auth palet sayfasında kayıtlıdır.

BileşenSınıfİşAçıklama
OAuth2 ClientTsgcHTTP_OAuth2_ClientBir token alınHerhangi bir OAuth2/OIDC sağlayıcısına karşı Authorization Code, PKCE, Client Credentials, Resource Owner Password ve Device Code akışları; yerleşik bir yerel yönlendirme sunucusuyla birlikte.
JWT ClientTsgcHTTP_JWT_ClientBir token imzalayınJSON Web Token'ları oluşturur, imzalar ve doğrular; tek başına ya da TsgcWebSocketClient, TsgcHTTP1Client ve TsgcHTTP2Client için Bearer token kaynağı olarak.

Beş Akış Tipi, Tek Bileşen

TsgcHTTP_OAuth2_Client, OAuth 2.0'ı (RFC 6749) uçtan uca kapsar: akışı başlatır, yönlendirmeyi yakalar, kodu bir token ile değiştirir ve sonrasında token'ı yönetir.

YetenekAPINotlar
Authorization CodeOAuth2Options.GrantType := auth2CodeBir istemci gizli anahtarı tutabilen, güvenilir sunucu taraflı web uygulamaları için standart akış.
Authorization Code + PKCEauth2CodePKCE (RFC 7636)Bir gizli anahtar tutamayan yerel, mobil ve tek sayfa uygulamalar için, bir Proof Key for Code Exchange ile aynı akış.
Client Credentialsauth2ClientCredentialsAradan bir kullanıcı geçmeyen sunucudan sunucuya çağrılar: daemon'lar ve servis hesapları.
Resource Owner Passwordauth2ResourceOwnerPasswordUygulama, kullanıcının parolasını doğrudan toplar ve onu bir token ile değiştirir.
Device Codeauth2DeviceCode (RFC 8628)Girdi kısıtlı cihazlar, akıllı TV'ler, medya konsolları, IoT için: kişinin ikinci bir cihazda girdiği bir kullanıcı kodu gösterir.
İstemci kimliğiOAuth2Options.ClientId, ClientSecret, Username, PasswordSağlayıcınızın API şartnamesine göre ayarlanır; Username/Password, token uç noktasında Basic Authentication gerektiren sağlayıcıları kapsar.
Sağlayıcı uç noktalarıAuthorizationServerOptions.AuthURL, TokenURL, Scope, RevocationURL, IntrospectionURLSağlayıcınızın OAuth2/OIDC belgelerinde yayımlanan URL'ler ve kapsam listesi.
Sosyal ön ayarlarTsgcHTTP_OAuth2_Client_Google, TsgcHTTP_OAuth2_Client_MicrosoftGoogle ve Microsoft uç noktalarını ve kapsamlarını önceden yapılandıran hazır alt sınıflar.
Yerel yönlendirme dinleyicisiLocalServerOptions.IP, Port, RedirectURLBileşenin authorization-code yönlendirmesini almak için başlattığı küçük HTTP sunucusu; varsayılan olarak 8080 bağlantı noktası, masaüstü uygulamaları için rastgele bir bağlantı noktası seçmek üzere 0.
Akışı çalıştırmaStart, StopStart, sistem tarayıcısını açar (ya da Device Code'u verir) ve yapılandırılmış akışı başlatır; Stop onu durdurur ve yerel dinleyiciyi kapatır.
YenilemeRefreshBaşka bir tarayıcı gidiş-dönüşü olmadan bir yenileme token'ını yeni bir erişim token'ı ile değiştirir.
İptal & sorgulamaRevoke (RFC 7009), Introspect (RFC 7662)Bir token'ı geçersiz kılın veya sağlayıcıdaki durumunu ve meta verilerini sorgulayın.
DPoPDPoPOptions, GenerateDPoPKeyPair, OnDPoPSignToken'ları bir anahtar çiftine bağlayan sağlayıcılar için Demonstrating Proof-of-Possession (RFC 9449) anahtar malzemesi ve imzalama.
HTTP taşımasıHTTPClientOptionsToken, revocation ve introspection uç noktalarına POST yapan dahili HTTP istemcisi için TLS ve günlükleme yapılandırması.
Yaşam döngüsü olaylarıOnBeforeAuthorizeCode, OnAfterAuthorizeCode, OnBeforeAccessToken, OnAfterAccessToken, OnBeforeRefreshToken, OnAfterRefreshTokenAkışın her adımının etrafında önce/sonra çiftleri.
Hata olaylarıOnErrorAccessToken, OnErrorAuthorizeCode, OnErrorRefreshToken, OnErrorRevokeToken, OnErrorIntrospectTokenAkıştaki her hata noktası için bir tane, her biri sağlayıcının hatasını, açıklamasını ve URI'sini taşır.
Device Code olaylarıOnDeviceCode, OnDeviceCodeExpiredGörüntülenecek kullanıcı kodunu ve doğrulama URI'sini teslim eder, kullanıcı yetkilendirmeyi zamanında tamamlamazsa tetiklenir.

İmzalayın, Ekleyin ya da Doğrulayın

TsgcHTTP_JWT_Client, tek bir JWTOptions özelliği üzerinden RFC 7519 (JSON Web Token), RFC 7515 (JWS) ve RFC 7516'yı (JWE) uygular.

YetenekAPINotlar
HeaderJWTOptions.Header.alg, typ, kidJOSE başlığı. alg, jwtHS256/384/512, jwtRS256/384/512 ya da jwtES256/384/512'yi seçer; ek alanlar Header.AddKeyValue üzerinden eklenir.
Payload / taleplerJWTOptions.Payload.iss, sub, aud, exp, nbf, iat, jtiKayıtlı RFC 7519 talepleri; özel talepler Payload.AddKeyValue ile eklenir.
İmzalama anahtar malzemesiJWTOptions.Algorithms.HS.Secret, RS.PrivateKey, ES.PrivateKeyHMAC için paylaşılan gizli anahtar, RSA veya ECDSA için PEM kodlu özel anahtar; Header.alg ile seçilir.
Otomatik yenilemeJWTOptions.RefreshTokenAfterSıfırdan büyük olduğunda, Sign iat'i yeniler ve exp'i otomatik olarak yeniden hesaplar; 0 her istekte token'ı yeniden üretir.
Bağımsız imzalamaSignKodlanmış token'ı (header.payload.signature) tek bir dize olarak oluşturur, imzalar ve döndürür; HTTP veya WebSocket istemcisi gerekmez.
Bir istemciye eklemeStart, Client.Authentication.Token.JWTStart, yapılandırılmış JWT'yi imzalar ve barındıran bileşene Bearer token olarak teslim eder; bir kez Authentication.Token.JWT üzerinde ayarlayın, her istek imzalı olarak gider.
Şununla çalışırTsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientÜçünden herhangi biri, Authentication.Token üzerinden Bearer token kaynağı olarak bir TsgcHTTP_JWT_Client kabul eder.
OpenSSL yapılandırmasıJWTOptions.OpenSSL_OptionsRS ve ES algoritmalarının kullandığı API sürümü ve kitaplık yolu (APIVersion, LibPath, LibPathCustom, UnixSymLinks).

Parolasız Oturum Açma, Bir Parça Daha

WebAuthn, sgcAuth hikayesinin bir parçasıdır, ama bu pakette üçüncü kayıtlı bir bileşen değildir. sgcWebSockets WebAuthn sunucusu tarafından sağlanır ve altında sgcCustomIndy'ye ihtiyaç duyar.

AlanAyrıntı
Ne olduğuW3C Web Authentication Level 2 (WebAuthn): passkey'ler ve FIDO2 güvenlik anahtarlarıyla parolasız oturum açma, TsgcWSAPIServer_WebAuthn tarafından desteklenir.
Nerede bulunduğuTsgcWSAPIServer_WebAuthn, sgcWebSockets Enterprise ve All-Access'in bir parçası olan sunucu taraflı bir bileşendir, bu pakette kayıtlı bir istemci değildir.
Neye ihtiyaç duyduğusgcCustomIndy'nin sgcWebSockets Core için bir eklenti olarak sunduğu yamalanmış Indy derlemesi.
Nasıl eklendiğiSipariş sayfası, sgcAuth sipariş ettiğinizde sgcCustomIndy'yi otomatik olarak sepetinize ekler. Zaten bir lisansınız mı var? Ödeme sırasında satırı kaldırın, her iki durumda da ek ücret yoktur.
İstemci tarafıTarayıcı taraflı bir JavaScript uygulaması WebAuthn seremonisini yürütür; sgcHTML, sunucuyla eşleşen hazır bir WebAuthn login arayüz bileşeni sunar.

RFC'ler, Derleyiciler ve Hedefler

Standart yolundaki şartnameler ve desteklenen her derleyicide aynı kaynak kodu.

AlanAyrıntı
OAuth2 standartlarıOAuth 2.0 (RFC 6749), PKCE (RFC 7636), Device Authorization Grant (RFC 8628), Token Revocation (RFC 7009), Token Introspection (RFC 7662), DPoP (RFC 9449).
JWT standartlarıJSON Web Token (RFC 7519), JSON Web Signature (RFC 7515), JSON Web Encryption (RFC 7516).
WebAuthn standardıWeb Authentication Level 2 (W3C), sgcWebSockets WebAuthn sunucusu üzerinden.
PlatformlarHer iki istemci de düz HTTPS ve yerel imzalamadır, bu yüzden her Delphi platformu kapsanır: Windows Win32/Win64, Linux 64-bit, macOS, iOS ve Android.
DerleyicilerDelphi ve C++ Builder 7'den 13'e.
SürümlerOAuth2 Client ve JWT Client ayrıca sgcWebSockets içinde Standard sürümünden itibaren gelir, All-Access her şeyi içerir.
LisanslamaBağımsız. sgcWebSockets Core çalışma zamanı pakete dahildir ve tam kaynak kodu içerilir.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

sgcAuth ile Geliştirin

Ücretsiz deneme sürümünü indirin ve Delphi ya da C++ Builder'dan ilk erişim token'ınızı veya imzalı JWT'nizi alın.