chrome.webAuthenticationProxy

説明

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

権限

webAuthenticationProxy

対象

Chrome 115 以降 MV3 以降

CreateRequest

プロパティ

  • requestDetailsJson

    文字列

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

  • requestId

    数値

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

CreateResponseDetails

プロパティ

  • error

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

  • requestId

    数値

    CreateRequestrequestId

  • responseJson

    string(省略可)

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

DOMExceptionDetails

プロパティ

  • message

    文字列

  • name

    文字列

GetRequest

プロパティ

  • requestDetailsJson

    文字列

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

  • requestId

    数値

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

GetResponseDetails

プロパティ

  • error

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

  • requestId

    数値

    CreateRequestrequestId

  • responseJson

    string(省略可)

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

IsUvpaaRequest

プロパティ

  • requestId

    数値

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

IsUvpaaResponseDetails

プロパティ

  • isUvpaa

    boolean

  • requestId

    数値

Methods

attach()

Promise
chrome.webAuthenticationProxy.attach(
  callback?: function,
)

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

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

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

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

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

パラメータ

  • callback

    関数(省略可)

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

    (error?: string)=>void

    • error

      string(省略可)

戻り値

  • Promise<文字列|未定義>

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

completeCreateRequest()

Promise
chrome.webAuthenticationProxy.completeCreateRequest(
  details: CreateResponseDetails,
  callback?: function,
)

navigator.credentials.create() 呼び出しの結果を報告します。拡張機能は、受け取った onCreateRequest イベントごとにこれを呼び出す必要があります。ただし、リクエストがキャンセルされた場合は(onRequestCanceled イベントが発生します)場合を除きます。

パラメータ

  • callback

    関数(省略可)

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

    ()=>void

戻り値

  • Promise<void>

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

completeGetRequest()

Promise
chrome.webAuthenticationProxy.completeGetRequest(
  details: GetResponseDetails,
  callback?: function,
)

navigator.credentials.get() 呼び出しの結果を報告します。拡張機能は、受け取った onGetRequest イベントごとにこれを呼び出す必要があります。ただし、リクエストがキャンセルされた場合は(onRequestCanceled イベントが発生します)場合を除きます。

パラメータ

  • callback

    関数(省略可)

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

    ()=>void

戻り値

  • Promise<void>

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

completeIsUvpaaRequest()

Promise
chrome.webAuthenticationProxy.completeIsUvpaaRequest(
  details: IsUvpaaResponseDetails,
  callback?: function,
)

PublicKeyCredential.isUserVerifyingPlatformAuthenticator() 呼び出しの結果を報告します。拡張機能は、受け取った onIsUvpaaRequest イベントごとにこれを呼び出す必要があります。

パラメータ

  • callback

    関数(省略可)

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

    ()=>void

戻り値

  • Promise<void>

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

detach()

Promise
chrome.webAuthenticationProxy.detach(
  callback?: function,
)

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

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

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

パラメータ

  • callback

    関数(省略可)

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

    (error?: string)=>void

    • error

      string(省略可)

戻り値

  • Promise<文字列|未定義>

    Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。

イベント

onCreateRequest

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

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

パラメータ

  • callback

    機能

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

    (requestInfo: CreateRequest)=>void

onGetRequest

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

WebAuthn navigator.credentials.get() 呼び出しが発生したときに呼び出されます。拡張機能は、requestInforequestIdcompleteGetRequest() を呼び出してレスポンスを提供する必要があります。

パラメータ

  • callback

    機能

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

    (requestInfo: GetRequest)=>void

onIsUvpaaRequest

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

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

パラメータ

onRemoteSessionStateChange

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

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

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

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

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

パラメータ

  • callback

    機能

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

    ()=>void

onRequestCanceled

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

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

パラメータ

  • callback

    機能

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

    (requestId: number)=>void

    • requestId

      数値