Django应用,用于FIDO协议
项目描述
django-fido
Django应用,用于FIDO协议
Django-fido 提供了 FIDO 2 认证的基本组件 - 用于存储用户 FIDO 2 认证器数据的模型和基本视图。
目录
依赖关系
- Python 3.5 及以上
- Django >= 3.0
配置
-
将
django_fido
添加到INSTALLED_APPS
。 -
将
django_fido.backends.Fido2AuthenticationBackend
添加到AUTHENTICATION_BACKENDS
。 -
将 django-fido 的 URL 链接到您的
urls.py
。urlpatterns += [ url(r'', include('django_fido.urls')), ]
-
如果您愿意,可以设置字符串变量
DJANGO_FIDO_RP_NAME
。
额外配置
DJANGO_FIDO_RESIDENT_KEY
默认:False
用途:设置为 True 以启用可发现凭据,私钥及其相关元数据存储在认证器的持久内存中。这对于无密码认证很有用。
一步式认证
您还可以选择使用一步式认证。在这种情况下,您将只使用一个认证表单,该表单将收集用户名、密码和 FIDO2 凭据。除了上述配置外,您还需要
- 将
DJANGO_FIDO_TWO_STEP_AUTH
设置为False
。 - 在
AUTHENTICATION_BACKENDS
中将django_fido.backends.Fido2AuthenticationBackend
替换为django_fido.backends.Fido2GeneralAuthenticationBackend
。 - 如果您使用的是除
django.contrib.auth.backends.ModelBackend
之外的其他认证后端,请将DJANGO_FIDO_AUTHENTICATION_BACKENDS
设置为您额外的认证后端列表。 - 在您的登录页面表单元素上设置
data-autosubmit-off
属性。
请注意,即使您的 USERNAME_FIELD
不是 username
,您的登录表单也必须有一个名为 username
的字段。
元数据下载
如果您想能够下载认证器元数据,您需要设置 DJANGO_FIDO_METADATA_SERVICE
设置,它是一个字典。MDS 可用两个版本:v2(已弃用)和 v3(当前)。如果您想使用 MDSv2,您必须设置一个有效的 ACCESS_TOKEN
。如果您想使用 MDSv3,您必须将 MDS_FORMAT
设置为 3
并设置一个提供 MDSv3 数据的有效 URL
。然后您可以定期运行 download_authenticator_metadata
管理命令。如果给定 Authenticator
的元数据可用,其 metadata
属性将是一个对象。可以在 metadata
上的 level
、vulnerabilities
和 is_update_available
方法用于确定信任和认证级别。
无密码
此认证需要“可发现凭据”并使用该凭据通过无密码认证后端执行用户查找
- 将
DJANGO_FIDO_RESIDENT_KEY
设置为True
- 将 'DJANGO_FIDO_PASSWORDLESS_AUTH' 设置为 'True'
- 将 'DJANGO_FIDO_TWO_STEP_AUTH' 设置为 'False'
- 在
AUTHENTICATION_BACKENDS
中将django_fido.backends.Fido2AuthenticationBackend
替换为django_fido.backends.Fido2PasswordlessAuthenticationBackend
。
设置用户验证要求
将 DJANGO_FIDO_USER_VERIFICATION
设置为 required
、preferred
或 discouraged
,默认为 None
变更
查看 变更日志。
测试
使用 tox
运行测试
tox
许可
查看 许可证。
变更日志
1.2.1
- 修复了具有设备证书直接在 MDS 中的设备的元数据查找
1.2.0
- 在管理中添加认证器后,将重定向改为更改列表而不是更改视图
- 使
user_handle
在管理中为只读 - 升级到 nodejs 18.x
- 修复了居民密钥注册
1.1.0
- 添加了对 fido2 1.1 的支持
- 放弃了对 fido2 < 1.1 的支持
- 导出 js 翻译以供可选修改
1.0.1
- 锁定 fido2 依赖项
1.0.0
- 添加了对 fido2 1.0 的支持
- 放弃了对 fido2 < 1.0 的支持
- 提供没有副作用 的 fido2 JS 函数
0.43
- 处理 InvalidStateError
- 从
AUTH_LEVELS
中删除FIDO_CERTIFIED
0.42
- 在fido2.js中导出createTranslations函数
0.41
- 修复了元数据中statusReports顺序颠倒的问题
0.40
- 将fido2固定在 ~= 0.9
- 取消对Django 2.x的支持
- 修复了使用setuptools-npm构建包的问题
0.39
- 修复了用户不存在时的未捕获异常
0.38
- 修复了Authenticator.metadata在没有标识符的情况下的问题
- 添加了无密码认证后端
0.37
- 取消对Django 1.11的支持
- 取消对python 3.5的支持
- 设置default_auto_field
- 修复了django.conf.urls弃用警告
- 将user_handle字段添加到Authenticator模型中
- 添加了DJANGO_FIDO_RESIDENT_KEY(默认为False)应用设置
- 重构了js处理密钥注册,并暴露了额外的函数
0.36
- 按用户名对管理Authenticator添加表单中的用户进行排序
- 对元数据中的statusReport字典进行排序
0.35
- 将authenticate请求参数更改为位置参数
- 修复了空credential_data的元数据
- 将path-parse从1.0.6提升到1.0.7
- 在MDS3下正确清理数据库模型
0.34
- 修复了MDS3元数据验证
0.33
- 支持MDSv3 AuthenticatorMetadata
0.32
- 修复了没有计数器支持设备的认证
0.31
- 支持
fido2
库>0.9.0
- 在django 3.1下添加测试
- 处理返回多个设备元数据的情况
- JS修复和更新
0.30
- 计数器现在存储为BigInteger。
- 将
fido2
库的版本限制为<0.9.0
。
0.29
- 在注册视图中捕获
InvalidAttestation
错误。
0.28
- 更新错误字符串以提供更多信息。
0.27
- 在未知证明格式上抛出表单错误,而不是服务器错误。
0.26
- 改进U2F认证器的元数据匹配
0.25
- 重大更改 - 现在通过URL而不是标识符查找AuthenticatorMetadata。如果您正在下载元数据,需要清除所有内容并重新下载,以防止每个认证器有多个对象。
- 更新JS依赖项
0.24
- 元数据验证
0.23
- 不显示认证器错误
BaseFido2RequestView
响应中的error
键现在已弃用,并将在未来删除- 添加元数据下载和报告
0.22
- 使用用户名作为备用
displayName
0.21
- 当需要时创建FIDO错误列表,除非它已存在
- 在每个注册或认证请求之前清除FIDO错误列表
0.20
- 修复模板中Django 3.0的兼容性问题
0.19
- 将
attestation_types
类属性添加到Fido2ViewMixin
中,以指定注册期间允许的证明类型。 - 将设置
DJANGO_FIDO_AUTHENTICATION_BACKENDS
的默认值设置为包含django.contrib.auth.backends.ModelBackend
的列表
0.18
- 修复了由
DJANGO_FIDO_AUTHENTICATION_BACKENDS
的默认值引起的错误。它现在是一个空列表。
0.17
- 重大更改 - 用更通用的
Fido2GeneralAuthenticationBackend
替换Fido2ModelAuthenticationBackend
。
0.16
- 重大更改 - 认证器
label
必须对用户是唯一的。如果有多个令牌对用户,这可能会造成破坏。 - 添加认证器管理器。
- 添加一步式认证。
0.15
- 添加
DJANGO_FIDO_RP_NAME
设置。 - 在登录视图中添加自动提交。
- 在服务器请求错误时在登录视图中显示错误。
0.14
- 将标签添加到Authenticator模型中。
- 在注册视图中移除自动提交。
- 更新JS依赖项。
0.13
- 支持fido2 0.6-0.8。
- 添加对python 3.8的支持。
- 修复注释。
0.12
- 修复依赖项(添加webpack-cli)。
0.11
- 修复webpack输出路径。
0.10
- 修复依赖项(添加webpack)。
0.9
- 重构JS代码。
- 更新设置。
- 添加bumpversion。
0.8
- 修复JS翻译的惰性。
- 对于空值,提交按钮重新加载页面。
0.7
- 添加凭据ID字段。
- 取消
credential_data
字段。 - 更新错误消息。
- 将django-fido标记为已类型化。
- 添加JS钩子。
0.6
- 使用 FIDO 2 代替 U2F。
- 删除 python 2.7。
- 添加注释和 mypy 检查。
- 将仓库移至 CZ.NIC 账户。
0.5
- 修复 JS 翻译懒散性。
0.4
- 更新 JS 消息。
- 删除 tox 中的未使用
polint
环境。
0.3
- 将证明证书存储在数据库 #6 中。
- 安装包数据 #7。
0.2
- 在
BaseU2fRequestView.get
中接受任何参数。 - 添加捷克语翻译。
- 修复 README 中的链接。
0.1
- 初始版本。
项目详情。
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。