Результаты поиска :

×

Руководство по настройке единого входа Kerberos (SSO)

Kerberos — это протокол аутентификации на основе криптографии Этот протокол защищает доступ к приложениям. Он предназначен для обеспечения безопасной аутентификации в незащищенной сети. Ключевая идея Kerberos заключается в аутентификации пользователей и предотвращении передачи паролей через интернет.


Простая интеграция LDAP/Active Directory для WordPress Видео.



Условия Kerberos:

Керберос: Kerberos — это протокол аутентификации, поддерживающий концепцию единого входа (SSO). В случае HTTP поддержка Kerberos обычно обеспечивается с помощью механизма аутентификации "SPNEGO".

Царство Керберос: Административный домен для аутентификации обозначается термином «область». Его цель — определить ограничения на то, когда сервер аутентификации может аутентифицировать пользователя, хост или службу. Это не означает, что пользователь и служба должны принадлежать к одной и той же области для того, чтобы произошла аутентификация: если два объекта связаны доверительным соединением, несмотря на принадлежность к разным областям, аутентификация все равно может произойти.

Основной: В системе Kerberos субъект Kerberos представляет собой отдельную личность, которой Kerberos может выдавать билеты для доступа к сервисам, поддерживающим Kerberos. Разделитель "/" используется для разделения различных компонентов, составляющих имена субъектов. Символ "@" может использоваться для идентификации области в качестве последнего элемента имени. Если область не указана, предполагается, что субъект принадлежит к области по умолчанию, заданной в файле krb5.conf.

Клиенты/Пользователи: Процесс, осуществляющий доступ к сервису от имени пользователя. В рамках одной области может быть несколько клиентов или пользователей.

Услуги: Что-то, к чему пользователь хочет получить доступ.

Система единого входа: Единый вход (SSO) — это процедура, позволяющая пользователю войти в систему всего один раз и получить доступ к множеству сервисов после завершения аутентификации. После входа в основной сервис это подразумевает аутентификацию во всех сервисах, к которым пользователь предоставил доступ. SSO имеет ряд преимуществ, одним из которых является избежание утомительного процесса многократной проверки личности с помощью паролей или других систем аутентификации.

GSSAPI: Программы могут получать доступ к службам безопасности через универсальный интерфейс прикладного программирования служб безопасности (GSSAPI), который представляет собой интерфейс прикладного программирования (API). GSSAPI — это стандарт IETF. Сам по себе он не обеспечивает никакой безопасности. Вместо этого реализации GSSAPI предлагаются поставщиками услуг безопасности. Отличительной характеристикой приложений, использующих GSSAPI, является обмен непрозрачными сообщениями (токенами), который скрывает детали реализации от приложений более высокого уровня.

СПНЕГО: Клиент-серверное программное обеспечение использует простой и защищенный механизм согласования GSSAPI, часто называемый «spenego», для согласования выбора технологии безопасности. Когда клиентскому приложению необходимо войти на удаленный сервер, но ни одна из сторон не уверена, какие протоколы аутентификации поддерживает другая, используется SPNEGO. Этот псевдомеханизм использует протокол для определения доступных распространенных механизмов GSSAPI, выбирает один из них, а затем назначает все последующие действия безопасности выбранному механизму.

КДЦ: Центр распространения ключей (KDC) — это сетевая служба, предоставляющая билеты и временные ключи сеанса; или экземпляр этой службы, или хост, на котором она работает. KDC обрабатывает как первоначальные запросы на билеты, так и запросы на выдачу билетов. Первоначальная часть, отвечающая за выдачу билетов, иногда называется сервером аутентификации (или службой). Часть, отвечающая за выдачу билетов, иногда называется сервером выдачи билетов (или службой).



Доступ клиента к ресурсу в домене Active Directory может быть аутентифицирован с использованием протокола аутентификации «запрос-ответ», известного как Windows NT LAN Manager (NTLM). Когда клиент запрашивает доступ к службе, связанной с доменом, служба отправляет клиенту запрос, предписывающий ему использовать свой токен аутентификации для выполнения математической операции, а затем предоставить результат службе. Результат может быть проверен службой или контроллером домена (DC). Служба предоставляет доступ клиенту, если DC или служба подтверждают точность ответа клиента.
Поскольку NTLM позволяет пользователю вводить базовый фактор аутентификации только один раз при входе в систему, он представляет собой своего рода единый вход (SSO).


Протокол аутентификации NTLM, обеспечивающий единый вход (SSO).

  • СООБЩЕНИЕ О ПЕРЕГОВОРАХ Определяет сообщение NTLM Negotiate, которое отправляется от клиента к серверу. Это сообщение позволяет клиенту указать серверу поддерживаемые им параметры NTLM.
  • CHALLENGE_MESSAGE Определяет сообщение-запрос NTLM, которое отправляется с сервера клиенту и используется сервером для запроса у клиента подтверждения своей личности.
  • AUTHENTICATE_MESSAGE Определяет сообщение аутентификации NTLM, которое отправляется клиентом на сервер после обработки запроса CHALLENGE_MESSAGE клиентом.

Примечание и контакты - единый вход через Kerberos SSO и LDAP

Примечание: В зависимости от конфигурации клиента и сервера, в системе аутентификации Windows используется либо протокол аутентификации Kerberos, либо протокол аутентификации NTLM.



Протокол безопасности компьютерных сетей, называемый Kerberos, аутентифицирует запросы на обслуживание между двумя или более доверенными хостами в недоверенной сети, такой как Интернет.

  • Сообщение А: Ключ сессии клиента/TGS зашифрован с использованием секретного ключа клиента/пользователя.
  • Сообщение B: Билет, выдающий билет (Ticket-Granting-Ticket), зашифрован с использованием секретного ключа TGS.
  • Сообщение C: Состоит из TGT из сообщения B и идентификатора запрашиваемой услуги.
  • Сообщение D: Аутентификатор зашифрован с использованием ключа сессии Client/TGS.
  • Сообщение E: Клиент-серверный билет шифруется с использованием секретного ключа сервиса.
  • Сообщение F: Ключ сессии клиент/сервер зашифрован с помощью ключа сессии клиент/TGS.
  • Сообщение G: Новый аутентификатор, который включает идентификатор клиента, метку времени и шифруется с помощью ключа сессии клиент/сервер.
  • Сообщение H: Временная метка, полученная из аутентификатора клиента, зашифрована с использованием ключа сессии клиент/сервер.


Необходимые условия:

  1. Служебная учетная запись / Учетная запись пользователя в Active Directory.
  2. Для пароля учетной записи необходимо установить следующий пароль: Срок действия не истёк.

Шаг 1: Создайте файл Keytab на контроллере домена Active Directory:

  • На контроллере домена Active Directory откройте командную строку в режиме администратора и выполните следующую команду для создания файла Keytab.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL

Примечание и контакты - единый вход через Kerberos SSO и LDAP

Примечание: Обеспечивать ПРИМЕР.COM Должно быть написано заглавными буквами. Если пользователь с SPN уже существует, используйте этого пользователя вместо создания нового. Принцип Kerberos чувствителен к регистру. Пожалуйста, проверьте различия в написании заглавными и строчными буквами перед выполнением команды keytab.


  • Ниже перечислены компоненты команды.
Имя хоста сервера: Это имя хоста сайта, размещенного на сервере.
EXAMPLE.COM: Это доменное имя Active Directory.
Имя пользователя: Это служебная учетная запись в Active Directory.
Пароль: Это пароль от учетной записи службы, указанной выше.
Путь: Путь к локальному расположению файла keytab (например, C:\Temp\spn.keytab).
Примечание и контакты - единый вход через Kerberos SSO и LDAP

Примечание: Приведённая выше команда создаёт файл keytab. Его необходимо разместить на клиентском сервере, где размещён ваш сайт WordPress. Пользователь, запускающий Apache, должен иметь полный доступ к этому файлу. У пользователя должны быть права доступа к файлу keytab.


  • Откройте «Пользователи и компьютеры Active Directory» и в верхнем меню выберите Просмотреть >> Расширенные функции.
  • Откройте учетную запись службы и перейдите на вкладку редактора атрибутов, затем найдите... ServicePrincipalName для проверки записи SPN.
  • Перейдите в Делегация меню.
  • Выбрать Доверьте этому пользователю делегирование прав любой службе (только Kerberos).
Делегирование единого входа (SSO) службы Kerberos для Windows Active Directory

  • Нажмите Применить.
  • Скопируйте Книга файл с контроллера домена Active Directory на веб-сервер, размещенный на Apache.
  • Предоставьте права доступа к файлу keytab Kerberos:
chmod 644 etc/apache2/spn.keytab

Шаг 2: Установите клиентские библиотеки Kerberos на веб-сервере:

  • Для установки клиентских библиотек Kerberos используйте следующую команду в терминале.
sudo apt-get install krb5-user

Шаг 3: Установите модули для Apache:


Примечание и контакты - единый вход через Kerberos SSO и LDAP

Примечание: В последних версиях Ubuntu/Debian... mod_auth_kerb устарела и заменена на mod_auth_gssapi.


  • В наличии два модуля Apache, но установить достаточно одного из них:

    1. модуль mod-auth-gssapi для apache.
    2. Модуль mod_auth_kerb для Apache. (устарел)


1. Установите модуль mod-auth-gssapi для Apache:

  • Используйте следующую команду для установки libapache2-mod-auth-gssapi модуль для Apache в системах на базе Debian:
sudo apt-get -y install libapache2-mod-auth-gssapi

OR


2. Установите модуль mod_auth_kerb для Apache (устаревший):

  • Для установки модуля auth_kerb для Apache в системах на базе Debian используйте следующую команду:
