Datasette插件,用于使用密码进行访问认证
项目描述
datasette-auth-passwords
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 登录。
用法
此插件基于硬编码到插件配置中的用户名/密码账户列表运行。
首先,您需要创建一个密码散列。有以下三种方式
- 安装插件后,使用位于
/-/password-tool
的交互式工具 - 使用该工具的托管版本,见 https://datasette-auth-passwords-demo.datasette.io/-/password-tool
- 使用以下描述的
datasette hash-password
命令
现在将以下内容添加到您的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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 403a53cb6a29617e91ea3de212dd54e7270c2bdb3e9e8dba350d540e1c5adfca |
|
MD5 | a8f4e09566f4c65bb41d368c8f441cd1 |
|
BLAKE2b-256 | 41272e613ed17c92effac6d3a23c9b16bb983fcaa56a223f62ead61070f37f83 |
datasette_auth_passwords-1.1.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95a933214fbd8ad1218d11bc37a17e074c66141e593ce202cf0f45cd3562c734 |
|
MD5 | 2c11dd9d9b7c6a2b3656af3f4a469486 |
|
BLAKE2b-256 | 3a2533eff736b8ebeacbd69bd323f8b52348686150ef67228b119936343c967b |