PublicKeyCredentialRequestOptions

Baseline 廣泛可用 *

此功能已成熟,並可在多種裝置和瀏覽器版本上使用。自 2019 年 9 月以來,它已在各種瀏覽器中可用。

* 此特性的某些部分可能存在不同級別的支援。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

PublicKeyCredentialRequestOptions 字典表示傳遞給 CredentialsContainer.get() 的 `publicKey` 選項的值的物件。

它用於請求由支援 Web Authentication API身份驗證器 提供的 PublicKeyCredential

例項屬性

allowCredentials 可選

一個用於限制可接受憑據列表的物件陣列。空陣列表示任何憑據均可接受。

陣列中的每個物件將包含以下屬性

id

一個 ArrayBufferTypedArrayDataView,表示要檢索的公鑰憑據的 ID。此值與成功的 `get()` 呼叫返回的 PublicKeyCredential 物件的 rawId 屬性相對應。

transports 可選

一個字串陣列,提供有關客戶端可以用來與要檢索的公鑰憑據的相關身份驗證器通訊的方法的提示。可能的傳輸方式有:"ble""hybrid""internal""nfc""usb"

注意:此值與原始建立憑據的 `create()` 呼叫返回的 PublicKeyCredential 物件的 PublicKeyCredential.response.getTransports() 方法的返回值相對應。此時,應用程式應將其儲存以備後用。

type

一個字串,定義了要檢索的公鑰憑據的型別。目前只能取一個值 "public-key",但未來可能會新增更多值。此值與成功的 `get()` 呼叫返回的 PublicKeyCredential 物件的 type 屬性相對應。

此值預設為空陣列。

challenge

一個 ArrayBufferTypedArrayDataView,源自信賴方伺服器,並用作 加密挑戰。此值將被身份驗證器簽名,簽名將作為 AuthenticatorAssertionResponse.signature 的一部分(可在成功的 `get()` 呼叫返回的 PublicKeyCredential 物件的 response 屬性中找到)。

extensions 可選

一個物件,包含表示任何請求擴充套件的輸入值的屬性。這些擴充套件用於在身份驗證過程中對客戶端或身份驗證器進行特定的附加處理。示例包括處理舊的 FIDO API 憑據以及評估與憑據關聯的偽隨機函式 (PRF) 的輸出。

擴充套件是可選的,不同的瀏覽器可能識別不同的擴充套件。客戶端始終可以忽略擴充套件的處理:如果瀏覽器不識別給定的擴充套件,它將僅忽略它。有關使用擴充套件以及哪些擴充套件受哪些瀏覽器支援的資訊,請參閱 Web Authentication 擴充套件

hints 可選 實驗性

一個字串陣列,提供有關瀏覽器應為使用者提供何種 UI 以便使用現有公鑰憑據進行身份驗證的提示。

字串可以是以下任意一種

"security-key"

UI 應建議從單獨的物理安全金鑰(如 YubiKey)請求憑據。

"client-device"

UI 應建議從使用者正在使用的 RP 客戶端所在的同一裝置上可用的身份驗證器請求憑據。

"hybrid"

UI 應建議從通用身份驗證器(如基於智慧手機的身份驗證器應用程式)請求憑據。這有利於使用跨裝置處理身份驗證的方法,例如結合使用筆記型電腦和智慧手機。

當陣列中包含多個字串時,它們的順序表示優先順序,從高到低。支援並尊重這些提示的瀏覽器應使用它們理解的第一個提示。

指定的 `hints` 可能與 transports 選項中提供的提示相矛盾。當提供的 `hints` 與此選項相矛盾時,`hints` 具有優先權。在特定情況下,例如當提示的身份驗證器型別在使用者的裝置上不可用時,瀏覽器也可能忽略 `hints`。

有關一些特定的程式碼和 UI 示例,請參閱 Chrome 中 WebAuthn 的 hints、Related Origin Requests 和 JSON 序列化的介紹

rpId 可選

一個字串,指定信賴方的識別符號(例如 "login.example.org")。出於安全目的

  • 呼叫方 Web 應用驗證 `rpId` 是否與信賴方的 origin 匹配。
  • 身份驗證器驗證 `rpId` 是否與身份驗證流程中使用的憑據的 `rpId` 匹配。

此值預設為當前 origin 的域。

timeout 可選

一個以毫秒為單位的數值提示,指示信賴方願意等待檢索操作完成的時間。此提示可能會被瀏覽器覆蓋。

userVerification 可選

一個字串,指定信賴方對身份驗證過程的使用者驗證要求。此驗證由身份驗證器發起,它將要求使用者提供一個可用的因素(例如 PIN 或某種生物識別輸入)。

該值可以是以下之一

"required"

信賴方要求進行使用者驗證,如果未發生則操作將失敗。

"preferred"

信賴方傾向於在可能的情況下進行使用者驗證,但如果未發生則操作不會失敗。

"discouraged"

信賴方不希望進行使用者驗證,以使使用者互動儘可能順暢。

此值預設為 "preferred"

規範

規範
Web Authentication:訪問公鑰憑證的 API - 第 3 級
# dictdef-publickeycredentialrequestoptions

瀏覽器相容性