Formas de pagamento Abuse

Como configurar o Auth Basic NGINX

14.03.2021, 22:14

Pode nunca ter pensado muito no que é o Auth Basic, mas de certeza que já o encontrou quando entrou nas definições do seu router. É assim que se chama o mecanismo de autorização por nome de utilizador e palavra-passe ao nível do servidor Web. Este tipo de autorização é suportado tanto pelo Apache como pelo Nginx. Nesta instrução, sugerimos que considere uma questão como a de configurar o Auth Basic para uma rota específica ou um sítio específico.

Configuração do Auth Basic no NGINX

Este é o aspeto da janela de autorização do Auth Basic:

Окно авторизации Basic Auth

Agora você deve entender do que se trata esta instrução. É possível configurar a autorização para um URL específico, para todo o site ou para todos os sites. Mas a primeira coisa a fazer é criar um ficheiro com uma lista de utilizadores e palavras-passe. Para este efeito, vamos utilizar o utilitário htpasswd. A sintaxe do comando é a seguinte:

$ sudo htpasswd -c /path/to/file username

Neste caso, a opção -c é utilizada para criar um novo ficheiro, não é necessário utilizá-la para editar ficheiros criados anteriormente. Por exemplo:

$ sudo htpasswd -c /etc/nginx/auth.basic admin

Basic Auth

O programa faz um pedido de palavra-passe dupla. Por razões de segurança, a palavra-passe não é apresentada, mas é introduzida. Depois de ter criado esse ficheiro, pode ir diretamente para a configuração do Nginx.

Para proteger todos os recursos com palavra-passe, é necessário adicionar uma diretiva à secção http do ficheiro /etc/nginx/nginx.conf:

auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;

настройка Nginx

Para proteger um endereço de página específico (URL), é necessário adicionar uma diretiva ao bloco de localização correspondente. Pode ser /wp-admin/admin-ajax.php:

location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}

настройка Nginx

Se o site estiver no WordPress, é melhor colocar a localização em location/. Todas as regras descritas acima funcionarão, além de ser fornecida proteção. Se for necessário permitir o acesso a uma localização específica, a diretiva será semelhante a auth_basic "off":

location /wp-admin/admin-ajax.php {
auth_basic "off";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}

создание location

O processamento do PHP terá de ser adicionado ao bloco de localização, caso contrário o utilizador será solicitado a descarregar o script a que está a aceder.

Assim, a configuração do acesso no Nginx não é muito difícil. Basta configurar corretamente o bloco de localização.