説明
chrome.webAuthenticationProxy API を使用すると、リモートホストで実行されているリモート デスクトップ ソフトウェアが Web Authentication API(WebAuthn)リクエストをインターセプトして、ローカル クライアントで処理できます。
権限
webAuthenticationProxy対象
型
CreateRequest
プロパティ
-
requestDetailsJson
文字列
navigator.credentials.create()に渡されたPublicKeyCredentialCreationOptions。JSON 文字列としてシリアル化されます。シリアル化形式はPublicKeyCredential.parseCreationOptionsFromJSON()と互換性があります。 -
requestId
数値
リクエストの不透明な識別子。
CreateResponseDetails
プロパティ
-
エラー
リモート リクエストによって生成された
DOMException(存在する場合)。 -
requestId
数値
CreateRequestのrequestId。 -
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
数値
CreateRequestのrequestId。 -
responseJson
文字列 省略可
リモート リクエストによって生成された
PublicKeyCredential(存在する場合)。href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson">PublicKeyCredential.toJSON()を呼び出すことで JSON 文字列としてシリアル化されます。
IsUvpaaRequest
プロパティ
-
requestId
数値
リクエストの不透明な識別子。
IsUvpaaResponseDetails
プロパティ
-
isUvpaa
ブール値
-
requestId
数値
メソッド
attach()
browser.webAuthenticationProxy.attach(): Promise<string | undefined>
この拡張機能をアクティブな Web Authentication API リクエスト プロキシにします。
リモート デスクトップ拡張機能は通常、このホストへのリモート セッションの接続を検出した後にこのメソッドを呼び出します。このメソッドがエラーなしで返されると、WebAuthn リクエストの通常の処理が一時停止され、この拡張機能 API からイベントが発生します。
別の拡張機能がすでにアタッチされている場合、このメソッドはエラーで失敗します。
通常の WebAuthn リクエスト処理を再開するには、リモート デスクトップ セッションが終了したときに、アタッチされた拡張機能が detach() を呼び出す必要があります。拡張機能は、アンロードされると自動的にデタッチされます。
ネイティブ アプリケーションから(一時停止中の可能性がある)拡張機能へのリモート セッション アタッチメントの変更を通知するには、onRemoteSessionStateChange イベントをご覧ください。
戻り値
-
Promise<string | undefined>
completeCreateRequest()
browser.webAuthenticationProxy.completeCreateRequest(
details: CreateResponseDetails,
): Promise<void>
navigator.credentials.create() 呼び出しの結果を報告します。拡張機能は、リクエストがキャンセルされた場合(この場合は onRequestCanceled イベントが発生します)を除き、受信した onCreateRequest イベントごとにこれを呼び出す必要があります。
パラメータ
戻り値
-
Promise<void>
completeGetRequest()
browser.webAuthenticationProxy.completeGetRequest(
details: GetResponseDetails,
): Promise<void>
navigator.credentials.get() 呼び出しの結果を報告します。拡張機能は、リクエストがキャンセルされた場合(この場合は onRequestCanceled イベントが発生します)を除き、受信した onGetRequest イベントごとにこれを呼び出す必要があります。
パラメータ
戻り値
-
Promise<void>
completeIsUvpaaRequest()
browser.webAuthenticationProxy.completeIsUvpaaRequest(
details: IsUvpaaResponseDetails,
): Promise<void>
PublicKeyCredential.isUserVerifyingPlatformAuthenticator() 呼び出しの結果を報告します。拡張機能は、受信した onIsUvpaaRequest イベントごとにこれを呼び出す必要があります。
パラメータ
戻り値
-
Promise<void>
detach()
browser.webAuthenticationProxy.detach(): Promise<string | undefined>
この拡張機能をアクティブな Web Authentication API リクエスト プロキシから削除します。
このメソッドは通常、リモート デスクトップ セッションが終了したことを拡張機能が検出したときに呼び出されます。このメソッドが返されると、拡張機能はアクティブな Web Authentication API リクエスト プロキシではなくなります。
ネイティブ アプリケーションから(一時停止中の可能性がある)拡張機能へのリモート セッション アタッチメントの変更を通知するには、onRemoteSessionStateChange イベントをご覧ください。
戻り値
-
Promise<string | undefined>
イベント
onCreateRequest
browser.webAuthenticationProxy.onCreateRequest.addListener(
callback: function,
)
WebAuthn navigator.credentials.create() 呼び出しが発生したときに呼び出されます。拡張機能は、requestInfo の requestId を使用して completeCreateRequest() を呼び出し、レスポンスを提供する必要があります。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(requestInfo: CreateRequest) => void
-
requestInfo
-
onGetRequest
browser.webAuthenticationProxy.onGetRequest.addListener(
callback: function,
)
WebAuthn navigator.credentials.get() 呼び出しが発生したときに起動します。拡張機能は、requestInfo の requestId を使用して completeGetRequest() を呼び出し、レスポンスを提供する必要があります。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(requestInfo: GetRequest) => void
-
requestInfo
-
onIsUvpaaRequest
browser.webAuthenticationProxy.onIsUvpaaRequest.addListener(
callback: function,
)
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() 呼び出しが発生したときに呼び出されます。拡張機能は、requestInfo の requestId を使用して completeIsUvpaaRequest() を呼び出し、レスポンスを提供する必要があります。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(requestInfo: IsUvpaaRequest) => void
-
requestInfo
-
onRemoteSessionStateChange
browser.webAuthenticationProxy.onRemoteSessionStateChange.addListener(
callback: function,
)
この拡張機能に関連付けられたネイティブ アプリケーションは、デフォルトのユーザーデータ ディレクトリ内の WebAuthenticationProxyRemoteSessionStateChange という名前のディレクトリに、拡張機能の ID と同じ名前のファイルを書き込むことで、このイベントを発生させることができます。
ファイルの内容は空である必要があります。つまり、このイベントをトリガーするためにファイルの内容を変更する必要はありません。
ネイティブ ホスト アプリケーションは、このイベント メカニズムを使用して、拡張機能の Service Worker が一時停止している可能性がある間に、リモート セッションの状態が変化した可能性(デタッチからアタッチ、またはその逆)を通知できます。このイベントのハンドラで、拡張機能は attach() または detach() API メソッドを適宜呼び出すことができます。
イベント リスナーは、読み込み時に同期的に登録する必要があります。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。() => void
onRequestCanceled
browser.webAuthenticationProxy.onRequestCanceled.addListener(
callback: function,
)
onCreateRequest イベントまたは onGetRequest イベントがキャンセルされたときに(呼び出し元によって WebAuthn リクエストが中止されたか、タイムアウトしたため)呼び出されます。このイベントを受け取った場合、拡張機能はクライアント側で対応するリクエストの処理をキャンセルする必要があります。拡張機能は、キャンセルされたリクエストを完了できません。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(requestId: number) => void
-
requestId
数値
-