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.
Este é o aspeto da janela de autorização do Auth Basic:
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
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;
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;
}
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;
}
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.