TsgcHTTP_OAuth2_Server

このコンポーネントはサーバーサイドコンポーネントに OAuth2 プロトコルの実装を提供します。

はじめに

このコンポーネントはサーバーサイドコンポーネントに OAuth2 プロトコルの実装を提供します。

サーバーコンポーネントには、Authorization.OAuth.OAuth2というプロパティがあり、ここにTsgcHTTP_OAuth2_Serverのインスタンスを割り当てることができます。したがって、Authenticationが有効でOAuth2プロパティがOAuth2 Serverコンポーネントにアタッチされている場合、WebSocketおよびHTTPリクエストは処理されるためにBearer Tokenを必要とし、ない場合は接続が自動的に閉じられます。


    OAuth2 := TsgcHTTP_OAuth2_Server.Create(nil);
    Server.Authentication.Enabled := True;
    Server.Authentication.OAuth.OAuth2 := OAuth2;

サーバーは以下の認証タイプをサポートしています。

アプリの登録時に認可タイプをカスタマイズできます。デフォルトでは、すべての認可タイプがサポートされます。

エンドポイント

デフォルトでは、コンポーネントは以下のエンドポイントで認可とトークンのリクエストを処理するように設定されています

Authorization: /sgc/oauth2/auth

Token: /sgc/oauth2/token

Revocation: /sgc/oauth2/revoke

Introspection: /sgc/oauth2/introspect

デバイス認証: /sgc/oauth2/device

デバイス検証: /sgc/oauth2/device/verify

したがって、サーバーがポート443でリッスンし、ドメインがwww.esegece.comの場合、EndPointsは次のようになります:

Authorization: https://www.esegece.com/sgc/oauth2/auth

トークン: https://www.esegece.com/sgc/oauth2/token

Revocation: https://www.esegece.com/sgc/oauth2/revoke

Introspection: https://www.esegece.com/sgc/oauth2/introspect

Device Authorization: https://www.esegece.com/sgc/oauth2/device

デバイス確認: https://www.esegece.com/sgc/oauth2/device/verify

エンドポイントは OAuth2Options プロパティで設定できます。

デフォルトでは、PKCE(CSRF および認証コードインジェクション攻撃を防ぐための Authorization Code フローの拡張機能)が有効になっています。

設定

OAuth2プロセスを開始する前に、どのアプリが利用可能になるかを登録する必要があります。これはOAuth2サーバーコンポーネントのAppsプロパティを使用して行います。

Register App

新しいアプリケーションを OAuth2 サーバーに追加するには Apps.AddApp を使用します。次のパラメータを設定する必要があります:

オプションで以下のパラメーターを設定できます。

アプリを削除

Apps.RemoveApp を使用して既存のアプリを削除します。

AddToken

トークンが発行されている間にサーバーが再起動された場合、OAuth2 Serverを起動する前、かつAppを登録した後に、AddTokenメソッドを使用してこれらのトークンを復元できます

RemoveToken

発行済みトークンを削除します。

OAuth2Options

OAuth2Options プロパティを使用して、サーバーエンドポイントとオプション機能を設定できます。

失効

RFC 7009によるトークン取り消し。有効にすると、クライアントは以前に発行されたアクセストークンまたはリフレッシュトークンを取り消すことができます。

イントロスペクション

RFC 7662 によるトークンイントロスペクション。有効にすると、リソースサーバーは認可サーバーにクエリしてトークンのアクティブ状態とメタデータを確認できます。

DeviceAuthorization

RFC 8628 によるデバイス認可グラント。有効にすると、入力制限デバイスはセカンダリデバイスでユーザーが認可することで認可をリクエストできます。

 

リファレンス

ガイド