- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用 WebAuthn 和我的 YubiKey 进行身份验证时,response.userHandle 属性始终为 null。那是我注册凭据的用户 ID 和显示名称不会返回。这是因为我在注册/身份验证过程中做错了什么吗:
async function register() {
const publicKeyCredentialCreationOptions = {
challenge: Uint8Array.from("this-is-a-test", (c) => c.charCodeAt(0)),
rp: {
name: "Webauthn Test",
id: "localhost",
},
user: {
id: Uint8Array.from("a1b2c3d4e5f6", (c) => c.charCodeAt(0)),
name: "just-a-test",
displayName: "MrUser",
},
pubKeyCredParams: [{ alg: -7, type: "public-key" }],
authenticatorSelection: {
authenticatorAttachment: "cross-platform",
},
timeout: 60000,
attestation: "direct",
};
const credential = await navigator.credentials.create({
publicKey: publicKeyCredentialCreationOptions,
});
}
这是我用来验证的代码:
async function authenticate() {
const publicKeyCredentialRequestOptions = {
challenge: Uint8Array.from("test", (c) => c.charCodeAt(0)),
allowCredentials: [
{
id: credentialId,
type: "public-key",
transports: ["usb", "ble", "nfc"],
},
],
timeout: 60000,
};
const assertion = await navigator.credentials.get({
publicKey: publicKeyCredentialRequestOptions,
});
console.log(assertion);
}
我最终得到的是:
{
rawId: ArrayBuffer(64),
id: "U-nitqhlORmmdltp7TLO3i18KNoWsSebFyrtc3OIRvcktvwlz-dJZCA1_1gxXrNHzqReU7xGAHdfVP75N2aJSw",
response: {
authenticatorData: ArrayBuffer(37) {}
clientDataJSON: ArrayBuffer(101) {}
signature: ArrayBuffer(71) {}
userHandle: null
}
type: "public-key"
}
As you can see: userHandle is null. Can anyone tell me why?
最佳答案
userHandle
可以为空,具体取决于依赖方请求创建的 WebAuthn 凭证类型。
默认的 WebAuthn 行为将创建一个不可发现的凭证,断言中返回的 userHandle
将为空。此类凭据的身份验证器上未存储任何数据,因此没有任何可返回的内容。
要创建 WebAuthn 客户端可发现凭证,也称为常驻 key ,您必须将 requireResidentKey
成员设置为 true
。这会将凭证数据存储在身份验证器上,并将在断言中返回 userHandle
。引用AuthenticatorSelectionCriteria in the W3C WebAuthn spec了解详情。
这是一个例子:
authenticatorSelection: {
authenticatorAttachment: "cross-platform",
requireResidentKey: true
},
参见 Yubico's WebAuthn Dev Guide了解更多 resident keys和 userHandle .
关于security - YubiKey + Webauth : userHandle is always null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62760331/
在我们的应用程序中,我们使用 Spring RMI 概念。 我有一个问题如下 有一个名为UserHandlerI的接口(interface)及其实现类UserHandler如下所示 界面 public
我正在重建一个 Android 应用程序,我从 OEM 那里获得了源代码。通常,该应用程序可以在命令行中使用 make 命令并且可以正常工作。应用程序的 UI、 list 等在 Eclipse 中完成
我有一个在后台运行的服务,用于监视前台 Activity 。目前这不区分用户(多用户帐户Android 4.2)。有没有一种方法可以让服务将其运行的用户与前台 Activity 的用户进行比较?我只对
当我使用 WebAuthn 和我的 YubiKey 进行身份验证时,response.userHandle 属性始终为 null。那是我注册凭据的用户 ID 和显示名称不会返回。这是因为我在注册/身份
我目前可以使用以下方法创建 publicKeyCredentials: navigator.credentials.create({ challenge: Uint8Array.from(
我已将我的应用程序作为设备所有者并创建了另一个用户。现在我想使用 broadcastAsUser 从主要用户向另一个用户广播。 我为此添加了以下权限 UserManager userManager
我是一名优秀的程序员,十分优秀!