跳到主内容

WebAuthn

概述

我们很高兴地通知Casdoor的客户,Casdoor现在支持使用WebAuthn登录。 这意味着您可以使用您的生物识别,如指纹或面部识别,甚至U盘登录,只要您的设备支持这些酷炫的授权方法和WebAuthn。

什么是 WebAuthn?

WebAuthn是Web认证API,由W3C和FIDO与Google、Mozilla、Microsoft、Yubico等公司共同编写的规范。 这个API允许服务器使用公钥加密而不是密码来注册和认证用户。 它使服务器能够与设备内置的强大认证器集成,如Windows Hello或Apple的Touch ID。

简单来说,WebAuthn要求用户生成一个公钥-私钥对,并将公钥提供给网站。 当用户想要登录一个网站时,网站生成一个随机数,并要求用户用他们的私钥加密它并将结果发送回来。 收到结果后,网站使用公钥对其进行解密。 如果解密后的数字与之前生成的随机数匹配,用户被视为合法用户,并被授予登录权限。 公钥和必要信息(如用户名或用户的授权者信息)的组合被称为WebAuthn凭证,由网站存储。

公钥-私钥对独有且唯一地与三个信息关联:用户的用户名、用户的授权者和网站的URL。 这意味着,如果(用户的用户名、用户的授权者和网站的URL)的组合相同,那么密钥对应该是相同的,反之亦然。

关于WebAuthn技术的更详细信息,您可以访问https://webauthn.guide/

如何在Casdoor中使用WebAuthn?

在登录页面,您可能已经注意到了使用WebAuthn登录的选项。 然而,如果你还没有WebAuthn凭证(可以类比为WebAuth密码),这个教程将向你展示如何创建和管理一个凭证,然后使用它登录。

步骤0:修改配置并启用WebAuthn认证

conf/app.conf文件中,你可以找到以下配置:

origin = "http://localhost:8000"

请确保此配置与您网站的URL完全匹配。

注意:只有HTTPS支持WebAuthn,除非你正在使用localhost。

接下来,以管理员身份登录,进入你的应用的编辑页面。 打开"启用WebAuthn登录"开关。 默认情况下,此功能未启用。

步骤1:进入"我的账户"页面

导航到账户页面。 在这个页面,你应该看到"添加WebAuthn凭证"按钮和一个显示你之前注册的所有WebAuthn凭证的列表。

WebAuthn1

点击按钮并按照设备的指示在Casdoor中注册一个新的凭证。 你可以使用列表中的"删除"按钮删除任何凭证。

步骤2:使用WebAuthn登录

在开始这一步之前,确保你已经退出了Casdoor。

进入登录页面,选择WebAuthn登录方法,输入你的用户名,然后点击登录按钮。 按照设备的指示操作。

(例如,如果你正在使用指纹和Windows Hello,你应该看到这样的东西)

WebAuthn2

然后你就会成功登录。