sudo apt-get install libapache2-mod-auth-kerb
  • После установки модуля auth_kerb его необходимо включить с помощью следующей команды.
a2enmod auth_kerb
  • После включения, Перезапустите Apache вступить в силу.


Шаг 4: Настройте домен Active Directory в файле конфигурации Kerberos:

  • Откройте и отредактируйте krb5.conf .
    Путь к файлу krb5.conf для Linux следующий: C:/etc/krb5.conf а для других систем на базе UNIX это c:/etc/krb5/krb5.conf
  • Добавьте следующий фрагмент конфигурации в файл конфигурации. krb5.conf файл в указанном разделе:
[libdefaults]
default_realm = EXAMPLE.COM
# ...
# ...
[realms]
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}
[domain_realm]
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Заменить Контроллер домена AD IP/DNS с вашим IP/DNS адрес. Убедитесь ПРИМЕР.COM Должно быть написано заглавными буквами.
Заменить ПРИМЕР.COM укажите имя домена Active Directory и убедитесь, что порт 88 на контроллере домена AD доступен с этого сервера.


  • Сохраните файл.

Шаг 5: Настройка единого входа Kerberos для каталога сайта:

  • Отредактируйте навязанный файл конфигурации виртуального хоста, который хранится в указанном месте. /etc/apache2/sites-enabled directory или файл виртуального хоста по умолчанию с именем 000-default.conf
Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Добавьте следующий раздел в каталог в соответствии с используемым модулем Apache. Например: "mod_auth_kerb" or "mod_auth_gssapi".


  • 1. Добавьте следующий раздел в каталог сайта для mod_auth_gssapi.
<IfModule !mod_auth_gssapi.c>
    LoadModule auth_gssapi_module /usr/lib64/httpd/modules/mod_auth_gssapi.so
</IfModule>
<Directory "/placeholder">
    AuthType GSSAPI
    AuthName "Kerberos auth"
    GssapiAllowedMech krb5
    GssapiBasicAuth On
    GssapiCredStore keytab:<PATH TO KEYTAB>
    GssapiLocalName On
    BrowserMatch Windows gssapi-no-negotiate
    Require valid-user
</Directory>

OR


  • 2. Добавьте следующий раздел в каталог сайта для mod_auth_kerb (Устаревшее).
<Directory "/placeholder">
    AuthType Kerberos
    KrbAuthRealms EXAMPLE.COM
    KrbServiceName HTTP/<Server Host Name>
    Krb5Keytab <PATH TO KEYTAB>
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
</Directory>

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Обеспечивать ПРИМЕР.COM Должно быть написано заглавными буквами.
Ниже перечислены компоненты указанной выше конфигурации:


EXAMPLE.COM: Это домен Active Directory, настроенный в файле krb5.conf.
ПУТЬ К KEYTAB: Доступный путь к файлу keytab на этом сервере: (etc/spn.keytab)
  • После выполнения этих настроек для вступления изменений в силу необходимо перезапустить Apache.

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: После завершения настройки параметров, нажмите здесь. для настройки браузеров для единого входа Kerberos.
Для проверки конфигурации единого входа Kerberos/NTLM, нажмите здесь..
Для устранения любой ошибки, пожалуйста, нажмите здесь..


Шаг 1: Создайте файл Keytab на контроллере домена Active Directory:

  • На контроллере домена Active Directory откройте командную строку в режиме администратора и выполните следующую команду для создания файла Keytab.
ktpass -princ HTTP/<Server Host Name>@EXAMPLE.COM -mapuser <username@EXAMPLE.COM>
-pass password -ptype KRB5_NT_PRINCIPAL -out <PATH>\spn.keytab -crypto ALL

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Обеспечивать ПРИМЕР.COM Текст должен быть написан заглавными буквами. Принцип Kerberos чувствителен к регистру. Пожалуйста, проверьте различия в написании заглавными и строчными буквами перед запуском команды keytab.


  • Ниже перечислены компоненты команды.
Имя хоста сервера: Это имя хоста сайта, размещенного на сервере.
EXAMPLE.COM: Это доменное имя Active Directory.
Имя пользователя: Это служебная учетная запись в Active Directory.
Пароль: Это пароль от учетной записи службы, указанной выше.
Путь: Путь к локальному расположению файла keytab (например, C:\Temp\spn.keytab).
Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Приведенная выше команда создает файл keytabЭтот файл необходимо разместить на клиентском сервере, где размещен ваш сайт WordPress. Пользователь, запускающий Apache, должен иметь полный доступ к этому файлу. Пользователь должен иметь права доступа к файлу keytab.


  • Скопируйте файл Keytab от контроллера домена Active Directory к веб-серверу, размещенному на Apache.
  • Предоставьте права доступа к файлу keytab Kerberos:
chmod 644 etc/httpd/spn.keytab

