www.SAMURAJ-cz.com 

26.04.2024 Oto Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Kerberos část 10 - nastavení webových prohlížečů

Úterý, 08.07.2014 13:58 | Samuraj - Petr Bouška |
V předchozích dílech jsme řešili využití Kerberos SSO vůči webové aplikaci hlavně ze strany serveru. V tomto díle se podíváme na to, co je potřeba nastavit u klienta na webovém prohlížeči, aby SSO fungovalo. Věnujeme se Internet Exploreru, Firefoxu a Chromu.

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.

Internet Explorer povolené IWA

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).

Internet Explorer nastavení pro SSO

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.

Firefox nastavení pro SSO

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 OptionIs 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.

Odkazy

zobrazeno: 9224krát | Komentáře [0]

Autor:

Související články:

Kerberos protokol se zaměřením na SSO v AD DS

Nový seriál, který se podrobně věnuje protokolu Kerberos V5, hlavně v prostředí Microsoft Active Directory. Popíšeme si i řadu souvisejících věcí, které jsou potřeba pro pochopení fungování Kerberos Single Sign-On (SSO).

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

Zatím tento záznam nikdo nekomentoval.

Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách