跳转到主要内容

Datasette插件,用于使用密码进行访问认证

项目描述

datasette-auth-passwords

PyPI Changelog License

Datasette插件,用于使用密码进行访问认证

安装

在Datasette相同的环境中安装此插件。

datasette install datasette-auth-passwords

演示

此插件的演示正在运行于 https://datasette-auth-passwords-demo.datasette.io/

演示已配置为向所有人显示public.db数据库,但仅对登录用户显示private.db数据库。

您可以使用用户名root和密码password!https://datasette-auth-passwords-demo.datasette.io/-/login 登录。

用法

此插件基于硬编码到插件配置中的用户名/密码账户列表运行。

首先,您需要创建一个密码散列。有以下三种方式

现在将以下内容添加到您的metadata.json

{
    "plugins": {
        "datasette-auth-passwords": {
            "someusername_password_hash": {
                "$env": "PASSWORD_HASH_1"
            }
        }
    }
}

现在在运行Datasette时,可以通过环境变量指定密码散列。您可以这样做:

PASSWORD_HASH_1='pbkdf2_sha256$...' \
    datasette -m metadata.json

请务必在这里使用单引号,否则密码散列中的美元符号($)可能会被您的shell错误解释。

现在您可以使用用户名 someusername 和您创建散列时使用的密码,通过 /-/login 页面的表单登录到您的实例。

您可以在配置中包含尽可能多的账户,每个账户具有不同的用户名。

datasette hash-password

插件公开了一个新的CLI命令 datasette hash-password。您可以在没有参数的情况下运行它来交互式地创建一个新的密码散列。

datasette hash-password
Password: 
Repeat for confirmation: 
pbkdf2_sha256$260000$1513...

或者,如果您想将其作为脚本的一部分使用,可以在命令中添加 --no-confirm 选项,直接从标准输入生成散列。

echo 'my password' | datasette hash-password --no-confirm
pbkdf2_sha256$260000$daa...

指定参与者

默认情况下,登录用户将产生一个只包含其用户名的 参与者块

{
    "id": "someusername"
}

您可以通过包含一个 "actors" 配置块来自定义将用于用户名的参与者,如下所示:

{
    "plugins": {
        "datasette-auth-passwords": {
            "someusername_password_hash": {
                "$env": "PASSWORD_HASH_1"
            },
            "actors": {
                "someusername": {
                    "id": "someusername",
                    "name": "Some user"
                }
            }
        }
    }
}

HTTP基本认证选项

此插件默认使用HTML表单实现登录,该表单设置一个签名认证cookie。

您可以配置它使用 HTTP基本认证 代替。

通过在插件配置中的 datasette-auth-passwords 块中添加 "http_basic_auth": true 来实现此功能。

此选项引入以下行为:

  • 账户用户名和密码的配置方式与基于表单的认证相同。
  • Datasette中的每个页面都会显示浏览器登录提示,即使通常不使用认证的页面,如静态资产。
  • 用户无法在不完全关闭浏览器的情况下注销。

您可以在 https://datasette-auth-passwords-http-basic-demo.datasette.io/ 上查看此模式的演示 - 使用用户名 root 和密码 password! 登录。

与datasette publish一起使用

如果您正在使用 datasette publish 命令发布数据,可以使用 --plugin-secret 选项安全地配置密码散列(请参阅 秘密配置值)。

您将运行命令如下所示:

datasette publish cloudrun mydatabase.db \
    --install datasette-auth-passwords \
    --plugin-secret datasette-auth-passwords root_password_hash 'pbkdf2_sha256$...' \
    --service datasette-auth-passwords-demo

这将允许您使用创建散列时使用的密码以用户名 root 登录。

开发

要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-auth-passwords
python3 -mvenv venv
source venv/bin/activate

或者如果您正在使用 pipenv

pipenv shell

现在安装依赖项和测试

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

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

源分布

datasette_auth_passwords-1.1.1.tar.gz (8.3 kB 查看散列)

上传于 源代码

构建分布

datasette_auth_passwords-1.1.1-py3-none-any.whl (7.7 kB 查看哈希值)

上传于 Python 3

由以下支持