Настройка единого входа (SSO) для приложений, опубликованных через Azure AD Application Proxy

В одной из предыдущих публикаций мы говорили о том, что такое Azure AD Application Proxy. Мы упомянули в той статье о том, что есть возможность настройки Windows аутентификации для публикуемых приложений. В этой публикации мы как раз рассмотрим, как выполняется Настройка единого входа (SSO) для публикуемых приложений.

Будем реалистами – расписать настройки для всех приложений – это очень трудоемко… Тем более, что настройка SSO для наземного приложения в большей части уникально для каждого приложения. Хотя, общие шаги в подавляющем большинстве случаев общие.

Мы рассмотрим пример настройка SSO для сайта SharePoint, который будет опубликован через Azure AD Application Proxy.

В нашем тестовом сценарии сервер с Azure AD Application Proxy Connector и сервер с приложением SharePoint находятся в одном домене.

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

Для того, чтобы SSO для приложения в Azure AD Application работал корректно есть ряд условий:

  • Само публикуемое наземное приложение должно поддерживать Integrated Windows Authentication (IWA). Причем приложение должно быть настроено на использование IWA. И тут уже все уникально для каждого приложения – нужно смотреть документацию по конкретному приложению. Например настройки Kerberos аутентификации в SharePoint приведен вот тут.
  • Для вашего наземного приложения в Active Directory должен быть зарегистрирован SPN (Service Principal Name).
  • Сервер, на котором установлен Azure AD Application Proxy Connector, находится в том же домене (или в доверенном), где находится и сервер приложения.
  • У сервера с Azure AD Application Proxy Connector есть парава на чтение аттрибута TokenGroupsGlobalAndUniversal пользователей. Если дополнительно вы не “затягивали гайки” в части настроен безопасности AD, то такие права у сервера должны быть.

Непосредственная настройка

Приступим непосредственно к настройке. Опорная инструкция доступна вот тут.

В нашем случае шаги будут следующие:

  1. Настройка Kerberos аутентификации для SharePoint (рассмотрим краткую версию).
  2. Настройка параметров SSO для конкретного приложения в Azure AD Application Proxy.

Пример предварительной настройки SSO для приложения SharePoint

Начнем с SharePoint.

1. Переходим “Application Manager” – “Manage Web Applications” и выбираем выше веб приложение.

Указываем типа аутентификации Negotiate (Kerberos).

2. Переходим в настройки аутентификации IIS.

Также проверяем, что сначала у нас используется протокол Kerberos:

3. Проверяем, что включена Windows аутентификация.

4. Переходим в настройки дополнительных параметров:

5. Проверяем, что у нас включена опция UseAppPoolCredential.

6. Теперь необходимо проверить – от имени какой учетной записи работает пул приложения SharePoint. Именно для этой учетной записи мы будем регистрировать SPN.

7. SPN необходимо зарегистрировать как для NetBIOS, так и для FQDN имени. Регистрируем SPN:

setspn -S HTTP/srv-sps03.hmmail.ru hm\spssvc
setspn -S HTTP/srv-sps03 hm\spssvc

8. Проверяем SPN:

setspn -L hm\spssvc

9. В настройках учетной записи сервиса включаем делегирование. Вкладка Delegation будет доступна только после регистрации SPN:

10. Проверяем. Если при доступе к сервису у вас не будет запрашиваться логин и пароль – вы все сделали верно:

http://srv-sps03/default.aspx

Бесконечные запросы логина и пароля говорят о том, что настройка Kerberos аутентификации не выполнена корректно. Мы не будет погражаться в детали того, как можно исправить проблему, т.к. основная идея статьи не в этом.

Настройка единого входа (SSO) для публикуемого приложения в Azure AD Application Proxy

Теперь нам необходимо выполнить шаги по настройке SSO непосредственно для Azure AD Application Proxy. Будем использовать вот эту опорную статью:

1. Для учетной записи сервера с агентов Application Proxy необходимо выполнить настройку делегирования для того SPN, что мы зарегистрировали для сервиса:

Важный момент – если у вас несколько серверов с агентами, то настройку делегирования необходимо выполнить на каждом из них.

2. Переходим в настройки опубликованного приложения в Azure AD. Нас интересует вкладка “Single sign-on”:

3. Выбираем Windows Integrated Authentication.

4. Выбираем параметры, как показано на рисунке ниже:

В поле Internal Application SPN указываем тот SPN, который мы регистрировали для наземного приложения.

Настройки в поле Delegation Login Identity индивидуальны для каждой инфраструктуры, но в подавляющем большинстве случев опции User Principal Name будет достаточно. Все зависит от того – настроена ли синхронизация вашей локальной Active Directory в облачной директорий и какие параметры синхронизации используются.

5. Сохраняем внесенные изменения.

Теперь давайте проверим. Переходим по URL, который мы настроили при публикации приложения (настройку публикации мы рассматривали ранее):

https://sp.hmmail.ru/

Выполняем преаутентификацию:

После успешной аутентификации мы сразу же попадаем на страницу приложения (без необходимости повторно указывать логин и пароль):

Возможные проблемы и способы диагностики

Настройка Windows аутентификации для приложений не всегда является простой задачей 🙁 Для каждого приложения могут быть свои особенности. И для диагностики проблем с Windows аутентификацией лучше обратиться к документации вендора.

Если же Windows аутентификация приложения уже настроена, но не получается настроить SSO в Azure AD Application Proxy, то стоит почитать вот эти рекомендации по посику и устранению проблемы.

Моя ошибка была, например в том, что я выполнял настройки делегирования только на одном из серверов с агентов, а их было два 🙂

Заключение

В этой публикации была рассмотрена настройка единого входа (SSO) для приложений, которые были опубликованы через Azure AD Application Proxy. Настройка SSO позволяет конечному пользователю приложения указывать пароль всего один раз. Настройка SSO включает следующие основные шаги: настройка Windows аутентификации в наземном приложении и настройка SSO в приложении Azure AD Application Proxy.

Мы рассмотрели процедуру настройки на примере публикации сайта SharePoint.

Надеюсь, эта краткая опорная инструкция будет для вас полезна 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *