basicauth
HTTP 基本認証を有効にします。これは、ユーザー名とハッシュされたパスワードでディレクトリとファイルを保護するために使用できます。
HTTP 基本認証はプレーン HTTP では安全ではないことに注意してください。HTTP 基本認証で保護するものを決定するときは、慎重さを期してください。
保護されたリソースをユーザーがリクエストすると、ユーザーがすでにユーザー名とパスワードを提供していない場合は、ブラウザはユーザーにユーザー名とパスワードの入力を促します。適切なクレデンシャルが認可ヘッダーにある場合、サーバーはリソースへのアクセスを許可します。ヘッダーがないか、クレデンシャルが正しくない場合、サーバーは HTTP 401 未認証で応答します。
Caddy 設定はプレーンテキストのパスワードを受け入れません。設定に入れる前に、必ずパスワードをハッシュしてください。caddy hash-password
コマンドが役立ちます。
認証に成功すると、認証されたユーザー名を含む {http.auth.user.id}
プレースホルダーが使用できます。
構文
basicauth [<matcher>] [<hash_algorithm> [<realm>]] {
<username> <hashed_password> [<salt_base64>]
...
}
-
<ハッシュアルゴリズム> は、この設定のハッシュに使用されるパスワードハッシュアルゴリズムまたは KDF の名前です。既定:
bcrypt
-
<レルム> はカスタム レルム名です。
-
<ユーザー名> はユーザー名またはユーザー ID です。
-
<ハッシュされたパスワード> はパスワード ハッシュです。
-
<salt_base64> は外部のソルトが必要な場合のパスワード ソルトの base-64 エンコードです。これは、現在非推奨になっている
scrypt
アルゴリズムにのみ必要でした。削除される予定です。
例
example.com
に対するすべてのリクエストに認証を求めます
example.com {
basicauth {
# Username "Bob", password "hiccup"
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
respond "Welcome, {http.auth.user.id}" 200
}
/secret/
内のファイルを保護し、Bob
だけがアクセスできるようにします(誰でも他のパスは確認できます)
example.com {
root * /srv
basicauth /secret/* {
# Username "Bob", password "hiccup"
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
file_server
}