ドキュメント
a project

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
}