パスワードファイル認証

Prestoは、CLI、JDBCドライバ、ODBCドライバなどのクライアントに対して、HTTPS経由のフロントエンドパスワード認証を有効にするように設定できます。ユーザー名とパスワードは、ファイルに保存されているユーザー名とパスワードに対して検証されます。

パスワードファイル認証はLDAP認証と非常に似ています。サーバーとクライアントを構成してTLSを使用し、ユーザー名とパスワードで認証する方法については、LDAPドキュメントを参照してください。

パスワード認証設定

コーディネーター上に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

パスワードファイル

ファイル形式

パスワードファイルには、ユーザー名とパスワードのリストが1行に1つずつ、コロンで区切られて含まれています。パスワードは、bcryptまたはPBKDF2を使用して安全にハッシュする必要があります。

bcryptパスワードは$2y$で始まり、最小コストは8である必要があります。

test:$2y$10$BqTb8hScP5DfcpmHo5PeyugxHz5Ky/qf3wrpD7SNm8sWuA3VlGqsa

PBKDF2パスワードは、反復回数、それに続く16進数でエンコードされたソルトとハッシュで構成されます。

test:1000:5b4240333032306164:f38d165fce8ce42f59d366139ef5d9e1ca1247f0e06e503ee1a611dd9ec40876bb5edb8409f5abe5504aab6628e70cfb3d3a18e99d70357d295002c3d0a308a0

パスワードファイルの作成

bcrypt形式を使用するパスワードファイルは、htpasswdユーティリティ(Apache HTTP Serverから入手可能)を使用して作成できます。Prestoはデフォルトよりも高い最小コストを強制するため、コストを指定する必要があります。

開始するには、空のパスワードファイルを作成します。

touch password.db

ユーザーtestのパスワードを追加または更新します。

htpasswd -B -C 10 password.db test