BASIC AUTH – to proste uwierzytelnianie (logowanie) realizowane przez przeglądarkę internetową. Może się zdarzyć, że będziemy chcieli zablokować dostęp do niektórych zasobów WWW np: plików do pobrania, katalogów na serwerze, strony internetowej itp., wtedy możemy skorzystać z prostej autoryzacji, bez konieczności tworzenia systemu logowania opartego o bazę danych.

Aby zrobić to w Symfony 4 wystarczy skonfigurować plik security.yaml (/config/packages/security.yaml):

W parametrze dostawcy (providers) tworzymy listę użytkowników (users). W naszym przykładzie dodamy tylko jednego użytkownika o nazwie admin i haśle – password, z przypisaną rolą – ROLE_ADMIN. Dla zapory firewall, w głównym parametrze (main) definiujemy prostą autoryzację – http_basic. W kontroli dostępu (access_control) dodajmy ścieżki Url, które będą zabezpieczone autoryzacją. W koderach (encoders) implementujemy wbudowaną klasę User i sposób kodowania np: zwykły tekst (plaintext).

Na niektórych serwerach Apache autoryzacja HTTP może być usuwana z nagłówka HTTP, z powodu bezpieczeństwa. Aby to obejść, wystarczy dopisać dyrektywę SetEnvIfNoCase do pliku .htaccess:

Na koniec przetestuj działanie uruchamiając w przeglądarce adres: //127.0.0.1/admin/ – zgodnie z wpisem w pliku security.yaml. Jeśli wszystko jest dobrze skonfigurowane powinno pojawić się okienko logowania, jak na obrazku poniżej:

basic-http