跳转到主要内容

Django应用,用于基于WebAuthn和TOTP的多因素认证

项目描述

Kagi

Code of Conduct Build Status Code Coverage Documentation Status PyPI Version

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/2https://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 (26.4 kB 查看哈希)

构建分发

kagi-0.4.0-py3-none-any.whl (35.9 kB 查看哈希值)

上传时间 Python 3

由...

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面