sgcAuth OAuth2 和 JWT, Delphi 原生支持。 还有通行密钥。

两个组件,把现代身份验证中令牌相关的部分带进您的应用程序。 TsgcHTTP_OAuth2_Client 可针对任意 OAuth2/OIDC 提供商运行授权码、PKCE、客户端凭据、资源所有者密码和设备码授权。 TsgcHTTP_JWT_Client 创建、签名并验证 JSON Web Token,既可单独使用,也可作为您的 WebSocket 和 HTTP 客户端的 Bearer 令牌来源。作为独立产品,已包含 sgcWebSockets Core 运行时。

  • OAuth2
  • JWT
  • WebAuthn 通行密钥
  • PKCE、设备码、DPoP
  • Delphi 7 至 13
  • C++ Builder
  • 完整源代码
  • 2OAuth2 和 JWT 客户端组件位于同一个组件面板页
  • 9已实现的 RFC:OAuth2、PKCE、DPoP、设备码、JWT/JWS/JWE 等
  • 5目标平台:Windows、macOS、Linux 64 位、iOS 和 Android
  • 1独立安装程序,内含 Core 运行时
  • 100%每个许可证均含源代码
观看运行效果

两分钟了解 sgcAuth。

用 Delphi 实现客户端和服务器端的 JWT、OAuth2 和 WebAuthn。带解说和字幕。点击播放前不会下载任何内容。

sgcAuth 快速入门

令牌、委托授权和通行密钥,合在一个包里。

  1. 三种上手方式已知用户身份时用 JWT,身份由第三方持有时用 OAuth2,完全不用密码时用 WebAuthn。
  2. 签发 JWT设置算法和密钥,填写标准声明,然后把组件作为 Bearer 令牌附加到 WebSocket 或 HTTP 客户端。
  3. 在服务器端验证签名、 exp 和 nbf 都会被检查,带有无效令牌的请求永远不会到达您的处理程序。
  4. 一个组件搞定 OAuth2客户端 id、提供商 URL、范围和授权类型。它会替您打开浏览器并运行本地重定向服务器。
  5. WebAuthn 与通行密钥注册和断言由服务器组件驱动。私钥永远不会离开设备。
包含什么

一个任务一个组件,统一的 API 风格。

把组件放到窗体上,设置提供商或密钥信息,连接事件,然后调用 Start 或 Sign。两个组件的命名保持一致,因此无论使用哪种授权或算法,身份验证流程读起来都一样。

所有授权类型,一个组件

TsgcHTTP_OAuth2_Client 通过 OAuth2Options.GrantType 在以下值之间切换: auth2Code 适用于可信的服务器端应用, auth2CodePKCE 适用于原生、移动和单页应用, auth2ClientCredentials 适用于守护进程和服务账号, auth2ResourceOwnerPassword,以及 auth2DeviceCode (RFC 8628)适用于智能电视、自助终端和其他输入受限的设备。

查看 OAuth2 客户端 →

完整的令牌生命周期

Start 会打开系统浏览器,并通过 LocalServerOptions 启动一个小型本地 HTTP 服务器来接收重定向,再通过纯 HTTPS 用授权码换取令牌。 Refresh, Revoke 和 Introspect 覆盖之后的令牌生命周期,而 DPoPOptions 则为有此要求的提供商增加持有证明(RFC 9449)。

生命周期方法 →

签名、附加或验证,随您选择

TsgcHTTP_JWT_Client 通过 JWTOptions公开 RFC 7519 所需的一切:JOSE Header、已注册的 Payload 声明(iss, sub, aud, exp, nbf, iat, jti,外加自定义声明),以及 HMAC、RSA 和 ECDSA 的密钥材料。调用 Sign 可直接获得紧凑序列化的令牌,或者设置 RefreshTokenAfter 让组件自动重新签名。

查看 JWT 客户端 →

每个请求都带最新的 Bearer 令牌

JWT 组件可直接接入 Authentication.Token.JWT 属性,适用于 TsgcWebSocketClient, TsgcHTTP1Client 和 TsgcHTTP2Client,因此每个出站请求都带有最新的 Bearer 令牌,无需写一行请求头代码。

查看代码 →

通行密钥,通过 sgcCustomIndy

无密码登录由 TsgcWSAPIServer_WebAuthn提供,这是 sgcWebSockets Enterprise/All-Access 组件,基于 sgcCustomIndy 作为附加组件提供的修补版 Indy 库。订购 sgcAuth 时始终包含它,TOTP、LDAP、SAML、OpenID Connect 和 Mail OAuth2 组件也是如此。

查看它的功能 →

登录、服务账号和您自己的 API

使用 Google 或 Microsoft 登录、服务器到服务器的 API 访问、智能电视和自助终端、无需反复提示的长会话,以及用于您自己的 WebSocket 和 HTTP API 的 Bearer 令牌。两个组件都能在 VCL 或 FMX 应用程序、服务或控制台进程中顺利运行。

