OAuth2 Delphi WebSocket

· 機能

OAuth2 は、HTTP プロトコルを使用してサードパーティアプリケーションが制限されたリソースにアクセスできるようにするプロトコルです。RFC 6749 が OAuth2 仕様を規定しています。4 つのロールがあります。


OAuth2 フロー

 (A) クライアントがリソースオーナーに認可を要求します。認可リクエストはリソースオーナーに直接行うか(図示のとおり)、認可サーバーを仲介として間接的に行うことが望ましいです。

(B) クライアントは認可グラントを受け取ります。これはリソースオーナーの認可を表す資格情報で、この仕様で定義された 4 つのグラントタイプのいずれか、または拡張グラントタイプを使用して表現されます。認可グラントタイプは、クライアントが認可を要求するために使用する方法と、認可サーバーがサポートするタイプによって異なります。

(C) クライアントは認可サーバーで認証し、認可グラントを提示することでアクセストークンを要求します。

(D) 認可サーバーはクライアントを認証し、認可グラントを検証します。有効であればアクセストークンを発行します。

(E) クライアントはリソースサーバーに保護されたリソースを要求し、アクセストークンを提示して認証します。

(F) リソースサーバーはアクセストークンを検証し、有効であればリクエストを処理します。


OAuth2 と WebSocket

sgcWebSockets は WebSocket クライアントコンポーネントで Bearer トークンをサポートしています。TsgcWebSocketClient の Authentication と Token プロパティを有効にし、クライアントがサーバーに接続するときに送信するトークンを設定するだけです。

Client := TsgcWebSocketClient.Create(nil);
Client.Authentication.Enabled := True;
Client.Authentication.Token.Enabled := True;
Client.Authentication.Token.AuthName := 'Bearer';
Client.Authentication.Token.AuthToken := '<your token here>'; 

 次のバージョン sgcWebSockets 4.3.4 では OAuth2 用の新しいコンポーネントがリリースされ、OAuth2 資格情報を自動的に取得できるようになります。