Шаг 2: Установите клиентские библиотеки Kerberos на веб-сервере:

  • Для установки клиентских библиотек Kerberos используйте следующую команду в терминале.
yum install -y krb5-workstation krb5-devel krb5-libs mod_auth_gssapi mod_session
Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: В последних версиях CentOS... mod_auth_kerb устарела и заменена на mod_auth_gssapi.


Шаг 3: Установите модули для Apache:

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: В последних версиях Ubuntu/Debian... mod_auth_kerb устарела и заменена на mod_auth_gssapi.


  • В наличии два модуля Apache, но установить достаточно одного из них:

    1. модуль mod-auth-gssapi для apache.
    2. Модуль mod_auth_kerb для Apache (устарел).


1. Установите модуль mod-auth-gssapi для Apache:

  • Используйте следующую команду для установки модуль libapache2-mod-auth-gssapi для Apache в системах на базе Debian:
sudo apt-get -y install libapache2-mod-auth-gssapi

OR


2. Установите модуль mod_auth_kerb для Apache (устаревший):

  • Используйте следующую команду для установки модуль auth_kerb для Apache на системах на базе Red Hat. (Для последних версий RHEL используйте модуль mod-auth-gssapi)
yum install mod_auth_kerb

Шаг 4: Настройте домен Active Directory в файле конфигурации Kerberos:

  • Откройте и отредактируйте krb5.conf .
    Путь к файлу krb5.conf для RHEL находится по адресу C:/etc/krb5.conf
  • Добавьте следующий фрагмент конфигурации в файл конфигурации. krb5.conf файл в указанном разделе:
  • Перейдите в [libdefaults] Добавьте в этот раздел следующее:
default_realm = EXAMPLE.COM
dns_lookup_realm = true
dns_lookup_kdc = true

  • Перейдите в [царства] Добавьте в этот раздел следующее:
EXAMPLE.COM = {
kdc = <DNS entries pointing to your primary domain controller>: Port
admin_server = <DNS entries pointing to your primary domain controller>: Port
}

  • Перейдите в [область_домена] Добавьте в этот раздел следующее:
.example.com = EXAMPLE.COM
example.com = EXAMPLE.COM

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Заменить КОНТРОЛЛЕР ДОМЕНА AD IP/DNS с вашим IP-адресом/DNS-адресом. Убедитесь, что EXAMPLE.COM Должно быть написано заглавными буквами.
Заменить ПРИМЕР.COM укажите имя домена Active Directory и убедитесь, что порт 88 на контроллере домена AD доступен с этого сервера.


  • Сохраните файл.

Шаг 5: Настройте домен Active Directory в файле конфигурации Kerberos:

  • Отредактируйте навязанный файл конфигурации хоста. /etc/httpd/conf/httpd.conf
  • Добавьте следующий раздел в каталог сайта для mod_auth_gssapi
LoadModule auth_gssapi_module modules/mod_auth_gssapi.so
<Directory "/placeholder">
    AuthType GSSAPI
    AuthName "Kerberos auth"
    GssapiBasicAuth On
    GssapiCredStore keytab:<PATH TO KEYTAB>
    GssapiLocalName On
    Require valid-user
</Directory>

OR


  • Добавьте следующий раздел в каталог сайта для mod_auth_kerb (Устаревшее).
<Directory "/placeholder">
    AuthType Kerberos
    KrbAuthRealms EXAMPLE.COM
    KrbServiceName HTTP/<Server Host Name>
    Krb5Keytab <PATH TO KEYTAB>
    KrbMethodNegotiate on
    KrbMethodK5Passwd on
    require valid-user
</Directory>

  • Ниже перечислены компоненты указанной выше конфигурации:
ПУТЬ К KEYTAB Доступный путь к файлу keytab на этом сервере: (etc/apache2/spn.keytab)
"/placeholder" Путь к корневому каталогу документа
  • После выполнения этих настроек для вступления изменений в силу необходимо перезапустить Apache.

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: После завершения настройки параметров, нажмите здесь. для настройки браузеров для единого входа Kerberos.
Для проверки конфигурации единого входа Kerberos/NTLM, нажмите здесь..
Для устранения любой ошибки, пожалуйста, нажмите здесь..



  • Откройте командную строку в Режим администратора.
  • Выполните следующую команду для добавления. Имя участника службы (SPN) для учетной записи сервиса.
Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Предположим, что веб-сайт должен отвечать по адресам http://machinename и http://machinename.domain.com. Необходимо указать эти адреса в атрибуте SPN учетной записи службы.


Setspn -S http/<computer-name>.<domain-name> <domain-user-account>

Пример: C:\Users\Administrator> setspn -S HTTP/machinename.domain.com service_account

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: "machinename.domain.com" здесь — это имя компьютера. Убедитесь, что оно доступно на сервере Windows, на котором запущена служба Active Directory.


  • Проверьте правильность настроек, выполнив следующую команду:
setspn -l domain or service_account

