chrome.webAuthenticationProxy

説明

chrome.webAuthenticationProxy API を使用すると、リモートホストで実行されているリモート デスクトップ ソフトウェアが Web Authentication API(WebAuthn)リクエストをインターセプトして、ローカル クライアントで処理できます。

権限

webAuthenticationProxy

対象

Chrome 115+ MV3+

CreateRequest

プロパティ

  • requestDetailsJson

    文字列

    navigator.credentials.create() に渡される PublicKeyCredentialCreationOptions。JSON 文字列としてシリアル化されます。シリアル化形式は PublicKeyCredential.parseCreationOptionsFromJSON() と互換性があります。

  • requestId

    数値

    リクエストの不透明な識別子。

CreateResponseDetails

プロパティ

  • エラー

    リモート リクエストによって生成された DOMException(存在する場合)。

  • requestId

    数値

    CreateRequestrequestId

  • responseJson

    文字列 省略可

    リモート リクエストによって生成された PublicKeyCredential(存在する場合)。href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() を呼び出して JSON 文字列としてシリアル化されます。

DOMExceptionDetails

プロパティ

  • メッセージ

    文字列

  • name

    文字列

GetRequest

プロパティ

  • requestDetailsJson

    文字列

    navigator.credentials.get() に渡される PublicKeyCredentialRequestOptions。JSON 文字列としてシリアル化されます。シリアル化形式は PublicKeyCredential.parseRequestOptionsFromJSON() と互換性があります。

  • requestId

    数値

    リクエストの不透明な識別子。

GetResponseDetails

プロパティ

  • エラー

    リモート リクエストによって生成された DOMException(存在する場合)。

  • requestId

    数値

    CreateRequestrequestId

  • responseJson

    文字列 省略可

    リモート リクエストによって生成された PublicKeyCredential(存在する場合)。href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() を呼び出して JSON 文字列としてシリアル化されます。

IsUvpaaRequest

プロパティ

  • requestId

    数値

    リクエストの不透明な識別子。

IsUvpaaResponseDetails

プロパティ

  • isUvpaa

    ブール値

  • requestId

    数値

メソッド

attach()

chrome.webAuthenticationProxy.attach(): Promise<string | undefined>

この拡張機能をアクティブな Web Authentication API リクエスト プロキシにします。

リモート デスクトップ拡張機能は通常、リモート セッションがこのホストに接続されたことを検出した後にこのメソッドを呼び出します。このメソッドがエラーなしで戻ると、WebAuthn リクエストの通常の処理が一時停止され、この拡張機能 API からのイベントが発生します。

別の拡張機能がすでに接続されている場合、このメソッドはエラーで失敗します。

添付された拡張機能は、リモート デスクトップ セッションが終了したら detach() を呼び出して、通常の WebAuthn リクエスト処理を再開する必要があります。拡張機能は、アンロードされると自動的に切り離されます。

ネイティブ アプリケーションから(一時停止されている可能性のある)拡張機能へのリモート セッション アタッチメントの変更を通知するには、onRemoteSessionStateChange イベントを参照してください。

戻り値

  • Promise<string | undefined>

completeCreateRequest()

chrome.webAuthenticationProxy.completeCreateRequest(
  details: CreateResponseDetails,
)
: Promise<void>

navigator.credentials.create() 呼び出しの結果をレポートします。拡張機能は、リクエストがキャンセルされた場合(この場合は onRequestCanceled イベントがトリガーされます)を除き、受信したすべての onCreateRequest イベントに対してこの関数を呼び出す必要があります。

パラメータ

戻り値

  • Promise<void>

completeGetRequest()

chrome.webAuthenticationProxy.completeGetRequest(
  details: GetResponseDetails,
)
: Promise<void>

navigator.credentials.get() 呼び出しの結果をレポートします。拡張機能は、リクエストがキャンセルされた場合(この場合は onRequestCanceled イベントがトリガーされます)を除き、受信したすべての onGetRequest イベントに対してこの関数を呼び出す必要があります。

