密码文件身份验证

Presto 可以配置为通过 HTTPS 为客户端启用前端密码身份验证,例如 CLI、JDBC 和 ODBC 驱动程序。用户名和密码将针对存储在文件中的用户名和密码进行验证。

密码文件身份验证与 LDAP 身份验证 非常相似。请参阅 LDAP 文档,以获取有关配置服务器和客户端以使用 TLS 并使用用户名和密码进行身份验证的一般说明。

密码验证器配置

通过在协调器上创建一个 etc/password-authenticator.properties 文件来启用密码文件身份验证。

password-authenticator.name=file
file.password-file=/path/to/password.db

以下配置属性可用

属性

描述

file.password-file

密码文件的路径。

file.refresh-period

重新加载密码文件的频率。默认值为 5s

file.auth-token-cache.max-size

缓存的身份验证密码的最大数量。默认值为 1000

密码文件

文件格式

密码文件包含用户名和密码列表,每行一个,用冒号分隔。密码必须使用 bcrypt 或 PBKDF2 安全地进行散列。

bcrypt 密码以 $2y$ 开头,并且必须使用至少 8 的成本

test:$2y$10$BqTb8hScP5DfcpmHo5PeyugxHz5Ky/qf3wrpD7SNm8sWuA3VlGqsa

PBKDF2 密码由迭代次数、十六进制编码的盐和散列组成。

test:1000:5b4240333032306164:f38d165fce8ce42f59d366139ef5d9e1ca1247f0e06e503ee1a611dd9ec40876bb5edb8409f5abe5504aab6628e70cfb3d3a18e99d70357d295002c3d0a308a0

创建密码文件

使用 htpasswd 实用程序(来自 Apache HTTP Server)可以创建使用 bcrypt 格式的密码文件。必须指定成本,因为 Presto 强制执行的最低成本高于默认成本。

创建一个空的密码文件以开始

touch password.db

添加或更新用户 test 的密码

htpasswd -B -C 10 password.db test