Пример: C:\Users\Administrator> setspn -l service_account или C:\Users\Administrator> setspn -l domain_name

Настройте запись имени участника службы (SPN) для аутентификации Kerberos SSO на сервере Windows IIS.

  • В результате должен быть указан список. http/machinename.domain.com
  • Откройте «Пользователи и компьютеры Active Directory» и в верхнем меню выберите Просмотреть >> Расширенные функции.
  • Откройте учетную запись службы и перейдите в... редактор атрибутов вкладка, перейдите к ServicePrincipalName проверить Вход SPN.
  • Перейдите в Делегация меню.
  • Выбрать Доверьте этому пользователю делегирование прав любой службе (только Kerberos).
Делегирование служб Kerberos для единого входа Kerberos в системах RHEL, CentOS, Ubuntu, Fedora.

  • Нажмите Применить.
  • Откройте приложение Диспетчер IIS и щелкните по веб-сайту, для которого вы хотите включить аутентификацию Windows.
  • Дважды нажмите Аутентификация.
Диспетчер Windows IIS для настройки параметров аутентификации Windows для сайтов с включением единого входа Kerberos.

  • В разделе «Аутентификация» вы увидите, что по умолчанию включена только анонимная аутентификация. IIS всегда пытается выполнить анонимную аутентификацию, поэтому... Отключить анонимную аутентификацию и Включить аутентификацию Windows.
Включите аутентификацию Windows из диспетчера IIS Windows для единого входа Kerberos в настроенном приложении.

  • Щелкните правой кнопкой мыши на Проверка подлинности Windows и нажмите на Провайдеры.
Список поставщиков аутентификации Windows в диспетчере служб информации в Интернете (IIS).

  • Появится следующее окно. Убедитесь, что "Вести переговоры" находится на вершине списка поставщиков услуг.
Диспетчер Windows IIS позволяет использовать поставщик аутентификации Windows для единого входа (SSO) с протоколом Kerberos.

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: По умолчанию доступны два провайдера: Negotiate и NTLM. Negotiate — это контейнер, использующий Kerberos в качестве первого метода аутентификации, и если аутентификация не удаётся, используется NTLM. Поэтому необходимо, чтобы Negotiate стоял первым в списке провайдеров.


  • Нажмите на Ok , чтобы закрыть окно.
  • Чтобы настроить пул приложений IIS для запуска из созданной учетной записи SPN, щелкните по... Пулы приложений чтобы открыть окно «Пулы приложений».
  • Щелкните правой кнопкой мыши по домену и из списка выберите нужный домен. Дополнительные настройки.
В настройках пула приложений диспетчера служб IIS (Windows Internet Information Service) необходимо включить единый вход Kerberos (SSO) в расширенных параметрах.

  • В окне «Расширенные настройки» в разделе «Модель процесса» щелкните по... Личность.
Настройте параметры идентификации в расширенных настройках пула приложений диспетчера приложений Windows IIS, чтобы включить единый вход Kerberos.

  • В разделе «Идентификатор пула приложений» выберите Пользовательская учетная запись и нажмите на набор кнопка для установки идентификатора.
  • Измените его из Идентификатор пула приложений в \.

Пример: domain.com\service_account

Настройка единого входа Kerberos в Windows: настройте пользовательскую учетную запись из параметров пула учетных записей диспетчера приложений IIS.

  • Перейдите на сайт Редактор конфигурации.
Перейдите в редактор конфигурации диспетчера IIS Windows, чтобы включить аутентификацию Kerberos/NTLM на веб-сайте.

  • В раскрывающемся списке выберите system.webServer > безопасность > аутентификация > windowsAuthentication.
Настройте useAppPoolCredentials для настройки аутентификации Kerberos для сервера Windows IIS.

  • Изменить установить useAppPoolCredentials в значение True. и установить useKernelMode в False.
Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Установка параметра useAppPoolCredentials в значение True означает, что мы разрешаем IIS использовать учетную запись домена для расшифровки билета Kerberos от клиентов.


  • Нажмите Применить.
  • Перезапустите сервер IIS.
  • Проверить использование аутентификации Kerberos на веб-сайте можно, отслеживая HTTP-трафик с помощью Fiddler.

Запустите Fiddler и откройте браузер, чтобы перейти на нужный веб-сайт. Найдите строку с адресом веб-сайта в левой части окна. Выберите вкладку «Проверить» в правой части окна. Из строки «Заголовок авторизации (Negotiate) содержит билет Kerberos» очевидно, что для аутентификации на веб-сайте IIS использовался Kerberos.

Билет Kerberos содержится в заголовке авторизации в процессе единого входа Kerberos (SSO).

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: После завершения настройки параметров, нажмите здесь. для настройки браузеров для единого входа Kerberos.
Для проверки конфигурации единого входа Kerberos/NTLM, нажмите здесь..
Для устранения любой ошибки, пожалуйста, нажмите здесь..



  • Откройте командную строку в Режим администратора.
  • Выполните следующую команду для добавления. Имя участника службы (SPN) для учетной записи сервиса.
