WebAuthn Registration | Request

この登録オプションリクエストは、WebAuthn 登録を安全にブートストラップするために必要です。サーバーに以下を要求します。

 

 

ブラウザはセキュアな WebAuthn 資格情報の登録を開始するためにサーバーから資格情報作成オプションを取得する必要があります。これは通常ブラウザからサーバーエンドポイント (/sgcWebAuthn/Registration/Options など) への HTTPS POST リクエストで実行され、チャレンジ、RP ID、ユーザー情報などのパラメータを準備します。

 

リクエストボディにはユーザーを識別し、場合によっては設定の優先事項を提供するデータが含まれています。通常は次のような形式です:

 

{
"username": "alice@example.com",
"displayName": "Alice Smith",
"authenticatorSelection": {
"authenticatorAttachment": "platform", // オプション: platform または cross-platform
"userVerification": "preferred" // オプション: required | preferred | discouraged
},
"attestation": "none", // または "direct"、"indirect"
"residentKey": "discouraged" // オプション
}

 

WebAuthn サーバーコンポーネントは、EndpointOptions.RegistrationOptions プロパティに設定されたエンドポイントで、PublicKeyCredentialCreationOptions を取得するブラウザの初期リクエストをリッスンします。サーバーが新しい HTTP リクエストを受信すると、OnWebAuthnRegistrationOptionsRequest イベントが呼び出され、クライアントから送信されたリクエストにアクセスして、Accept パラメータを False に設定することでリクエストをキャンセルできます。

 


procedure OnWebAuthnRegistrationOptionsRequest(Sender: TObject; const aRequest: TsgcWebAuthn_RegistrationOptions_Request; var Accept: Boolean);
begin
  if aRequest.Username = 'anonymous' then
    Accept := False;
end;