Django应用,用于基于WebAuthn和TOTP的多因素认证
项目描述
Kagi
Kagi为Django提供对FIDO WebAuthn安全密钥和TOTP令牌的支持。
卡吉是一个相对较新的项目,尚未经过充分实战检验。在高压环境下使用之前,应充分了解其工作原理。
安装
python -m pip install kagi
将 kagi 添加到 INSTALLED_APPS 中,并在您的 URL 模式中的某个位置包含 kagi.urls。设置:LOGIN_URL = "kagi:login"
确保 Django 的内置登录视图没有 urlpattern,因为它将验证用户而不需要第二个因素。卡吉提供自己的登录视图来处理该问题。
演示
要查看演示,请使用此存储库中包含的测试项目,并执行以下步骤(首先创建和激活虚拟环境是可选的)。
首先,安装 Poetry
curl -sSL https://install.python-poetry.org/ | python -
克隆卡吉源代码并切换到其目录
git clone https://github.com/justinmayer/kagi.git && cd kagi
安装依赖项,运行数据库迁移,创建用户,并运行演示
poetry install poetry shell invoke migrate python testproj/manage.py createsuperuser invoke serve
现在,您应该在浏览器中看到演示项目的登录页面: http://localhost:8000/kagi/login
支持的浏览器和版本可在此处找到: https://caniuse.cn/webauthn 对于非 localhost 的域名,WebAuthn 要求网站通过安全(HTTPS)连接提供服务。
由于您尚未添加任何安全密钥,您将仅使用用户名和密码登录。登录后并转到多因素设置页面,选择“管理 WebAuthn 密钥”,然后选择“添加另一个密钥”,并按照提供的说明进行操作。一旦成功配置了 WebAuthn 和/或 TOTP,您的帐户将通过多因素身份验证得到保护,下次登录时,将需要您的 WebAuthn 密钥或 TOTP 令牌。
您可以在键管理页面上管理附加到您的帐户的密钥: http://localhost:8000/kagi/keys
在 Linux 上使用 WebAuthn 密钥
某些发行版没有包含 udev 规则,以使 USB HID /dev/ 节点对普通用户可访问。如果您的密钥没有像预期的那样亮起并开始闪烁,这可能是原因。请参阅 https://github.com/Yubico/libu2f-host/issues/2 和 https://github.com/Yubico/libu2f-host/blob/master/70-u2f.rules 中对该规则的讨论。如果您只需要快速临时修复,每次插入密钥后都可以运行 sudo chmod 666 /dev/hidraw*(拔掉后文件会消失)。
感谢
如果没有 Rémy HUBSCHER 的重大贡献,这个项目将不会存在。
感谢 Gavin Wahl 的 django-u2f,该项目为这个项目提供了有用的初始框架。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。
源分发
构建分发
kagi-0.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1530e7de0b9b3522d77ea41e1069b6497f04c19063061a57d26a2f9ce2561061 |
|
MD5 | 7037fda2f51ecc91dc5becdaeba18324 |
|
BLAKE2b-256 | 43942391f343d905522d5317c2ed4d23e38a79b26f9dcacdde86349455bdd6d7 |
kagi-0.4.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3b184d871246b754e168cd08a9ab9cfb4dc45bbfb039e05c6691e092b94e4e2e |
|
MD5 | d38379e2a212736206a471e837abac05 |
|
BLAKE2b-256 | b18c0ad8b13921ad5597a22f9abc589e85ee37705587d58bd3a86abb3411ce5d |