OAuth 2.0 Client

OAuth 2.0 / OAuth 2.1 クライアントコンポーネントです。PKCE 付き認可コード、クライアントクレデンシャル、デバイスコード、リフレッシュトークンのローテーション、内蔵ブラウザフローに対応しています。

TsgcHTTP_OAuth2_Client

OAuth 2.0 / 2.1 のクライアントサイドを実装しています。PKCE 付き認可コード、クライアントクレデンシャル、デバイスコード、リフレッシュトークンフローに対応しており、リダイレクト URI 用の小型組み込み HTTP リスナーも含まれています。

コンポーネントクラス

TsgcHTTP_OAuth2_Client

プロトコル

OAuth 2.0 (RFC 6749)

対応プラットフォーム

Windows, macOS, Linux, iOS, Android

エディション

Standard / Professional / Enterprise

プロバイダーを設定してフローを開始する

ClientId / ClientSecret / スコープ / エンドポイントを設定(または Google / Microsoft / GitHub のプロバイダープリセットを使用)し、StartAuthorization を呼び出した後、HTTP 呼び出しにトークンを使用してください。

uses
  sgcHTTP;

var
  OAuth2: TsgcHTTP_OAuth2_Client;
begin
  OAuth2 := TsgcHTTP_OAuth2_Client.Create(nil);
  OAuth2.OAuth2Options.ClientId     := 'your-client-id';
  OAuth2.OAuth2Options.ClientSecret := 'your-client-secret';
  OAuth2.OAuth2Options.Scope        := 'profile email';
  OAuth2.OAuth2Options.RedirectURL  := 'http://localhost:5555/callback';
  OAuth2.OAuth2Options.AuthorizationURL := 'https://auth.example.com/authorize';
  OAuth2.OAuth2Options.TokenURL         := 'https://auth.example.com/token';
  OAuth2.OAuth2Options.PKCE := True;

  // Spawns the user browser at the auth URL
  OAuth2.StartAuthorization;
  // ... user logs in, browser is redirected to the callback URL
  // ... the component captures the code, exchanges for tokens

  ShowMessage(OAuth2.AccessToken);
end;
// uses: sgcHTTP
TsgcHTTP_OAuth2_Client *OAuth2 = new TsgcHTTP_OAuth2_Client(this);
OAuth2->OAuth2Options->ClientId     = "your-client-id";
OAuth2->OAuth2Options->ClientSecret = "your-client-secret";
OAuth2->OAuth2Options->Scope        = "profile email";
OAuth2->OAuth2Options->RedirectURL  = "http://localhost:5555/callback";
OAuth2->OAuth2Options->PKCE = true;
OAuth2->StartAuthorization();

主な機能

PKCE、リフレッシュトークンのローテーション、組み込みループバックリダイレクトリスナーを備えた OAuth 2.0 クライアントインターフェースを実装しています。

対応フロー

認可コード(RFC 7636 によるオプションの PKCE 付き)、クライアントクレデンシャル(RFC 6749 §4.4)、デバイスコード(RFC 8628)、リフレッシュトークン(RFC 6749 §6)がすべて型付きメソッドとしてサポートされています。

デフォルトで PKCE を使用

OAuth2Options.PKCE を切り替えると、コンポーネントが code_verifier / code_challenge ペアを生成し、RFC 7636 に従って送信します(OAuth 2.1 では必須)。

プロバイダープリセット

兄弟コンポーネントの TsgcHTTP_OAuth2_Client_GoogleTsgcHTTP_OAuth2_Client_Microsoft は、適切なエンドポイントとスコープがあらかじめ設定されています。その他のプロバイダーにはベースクラスを使用してください。

ループバックリダイレクトリスナー

コンポーネントは設定された RedirectURL 上に小型の組み込み HTTP リスナーを起動し、認可コードを取得した後リスナーをシャットダウンします。外部 Web サーバーは不要です。

トークンの永続化

SaveToFile / LoadFromFile でリフレッシュトークンを永続化します(設定すると暗号化して保存)。アプリ起動のたびにユーザーへの認証要求が不要になります。

HTTP / WebSocket への簡単組み込み

Authentication.Token.OAuth2 経由で TsgcHTTPComponentClientTsgcHTTP2Client、または TsgcWebSocketClient と組み合わせると、すべてのリクエストにベアラートークンが自動的に挿入されます。

仕様・参考資料

このコンポーネントが実装する標準規格の公式ソースです。

ドキュメント・デモ

コンポーネントリファレンスへの直接リンク、すぐに実行できるデモプロジェクトの入手、体験版のダウンロードができます。

オンラインヘルプ — TsgcHTTP_OAuth2_Client このコンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。
デモプロジェクト — Demos\20.HTTP_Protocol\02.OAuth2_Authentication すぐに実行できるサンプルプロジェクトです。sgcWebSockets パッケージに同梱されています。以下から体験版をダウンロードできます。
技術ドキュメント (PDF) このコンポーネントの機能、クイックスタート、Delphi および C++ Builder 向けのコードサンプル、一次資料のリファレンスを掲載しています。
ユーザーマニュアル (PDF) ライブラリのすべてのコンポーネントを網羅した総合マニュアルです。

Delphi に OAuth 2.0 を追加しませんか?

体験版をダウンロードして、OAuth 2.0 / 2.1 認証を Delphi アプリケーションに統合してください。