Setspn -s http/<computer-name>.<domain-name> <domain-user-account>

Пример: C:\Users\Administrator> setspn -S HTTP/machinename.domain.com service_account


Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание:"machinename.domain.com" здесь — это имя компьютера. Убедитесь, что оно доступно на сервере Windows, на котором запущена служба Active Directory.


  • Проверьте правильность настроек, выполнив следующую команду:
setspn -l domain\service_account
  • В результате должен быть указан список. http/machinename.domain.com
  • Откройте «Пользователи и компьютеры Active Directory» и в верхнем меню выберите Просмотреть >> Расширенные функции.
  • Откройте учетную запись службы и перейдите в... редактор атрибутов вкладка, перейдите к ServicePrincipalName проверить Вход SPN.
  • Перейдите в Делегация меню.
  • Выбрать Доверьте этому пользователю делегирование прав любой службе (только Kerberos).
Kerberos для аутентификации Windows на сервере IIS

  • Нажмите Применить.
  • Кликните сюда для загрузки модуля Apache.
  • Скопируйте mod_authnz_sspi.so от Apache24 > модули и поместите эту папку в каталог модулей (C:\xampp\apache\modules).
  • Скопируйте sspipkgs.exe файл из Apache24 -> bin поместите эту папку в папку bin вашего XAMPP Apache (.....\xampp\apache\bin) на вашем веб-сервере.
  • Откройте файл httpd.conf (.....\xampp\apache\conf) и вставьте следующую строку кода в раздел LoadModule.
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
  • Убедитесь, что следующие модули раскомментированы:
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so

  • Кроме того, убедитесь, что включить расширение LDAP.
  • Откройте файл httpd.conf из (.....\xampp\apache\conf\httpd.conf).
    Перейдите по ссылке и вставьте следующие строки после #Require all grants.
<Directory "...../xampp/htdocs">
......
......
#Require all granted
AllowOverride None Options None
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
Require valid-user
</Directory>

  • Перезапустите Сервер Apache.

Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: После завершения настройки параметров, нажмите здесь. для настройки браузеров для единого входа Kerberos.
Для проверки конфигурации единого входа Kerberos/NTLM, нажмите здесь..
Для устранения любой ошибки, пожалуйста, нажмите здесь..




Вход через LDAP для сайтов интранета - единый вход Kerberos SSO

Примечание: Конфигурация на стороне клиента позволяет соответствующему браузеру использовать SPNEGO для согласования аутентификации Kerberos. Необходимо убедиться, что браузер в системе конечного пользователя настроен на поддержку аутентификации Kerberos.



Общая настройка единого входа Kerberos для всех браузеров:

  • Перейдите в Панель управления и нажмите на Сеть и Интернет >> Параметры интернета.
  • Откроется окно «Свойства интернета». Нажмите на Безопасность >> Локальная интранет-сеть >> Сайты.
Настройка браузеров для аутентификации Kerberos с помощью параметров интернета.

  • После этого нажмите на Кнопка «Дополнительно».
Настройка дополнительных параметров в параметрах интернета для единого входа Kerberos в Chrome и Internet Explorer.

  • В Добавить этот сайт в зону В этом разделе укажите URL-адрес веб-сайта, на который вы хотите войти с помощью единого входа (SSO).
Настройте веб-сайт в зоне интрасети через параметры интернета для единого входа Kerberos.

  • Нажмите Инструменты > Параметры интернета > Безопасность > Локальная интранет-сеть > Пользовательский уровень.
  • Прокрутите вниз до раздела «Параметры аутентификации пользователя» и выберите Автоматический вход в систему возможен только в зоне интранета..
Автоматический вход во внутреннюю сеть с использованием протокола аутентификации Kerberos.

  • Нажмите на Ok Нажмите кнопку, а затем перезапустите браузер.


После выполнения вышеуказанных настроек вам не потребуется настраивать параметры браузеров Internet Explorer, Google Chrome и Apple Safari.

Internet Explorer:

По умолчанию применяются общие настройки браузера, никаких дополнительных настроек для Internet Explorer не требуется.

Google Chrome:

По умолчанию будут применяться общие настройки браузера, никаких дополнительных настроек для Google Chrome не требуется.

Mozilla Firefox:

  • Откройте браузер Mozilla Firefox и введите о: конфигурации в адресной строке.
  • Найдите network.negotiate-auth.trusted-uris Укажите название параметра и нажмите на него. РедактироватьВведите имя хоста или домен веб-сервера, защищенного протоколом Kerberos HTTP SPNEGO. Укажите несколько доменов и имен хостов, разделенных запятой.
