sgcAuth: Delphi & C++ Builder를 위한 OAuth2, JWT & WebAuthn 컴포넌트
단독 제품 OAuth2, JWT & WebAuthn

sgcAuth: Delphi & C++ Builder를 위한 OAuth2, JWT & WebAuthn 컴포넌트

두 개의 클라이언트 컴포넌트가 최신 인증의 토큰 처리를 애플리케이션에 그대로 옮겨 줍니다. TsgcHTTP_OAuth2_Client는 모든 OAuth2/OIDC 제공자를 대상으로 Authorization Code, PKCE, Client Credentials, Resource Owner Password, Device Code 그랜트를 실행합니다. TsgcHTTP_JWT_Client는 JSON Web Token을 생성, 서명, 검증하며, 단독으로 사용하거나 WebSocket 및 HTTP 클라이언트의 Bearer 토큰 소스로도 사용할 수 있습니다. sgcAuth는 단독 제품으로, 두 클라이언트가 기반으로 삼는 sgcWebSockets Core 런타임을 함께 포함합니다.

전체 소스 코드
Delphi 7부터 13까지 & C++ Builder
번들 런타임 sgcWebSockets Core 두 클라이언트를 뒷받침하는 HTTP, TLS, JSON 런타임
OAuth2 TsgcHTTP_OAuth2_Client
JWT TsgcHTTP_JWT_Client
2 클라이언트 컴포넌트 컴포넌트 팔레트의 한 페이지
9 구현된 RFC OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE 외
5 지원 플랫폼 Windows, macOS, Linux, iOS, Android
100% 포함된 소스 코드 두 클라이언트와 함께 포함된 Core 런타임
12 업데이트 개월 수 라이선스가 유효한 동안 발행되는 모든 릴리스

먼저 알아 두면 좋은 세 가지

sgcAuth에 무엇이 필요한지, 이 컴포넌트를 이미 갖고 있는지, 그리고 WebAuthn에는 무엇이 추가로 필요한지. 세 답 모두 간단합니다.

sgcAuth는 자체 완결형 제품입니다

단독 제품으로 sgcWebSockets Core 런타임이 포함되어 있습니다. 두 컴포넌트가 토큰 요청을 전송하는 HTTP/TLS 클라이언트 스택과, 응답을 파싱하는 JSON 처리 로직까지 모두 포함됩니다. 하나의 SKU, 하나의 설치 프로그램입니다.

모든 라이선스에 전체 소스 코드가 함께 제공되므로, 두 클라이언트와 그 아래의 런타임이 바이너리 속으로 사라지지 않고 직접 디버거로 단계별 추적이 가능합니다.

에디션 중복

이미 sgcWebSockets 에디션에 포함되어 있나요?

OAuth2 클라이언트와 JWT 클라이언트는 모두 sgcWebSockets Standard 에디션부터 함께 제공되므로, 이미 sgcWebSockets 에디션을 보유하고 있다면 두 컴포넌트를 이미 갖고 있는 것입니다. All-Access에는 모든 것이 포함됩니다.

sgcAuth는 그 반대의 경우를 위한 제품입니다. 전체 sgcWebSockets 에디션을 라이선스하지 않고도 Delphi나 C++ Builder에서 OAuth2와 JWT 클라이언트 지원이 필요한 경우입니다. 구매하기 전에 보유한 에디션이 이미 무엇을 지원하는지 확인하세요.

애드온 필요

WebAuthn에는 sgcCustomIndy가 필요합니다

WebAuthn을 이용한 패스워드 없는 로그인은 TsgcWSAPIServer_WebAuthn이 제공하며, 이는 sgcCustomIndy가 애드온으로 제공하는 패치된 Indy 라이브러리 위에 구축된 sgcWebSockets Enterprise/All-Access 컴포넌트입니다. WebAuthn에는 sgcCustomIndy 애드온이 필요하며, sgcAuth를 주문하면 자동으로 함께 추가됩니다.

이미 sgcCustomIndy 라이선스를 보유하고 계신가요? 결제 전에 장바구니에서 자동으로 추가된 항목을 제거하시면 됩니다. 어느 쪽이든 추가 비용은 없습니다.

두 개의 클라이언트, 토큰 생애 주기 전체

