basic_auth
Включает HTTP Basic аутентификацию, которая может использоваться для защиты каталогов и файлов с помощью имени пользователя и хэшированного пароля.
Обратите внимание, что basic auth небезопасен по протоколу HTTP без шифрования. Будьте осторожны, когда решаете, что защищать с помощью HTTP Basic аутентификации.
Когда пользователь запрашивает защищённый ресурс, браузер запросит у пользователя имя пользователя и пароль, если они ещё не были предоставлены. Если правильные учетные данные присутствуют в заголовке Authorization, сервер предоставит доступ к ресурсу. Если заголовок отсутствует или учетные данные неверны, сервер ответит HTTP 401 Неавторизован.
Конфигурация Caddy не принимает пароли в виде простого текста; вы ДОЛЖНЫ их хэшировать перед внесением в конфигурацию. Команда caddy hash-password может помочь с этим.
После успешной аутентификации {http.auth.user.id} будет доступно, содержащее имя аутентифицированного пользователя.
До версии 2.8.0 эта директива называлась basicauth, но была переименована для обеспечения согласованности с другими директивами.
Синтаксис
basic_auth [<matcher>] [<hash_algorithm> [<realm>]] {
<username> <hashed_password>
...
}
-
<hash_algorithm> — имя алгоритма хэширования паролей (или KDF), используемого для хэшей в этой конфигурации. По умолчанию:
bcrypt -
<realm> — пользовательское имя области.
-
<username> — имя пользователя или идентификатор пользователя.
-
<hashed_password> — хэш пароля.
Примеры
Требовать аутентификацию для всех запросов к example.com:
example.com {
basic_auth { # Username "Bob", password "hiccup"
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
respond "Welcome, {http.auth.user.id}" 200
}
Защитить файлы в /secret/, чтобы только Bob могли к ним получить доступ (а любой может видеть другие пути):
example.com {
root * /srv
basic_auth /secret/* { # Username "Bob", password "hiccup"
Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG
}
file_server
}
© 2015-2025 Matthew Holt and The Caddy Authors
Licensed under the Apache License 2.0.
Caddy is a registered trademark of Stack Holdings GmbH.
https://caddyserver.com/docs/caddyfile/directives/basic_auth