Описание
chrome.webAuthenticationProxy API позволяет ПО для удаленного рабочего стола, запущенному на удаленном хосте, перехватывать запросы к Web Authentication API (WebAuthn), чтобы обрабатывать их на локальном клиенте.
Разрешения
webAuthenticationProxyДоступность
Типы
CreateRequest
Свойства
-
requestDetailsJson
string
Объект
PublicKeyCredentialCreationOptions, переданный вnavigator.credentials.create(), сериализованный как строка JSON. Формат сериализации совместим сPublicKeyCredential.parseCreationOptionsFromJSON(). -
requestId
число
Непрозрачный идентификатор запроса.
CreateResponseDetails
Свойства
-
ошибка
DOMExceptionDetails необязательный
Объект
DOMException, полученный в результате удаленного запроса (если есть). -
requestId
число
requestIdCreateRequest. -
responseJson
Строка (необязательно)
PublicKeyCredential, полученный в результате удаленного запроса (если есть), сериализованный в виде строки JSON путем вызова href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson">PublicKeyCredential.toJSON().
DOMExceptionDetails
Свойства
-
Сообщение
string
-
name
string
GetRequest
Свойства
-
requestDetailsJson
string
Объект
PublicKeyCredentialRequestOptions, переданный вnavigator.credentials.get(), сериализованный как строка JSON. Формат сериализации совместим сPublicKeyCredential.parseRequestOptionsFromJSON(). -
requestId
число
Непрозрачный идентификатор запроса.
GetResponseDetails
Свойства
-
ошибка
DOMExceptionDetails необязательный
Объект
DOMException, полученный в результате удаленного запроса (если есть). -
requestId
число
requestIdCreateRequest. -
responseJson
Строка (необязательно)
PublicKeyCredential, полученный в результате удаленного запроса (если есть), сериализованный в виде строки JSON путем вызова href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson">PublicKeyCredential.toJSON().
IsUvpaaRequest
Свойства
-
requestId
число
Непрозрачный идентификатор запроса.
IsUvpaaResponseDetails
Свойства
-
isUvpaa
Логическое значение
-
requestId
число
Методы
attach()
browser.webAuthenticationProxy.attach(): Promise<string | undefined>
Делает это расширение активным прокси-сервером для запросов к Web Authentication API.
Расширения удаленного рабочего стола обычно вызывают этот метод после обнаружения подключения удаленного сеанса к этому хосту. Если метод возвращает значение без ошибки, обычная обработка запросов WebAuthn приостанавливается и вызываются события из этого API расширений.
Если расширение уже прикреплено, этот метод возвращает ошибку.
После завершения сеанса удаленного рабочего стола прикрепленное расширение должно вызвать detach(), чтобы возобновить обычную обработку запросов WebAuthn. Расширения автоматически открепляются, если они выгружены.
Событие onRemoteSessionStateChange сигнализирует о том, что удаленный сеанс переключился с нативного приложения на расширение (которое может быть приостановлено).
Возвраты
-
Promise<string | undefined>
completeCreateRequest()
browser.webAuthenticationProxy.completeCreateRequest(
details: CreateResponseDetails,
): Promise<void>
Сообщает результат вызова navigator.credentials.create(). Расширение должно вызывать этот метод для каждого полученного события onCreateRequest, если только запрос не был отменен (в этом случае запускается событие onRequestCanceled).
Параметры
-
подробные сведения
Возвраты
-
Promise<void>
completeGetRequest()
browser.webAuthenticationProxy.completeGetRequest(
details: GetResponseDetails,
): Promise<void>
Сообщает результат вызова navigator.credentials.get(). Расширение должно вызывать этот метод для каждого полученного события onGetRequest, если только запрос не был отменен (в этом случае запускается событие onRequestCanceled).
Параметры
-
подробные сведения
Возвраты
-
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.
Обычно этот метод вызывается, когда расширение обнаруживает, что сеанс удаленного рабочего стола был завершен. После возврата этого метода расширение перестает быть активным прокси-сервером запросов к API Web Authentication.
Событие onRemoteSessionStateChange сигнализирует о том, что удаленный сеанс переключился с нативного приложения на расширение (которое может быть приостановлено).
Возвраты
-
Promise<string | undefined>
События
onCreateRequest
browser.webAuthenticationProxy.onCreateRequest.addListener(
callback: function,
)
Срабатывает при вызове WebAuthn navigator.credentials.create(). Расширение должно предоставить ответ, вызвав completeCreateRequest() с requestId из requestInfo.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(requestInfo: CreateRequest) => void
-
requestInfo
-
onGetRequest
browser.webAuthenticationProxy.onGetRequest.addListener(
callback: function,
)
Срабатывает при вызове navigator.credentials.get() в WebAuthn. Расширение должно предоставить ответ, вызвав completeGetRequest() с requestId из requestInfo.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(requestInfo: GetRequest) => void
-
requestInfo
-
onIsUvpaaRequest
browser.webAuthenticationProxy.onIsUvpaaRequest.addListener(
callback: function,
)
Срабатывает при вызове PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable(). Расширение должно предоставить ответ, вызвав completeIsUvpaaRequest() с requestId из requestInfo.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(requestInfo: IsUvpaaRequest) => void
-
requestInfo
-
onRemoteSessionStateChange
browser.webAuthenticationProxy.onRemoteSessionStateChange.addListener(
callback: function,
)
Нативное приложение, связанное с этим расширением, может вызвать это событие, записав в файл с именем, равным идентификатору расширения, в каталоге с именем WebAuthenticationProxyRemoteSessionStateChange внутри каталога пользовательских данных по умолчанию.
Файл должен быть пустым. То есть для активации этого события не нужно менять содержимое файла.
Размещаемое приложение может использовать этот механизм событий, чтобы сигнализировать о возможном изменении состояния удаленного сеанса (например, с "отключено" на "подключено" или наоборот), когда service worker расширения может быть приостановлен. В обработчике этого события расширение может вызывать методы API attach() или detach().
Прослушиватель событий должен быть зарегистрирован синхронно во время загрузки.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:() => void
onRequestCanceled
browser.webAuthenticationProxy.onRequestCanceled.addListener(
callback: function,
)
Срабатывает, когда событие onCreateRequest или onGetRequest отменяется (потому что запрос WebAuthn был прерван вызывающим абонентом или истекло время ожидания). При получении этого события расширение должно отменить обработку соответствующего запроса на стороне клиента. Расширения не могут выполнить запрос после его отмены.
Параметры
-
обратный вызов
function
Параметр
callbackвыглядит следующим образом:(requestId: number) => void
-
requestId
число
-