WSO2 IS 5.11 - 无法在 Apple 设备上使用 FIDO 身份验证

WSO2 IS 5.11 - Unable to use FIDO authentication on Apple devices

总结: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,并在加载时失败,禁用 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

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

因此,为了解决这个问题,WSO2 Identity Server added a proceed button 为 Safari 用户提供了身份验证页面。因此,Safari 用户现在可以单击此按钮来启动 webauthn 流程。