功能矩阵 →

纯 HTTPS 与签名,无需原生库

两个组件除 Core 运行时的 HTTP 客户端栈和平台的加密原语外不依赖任何其他东西,因此凡是 Delphi 能编译运行的地方都能使用:Windows、macOS、Linux 64 位、iOS 和 Android。支持从 Delphi 7 到 RAD Studio 13,以及 C++ Builder。

功能矩阵 →

任意提供商,内置预设

sgcAuth 遵循公开发布的 OAuth2/OIDC 和 JWT/JWS 标准,而不是封装某个厂商的 SDK,因此提供商由您选择:Google、Microsoft、Auth0、Okta、Keycloak,或任何符合 RFC 的授权服务器。现成的 Google 和 Microsoft 预设会为您配置常用端点和范围。

提供商设置 →

完整源代码,免版税

sgcAuth 是独立包,内置其所依赖的 sgcWebSockets Core 运行时,每个许可证都附带完整源代码,因此您可以在自己的调试器中单步跟踪令牌交换。部署免版税。

查看价格 →

各组件的参考页面:

代码

获取令牌,签发令牌。

配置选项,然后调用方法。两个组件都可在 Delphi 7 到 13 和 C++ Builder 中编译,.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;

在 Object Pascal 和 C++ Builder 中写法一致。 完整功能矩阵 →

  1. 把组件放到窗体上TsgcHTTP_OAuth2_Client 和 TsgcHTTP_JWT_Client 位于同一个组件面板页。
  2. 设置提供商或密钥OAuth2 需要授权和令牌 URL、客户端 id 和范围。JWT 需要算法、密钥或密钥对以及声明。
  3. 连接事件OnAfterAccessToken 会把令牌交给您,刷新、撤销和内省调用遵循同样的模式。
  4. 调用 Start 或 Sign或者把 JWT 组件交给 WebSocket 或 HTTP 客户端,让它为每个请求附加最新的 Bearer 令牌。
近距离看看

三种上手方式,一个包。

sgcAuth 快速入门视频的截图。

JWT 作为 Bearer 令牌从客户端组件传到服务器,服务器检查签名、exp、nbf、iss 和 aud

客户端签名,服务器端校验。

JWT 客户端使用 HMAC、RSA 或 ECDSA 签名,并作为 Authorization: Bearer 请求头随请求一起发送。另一端用相同的密钥或公钥校验签名,已过期和尚未生效的令牌会被拒绝,带有无效令牌的请求永远不会到达您的处理程序。

sgcAuth 中的 OAuth2 授权类型:授权码、带 PKCE 的授权码、客户端凭据、资源所有者密码和设备码,以及刷新、撤销、内省和 DPoP

选择适合应用的授权类型。

有后端的 Web 应用用授权码,原生和移动应用用 PKCE,机器到机器用客户端凭据,电视和游戏机用设备码。刷新、撤销、内省和 DPoP 也一并替您处理。

浏览器、验证器和您的服务器之间的 WebAuthn 流程:质询、签名、验证

没有密码,也没有可能泄露的共享密钥。

服务器发送随机质询,验证器用私钥对其签名,服务器再用保存的公钥校验。用户可使用通行密钥、指纹或硬件密钥登录,私钥永远不会离开设备。

购买之前

先了解四件事。

sgcAuth 需要您准备什么、您是否已经拥有这些组件、WebAuthn 还需要什么,以及支持哪些 IDE。答案都很简短,而且就写在本页,而不是藏在小字条款里。

job          component                grants / algorithms
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

already 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.
  1. sgcAuth 是独立产品已包含 sgcWebSockets Core 运行时:两个组件发送令牌请求所用的 HTTP/TLS 客户端栈,以及解析响应的 JSON 机制。一个安装程序,附带完整源代码。
  2. 您的 sgcWebSockets 版本中已经包含了吗?两个客户端自 Standard 版起就包含在 sgcWebSockets 中。sgcAuth 面向相反的情形:无需购买完整的 sgcWebSockets 版本,即可获得 OAuth2 和 JWT 客户端支持。
  3. WebAuthn 需要 sgcCustomIndyTsgcWSAPIServer_WebAuthn 基于 sgcCustomIndy 作为附加组件提供的修补版 Indy 库。订购 sgcAuth 时始终包含它,所示的 sgcAuth 价格已涵盖。
  4. Delphi 和 C++ BuildersgcAuth 支持从 Delphi 7 到 RAD Studio 13,以及 C++ Builder。免费试用安装程序是 sgcWebSockets All-Access 试用版,因此今天就可以评估这两个组件。

授权、刷新、撤销和签名都是一等公民的方法和事件,完整源代码意味着中间没有任何黑盒。 所有组件和属性 →

sgcWebSockets 的一部分

单独许可,或已包含在您的版本中。