각각 폼에 올리거나 코드에서 생성하는 비시각 컴포넌트로, sgc 유닛 접두사 아래 선언되어 있고 SGC Auth 팔레트 페이지에 등록되어 있습니다. 제공자 정보를 설정하고 이벤트를 연결한 다음 Start를 호출하면 됩니다.

OAuth2컴포넌트 1종

다섯 가지 그랜트 타입, 컴포넌트 하나

TsgcHTTP_OAuth2_ClientOAuth2Options.GrantType을 통해 신뢰할 수 있는 서버 측 앱을 위한 auth2Code, 네이티브/모바일/싱글 페이지 앱을 위한 auth2CodePKCE, 데몬과 서비스 계정을 위한 auth2ClientCredentials, auth2ResourceOwnerPassword, 그리고 스마트 TV, 키오스크 등 입력이 제한된 기기를 위한 auth2DeviceCode(RFC 8628)를 지원합니다. AuthorizationServerOptions에 제공자의 authorize, token, revocation, introspection 엔드포인트를 설정하면 나머지는 컴포넌트가 처리합니다. Active/Start가 Authorization Code 플로우를 실행하면 시스템 브라우저를 열고 LocalServerOptions로 작은 로컬 HTTP 서버를 세워 리디렉션을 받은 다음, HTTPClientOptions를 통해 일반 HTTPS로 코드를 토큰과 교환합니다. 이후의 토큰 생애 주기는 Refresh, Revoke, Introspect가 담당하며, DPoPOptionsGenerateDPoPKeyPair는 이를 요구하는 제공자를 위해 DPoP 소유 증명(RFC 9449)을 추가합니다. 미리 구성된 Google 및 Microsoft 프리셋이 공통 엔드포인트와 스코프를 대신 설정해 줍니다.

TsgcHTTP_OAuth2_Client RFC 6749 · PKCE · Device Code · DPoP
JWT컴포넌트 1종

서명, 첨부, 검증까지 원하는 대로

TsgcHTTP_JWT_ClientJWTOptions를 통해 RFC 7519가 요구하는 모든 것을 제공합니다. JOSE Header(alg, typ, kid), 등록된 Payload 클레임(iss, sub, aud, exp, nbf, iat, jti, 그리고 AddKeyValue로 추가하는 사용자 지정 클레임), 그리고 HMAC(HS.Secret), RSA(RS.PrivateKey), ECDSA(ES.PrivateKey)를 위한 Algorithms 아래의 키 자료입니다. Sign을 호출하면 내장 HTTP나 WebSocket 클라이언트가 없는 서비스에도 유용한, 컴팩트 직렬화된 토큰을 바로 반환받을 수 있고, RefreshTokenAfter를 설정하면 컴포넌트가 iat/exp를 자동으로 갱신하고 다시 서명합니다. 같은 컴포넌트가 TsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2ClientAuthentication.Token.JWT에 그대로 연결되므로, 헤더를 직접 건드리지 않아도 모든 발신 요청에 새로운 Bearer 토큰이 실립니다.

TsgcHTTP_JWT_Client RFC 7519 · JWS · JWE

Delphi 코드로 구현하는 인증 흐름

두 컴포넌트 모두 평범한 비시각 컴포넌트이므로, VCL 데스크톱 앱, Windows 서비스, Linux 데몬 등 이미 사용 중인 애플리케이션 형태에 그대로 들어맞습니다. 다음은 고객들이 구현하는 패턴이며, 각각 이를 구동하는 속성이나 메서드와 함께 제시합니다.

Google 또는 Microsoft로 로그인 auth2CodePKCE

미리 구성된 Google 및 Microsoft 프리셋이 authorize 및 token 엔드포인트와 스코프를 대신 설정해 줍니다.

서버 간 API 접근 auth2ClientCredentials

백그라운드 작업과 서비스 계정이 사용자 없이 API에 인증합니다.

스마트 TV, 키오스크 & IoT 기기 auth2DeviceCode

기기가 짧은 코드를 보여주고, 사용자는 휴대폰이나 노트북에서 로그인을 완료합니다.

재요청 없는 장기 세션 Refresh

브라우저로 다시 이동할 필요 없이 백그라운드에서 리프레시 토큰을 새 액세스 토큰으로 교환합니다.

