OAuth 2.0 공급자

Delphi에서 자체 OAuth 2.0 인증 서버를 구축하세요. PKCE, 서명된 JWT 액세스 토큰, 플러그 가능한 저장소를 갖춘 authorize, token, refresh, revoke 엔드포인트를 제공해요.

TsgcHTTP_OAuth2_Server_Provider

완전한 OAuth 2.0 인증 서버 구현이에요: 클라이언트를 등록하고 인증 코드를 발급하며, 액세스 + 갱신 토큰으로 교환하고, JWT에 서명하며, PKCE, 갱신 교체, 해지를 지원해요.

컴포넌트 클래스

TsgcHTTP_OAuth2_Server_Provider

프로토콜

OAuth 2.0 (RFC 6749)

플랫폼

Windows, macOS, Linux, iOS, Android

에디션

Enterprise

놓고, 클라이언트 구성, 실행

TsgcHTTP_OAuth2_Server_Provider를 놓고, client_ids와 redirect_uris를 등록하고, TsgcWebSocketHTTPServer에 연결하세요 — 표준 엔드포인트(/authorize, /token, /revoke)가 사용 가능해져요.

uses
  sgcWebSocket, sgcHTTP;

var
  Server: TsgcWebSocketHTTPServer;
  Provider: TsgcHTTP_OAuth2_Server_Provider;
begin
  Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
  Provider.OAuth2Options.AuthorizationEndpoint := '/oauth/authorize';
  Provider.OAuth2Options.TokenEndpoint         := '/oauth/token';
  Provider.OAuth2Options.RevocationEndpoint    := '/oauth/revoke';
  Provider.OAuth2Options.PKCE.Required := True;

  Provider.OnAuthorizeRequest := procedure(Sender: TObject;
    const aRequest: TsgcOAuth2_AuthorizeRequest;
    var aResponse: TsgcOAuth2_AuthorizeResponse)
  begin
    // validate user session, issue or deny the auth code
    aResponse.Code := GenerateAuthCode(aRequest.ClientId, aRequest.UserId);
  end;

  Server := TsgcWebSocketHTTPServer.Create(nil);
  Server.Port := 8443;
  Server.SSL  := True;
  Server.OAuth2.Provider := Provider;
  Server.Active := True;
end;
// uses: sgcWebSocket, sgcHTTP
TsgcHTTP_OAuth2_Server_Provider *Provider = new TsgcHTTP_OAuth2_Server_Provider(this);
Provider->OAuth2Options->AuthorizationEndpoint = "/oauth/authorize";
Provider->OAuth2Options->TokenEndpoint        = "/oauth/token";

TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->OAuth2->Provider = Provider;
Server->Active = true;

내부 구성

직접 호스팅하는 인증 서버예요. /authorize부터 리프레시 토큰 교체까지 모두 하나의 Delphi 컴포넌트로 처리해요.

Authorize 엔드포인트

GET /authorize 요청을 처리하고 response_type, client_id, redirect_uri를 검증한 다음, 사용자 세션 로그인 UI를 위해 OnAuthorizeRequest를 발생시켜요.

Token 엔드포인트

POST /token은 authorization_code, refresh_token, client_credentials grant에 대해 액세스 토큰과 리프레시 토큰을 발급해요. PKCE code_verifier는 RFC 7636에 따라 검증해요.

JWT 서명 액세스 토큰

원하면 자체 완결형 JWT 액세스 토큰(HS 또는 RS / ES)을 발급할 수 있어요. 리소스 서버가 introspection 왕복 없이 검증할 수 있어요.

리프레시 토큰 교체

OAuth2Options.RefreshToken.Rotation을 켜면 갱신할 때마다 새 리프레시 토큰이 발급되고 이전 토큰은 무효화돼요. OAuth 2.1 모범 사례에 부합해요.

Revocation 엔드포인트

POST /revoke는 RFC 7009에 따라 액세스 토큰 또는 리프레시 토큰을 무효화해요. Bearer와 client_credentials 폐기를 모두 지원해요.

교체 가능한 저장소

OnLookupClient, OnPersistAuthCode, OnPersistRefreshToken 등으로 FireDAC, SQLite, Redis 또는 직접 만든 DAL을 프로바이더의 저장소로 사용할 수 있어요.

사양 및 참조

이 컴포넌트가 구현하는 표준의 공식 출처예요.

문서 및 데모

컴포넌트 레퍼런스 링크, 즉시 실행 가능한 데모 프로젝트, 체험판 다운로드를 제공해요.

온라인 도움말 — TsgcHTTP_OAuth2_Server_Provider 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요.
Demo Project — Demos\20.HTTP_Protocol\08.OAuth2_ServerProvider 즉시 실행 가능한 예제 프로젝트예요. sgcWebSockets 패키지에 포함돼 있어요 — 아래에서 체험판을 다운로드하세요.
기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 기본 출처 참조를 포함해요.
사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼이에요.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

나만의 OAuth 2.0 프로바이더를 운영할 준비가 되셨나요?

무료 체험판을 내려받아 Delphi로 OAuth 2.0 인증 서버를 구축해 보세요.