Я использую NGINX 1.8.0 с nginx-auth-ldap. У меня есть приложение, работающее на /app
using auth_ldap
для аутентификации/авторизации. Оно работает.
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
...
}
}
Я хотел бы предоставить доступ к дополнительной bot
учетной записи для выполнения некоторого автоматизированного обслуживания (веб-API). Я не могу создать учетную запись LDAP по bot
соображениям безопасности.
Я пытался одновременно использовать auth_ldap
и auth_basic
(с одним bot
пользователем для последнего), но любые учетные данные приводят к ошибке 401. Я допустил ошибку или просто невозможно заставить это работать таким образом?
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htaccess
...
}
}
Если это не сработает, можете ли вы дать какие-либо другие рекомендации относительно дальнейших действий?
Примечание: Я попытался отразить приложение с auth_basic
в другом месте. Контроль доступа работает, но приложение жестко кодирует свой URL: ответы от /app-auth-basic
содержат ссылки обратно на /app
. У меня нет контроля над приложением, поэтому это, похоже, никуда не ведет.
server {
listen 80;
...
location /app/ {
auth_ldap "Restricted";
auth_ldap_servers test;
...
}
location /app-auth-basic/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htaccess
...
}
}
решение1
Вы были почти правы, но упустили satisfy
директиву:
server {
listen 80;
...
location /app/ {
satisfy any;
auth_ldap "Restricted LDAP";
auth_ldap_servers test;
auth_basic "Restricted htaccess";
auth_basic_user_file /etc/nginx/.htaccess
...
}
}
При этом сначала вам будет предложено диалоговое окно аутентификации с надписью «Ограниченный LDAP» (принимает только учетные данные LDAP). Если вы нажмете «Отмена», вам будет предложено другое диалоговое окно аутентификации с надписью «Ограниченный htaccess» (принимает только пользователей/пароли, которые находятся в вашем файле htaccess). Обратите внимание, что второе диалоговое окно никогда не появится, если вы уже ввели правильные учетные данные в первом.
В качестве альтернативы вы можете сразу отправить учетные данные htaccess, чтобы войти.http://user:[email protected]