sgcAuth 是 sgcWebSockets 家族的一个包。可以连同内置的 Core 运行时单独购买,也可以通过 Standard 及以上的任意 sgcWebSockets 版本获得两个客户端。

sgcAuth

OAuth2 和 JWT 客户端,独立产品,含 sgcWebSockets Core 运行时。

€298 / Single 许可证
  • OAuth2 客户端:授权码、PKCE、客户端凭据、设备码
  • JWT 客户端,用于签发、签名和验证令牌
  • WebAuthn 通行密钥,通过 sgcCustomIndy(已包含)
  • TOTP、LDAP、SAML、OpenID Connect 和 Mail OAuth2,通过 sgcCustomIndy
  • 完整源代码和 1 年更新
sgcAuth 价格 →

Team 与 Site

同一个包,按整个团队或整个站点授予许可证。

Team €498 Site €798
  • Single 许可证的全部内容
  • sgcWebSockets Core 运行时许可证,免费包含
  • WebAuthn 所需的 sgcCustomIndy,始终包含
  • Delphi 7 到 13 和 C++ Builder
比较许可证 →

sgcWebSockets

完整的库:WebSocket 客户端和服务器、HTTP/2、IoT、P2P 和 AI 组件。它的各个版本同样包含 OAuth2 和 JWT 客户端。

€380 / Standard
  • 两个客户端自 Standard 版起提供
  • WebAuthn、TOTP、LDAP、SAML、OpenID Connect 和 Mail OAuth2 组件包含在 Enterprise 版中
  • Core 运行时就在这里
了解 sgcWebSockets →

如果您拥有任意 sgcWebSockets 版本,就已经拥有这两个客户端。sgcAuth 适合无需购买完整 sgcWebSockets 版本、只需 OAuth2 和 JWT 的用户。

查看价格和许可证
用户评价

开发者怎么说

受到全球各地 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。

你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!
Simone Moretti Delphi 开发者
sgcWebSockets 非常出色,你们的支持也是最棒的!
Christian Meyer 创始人兼首席技术官
非常感谢你们的帮助和支持,我很喜欢你们的组件。
Mark Steinfeld 首席技术官

交付身份验证,而不只是一个令牌库。

OAuth2 和 JWT 合在一个包里,内置 sgcWebSockets Core 运行时,并附带完整源代码。

生态系统

eSeGeCe 的其他产品

sgcAuth 是 eSeGeCe 面向 Delphi、C++ Builder 和 .NET 的组件库之一。它们遵循统一的约定,附带完整源代码,并可免版税部署。

sgcWebSockets

面向 Delphi、C++ Builder、Lazarus 和 .NET 的 WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI 以及 30 多种 API 集成。Core 运行时就在这里。

sgcHTTP

面向 Delphi 和 C++ Builder 的 HTTP 服务器、HTTP/2 客户端、gRPC 客户端以及 Google Cloud Pub/Sub、Calendar 和 FCM 客户端。独立产品,随附 sgcWebSockets Core 运行时。

sgcREST

面向 Delphi 和 C++ Builder 的 REST 服务器、OpenAPI 服务器和 OpenAPI 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

sgcMQ

面向 Delphi 和 C++ Builder 的 MQTT、AMQP 0.9.1 和 1.0、Apache Kafka 与 STOMP 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

sgcAI

面向 Delphi 和 C++ Builder 的 AI、LLM 和 MCP 组件。一个组件即可对接七家 LLM 提供商,另有 MCP、嵌入和语音。独立产品,随附 sgcWebSockets Core 运行时。

sgcSocial

面向 Delphi 和 C++ Builder 的 Telegram 与 WhatsApp Business 客户端组件。独立产品,内置 sgcWebSockets Core 运行时。

sgcHTML

基于 Bootstrap 5 和 htmx 的服务器端 HTML 与界面组件,包括 WebAuthn 登录界面组件。

sgcQUIC

原生 QUIC 传输以及 HTTP/3 客户端和服务器,支持 WebTransport。sgcWebSockets Enterprise 的附加组件。

sgcOpenAPI

OpenAPI 3.x 解析器、原生 Pascal SDK 生成器、OpenAPI 服务器组件,以及 1,195+ 预构建云 SDK。

sgcSign

文档使用 XAdES、PAdES、CAdES 和 ASiC,代码使用 Authenticode、ClickOnce、NuGet 和 VSIX。

sgcPDF

使用纯 Object Pascal 创建、编辑、查看、签名、涂黑并验证 PDF 文件,无需部署任何 DLL。单独许可销售。

sgcBiometrics

面向 Delphi 和 C++ Builder 的 Windows Hello、指纹传感器和 Windows 生物特征框架。

扩展包、附加组件及更多

博客最新动态

查看全部文章 →

您正在查看 eSeGeCe 的 sgcAuth 视角。

换个角度看看 →
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策