browser.webAuthenticationProxy

Описание

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

Разрешения

webAuthenticationProxy

Доступность

Chrome 115+ browser.* начиная с Chrome 148 MV3+

Типы

CreateRequest

Свойства

  • requestDetailsJson

    string

    Объект 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

Свойства

  • Сообщение

    string

  • name

    string

GetRequest

Свойства

  • requestDetailsJson

    string

    Объект 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()

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

onGetRequest

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

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

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

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (requestInfo: IsUvpaaRequest) => void

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

      число