Běžné webové prohlížeče podporují Kerberos protokol a metodu Negotiate. Pro vlastní provedení využívají ve Windows systémové rozhraní SSPI. Většinou je ale třeba určitá konfigurace, aby autentizace korektně proběhla. Jde o povolení IWA (defaultně povolené je) a povolení dané DNS adresy serveru.
Internet Explorer
Od verze Internet Explorer 3 podporuje Integrated Windows Authentication (IWA) a defaultně je toto nastavení povolené. Povolení můžeme měnit v Internet Options - Advanced - část Security. Změna nastavení vyžaduje restart.
Protože IE považuje protokol Kerberos za interní, tak (standardně) povolí autentizaci pouze na adresy, které patří do zóny Local Intranet. Historicky IE bere jako interní adresy pouze NetBIOS jména a používá jednoduché pravidlo, pokud je v adrese tečka, tak jde o internetovou adresu. Takže každá běžná adresa zadaná pomocí FQDN (Fully Qualified Domain Name) nebo IP adresy je brána jako internetová, i když je lokální. Kerberos vychází z DNS, takže asi pro adresu používáme FQDN. Jediná možnost je tedy ručně zadat adresu či celou doménu mezi Local Intranet.
Nastavení provedeme v Internet Options - Security - Local Intranet - Sites - Advanced. Můžeme zadat celou adresu včetně protokolu, pouze adresu (pak funguje pro http i https) nebo využít zástupný znak hvězdička, což je nejčastější použití pro intranet (třeba *.firma.local
).
Ještě je zde jedno nastavení, které by nemělo být třeba měnit, ale je dobré o něm vědět. V nastavení Internet Options - Security zvolíme určitou zónu a klikneme na Custom level, úplně dole se nachází User Authentication - Logon. Můžeme nastavit Automatic logon with current username and password a tak povolit Kerberos autentizaci i pro jiné zóny než Local Intranet.
Konfigurace pomocí Group Policy
Internet Explorer má slušnou podporu nastavení pomocí Group Policy (GP). Standardně vytvoříme Group Policy Object (GPO), nebo editujeme existující, nastavíme požadované hodnoty a přilinkujeme na kontejner (doporučuje se aplikovat na uživatele). Pro některá nastavení můžeme využít GP Policies a pro některá GP Preferences. Pomocí Preferences můžeme například zapnout Integrated Windows Authentication.
User Configuration - Preferences - Control Panel Settings - Internet Settings
Ve výše uvedené cestě vytvoříme nastavení pro určitou verzi Internet Exploreru a můžeme konfigurovat většinu parametrů.
Povolené adresy pro Kerberos autentizaci, a celé nastavení Local Intranet, můžeme provést pomocí Policies. Nastavení se nachází v cestě.
User Configuration - Policies - Administrative Templates - Windows Components - Internet Explorer - Internet Control Panel - Security Page
Otevřeme položku Site To Zone Assignment List
, povolíme tuto politiku a přidáme adresy, které chceme zařadit do zóny. Pro každou adresu je jeden řádek, do value name zadáme adresu (třeba *.firma.local) a do value dáme číslo zóny, do které chceme zařadit adresu (1 - intranet, 2 - trusted, 3 - internet, 4 - restricted). Na stejném místě můžeme také zapnout třeba politiky Intranet Sites: Include all sites that bypass the proxy server
, Intranet Sites: Include all network paths (UNC)
a Intranet Sites: Include all local (intranet) sites not listed in other zones
, ale praktický efekt není moc velký.
Z principu fungování GP Policies plyne také chování, které může být vítané nebo naopak ne. Po nastavení politik se uživatelům zakáže měnit řízené hodnoty, tzn. přidávat (upravovat) adresy v zónách. Pokud chceme pouze přidat určitou adresu, a nechat uživatelům možnost si udržovat vlastní seznam, tak máme možnost nastavit hodnotu pomocí registrů. Cesta v registrech je
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\
Tam se vytváří klíč s názvem domény a uvnitř REG_DWORD hodnota se jménem podle protkolu (http, https, * pro oba) a hodnotou kam se má zařadit (1 - intranet, 2 - trusted, 3 - internet, 4 - restricted). Nejjednodušší je nastavit si požadované v Internet Exploreru a podívat se do registrů, jak vypadá konfigurace. Pokud bychom chtěli nastavit IP adresu a ne DNS jméno, tak cesta je.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Ranges\
Pro nastavení na skupině stanic využijeme GP Preferences a přidáme požadované hodnoty do registrů.
User Configuration - Preferences - Windows Settings - Registry
Mozilla Firefox
Firefox podporuje Kerberos autentizaci již dlouho, na Windows umí využít jak SSPI (upřednostňuje), tak GSSAPI. Stejně jako u IE je podpora defaultně zapnutá, ale musí se specifikovat adresy, pro které se může použít. Pro konfiguraci musíme do adresního řádku zadat
about:config
Po potvrzení varování, že změny konfigurace mohou být nebezpečné, vidíme jednotlivé konfigurační parametry. Do filtru zadáme proměnnou, kterou chceme měnit. Což je network.negotiate-auth.trusted-uris
, kterou rozklikneme. Opět zde můžeme zadat celou adresu nebo pouze doménu. Více adres můžeme oddělit čárkou.
Ještě máme další hodnoty, které standardně nemusíme měnit. Pomocí nich můžeme nastavit knihovnu, která se použije pro autentizaci. Jestli se má použít SSPI network.auth.use-sspi
(defaultně true), jestli se používá defaultní knihovna GSSAPI (pokud nenastavíme SSPI) network.negotiate-auth.using-native-gsslib
(defaultně true) a případně jméno jiné GSSAPI knihovny network.negotiate-auth.gsslib
.
Konfigurace pomocí Group Policy
Firefox nemá žádnou přímou podporu Group Policy. Konfiguraci můžeme provádět pomocí JavaScriptových konfiguračních souborů. Těch je celá řada, uživatelské konfigurace se nachází pod uživatelovým profilem. Například na Windows 7 je to c:\Users\{profil}\AppData\Roaming\Mozilla\Firefox\Profiles\{firefox-profil}.default\
(jako univerzálnější můžeme v cestě použít proměnnou %APPDATA%
, ta nahradí c:\Users\{profil}\AppData\Roaming
). Zde je soubor prefs.js
, který se vytváří automaticky a neměl by se modifikovat. Můžeme vytvořit soubor user.js
, kam zadáme nastavení pro uživatele.
user_pref("network.negotiate-auth.trusted-uris", "seznam adres oddělených čárkou");
Druhá možnost je globální konfigurace, které se nachází v adresáři, kde je nainstalovaný Firefox. Defaultní cesta na 64 bitových Windows 7 je c:\Program Files (x86)\Mozilla Firefox\defaults\pref\
. Zde můžeme vytvořit soubor all.js
případně all-{jméno firmy}.js
a nakonfigurovat adresy.
pref("network.negotiate-auth.trusted-uris", "seznam adres oddělených čárkou");
Když chceme použít hromadnou konfiguraci, tak můžeme použít Group Policy a buď logon script pomocí GP Policies nebo kopírování souboru pomocí GP Preferences. Globální konfigurace má nevýhodu, že se soubor při každém upgradu Firefoxu smaže. Když použijeme GP, tak se sice při každé aplikaci politik zkopíruje/vytvoří znovu, ale přesto to způsobí určitou časovou nefunkčnost u uživatelů. Uživatelská konfigurace má nevýhodu, že neznáme jméno profilu (generuje se náhodně), takže se složitěji provádí kopírování. Na internetu nalezneme různé komplexní skripty, které mají soubor vytvořit, napríklad Configuring user.js From a Login Script.
Nejprve si musíme připravit konfigrační soubor, buď all.js
nebo user.js
a umístit jej do sdíleného úložiště na síti, kam bude mít počítač/uživatel při startu přístup. Běžnou možností je složka NETLOGON na doménovém řadiči, soubor je pak dostupný (například) v cestě \\firma.local\NETLOGON\all.js
.
Pokud jde o globální konfiguraci, tak můžeme využít GP Preferences a soubor zkopírovat do složky Program Files. Nastavení se nachází v
User Configuration - Preferences - Windows Settings - Files
Klikneme do plochy pravým tlačítkem a zvolíme New - File. Zvolíme metodu, patrně Create. Zadáme zdrojovou cestu ke sdílenému souboru a cílové umístění. Budeme počítat pouze s defaultní lokalitou instalace, takže pro 64 bitové Windows 7 je to C:\Program Files (x86)\Mozilla Firefox\defaults\pref\all.js
.
Pokud máme v síti i 32 bitové OS, tak musíme řešit dvě cesty Program Files a Program Files (x86) . To můžeme vyřešit pomocí Item-level targeting. Máme stále otevřené vlastnosti vytvoření souboru, přepneme se na záložku Common. Zde se nachází Item-level targeting, zaškrtneme a klikneme na Targeting. Přes New Item zadáme parametr, který chceme porovnávat. Nabízela by se položka Operating System, ale v praxi mi nefungovala správně, takže zvolíme File Match a porovnávám, jestli existuje adresář C:\Program Files (x86)\Mozilla Firefox\defaults\pref
. V tom případě se vytvoří soubor zde. Potom doplníme druhý soubor s cestou C:\Program Files\Mozilla Firefox\defaults\pref\all.js
, kde změníme pouze u porovnání Item Option z Is na Is Not.
Když chceme využít uživatelskou konfiguraci, tak nám zjednodušeně jde o zkopírování souboru do všech podsložek složky %APPDATA%\Mozilla\Firefox\Profiles\
. Můžeme připravit jednoduchý skript, třeba firefox.cmd
, do kterého zadáme příkaz (s upravenou cestou k souboru).
if exist "%APPDATA%\Mozilla\Firefox" for /D %%F in ("%APPDATA%\Mozilla\Firefox\Profiles\*") do copy /y \\firma.local\NETLOGON\user.js %%F
Tento skript nastavíme jako Logon Script pomocí GP Policies v cestě
User Configuration - Policies - Windows Settings - Scripts (Logon/Logoff) - Logon
Google Chrome
Windows verze Google Chrome využívá nastavení z Internet Exploreru, takže provedeme nastavení dle úvodu článku.
Pozn.: Na internetu je i řada zmínek, že se nastavení provádí v registrech. Ale v praxi jsem ověřil, že se změny nastavení Internet Exploreru projeví v Chrome.
Zatím zde nejsou žádné komentáře.