7.2 Využití nástrojů WWW serveru

V případě využití nástrojů WWW serveru můžeme využít dva přístupy: Basic a Digest. Oba přístupy jsou pěkně popsány na http://www.unixpapa.com/auth/index.html. Pro další čtení je nutné pročíst první kapitolu odkazovaného dokumentu.

Poznámka: U WWW serveru MS IIS se můžete setkat rovněž s přístupem Integrated Windows Autentication. Tento přístup využívá databázi uživatelů z OS W2KS (WNTS, W2003S) resp. z ActiveDirectory serveru. Tento typ není podporován specifikací HTTP a proto funguje jen na omezeném počtu klientů (resp. na MSIE).

Basic autentizace není příliš bezpečná, proto se nedoporučuje používat pro operace nad citlivými daty. Digest autentizaci provází nekompatibilita WWW serverů a WWW prohlížečů. V zásadě jsou z tohoto problému pouze dvě cesty. Buďto zabezpečená komunikace (probíraná v kapitole 8) ve spojení s Basic metodou autentizace nebo vlastní řešení (obvykle také v kombinaci se zabezpečenou komunikací). Přesto, předtím než se budeme věnovat vlastní implementaci, se v následujícím textu podíváme jak se řeší Basic autentizace v prostředí WWW serveru Apache.

HTTP specifikace (nástroje WWW serveru)

Podrobné informace o Basic metodě pro Apache najdete na http://httpd.apache.org/docs-2.0/howto/auth.html. K tomu aby bylo možné nastavit Basic autentizaci v prostředí WWW serveru Apache postupovat následujícím způsobem:

  • Vytvořit databázi uživatelů
  • (Volitelně vytvořit skupiny uživatelů)
  • Doplnit sekci Directory pro zvolený adresář o prvky autentizace

Basic autentication

K vytvoření databáze uživatelů se využívá program htpasswd, který je kompilován spolu s apache.

htpasswd -c /usr/local/apache/passwd/passwords jencek

Příkaz vytváří novou databázi (soubor) uživatelů a přidává do něj uživatele jencek. Následně je vyžádáno heslo pro uživatele.

New password: mypassword
Re-type new password: mypassword
Adding password for user jencek

Další uživatelé se přidávají pomocí stejného programu jen se vypouští přepínač -c.

Vytvoření databáze uživatelů

K vytvoření databáze skupin se využívá textový editor. Struktura souboru se skupinami je následující:

GroupName: username username username

Př.
gis: jencek michal pavel
igi: lojza, karel, marek

Vytvoření databáze skupin

Sekce Directory zvoleného adresáře se doplní následujícím (nebo podobným kódem):

AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require user jencek
Require group gis

Direktiva AuthType udává typ (Basic, Digest). Direktiva AuthName udává pojmenování komunikace (uvedený text se objeví na přihlašovacím okně).

Direktiva AuthUserFile udává cestu a název souboru s hesly (vytvořený v prvním kroku). Direktiva AuthGroupFile udává cestu a název souboru se skupinami (vytvořený ve druhém kroku). Direktiva AuthGroupFile nemusí být uvedena.

Direktiva Require může mít tři tvary:

  • Require user username username username ... - vyžaduje uživatelské jméno a heslo od některého z uvedených uživatelů
  • Require group groupname groupname gourpname ... - vyžaduje uživatelské jméno a heslo od některého uživatele z vyjmenovaných skupin
  • Require valid-user - vyžaduje jakéhokoliv platného uživatele a jeho heslo

Konfigurace adresáře

 

KORESPONDENČNÍ ÚKOL 10

 

Nakonfigurujte WWW server tak aby měli do virtuálního adresáře gis přístup všichni uživatelé ze skupiny gisaci a také uživatel pepa. Uživateli pepa a nikomu jinému umožňete přístp do virtuálního adresáře pepa a všem uživatelům v databázi umožňete přístup do adresáře publicforusers. Konfiguraci zašlete k posouzení tutorovi.

Přístup

 

SAMOSTATNÝ ÚKOL 19

 

Doplňte následující tabulku týkající se kompatibility klientů a serverů v oblasti medoty Digest.

 MozillaMSIEOpera
Apache   
IIS