두 개의 컴포넌트로 최신 인증의 토큰 영역을 애플리케이션에 담아요. TsgcHTTP_OAuth2_Client는 모든 OAuth2/OIDC 제공업체를 대상으로 Authorization Code, PKCE, Client Credentials, Resource Owner Password, Device Code 그랜트를 실행해요. TsgcHTTP_JWT_Client는 JSON Web Token을 만들고, 서명하고, 검증하며, 단독으로 쓰거나 WebSocket 및 HTTP 클라이언트의 Bearer 토큰 소스로 사용할 수 있어요. 단독 제품이며 sgcWebSockets Core 런타임이 포함돼요.
9구현한 RFC: OAuth2, PKCE, DPoP, Device Code, JWT/JWS/JWE 등
5대상 플랫폼: Windows, macOS, Linux 64비트, iOS, Android
1Core 런타임이 들어 있는 단독 설치 프로그램
100%모든 라이선스에 소스 코드 포함
직접 실행해 보기
2분 만에 보는 sgcAuth.
Delphi에서 클라이언트와 서버 양쪽의 JWT, OAuth2, WebAuthn을 다뤄요. 해설과 자막이 있어요. 재생 버튼을 누르기 전에는 아무것도 내려받지 않아요.
sgcAuth 퀵 스타트
토큰, 위임된 권한 부여, 패스키를 하나의 패키지로.
세 가지 시작 방법사용자를 이미 알고 있다면 JWT, 제3자가 신원을 보유한다면 OAuth2, 비밀번호가 아예 없다면 WebAuthn을 쓰세요.
JWT 서명하기알고리즘과 시크릿을 설정하고 표준 클레임을 채운 다음, 컴포넌트를 WebSocket 또는 HTTP 클라이언트에 Bearer 토큰으로 연결해요.
서버에서 검증하기서명, exp, nbf를 확인하고, 잘못된 토큰이 담긴 요청은 핸들러에 도달하지 못해요.
컴포넌트 하나로 OAuth2클라이언트 id, 제공업체 URL, 스코프, 그랜트 유형을 설정해요. 브라우저를 열고 로컬 리디렉션 서버도 대신 실행해 줘요.
WebAuthn과 패스키등록과 어설션을 서버 컴포넌트가 처리해요. 개인 키는 기기 밖으로 나가지 않아요.
패키지 구성
작업마다 컴포넌트 하나, API 스타일은 하나.
폼에 컴포넌트를 올리고, 제공업체나 키 정보를 설정하고, 이벤트를 연결한 다음 Start나 Sign을 호출하면 돼요. 두 컴포넌트의 이름 규칙이 일관되어서, 어떤 그랜트나 알고리즘을 쓰든 인증 흐름이 똑같이 읽혀요.
모든 그랜트 유형을 컴포넌트 하나로
TsgcHTTP_OAuth2_Client는 OAuth2Options.GrantType으로 그랜트를 지정해요. 신뢰할 수 있는 서버 사이드 앱에는 auth2Code, 네이티브, 모바일, 싱글 페이지 앱에는 auth2CodePKCE, 데몬과 서비스 계정에는 auth2ClientCredentials, 그리고 auth2ResourceOwnerPassword가 있고, 스마트 TV, 키오스크처럼 입력이 제한된 기기에는 auth2DeviceCode(RFC 8628)를 쓰면 돼요.
Start는 시스템 브라우저를 열고 LocalServerOptions로 작은 로컬 HTTP 서버를 띄워 리디렉션을 받은 다음, 일반 HTTPS로 코드를 토큰으로 교환해요. 이후의 토큰 수명 주기는 Refresh, Revoke, Introspect가 맡고, 요구하는 제공업체를 위해 DPoPOptions가 소유 증명(RFC 9449)을 더해 줘요.
TsgcHTTP_JWT_Client는 RFC 7519에 필요한 모든 것을 JWTOptions로 제공해요. JOSE Header, 등록된 Payload 클레임(iss, sub, aud, exp, nbf, iat, jti, 사용자 정의 클레임), 그리고 HMAC, RSA, ECDSA용 키 자료가 포함돼요. 컴팩트 직렬화 토큰이 필요하면 Sign을 직접 호출하고, RefreshTokenAfter를 설정하면 컴포넌트가 자동으로 다시 서명해요.
비밀번호 없는 로그인은 TsgcWSAPIServer_WebAuthn이 담당해요. sgcWebSockets Enterprise/All-Access 컴포넌트이며, 애드온으로 제공되는 sgcCustomIndy의 패치된 Indy 라이브러리 위에서 동작해요. sgcAuth를 주문하면 항상 포함되고, TOTP, LDAP, SAML, OpenID Connect, Mail OAuth2 컴포넌트도 함께 포함돼요.
Google이나 Microsoft로 로그인하기, 서버 간 API 접근, 스마트 TV와 키오스크, 다시 묻지 않는 긴 세션, 그리고 여러분의 WebSocket 및 HTTP API를 위한 Bearer 토큰까지 지원해요. 두 컴포넌트 모두 VCL 또는 FMX 애플리케이션, 서비스, 콘솔 프로세스 안에서 문제없이 동작해요.
두 컴포넌트는 Core 런타임의 HTTP 클라이언트 스택과 플랫폼의 암호화 기본 요소 외에는 아무것도 필요 없어서, Delphi가 동작하는 곳이면 어디서나 컴파일하고 실행할 수 있어요. Windows, macOS, Linux 64비트, iOS, Android를 지원하고, Delphi 7부터 RAD Studio 13까지, 그리고 C++ Builder에서 사용할 수 있어요.
sgcAuth는 특정 벤더 SDK를 감싸는 대신 공개된 OAuth2/OIDC 및 JWT/JWS 표준을 그대로 따르므로 제공업체는 마음대로 고를 수 있어요. Google, Microsoft, Auth0, Okta, Keycloak, 또는 RFC를 준수하는 모든 권한 부여 서버를 쓸 수 있어요. 준비된 Google과 Microsoft 프리셋이 흔히 쓰는 엔드포인트와 스코프를 대신 설정해 줘요.
옵션을 설정하고 메서드를 호출하면 돼요. 두 컴포넌트 모두 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 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;
Object Pascal과 C++ Builder에서 구조는 똑같아요. 전체 기능 매트릭스 →
폼에 컴포넌트 올리기TsgcHTTP_OAuth2_Client와 TsgcHTTP_JWT_Client는 같은 팔레트 페이지에 있어요.
제공업체 또는 키 설정OAuth2는 인증 및 토큰 URL, 클라이언트 id, 스코프를, JWT는 알고리즘, 시크릿 또는 키 쌍, 클레임을 설정해요.
이벤트 연결OnAfterAccessToken이 토큰을 전달하고, 갱신, 취소, 인트로스펙트 호출도 같은 패턴을 따라요.
Start 또는 Sign 호출아니면 JWT 컴포넌트를 WebSocket 또는 HTTP 클라이언트에 넘겨, 모든 요청에 새 Bearer 토큰이 붙게 할 수도 있어요.
자세히 보기
시작하는 세 가지 방법, 패키지는 하나.
sgcAuth 퀵 스타트 영상의 프레임이에요.
클라이언트에서 서명하고, 서버에서 검증해요.
JWT 클라이언트는 HMAC, RSA, ECDSA로 서명하고 Authorization: Bearer 헤더에 실려 전달돼요. 반대편에서는 같은 시크릿 또는 공개 키로 서명을 확인하고, 만료되었거나 아직 유효하지 않은 토큰은 거부하며, 잘못된 토큰이 담긴 요청은 핸들러에 도달하지 못해요.
앱에 맞는 그랜트를 고르세요.
백엔드가 있는 웹 앱에는 Authorization Code, 네이티브와 모바일 앱에는 PKCE, 기계 간 통신에는 Client Credentials, TV와 콘솔에는 Device Code를 쓰세요. 갱신, 취소, 인트로스펙션, DPoP도 알아서 처리해요.
비밀번호도, 유출될 공유 시크릿도 없어요.
서버가 무작위 챌린지를 보내면 인증기가 개인 키로 서명하고, 서버는 저장된 공개 키로 이를 확인해요. 사용자는 패스키, 지문, 하드웨어 키로 로그인하며 개인 키는 기기 밖으로 나가지 않아요.
구매 전에
먼저 알아 두면 좋은 네 가지.
sgcAuth가 여러분에게 무엇을 필요로 하는지, 이 컴포넌트를 이미 갖고 있는지, WebAuthn에는 무엇이 추가로 필요한지, 그리고 어떤 IDE를 지원하는지 알려 드려요. 답은 모두 짧고, 깨알 같은 약관이 아니라 바로 이 페이지에 있어요.
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는 단독 제품이에요sgcWebSockets Core 런타임이 포함돼요. 두 컴포넌트가 토큰 요청을 POST하는 HTTP/TLS 클라이언트 스택과 응답을 파싱하는 JSON 기능이 그 안에 있어요. 설치 프로그램 하나에 전체 소스 코드까지 들어 있어요.
이미 sgcWebSockets 에디션에 있나요?두 클라이언트는 sgcWebSockets Standard 에디션부터 포함돼요. sgcAuth는 그 반대 경우를 위한 제품이에요. 전체 sgcWebSockets 에디션 라이선스 없이 OAuth2와 JWT 클라이언트를 쓰고 싶을 때 적합해요.
WebAuthn에는 sgcCustomIndy가 필요해요TsgcWSAPIServer_WebAuthn은 애드온으로 제공되는 sgcCustomIndy의 패치된 Indy 라이브러리 위에서 동작해요. sgcAuth를 주문하면 항상 포함되며, 표시된 sgcAuth 가격에 이미 반영되어 있어요.
Delphi와 C++ BuildersgcAuth는 Delphi 7부터 RAD Studio 13까지, 그리고 C++ Builder를 지원해요. 무료 체험판 설치 프로그램은 sgcWebSockets All-Access 체험판이라서 두 컴포넌트를 지금 바로 평가해 볼 수 있어요.
그랜트, 갱신, 취소, 서명은 모두 일급 메서드와 이벤트로 제공되고, 전체 소스 코드가 있으니 중간에 블랙박스는 없어요. 모든 컴포넌트와 속성 →
sgcWebSockets의 일부
단독으로 라이선스하거나, 이미 에디션에 포함돼 있어요.
sgcAuth는 sgcWebSockets 제품군의 패키지 중 하나예요. Core 런타임이 번들로 포함된 단독 제품으로 구매하거나, Standard 이상의 sgcWebSockets 에디션에서 두 클라이언트를 모두 받을 수 있어요.
sgcAuth
OAuth2 및 JWT 클라이언트를 단독 제품으로 제공하며 sgcWebSockets Core 런타임이 포함돼요.