자체 WebSocket & HTTP API 인증 Authentication.Token.JWT

JWT 클라이언트가 TsgcWebSocketClient, TsgcHTTP1Client, TsgcHTTP2Client의 Bearer 토큰을 자동으로 서명합니다.

독립적인 토큰 서명 Sign

WebSocket이나 HTTP 컴포넌트 없이도 어떤 코드베이스에서든 JWT 문자열을 생성하고 서명합니다.

브라우저 전환, 서명, 그리고 번들 런타임

OAuth2와 JWT는 서로 다른 문제를 풉니다. 하나는 원격 서버와 토큰을 협상하고, 다른 하나는 로컬에서 토큰에 서명합니다. 바로 그 점이 둘을 함께 패키징한 이유입니다. sgcAuth는 이 차이를 동일한 컴포넌트 관례 뒤로 감추고, 번들로 포함된 sgcWebSockets Core 런타임이 그 아래에서 배관 역할을 담당합니다.

OAuth2는 브라우저 전환 후 일반 HTTPS로 이어집니다

Start는 시스템 브라우저를 열고(Device Code의 경우 표시할 사용자 코드를 전달하고), LocalServerOptions로 만들어진 로컬 HTTP 리스너가 인증 리디렉션을 받습니다. 액세스 토큰 교환은 Core 런타임의 HTTP 클라이언트 스택 위에서 HTTPClientOptions를 통해 발행되는 일반 HTTPS POST입니다.

JWT는 네트워킹이 아니라 서명입니다

TsgcHTTP_JWT_Client는 소켓을 열지 않습니다. JWTOptions가 헤더, 페이로드, 키 자료를 구성하고, Sign이 HMAC, RSA, ECDSA로 서명된 컴팩트 직렬화 토큰을 반환하며, 이는 사용자 코드가 보내는 어떤 요청에도 바로 첨부할 수 있습니다.

Core 런타임이 패키지 안에 포함되어 있습니다

단독 제품으로 sgcWebSockets Core 런타임이 포함되어 있습니다. 두 컴포넌트가 POST를 전송하는 HTTP/TLS 클라이언트 스택과 응답을 읽는 JSON 파서를 제공하며, 다른 모든 것과 마찬가지로 전체 소스가 패키지에 포함됩니다.

WebAuthn이 세 번째 조각이며, sgcCustomIndy를 통해 제공됩니다

패스워드 없는 로그인은 TsgcWSAPIServer_WebAuthn이 처리하며, 이는 sgcCustomIndy가 제공하는 패치된 Indy 빌드가 필요한 sgcWebSockets Enterprise/All-Access 서버 컴포넌트입니다. sgcAuth를 주문하면 sgcCustomIndy가 장바구니에 자동으로 추가됩니다.

토큰 받기, 토큰 서명하기

두 컴포넌트 모두 동일한 형태를 따릅니다. 옵션을 설정하고 메서드를 호출하면 됩니다. Delphi 7부터 13까지와 C++ Builder에서 컴파일되며, .NET에서도 동일한 속성이 제공됩니다.

uses
  sgcHTTP_OAuth2_Client, sgcHTTP_JWT_Client;

var
  OAuth2: TsgcHTTP_OAuth2_Client;
  JWT: TsgcHTTP_JWT_Client;
begin
  // OAuth2: PKCE를 사용하는 Authorization Code Grant
  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;   // 브라우저를 열고, 리디렉션이 로컬 서버로 도착합니다

  // JWT: 자체 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;

같은 JWT 컴포넌트를 WebSocket이나 HTTP 클라이언트에 직접 연결할 수도 있습니다. Client.Authentication.Token.Enabled := TrueClient.Authentication.Token.JWT := JWT를 설정하면 모든 요청에 새로운 Bearer 토큰이 실려 나갑니다.

// include: sgcHTTP_OAuth2_Client.hpp, sgcHTTP_JWT_Client.hpp

// OAuth2: PKCE를 사용하는 Authorization Code Grant
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();   // 브라우저를 열고, 리디렉션이 로컬 서버로 도착합니다

// JWT: 자체 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.");
}

같은 JWT 컴포넌트를 WebSocket이나 HTTP 클라이언트에 직접 연결할 수도 있습니다. Client->Authentication->Token->Enabled = trueClient->Authentication->Token->JWT = JWT를 설정하면 모든 요청에 새로운 Bearer 토큰이 실려 나갑니다.

