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