パラメータ

戻り値

  • Promise<void>

completeIsUvpaaRequest()

chrome.webAuthenticationProxy.completeIsUvpaaRequest(
  details: IsUvpaaResponseDetails,
)
: Promise<void>

PublicKeyCredential.isUserVerifyingPlatformAuthenticator() 呼び出しの結果をレポートします。拡張機能は、受信したすべての onIsUvpaaRequest イベントに対してこれを呼び出す必要があります。

パラメータ

戻り値

  • Promise<void>

detach()

chrome.webAuthenticationProxy.detach(): Promise<string | undefined>

この拡張機能をアクティブな Web Authentication API リクエスト プロキシから削除します。

このメソッドは通常、拡張機能がリモート デスクトップ セッションが終了したことを検出したときに呼び出されます。このメソッドが戻ると、拡張機能はアクティブな Web Authentication API リクエスト プロキシではなくなります。

ネイティブ アプリケーションから(一時停止されている可能性のある)拡張機能へのリモート セッション アタッチメントの変更を通知するには、onRemoteSessionStateChange イベントを参照してください。

戻り値

  • Promise<string | undefined>

イベント

onCreateRequest

chrome.webAuthenticationProxy.onCreateRequest.addListener(
  callback: function,
)

WebAuthn navigator.credentials.create() 呼び出しが発生したときに呼び出されます。拡張機能は、requestInfo からの requestId を使用して completeCreateRequest() を呼び出し、レスポンスを提供する必要があります。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (requestInfo: CreateRequest) => void

onGetRequest

chrome.webAuthenticationProxy.onGetRequest.addListener(
  callback: function,
)

WebAuthn navigator.credentials.get() 呼び出しが発生したときに起動します。拡張機能は、requestInforequestId を使用して completeGetRequest() を呼び出すことで、レスポンスを提供する必要があります。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

chrome.webAuthenticationProxy.onIsUvpaaRequest.addListener(
  callback: function,
)

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() 呼び出しが発生したときに呼び出されます。拡張機能は、requestInforequestId を使用して completeIsUvpaaRequest() を呼び出すことで、レスポンスを提供する必要があります。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (requestInfo: IsUvpaaRequest) => void

onRemoteSessionStateChange

chrome.webAuthenticationProxy.onRemoteSessionStateChange.addListener(
  callback: function,
)

この拡張機能に関連付けられたネイティブ アプリケーションは、デフォルトのユーザー データ ディレクトリ内の WebAuthenticationProxyRemoteSessionStateChange という名前のディレクトリに、拡張機能の ID と同じ名前のファイルを書き込むことで、このイベントを発生させることができます。

ファイルの内容は空である必要があります。つまり、このイベントをトリガーするためにファイルの内容を変更する必要はありません。

ネイティブ ホスト アプリケーションは、このイベント メカニズムを使用して、拡張機能サービス ワーカーが一時停止している間に、リモート セッションの状態が変更される可能性があることを通知できます(切り離しから接続、またはその逆)。このイベントのハンドラで、拡張機能は attach() または detach() API メソッドを適宜呼び出すことができます。

イベント リスナーは読み込み時に同期的に登録する必要があります。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    () => void

onRequestCanceled

chrome.webAuthenticationProxy.onRequestCanceled.addListener(
  callback: function,
)

onCreateRequest イベントまたは onGetRequest イベントがキャンセルされたときに(呼び出し元によって WebAuthn リクエストが中止されたか、タイムアウトしたため)、発生します。このイベントを受信すると、拡張機能はクライアント サイドで対応するリクエストの処理をキャンセルする必要があります。拡張機能は、リクエストがキャンセルされると、リクエストを完了できません。

パラメータ

  • callback

    関数

    callback パラメータは次のようになります。

    (requestId: number) => void

    • requestId

      数値