說明
遠端主機上執行的遠端桌面軟體可透過 chrome.webAuthenticationProxy
API 攔截 Web Authentication API (WebAuthn) 要求,以便在本機用戶端上處理這些要求。
權限
webAuthenticationProxy
可用性
類型
CreateRequest
屬性
-
requestDetailsJson
字串
傳遞至
navigator.credentials.create()
的PublicKeyCredentialCreationOptions
,以 JSON 字串形式序列化。序列化格式與PublicKeyCredential.parseCreationOptionsFromJSON()
相容。 -
requestId
數字
要求的不透明 ID。
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
數字
要求的不透明 ID。
GetResponseDetails
屬性
-
錯誤
遠端要求產生的
DOMException
(如有)。 -
requestId
數字
CreateRequest
的requestId
。 -
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()
,並提供來自 requestInfo
的 requestId
,藉此提供回應。
參數
-
callback
函式
callback
參數如下:(requestInfo: CreateRequest) => void
-
requestInfo
-
onGetRequest
chrome.webAuthenticationProxy.onGetRequest.addListener(
callback: function,
)
在發生 WebAuthn navigator.credentials.get() 呼叫時觸發。擴充功能必須呼叫 completeGetRequest()
,並使用 requestInfo
中的 requestId
提供回應
參數
-
callback
函式
callback
參數如下:(requestInfo: GetRequest) => void
-
requestInfo
-
onIsUvpaaRequest
chrome.webAuthenticationProxy.onIsUvpaaRequest.addListener(
callback: function,
)
在發生 PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
呼叫時觸發。擴充功能必須呼叫 completeIsUvpaaRequest()
,並使用 requestInfo
中的 requestId
提供回應
參數
-
callback
函式
callback
參數如下:(requestInfo: IsUvpaaRequest) => void
-
requestInfo
-
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
數字
-