Конфигурирайте удостоверяване на Kerberos на сайта на IIS

Стъпка по стъпка инструкции за настройка на прозрачно удостоверяване на потребителите на домейн в режим SSO (Single-On) с помощта на протокол Kerberos на уебсайта на IIS на Windows Server 2012 R2.

На уеб сървъра стартирайте конзолата на IIS Manager, изберете желания сайт и отворете секцията заверка. Както можете да видите, по подразбиране е разрешено само анонимно удостоверяване (анонимен заверка). Изключете го и го включете Windows заверка (IIS винаги първо опитва анонимно удостоверяване).

Отваряме списъка с доставчици, налични за удостоверяване на Windows (доставчиците). По подразбиране са достъпни двама доставчици: преговарям и NTLM. Negotiate е контейнер, който използва Kerberos като свой първи метод за удостоверяване; ако това удостоверяване се провали, се използва NTLM. Необходимо е, че в списъка на доставчиците метод преговарям застана на първо място.

Следващата стъпка е регистрацията Основно име на услугата (SPN) записи за името на сайта, до който потребителите ще имат достъп. Ако сайтът IIS трябва да е достъпен само от името на сървъра, на който се намира (http: // име на сървър или http://server-name.contoso.com), не е необходимо да създавате допълнителни SPN записи (SPN записи) вече съществува в акаунта на сървъра в AD). Ако използвате адрес на сайт, различен от името на хоста, или когато изграждате балансирана уеб ферма, ще трябва да обвържете допълнителни SPNs към сървъра или потребителския акаунт.

Да предположим, че имаме ферма на IIS сървър. В този случай е оптимално да се създаде отделен акаунт в AD и да се обвържат SPN записите към него. От един и същ акаунт те ще стартират целевия Приложен пул на нашия сайт.

Създайте акаунт в домейн iis_обслужване. Уверете се, че на този обект не са зададени SPN записи (атрибутът servicePrincipalName е празен).

Да приемем, че сайтът трябва да отговаря на адресите _http: // webportal и _http: //webportal.contoso.loc. Трябва да регистрираме тези адреси в SPN атрибута на акаунта на услугата.

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

По този начин ще позволим на този акаунт да декриптира билети за Kerberos, когато потребителите имат достъп до тези адреси и удостоверяват сесиите.

Можете да проверите настройките на SPN за вашия акаунт, както следва:

setspn / l iis_service

съвет. Kerberos няма да работи правилно, ако има различни дублиращи се SPN в различни записи на домейни. Използвайки следната команда, проверете дали в домейна няма дублиращи се SPN: setpn -x

Следващата стъпка е да конфигурирате пула за приложения на IIS да се изпълнява от създадения сервизен акаунт.

Изберете сайта на пула за приложения (в нашия пример това е DefaultAppPool).

Отворете секцията с настройки напреднал Настройки  и отидете на параметъра идентичност.

Променете го с ApplicationPoolIdentity за contoso \ iis_service.

След това в конзолата на IIS Manager отидете на вашия сайт и изберете секцията Конфигурационен редактор.

В падащото меню отидете на секцията system.webServer> сигурност> удостоверяване> WindowsAuthentication

промяна useAppPoolCredentials за вярно.

По този начин ще позволим на IIS да използва акаунти в домейна за декриптиране на билети за Kerberos от клиенти.

Рестартирайте IIS с командата:

iisreset

Същата конфигурация трябва да се извърши на всички сървъри на уеб ферми.

Тестваме разрешение на Kerberos, като отваряме клиента в браузъра на клиента (браузърът първо трябва да бъде конфигуриран да използва Kerberos) _http: //webportal.contoso.loc

забележка. В моя пример не можах да вляза веднага в IE11. Трябваше да добавя адреса към доверени и в настройките на сайтове за доверени зони задайте стойността на удостоверяването на потребителя -> параметър Вход на автоматичен влизане с ток потребител име и парола

Можете да проверите дали Kerberos се използва за авторизация на сайта, като проверите HTTP трафика с помощната програма Fiddler (вече споменахме тази помощна програма).

Стартираме Fiddler, в браузъра отваряме целевия сайт. В левия прозорец намираме линията за достъп до сайта. Отдясно отидете на раздела Инспектори. ред Изглежда, че заглавката за оторизация (преговори) съдържа билет Kerberos, казва, че протоколът Kerberos е бил използван за разрешение на сайта на IIS.