Настройка Mozilla Firefox для единого входа (SSO) по протоколу Kerberos.

  • Найдите network.automatic-ntlm-auth.trusted-uris Введите имя параметра и нажмите «Изменить». Введите имя хоста или домен веб-сервера, защищенного протоколом Kerberos HTTP SPNEGO. Укажите несколько доменов и имен хостов, разделенных запятой.
Настройка параметров аутентификации Kerberos в Mozilla Firefox

  • Нажмите OK а затем перезапустите браузер.

Яблочное сафари:

Safari в Windows поддерживает SPENGO без дополнительной настройки. Он поддерживает как Kerberos, так и NTLM в качестве вспомогательных механизмов SPENGO.



Синхронизация времени:

Протокол Kerberos требует, чтобы время клиента и сервера совпадало: если системные часы клиента не совпадают с часами сервера, аутентификация завершится неудачей. Самый простой способ синхронизировать системные часы — использовать сервер сетевого времени (NTP).



Проверить с помощью команд:

Для проверки конфигурации keytab и Kerberos можно выполнить следующие команды:

  1. Клист: Команда klist отображает содержимое кэша учетных данных Kerberos или таблицы ключей. С помощью этой команды вы можете проверить, получили ли вы действительный билет или нет.
  2. klist -t -k etc/apache2/spn.keytab: Чтобы вывести список всех записей в таблице ключей etc/apache2/spn.keytab с указанием временных меток.
  3. klist -ek /etc/apache2/spn.keytab: Отображает тип шифрования для ключа сессии и билета, а также перечисляет записи в таблице ключей.
  4. kinit -V -kt /etc/apache2/spn.keytab -p HTTPS/webserver.yourdomain.com @ВАШДОМЕН.COM: Проверьте аутентификацию Kerberos с помощью файла keytab.
  5. kdestroy -A: В Linux вы можете использовать эту команду для сброса любого токена Kerberos на вашем локальном компьютере. Эта команда уничтожит ваш предыдущий билет Kerberos.
  6. klist purge: В Windows вы можете использовать эту команду для сброса любого токена Kerberos на вашем локальном компьютере. Команда уничтожит ваш предыдущий билет Kerberos.
  7. KRB5_TRACE=/dev/stdout kinit -kt /etc/krb5.keytab HTTP/≶Server Host Name>: Вы можете использовать эту команду на своем веб-сервере Linux, чтобы получить билет Kerberos из файла keytab и получить подробную информацию для отладки процесса аутентификации Kerberos, включив трассировку Kerberos.


Тестовая конфигурация:

  • Для проверки конфигурации SSO создайте test.php файл в корневом каталоге WordPress.
  • Введите следующую строку:
<?php
var_dump($_SERVER);
?>
  • Сохраните файл и откройте его в веб-браузере. Вы увидите... $_SERVER содержимое.
  • Ищи "REMOTE_USER"и оно должно содержать имя текущего пользователя, вошедшего в систему."
Вход в систему LDAP для сайтов интрасети, Kerberos SSO

Примечание: Пожалуйста, удалите test.php файл после проверки вашей конфигурации. Поскольку он содержит важную информацию.


  • Создайте отдельные файлы Keytab для каждого домена и объедините их с помощью инструмента ktutil:
ktutil
ktutil: read_kt <keytab_filename_1>
ktutil: read_kt <keytab_filename_2>
ktutil: read_kt <keytab_filename_3>
ktutil: write_kt spn.keytab
ktutil: quit
  • Проверьте слияние с помощью следующей команды:
klist -k spn.keytab
  • Настройте файл krb5.conf:

Файл krb5.conf содержит информацию о конфигурации Kerberos, включая серверы KDC и администрирования для одного или нескольких доменов Kerberos, значения по умолчанию для текущего домена и сопоставление имен хостов с доменами Kerberos. В случае нескольких доменов файл krb5.conf следует обновить информацией о различных доменах/доменах для корректной работы аутентификации.



