Настройка kerberos для windows server

Настройка Kerberos авторизации на сайте IIS

Пошаговая инструкция по настройке на веб-сайте IIS на Windows Server 2012 R2 прозрачной авторизации доменных пользователей в режиме SSO (Single Sign-On) по протоколу Kerberos.

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

Открываем список провайдеров, доступных для Windows аутентификации (Providers). По умолчанию доступны два провайдера: Negotiate и NTLM. Negotiate – это контейнер, который в качестве первого метода проверки подлинности использует Kerberos, если эта аутентификация не удается, используется NTLM. Необходимо, чтобы в списке провайдеров метод Negotiate стоял первым.

Следующий этап – регистрация Service Principal Name (SPN) записей для имени сайта, к которому будут обращаться пользователи. В том случае, если сайт IIS должен быть доступен только по имени сервера, на котором он расположен (http://server-name или http://server-name.contoso.com), создавать дополнительные SPN записи не нужно (SPN записи уже имеются в учетной записи сервера в AD). При использовании адреса сайта, отличного от имени хоста, или при построении веб-фермы с балансировкой, придется привязывать дополнительные записи SPN к учётной записи сервера или пользователя.

Предположим, у нас имеется ферма IIS серверов. В этом случае оптимально создать отдельную учетную запись в AD и привязать SPN записи к ней. Из-под этой же учетной записи будут запускать целевой Application Pool нашего сайта.

Создадим доменную учетную запись iis_service. Убедимся, что SPN записи для этого объекта не назначены (атрибут servicePrincipalName пустой).

Предположим, что сайт должен отвечать по адресам _http://webportal and _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

Следующий этап – настройка в IIS Application Pool для запуска из-под созданной сервисной учетной записи.

Выберите Application Pool сайта (в нашем примере это DefaultAppPool).

Откройте раздел настроек Advanced Settings и перейдите к параметру Identity.

Измените его с ApplicationPoolIdentity на contoso\iis_service.

Затем в консоли IIS Manager перейдите на свой сайт и выберите секцию Configuration Editor.

Читайте также:  Как удалить garageband mac os полностью

В выпадающем меню перейдите в раздел system.webServer > security > authentication > windowsAuthentication

Измените useAppPoolCredentials на True.

Тем самым мы разрешим IIS использовать доменную учетку для расшифровки билетов Kerberos от клиентов.

Перезапустим IIS командой:

Аналогичную настройку нужно выполнить на всех серверах веб-фермы.

Протестируем работу Kerberos авторизации, открыв в браузере клиента (браузер нужно предварительно настроить для использования Kerberos) адрес _http://webportal.contoso.loc

Убедится, что для авторизации на сайте используется Kerberos можно с помощью инспектирования HTTP трафика утилитой Fiddler (ранее мы уже упоминали эту утилиту).

Запускаем Fiddler, в браузере открываем целевой сайт. В левом окне находим строку обращения к сайте. Справа переходим на вкладку Inspectors. Строка Authorization Header (Negotiate) appears to contain a Kerberos ticket, говорит о том, что для авторизации на IIS сайте использовался протокол Kerberos.

Настройка Kerberos аутентификации в различных браузерах

В этой статья, мы рассмотрим, как настроить Kerberos аутентификацию для различных браузеров в домене Windows для прозрачной и безопасной аутентификации на веб-серверах без необходимости повторного ввода пароля в корпоративной сети. В большинстве современных браузерах (IE, Chrome, Firefox) имеется поддержка Kerberos, однако, чтобы она работала, нужно выполнить несколько дополнительных действий.

Чтобы браузер мог авторизоваться на веб-сервере, нужно, чтобы были выполнены следующие условия:

  • Поддержка Kerberos должны быть включена на стороне веб-сервера (пример настройки Kerberos авторизации на сайте IIS)
  • Наличие у пользователя прав доступа к серверу
  • Пользователь должен быть аутентифицирован на своем компьютере в Active Directory с помощью Kerberos (должен иметь TGT — Kerberos Ticket Granting Ticket).

К примеру, мы хотим разрешить клиентам Kerberos авторизацию через браузер на всех веб серверах домена winitpro.ru (нужно использовать именно DNS или FQDN, а не IP адрес веб сервера)

Настройка Kerberos аутентификации в Internet Explorer

Рассмотрим, как включить Kerberos аутентификацию в Internet Explorer 11.

Откройте Свойства браузера -> Безопасность -> Местная интрасеть (Local intranet), нажмите на кнопку Сайты -> Дополнительно. Добавьте в зону следующие записи:

Далее перейдите на вкладку Дополнительно (Advanced) и в разделе Безопасность (Security) убедитесь, что включена опция Разрешить встроенную проверку подлинности Windows (Enable Integrated Windows Authentication).

Включаем Kerberos аутентификацию в Google Chrome

Чтобы SSO работала в Google Chrome, нужно настроить Internet Explorer вышеописанным способом (Chrome использует данные настройки IE). Кроме того, нужно отметить, что все новые версии Chrome автоматически определяют наличие поддержки Kerberos. В том случае, если используется одна из старых версий Chrome (Chromium), для корректной авторизации на веб-серверах с помощью Kerberos, его нужно запустить с параметрами:

«C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” —auth-server-whitelist=»*.winitpro.ru» —auth-negotiate-delegate-whitelist=»*.winitpro.ru»

Либо эти параметры могут быть распространены через групповые политики для Chrome (политика AuthServerWhitelist) или строковый параметр реестра AuthNegotiateDelegateWhitelist (находится в ветке HKLM\SOFTWARE\Policies\Google\Chrome).

Для вступления изменений в силу нужно перезагрузить браузер и сбросить тикеты Kerberos командой klist purge (см. статью).

Настройка Kerberos аутентификации в Mozilla Firefox

По умолчанию поддержка Kerberos в Firefox отключена, чтобы включить ее, откройте окно конфигурации браузера (в адресной строке перейдите на адрес about:config). Затем в следующих параметрах укажите адреса веб-серверов, для которых должна использоваться Kerberos аутентификация.

Проверить, что ваш браузер работает через аутентифицировался на сервере с помощью Kerberos можно с помощью Fiddler или команды klist tickets.

Подключение Azure Data Studio к своему SQL Server с использованием проверки подлинности Windows — Kerberos Connect Azure Data Studio to SQL Server using Windows authentication — Kerberos

Azure Data Studio поддерживает подключение к SQL Server с помощью Kerberos. Azure Data Studio supports connecting to SQL Server by using Kerberos.

Читайте также:  Bfe что это за служба windows 10

Чтобы использовать встроенную проверку подлинности (проверку подлинности Windows) в macOS или Linux, нужно настроить билет Kerberos, связывающий вашего текущего пользователя с учетной записью домена Windows. To use integrated authentication (Windows Authentication) on macOS or Linux, you need to set up a Kerberos ticket that links your current user to a Windows domain account.

Предварительные требования Prerequisites

Для начала работы необходимы перечисленные ниже компоненты и данные. To get started, you need:

  • Доступ к компьютеру, присоединенному к домену Windows, для обращения к контроллеру домена Kerberos. Access to a Windows domain-joined machine to query your Kerberos domain controller.
  • SQL Server должен быть настроен для разрешения проверки подлинности Kerberos. SQL Server should be configured to allow Kerberos authentication. Для драйвера клиента, работающего в Unix, встроенная проверка подлинности поддерживается только с помощью Kerberos. For the client driver running on Unix, integrated authentication is supported only by using Kerberos. Дополнительные сведения см. в статье Использовании встроенной проверки подлинности Kerberos для подключения к SQL Server. For more information, see Using Kerberos integrated authentication to connect to SQL Server. Для каждого экземпляра SQL Server, к которому вы пытаетесь подключиться, должно быть зарегистрировано несколько имен субъектов-служб. There should be service principal names (SPNs) registered for each instance of SQL Server you’re trying to connect to. Дополнительные сведения см. в разделе Регистрация имени участника-службы. For more information, see Registering a service principal name.

Проверка наличия настройки Kerberos в SQL Server Check if SQL Server has a Kerberos setup

Войдите на хост-компьютер SQL Server. Sign in to the host machine of SQL Server. В командной строке Windows используйте setspn -L %COMPUTERNAME% , чтобы отобразить список всех имен субъектов-служб для узла. From the Windows command prompt, use setspn -L %COMPUTERNAME% to list all the SPNs for the host. Должны отобразиться записи, начинающиеся с MSSQLSvc/имя_узла.домен.com, что означает, что SQL Server зарегистрировал имя субъекта-службы и готов принять проверку подлинности Kerberos. You should see entries that begin with MSSQLSvc/HostName.Domain.com, which means that SQL Server has registered an SPN and is ready to accept Kerberos authentication.

Если у вас нет доступа к узлу экземпляра SQL Server, то из любой другой ОС Windows, присоединенной к тому же Active Directory, можно использовать команду setspn -L , где — имя узла экземпляра SQL Server. If you don’t have access to the host of the SQL Server instance, then from any other Windows OS joined to the same Active Directory, you could use the command setspn -L , where is the computer name of the host of the SQL Server instance.

Получение центра распространения ключей Kerberos Get the Kerberos Key Distribution Center

Найдите значение конфигурации для KDC (центр распространения ключей) Kerberos. Find the Kerberos Key Distribution Center (KDC) configuration value. Выполните следующую команду на компьютере Windows, присоединенном к домену Active Directory. Run the following command on a Windows computer that’s joined to your Active Directory domain.

Читайте также:  Окно не открывается полностью windows 10

Запустите cmd.exe и выполните nltest . Start cmd.exe and run nltest .

Скопируйте имя контроллера домена, которое является обязательным значением конфигурации KDC. Copy the DC name that’s the required KDC configuration value. В данном случае это dc-33.domain.company.com. In this case, it’s dc-33.domain.company.com.

Присоединение операционной системы к контроллеру домена Active Directory Join your OS to the Active Directory domain controller

Ubuntu Ubuntu

Измените файл /etc/network/interfaces , чтобы IP-адрес вашего контроллера домена Active Directory был указан в качестве параметра dns-nameserver. Edit the /etc/network/interfaces file so that your Active Directory domain controller’s IP address is listed as dns-nameserver. Пример: For example:

Сетевой интерфейс (eth0) может отличаться для разных компьютеров. The network interface (eth0) might differ for different machines. Чтобы узнать, какой из них используется, выполните команду ifconfig и скопируйте интерфейс, имеющий IP-адрес и переданные и полученные байты. To find out which one you’re using, run ifconfig and copy the interface that has an IP address and transmitted and received bytes.

После изменения этого файла перезапустите сетевую службу. After editing this file, restart the network service:

Теперь убедитесь, что файл /etc/resolv.conf содержит строку, аналогичную следующей: Now check that your /etc/resolv.conf file contains a line like the following one:

RedHat Enterprise Linux RedHat Enterprise Linux

Измените файл /etc/sysconfig/network-scripts/ifcfg-eth0 (или другой соответствующий файл конфигурации интерфейса), чтобы IP-адрес вашего контроллера домена Active Directory был указан в качестве параметра DNS-сервера: Edit the /etc/sysconfig/network-scripts/ifcfg-eth0 file (or other interface config file as appropriate) so that your Active Directory domain controller’s IP address is listed as a DNS server:

После изменения этого файла перезапустите сетевую службу. After editing this file, restart the network service:

Теперь убедитесь, что файл /etc/resolv.conf содержит строку, аналогичную следующей: Now check that your /etc/resolv.conf file contains a line like the following one:

MacOS macOS

Присоедините macOS к контроллеру домена Active Directory, выполнив следующие действия. Join your macOS to the Active Directory domain controller by following these steps.

Настройка KDC в krb5.conf Configure KDC in krb5.conf

Измените файл /etc/krb5.conf в любом редакторе. Edit the /etc/krb5.conf file in an editor of your choice. Настройте следующие ключи: Configure the following keys:

Сохраните файл krb5.conf и закройте редактор. Then save the krb5.conf file and exit.

Домен должен быть указан прописными буквами. The domain must be in ALL CAPS.

Тестирование извлечения билета на получение билетов Test the Ticket Granting Ticket retrieval

Получите билет на получение билетов (TGT) из KDC. Get a Ticket Granting Ticket (TGT) from KDC.

Просмотрите доступные билеты с помощью klist. View the available tickets by using klist. Если kinit выполнен успешно, вы увидите билет. If the kinit was successful, you should see a ticket.

Подключение с помощью Azure Data Studio Connect by using Azure Data Studio

Создайте профиль подключения. Create a new connection profile.

Выберите Проверка подлинности Windows в качестве типа проверки подлинности. Select Windows Authentication as the authentication type.

Заполните профиль подключения и нажмите кнопку Подключить. Complete the connection profile, and select Connect.

После успешного подключения сервер отображается на боковой панели СЕРВЕРЫ. After successfully connecting, your server appears in the SERVERS sidebar.

Оцените статью