Konfigurace ověřování Kerberos na webu IIS

Podrobné pokyny pro nastavení transparentního ověřování uživatelů domény v režimu SSO (Single Sign-On) pomocí protokolu Kerberos na webu IIS na Windows Server 2012 R2.

Na webovém serveru spusťte konzolu Správce služby IIS, vyberte požadovaný web a otevřete sekci Ověřování. Jak vidíte, ve výchozím nastavení je povoleno pouze anonymní ověření (Anonymní Ověřování) Vypněte ji a zapněte ji Windows Ověřování (IIS se vždy nejprve pokusí anonymní ověření).

Otevřeme seznam poskytovatelů dostupných pro ověření Windows (Poskytovatelé) Ve výchozím nastavení jsou k dispozici dva poskytovatelé: Vyjednat a NTLM. Negotiate je kontejner, který používá Kerberos jako svou první metodu ověřování, pokud se toto ověření nezdaří, použije se NTLM. Je nutné, aby v seznamu poskytovatelů byla metoda Vyjednat stál první.

Dalším krokem je registrace Jméno vedoucího služby (SPN) záznamy pro název webu, ke kterému uživatelé přistoupí. Pokud by měl být server IIS přístupný pouze podle názvu serveru, na kterém je umístěn (http: // název-serveru nebo http://server-name.contoso.com), nemusíte vytvářet další záznamy SPN (záznamy SPN). již existuje v účtu serveru v AD). Pokud používáte jinou adresu webu než název hostitele nebo při vytváření vyvážené webové farmy, budete muset k serveru nebo uživatelskému účtu navázat další SPN..

Předpokládejme, že máme serverovou farmu IIS. V takovém případě je optimální vytvořit samostatný účet v AD a připojit k němu záznamy SPN. Ze stejného účtu spustí cílový fond aplikací našeho webu.

Vytvořte účet domény iis_služby. Ujistěte se, že k tomuto objektu nejsou přiřazeny žádné položky SPN (atribut servicePrincipalName je prázdný).

Předpokládejme, že by web měl reagovat na adresy _http: // webportal a _http: //webportal.contoso.loc. Tyto adresy musíme zaregistrovat v atributu SPN servisního účtu.

Setspn / s HTTP / webportal contoso \ iis_service
Setspn / s HTTP / webportal.contoso.loc contoso \ iis_service

Umožníme tedy tomuto účtu dešifrovat lístky Kerberos, když uživatelé přistupují na tyto adresy a ověřují relace.

Nastavení SPN pro svůj účet můžete zkontrolovat takto:

setspn / l iis_service

Tip. Kerberos nebude fungovat správně, pokud existují duplicitní SPN v různých záznamech domén. Pomocí následujícího příkazu ověřte, že v doméně nejsou duplicitní SPN: setspn -x

Dalším krokem je konfigurace fondu aplikací IIS tak, aby se spouštěl pod vytvořeným účtem služby.

Vyberte web fondu aplikací (v našem příkladu je to DefaultAppPool).

Otevřete sekci nastavení Pokročilé Nastavení  a přejděte na parametr Identita.

Změňte to pomocí ApplicationPoolIdentity dál contoso \ iis_service.

Poté v konzole Správce služby IIS přejděte na svůj web a vyberte sekci Editor konfigurace.

V rozbalovací nabídce přejděte do části system.webServer> zabezpečení> autentizace> windowsAuthentication

Změnit useAppPoolCredentials dál Pravda.

Umožníme tedy IIS používat účty domény k dešifrování lístků Kerberos od klientů.

Restartujte službu IIS příkazem:

iisreset

Stejná konfigurace musí být provedena na všech serverech webové farmy.

Autorizaci Kerberos testujeme otevřením adresy klienta v klientském prohlížeči (prohlížeč musí být nejprve nakonfigurován pro používání protokolu Kerberos) _http: //webportal.contoso.loc

Poznámka:. V mém příkladu jsem se nemohl okamžitě přihlásit na IE11. Musel jsem přidat adresu k důvěryhodným a v nastavení stránek Důvěryhodné zóny nastavit hodnotu User Authentication -> Logon parameter na Automatické přihlášení s aktuální uživatel jméno a heslo

Ověřením, že se Kerberos používá pro autorizaci na webu, můžete zkontrolovat provoz HTTP pomocí nástroje Fiddler (tento nástroj jsme již zmínili).

Spouštíme Fiddler, v prohlížeči otevřeme cílový web. V levém okně najdeme linku přístupu k webu. Vpravo přejděte na kartu Inspektoři. Řetězec Zdá se, že záhlaví autorizace (Negotiate) obsahuje lístek Kerberos, říká, že protokol Kerberos byl použit pro autorizaci na webu IIS.