Ниже приведены наиболее распространенные сообщения об ошибках:


  • kinit: Pre-authentication failed: Invalid argument while getting initial credentials
    or
    GSS ERROR gss_accept_sec_context(): [Unspecified GSS failure. Minor code may provide more information (Request ticket server HTTP/<Server Host Name>@EXAMPLE.COM kvno x enctype rc4-hmac found in keytab but cannot decrypt ticket)]
    Тип шифрования rc4, который по-прежнему широко используется в средах Active Directory, уже отключен по умолчанию в RHEL-8.3. Вы можете обратиться к приведенному ниже примеру, чтобы добавить тип шифрования в файл keytab.
    Пример: ktutil
    addent -password -p HTTP/<Server Host Name>@EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96
    wkt spn.keytab.

    Установите Шифрование Kerberos AES 256 бит поддерживается пользователем "Счет" настройки.

    свойства Kerberos krbtgt


  • Unspecified GSS failure. Minor code may provide more information (Clock skew too great)
    or
    kinit: krb5_get_init_creds: Too large time skew
    Kerberos очень чувствителен ко времени. Убедитесь, что часы на хостах Active Directory и веб-сервера совпадают. Настройте один из контроллеров домена в качестве NTP-сервера для клиентских компьютеров.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Permission denied) Неверные права доступа к файлу /etc/apache2/spn.keytab в файловой системе, то есть он недоступен для чтения пользователем Linux веб-сервера.
    Для изменения прав доступа к файловой системе используйте команду `chmod 644 /etc/apache2/spn.keytab`.

  • gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information (, Key table entry not found). Отсутствует субъект службы (возможно, HTTP/webserver.yourdomain.com@YOURDOMAIN.COM) в файле /etc/apache2/spn.keytab.

  • Warning: received token seems to be NTLM, which isn't supported by the Kerberos module. Check your IE configuration. gss_accept_sec_context() failed: An unsupported mechanism was requested (, Unknown error) Веб-сайт находится вне зоны «Локальная интранет» в Internet Explorer или Internet Explorer настроен неправильно; см. раздел «Используется NTLM вместо Kerberos для аутентификации».

  • gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, ). Ошибка kvno или пароль машины в файле etc/apache2/spn.keytab. Пересоздайте файл keytab, используя правильную информацию.
    Если у вас возникла проблема с локальным кэшем билетов Kerberos на вашем рабочем компьютере, используйте Kerbtray.exe для очистки кэша билетов и снова откройте веб-сайт в Internet Explorer.

  • kinit: KDC has no support for encryption type while getting initial credentials Измените тип шифрования по умолчанию в разделе libdefaults файла /etc/apache2/krb5.conf. Добавьте в конфигурацию параметры default_tgs_enctypes и default_tkt_enctypes.

  • [libdefaults]
    default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
    kinit: krb5_get_init_creds: Error from KDC: CLIENT EXPIRED
    or
    kinit: Client's entry in database has expired while getting initial credentials
    Ваша учетная запись Kerberos больше не активна. Необходимо обновить учетные данные.

  • kinit: krb5_cc_get_principal: No credentials cache file found
    or
    kinit: krb5_get_init_creds: Error from KDC: CLIENT_NOT_FOUND
    При выполнении команды kinit был выбран неверный домен. Проверьте доменное имя, оно должно быть написано заглавными буквами: EXAMPLE.COM

  • kinit : Cannot find KDC for requested realm while getting initial credentials Файл /etc/apache2/krb5.conf не содержит доменное имя Active Directory (.EXAMPLE.COM).

  • kinit: Preauthentication failed while getting initial credentials Причина: ошибочный ввод пароля Kerberos. Пожалуйста, попробуйте еще раз. Или из-за настроек системных часов. Убедитесь, что команда date возвращает время с точностью до 5 минут.

  • kinit: Client not found in Kerberos database while getting initial credentials Имя вашего Kerberos-субъекта может отличаться от имени пользователя в вашей локальной системе.

  • kinit: Client's entry in database has expired Вам необходимо сменить пароль Kerberos.


Дополнительные часто задаваемые вопросы ➔

Да, вы можете использовать существующего пользователя LDAP в качестве субъекта службы Kerberos. Однако у этого пользователя должен быть установлен пароль, срок действия которого никогда не истечет. Пожалуйста, убедитесь, что эта учетная запись не используется никаким другим пользователем, поскольку приложение использует эту учетную запись в качестве субъекта службы Kerberos и соответствующий файл keytab для получения билета Kerberos.

Вся аутентификация в Kerberos происходит между клиентами и серверами. Поэтому любой субъект, получающий сервисный билет для службы Kerberos, в терминологии Kerberos называется «клиентом Kerberos». Пользователи часто считаются клиентами, но любым субъектом может быть клиент.
Центр распределения ключей, или KDC, обычно называют «сервером Kerberos». KDC реализует как службу аутентификации (AS), так и службу выдачи билетов (TGS). Каждый пароль, связанный с каждым субъектом, хранится в KDC. Поэтому крайне важно, чтобы KDC был максимально безопасным.
Термин «сервер приложений» часто относится к программному обеспечению, использующему Kerberos, которое клиенты применяют для взаимодействия и аутентификации с помощью билетов Kerberos. Примером сервера приложений является демон Telnet Kerberos.

Это происходит, когда для аутентификации используется протокол NTLM вместо Kerberos.
Это может произойти по нескольким причинам:

  • Проверьте, используете ли вы для доступа к веб-сайту компьютер, подключенный к домену.
  • Убедитесь, что время синхронизировано между LDAP-сервером и веб-сервером.
  • Убедитесь, что в настройках вашего браузера и параметрах интернета включена поддержка единого входа Kerberos.
  • Если проблема сохраняется, пожалуйста, свяжитесь с нами.




 Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.

Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.

Мы свяжемся с вами в ближайшее время!


ADFS_sso ×
Привет!

Нужна помощь? Мы здесь!

поддержка