跳转到主要内容

Django应用,用于FIDO协议

项目描述

django-fido

Python tests JS tests codecov

Django应用,用于FIDO协议

Django-fido 提供了 FIDO 2 认证的基本组件 - 用于存储用户 FIDO 2 认证器数据的模型和基本视图。

目录

依赖关系

  • Python 3.5 及以上
  • Django >= 3.0

配置

  1. django_fido 添加到 INSTALLED_APPS

  2. django_fido.backends.Fido2AuthenticationBackend 添加到 AUTHENTICATION_BACKENDS

  3. 将 django-fido 的 URL 链接到您的 urls.py

    urlpatterns += [
       url(r'', include('django_fido.urls')),
    ]
    
  4. 如果您愿意,可以设置字符串变量 DJANGO_FIDO_RP_NAME

额外配置

DJANGO_FIDO_RESIDENT_KEY

默认:False

用途:设置为 True 以启用可发现凭据,私钥及其相关元数据存储在认证器的持久内存中。这对于无密码认证很有用。

一步式认证

您还可以选择使用一步式认证。在这种情况下,您将只使用一个认证表单,该表单将收集用户名、密码和 FIDO2 凭据。除了上述配置外,您还需要

  1. DJANGO_FIDO_TWO_STEP_AUTH 设置为 False
  2. AUTHENTICATION_BACKENDS 中将 django_fido.backends.Fido2AuthenticationBackend 替换为 django_fido.backends.Fido2GeneralAuthenticationBackend
  3. 如果您使用的是除 django.contrib.auth.backends.ModelBackend 之外的其他认证后端,请将 DJANGO_FIDO_AUTHENTICATION_BACKENDS 设置为您额外的认证后端列表。
  4. 在您的登录页面表单元素上设置 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 上的 levelvulnerabilitiesis_update_available 方法用于确定信任和认证级别。

无密码

此认证需要“可发现凭据”并使用该凭据通过无密码认证后端执行用户查找

  1. DJANGO_FIDO_RESIDENT_KEY 设置为 True
  2. 将 'DJANGO_FIDO_PASSWORDLESS_AUTH' 设置为 'True'
  3. 将 'DJANGO_FIDO_TWO_STEP_AUTH' 设置为 'False'
  4. AUTHENTICATION_BACKENDS 中将 django_fido.backends.Fido2AuthenticationBackend 替换为 django_fido.backends.Fido2PasswordlessAuthenticationBackend

设置用户验证要求

DJANGO_FIDO_USER_VERIFICATION 设置为 requiredpreferreddiscouraged,默认为 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

  • 初始版本。

项目详情。


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分布

django-fido-1.2.1.tar.gz (641.4 kB 查看散列)

构建分布

django_fido-1.2.1-py3-none-any.whl (648.7 kB 查看散列)

Python 3

由以下机构支持

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