TsgcWSAPIServer_WebAuthn

OpenSSL 3 のみ。

はじめに

TsgcWSAPIServer_WebAuthn コンポーネントは、ウェブアプリケーションでパスワードレス認証を実現するために WebAuthn Relying Party サーバーを実装するシンプルで強力なソリューションを提供します。WebAuthn アプリケーションは、サーバー側の登録と認証を処理する WebAuthn サーバーと、通常は JavaScript アプリケーションであるクライアント側アプリケーションで構成されます。

 

WebAuthn はセキュアな接続(SSL/TLS)を必要とするため、OpenSSL ライブラリをサーバーにデプロイして設定する必要があります。

 

OpenSSL 3.0.0+ APIのみがサポートされています。そのため、以前のOpenSSLバージョンは動作しない可能性があります。

 

設定

 

TsgcWSAPIServer_WebAuthn は、Server プロパティを使用して HTTP サーバー(TsgcWebSocketHTTP_Server または TsgcWebSocketServer_HTTPAPI)にアタッチする必要があります。登録と認証オプションを処理するサーバーエンドポイント、サポートされているアルゴリズム、オリジンなどの WebAuthn オプションを設定できます。

 

エンドポイントオプション

WebAuthn を認証子として使用するための HTTP/JavaScript リクエストを処理するサーバーエンドポイントをここで設定できます。コンポーネントにはデフォルトのエンドポイントが設定済みですが、必要に応じてすべて変更できます。

 

 

使用例: サーバーがドメイン www.test.com でリッスンしている場合、認証オプションへのデフォルトのリクエスト URL は http://www.test.com/sgcWebAuthn/Authentication/Options になります。

 

WebAuthn オプション

このプロパティでは WebAuthn サーバーコンポーネントの主要なオプションを設定できます。

 

 

WebAuthn は同一オリジンポリシーの制約を適用するためにオリジンを使用します。これはフィッシングやクロスサイト攻撃を防ぐために不可欠です。WebAuthn の登録と認証プロセス中、オリジンはブラウザーと認証器によって厳密に検証されます。

 

 

 

WebAuthn では、crossOrigin はトップレベルのブラウジングコンテキストとは異なるオリジンから埋め込まれた iframe などのクロスオリジンコンテキストから WebAuthn 操作が実行されているかどうかを示すブール値パラメーターです。

このパラメータは、埋め込み環境での認証リクエストをブラウザおよびオーセンティケーターが安全に処理できるよう支援するために導入されました。これは最新のWebアプリケーションにおける一般的なシナリオです。

 

 

WebAuthn は、公開鍵資格情報の生成と検証のためにさまざまな暗号アルゴリズムをサポートしています。これらのアルゴリズムは、資格情報の登録(navigator.credentials.create())と認証(navigator.credentials.get())の際に使用され、非対称鍵ペアを用いてチャレンジの安全な署名と検証を保証します。サーバーはデフォルトで最も一般的なアルゴリズムである ES256 と RS256 で設定されています。Algorithms プロパティからサポートするアルゴリズムをいつでも変更できます。以下のアルゴリズムがサポートされています。

 

 

WebAuthn において、証明書はオプションのメカニズムで、資格情報の作成時に認証器(デバイスやセキュリティキーなど)がメーカー、モデル、セキュリティ特性に関する情報を提供できるようにします。この情報は依拠当事者(RP)が認証器を信頼するかどうかを判断するのに役立ちます。

 

異なるアテステーション形式は、このデータの構造化と検証方法を定義します。一般的に使用される 3 つの形式は android-key、packed、およびその他(fido-u2f、apple、none)です。デフォルトでは、すべてのアテステーション形式が有効になっています。サポートされているアテステーション形式のリストは以下を参照してください:

 

 

 

 

 

 

 

WebAuthn APIにおいて、AllowCredentialsは認証プロセス中(navigator.credentials.get()経由)に使用されるオプションフィールドです。これは、特定のRelying Party(RP)に対してユーザーの認証を許可される資格情報IDのリストを指定します。このメカニズムにより、RPはログイン試行に対してどの資格情報を有効と見なすかを制御できます。credentialsプロパティには次のフィールドがあります:

 

 

 

 

WebAuthn プロトコル

 

 

 

 

 

リファレンス