chrome.webAuthenticationProxy

Описание

API chrome.webAuthenticationProxy позволяет программному обеспечению удаленного рабочего стола, работающему на удаленном хосте, перехватывать запросы API веб-аутентификации (WebAuthn) для их обработки на локальном клиенте.

Разрешения

webAuthenticationProxy

Доступность

Chrome 115+ MV3+

Типы

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

onGetRequest

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

Срабатывает при вызове WebAuthn navigator.credentials.get(). Расширение должно предоставить ответ, вызвав метод completeGetRequest() с requestId из requestInfo

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

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

Срабатывает при вызове PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() . Расширение должно предоставить ответ, вызвав метод completeIsUvpaaRequest() с requestId из requestInfo

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (requestInfo: IsUvpaaRequest) => void

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

      число