순수 HTTPS와 서명, 네이티브 라이브러리 없음

두 컴포넌트 모두 Core 런타임의 HTTP 클라이언트 스택과 플랫폼의 암호화 기본 기능 외에는 아무것도 필요하지 않으므로, 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
IDE 지원 하나의 소스 트리, 버전별 디자인 타임 패키지
Delphi 7부터 13까지 C++ Builder
체험판 설치 프로그램 sgcWebSockets All-Access 체험판에는 Auth 컴포넌트가 포함되어 있습니다
다운로드 한 번으로 두 컴포넌트 모두

체험판 설치 프로그램 다운로드 →

단독으로 완결되는 패키지

sgcAuth는 단독으로 라이선스되며 개발자 1인 기준 €149부터 시작합니다. 모든 라이선스에 전체 소스 코드, 1년간의 업데이트, 50%에서 70%까지의 갱신 할인이 포함됩니다. 팩 1개를 갱신하면 50%, 2개는 60%, 3개 이상은 70%입니다. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP는 각각 한 팩으로 계산됩니다.

sgcAuth

€149

Single, Team, Site 라이선스를 제공합니다.

  • OAuth2 클라이언트: Authorization Code, PKCE, Client Credentials, Device Code
  • 토큰을 발급, 서명, 검증하는 JWT 클라이언트
  • sgcCustomIndy를 통한 WebAuthn 패스키(자동 추가)
  • sgcWebSockets Core 런타임 포함
  • Delphi 7부터 13까지 & C++ Builder
  • 전체 소스 코드
  • 1년간의 업데이트

sgcAuth에는 sgcWebSockets Core 런타임이 포함되어 있으므로 OAuth2와 JWT 클라이언트를 위해 추가로 구매할 것이 없습니다.

결제 화면에는 두 항목이 표시됩니다. 0원으로 청구되는 sgcWebSockets Core 런타임 사용 권한과 sgcAuth 패키지 자체입니다. WebAuthn을 위해 sgcCustomIndy가 자동으로 추가되며, 이미 보유하고 있다면 제거할 수 있습니다. 자세한 가격 정보.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

토큰 라이브러리가 아니라 인증을 제공하세요

네이티브 Delphi와 C++ Builder 코드에서 OAuth2와 JWT를 사용하세요. 런타임이 함께 포함되어 있고 전체 소스 코드가 들어 있습니다. All-Access 체험판 설치 프로그램을 다운로드하고 오늘 바로 두 컴포넌트를 폼에 올려 보세요.

eSeGeCe의 다른 제품

sgcAuth를 Delphi, C++ Builder, .NET용 다른 컴포넌트 라이브러리와 함께 사용해 보세요.

sgcWebSockets

전체 라이브러리입니다. WebSocket 클라이언트와 서버, HTTP/2, IoT, P2P, AI 컴포넌트를 제공합니다. 이 라이브러리의 에디션에는 OAuth2와 JWT 클라이언트도 포함되어 있습니다.

자세히 알아보기 →

sgcCustomIndy

sgcWebSockets Enterprise가 기반으로 삼는 커스텀 Indy 라이브러리를 애드온으로 패키징한 제품입니다. WebAuthn에 필요하며, sgcAuth 주문 시 자동으로 추가됩니다.

자세히 알아보기 →

sgcAI

AI, LLM, MCP 컴포넌트입니다. 채팅 컴포넌트 하나로 OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral에 연결합니다.

자세히 알아보기 →

sgcMQ

네이티브 MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka, STOMP 클라이언트 컴포넌트이며, Core 런타임이 함께 포함되어 있습니다.

자세히 알아보기 →

sgcSocial

WhatsApp Business Cloud API 및 Telegram TDLib 클라이언트 컴포넌트이며, Core 런타임이 함께 포함되어 있습니다.

자세히 알아보기 →

sgcHTML

Bootstrap 5와 htmx 기반의 Delphi, C++ Builder, .NET용 데이터 인식 서버 사이드 HTML/UI 컴포넌트이며, WebAuthn 로그인 UI 컴포넌트도 포함되어 있습니다.

자세히 알아보기 →