1

摘要:WSO2 IS 5.11 已安装并配置为使用 FIDO 作为服务提供商的本地身份验证器。当 Apple 设备上的用户尝试使用 FIDO 本地身份验证器登录服务提供商时,用户会立即被重定向到失败的登录尝试页面。

根据附加到用户设备的 Safari Web Inspector,fido2-auth.jsp [1] 生成以下错误消息:

User gesture is not detected. To use the WebAuthn API, call 'navigator.credentials.create' within user activated events.

Apple 要求 WebAuthn API 调用源自用户手势 [2]。fido2-auth.jsp 尝试通过导致上述错误消息的 onload [3] 事件调用 WebAuthn API。

问题:适当的解决方法是在此页面上有一个“重试”按钮,通过用户手势显式调用 WebAuthn API,并且在 onload 失败时,禁用 talkToDevice() [4] 中的自动表单提交,以便用户可以使用“重试”按钮?WSO2 是否为使用 Apple 设备执行 FIDO 身份验证的用户确定了另一条路径?

参考

[1] - https://github.com/wso2/identity-apps/blob/master/apps/authentication-portal/src/main/webapp/fido2-auth.jsp

[2] - https://webkit.org/blog/11312/meet-face-id-and-touch-id-for-the-web/

[3] - https://github.com/wso2/identity-apps/blob/master/apps/authentication-portal/src/main/webapp/fido2-auth.jsp#L43

[4] - https://github.com/wso2/identity-apps/blob/master/apps/authentication-portal/src/main/webapp/fido2-auth.jsp#L182

4

1 回答 1

1

此问题是由 Safari 需要用户操作来启动 webauthn 流引起的。由于其他浏览器的要求不同,因此我们在任何其他浏览器中都不会遇到这个问题。

因此,为了解决这个问题,WSO2 Identity Server为 Safari 用户的身份验证页面添加了一个继续按钮。因此,Safari 用户现在可以单击此按钮来启动 webauthn 流程。

于 2022-02-18T06:33:20.540 回答