chrome.webAuthenticationProxy

說明

遠端主機上執行的遠端桌面軟體可透過 chrome.webAuthenticationProxy API 攔截 Web Authentication API (WebAuthn) 要求,以便在本機用戶端上處理這些要求。

權限

webAuthenticationProxy

可用性

Chrome 115 以上版本 MV3 以上版本

類型

CreateRequest

屬性

  • requestDetailsJson

    字串

    傳遞至 navigator.credentials.create()PublicKeyCredentialCreationOptions,以 JSON 字串形式序列化。序列化格式與 PublicKeyCredential.parseCreationOptionsFromJSON() 相容。

  • requestId

    數字

    要求的不透明 ID。

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

    數字

    要求的不透明 ID。

GetResponseDetails

屬性

  • 錯誤

    遠端要求產生的 DOMException (如有)。

  • requestId

    數字

    CreateRequestrequestId

  • responseJson

    字串 選填

    遠端要求產生的 PublicKeyCredential (如有),會透過呼叫 href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() 序列化為 JSON 字串。

IsUvpaaRequest

屬性

  • requestId

    數字

    要求的不透明 ID。

IsUvpaaResponseDetails

屬性

  • isUvpaa

    布林值

  • requestId

    數字

方法

attach()

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

將這項擴充功能設為有效的 Web Authentication API 要求 Proxy。

遠端桌面擴充功能通常會在偵測到遠端工作階段附加至這個主機後,呼叫這個方法。這個方法傳回時不會發生錯誤,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 要求 Proxy。

擴充功能偵測到遠端桌面工作階段已終止時,通常會呼叫這個方法。這個方法傳回後,擴充功能就不再是有效的 Web Authentication API 要求 Proxy。

如要從原生應用程式向 (可能已暫停的) 擴充功能發出遠端工作階段附件變更的信號,請參閱 onRemoteSessionStateChange 事件。

傳回

  • Promise<string | undefined>

事件

onCreateRequest

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

在發生 WebAuthn navigator.credentials.create() 呼叫時觸發。擴充功能必須呼叫 completeCreateRequest(),並提供來自 requestInforequestId,藉此提供回應。

參數

onGetRequest

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

在發生 WebAuthn navigator.credentials.get() 呼叫時觸發。擴充功能必須呼叫 completeGetRequest(),並使用 requestInfo 中的 requestId 提供回應

參數

  • callback

    函式

    callback 參數如下:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

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

在發生 PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() 呼叫時觸發。擴充功能必須呼叫 completeIsUvpaaRequest(),並使用 requestInfo 中的 requestId 提供回應

參數

onRemoteSessionStateChange

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

與這個擴充功能相關聯的原生應用程式,可以透過在預設使用者資料目錄內的 WebAuthenticationProxyRemoteSessionStateChange 目錄中,寫入名稱與擴充功能 ID 相同的檔案,觸發這個事件。

檔案內容應為空白。也就是說,您不必變更檔案內容,即可觸發這個事件。

原生主機應用程式可能會使用這項事件機制,在擴充功能服務工作人員可能暫停時,發出可能的遠端工作階段狀態變更信號 (即從分離到附加,或反之)。在這個事件的處理常式中,擴充功能可以視情況呼叫 attach()detach() API 方法。

事件監聽器必須在載入時同步註冊。

參數

  • callback

    函式

    callback 參數如下:

    () => void

onRequestCanceled

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

onCreateRequestonGetRequest 事件取消時觸發 (因為呼叫端中止 WebAuthn 要求,或要求逾時)。收到這項事件時,擴充功能應取消處理用戶端上的對應要求。要求取消後,擴充功能就無法完成要求。

參數

  • callback

    函式

    callback 參數如下:

    (requestId: number) => void

    • requestId

      數字