Перейти к содержанию

Active Directory Federation Server (ADFS)

ADFS является одной из реализаций SSO на основе SAML. Для настройки входа через ADFS в логин центре требуется: - добавить в adfs возможность авторизации в логин центре - настроить в логин центре авторизацию через adfs - настроить url для входа - задать предпочтительный способ входа в логин центре - перезапустить логин центра

Настройка сервера ADFS

Для настройки нам понадобятся метаданные узла. Для их получения идем в логин центр. Раздел System и нажимаем на кнопку Generate SAML SP Metadata.

adfs_1

После этого или загрузится или откроется в браузере файл metadata.xml. Нам нужно или передать этот файл на сервер adfs или ссылку на этот файл. Как правило это https://адрес_логин_центра/saml/metadata.xml.

На сервере с установленной ролью adfs идем в раздел Отношения доверия проверяющей стороны жмем на нем правой кнопкой и в выпадающем меню выбираем Добавить отношение доверия проверяющей стороны.

В мастере добавления отношения выбираем Поддерживающие утверждения и ниже переходим к запустить.

adfs_2

На следующем шаге или указываем ссылку до метаданных логин центра или через пункт два выбираем загруженный xml файл после чего нажимаем далее.

adfs_3

При необходимости заполняем отображаемые данные и примечания.

adfs_4

Задаем политику доступа для пользователей.

adfs-5.png

Можем просмотреть данные для добавляемого отношения полученные на предыдущих шагах.

adfs_6

И по нажатии далее будет создано отношения доверия с логин центром.

После этого переходим к настройке политик подачи запросов. Для этого нажимаем правой кнопкой на созданное отношение доверия и в контекстном меню выбираем Изменить политику подачи запросов. Нам потребуется создать здесь два правила.

adfs_7

Правило первое задает атрибуты учетной записи пользователя.

adfs_8

Или на языке правил:

c:[
Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"
] => issue(
store = "Active Directory", 
types = (
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
 "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"), 
query = ";mail,givenName,sn;{0}", 
param = c.Value
);

Второе правило выдает в качестве id пользователя его адрес электронной почты.

adfs_9

c:[
Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"]
 => issue(
 Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
 Issuer = c.Issuer, 
 OriginalIssuer = c.OriginalIssuer, 
 Value = c.Value, 
 ValueType = c.ValueType,
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
);

Warning

Правила должны идти именно в таком порядке. Сначала задаются атрибуты, потом преобразование.

На этом настройка ADFS закончена. Далее переходим к настройке авторизации в логин центре.

Настройка авторизации в логин центре

Заходим в логин центр с учетной записью, имеющей роль Admin или Service Admin. Выбираем справа раздел Config и выбираем authentication. В списке драйверов аутентификации в разделе SAML вносим данные для соединения с настроенным ранее ADFS сервером. Для этого нажимаем на + в разделе SAML DRIVERS.

adfs_10

И вносим следующие данные

  • Unique name - определяет системное уникальное имя для внутренней идентификации.
  • User-friendly name - соответствует тексту-описанию раздела. Данное имя пользователи увидят на странице выбора способа входа.
  • Assert URL - соответствует значению поля URL системы единого входа метаданных. Его требуется взять из метаданных вашего adfs сервера.
  • Logout URL - URL для выхода из системы. Аналогично берется из метаданных вашего ADFS сервера.
  • Certificate list - ничего не добавляем.

Ниже пример заполнения данных соединения с ADFS.

adfs_11

Далее заполняем данные полей пользователя, которые будут использоваться в профиле пользователя при первой авторизации.

adfs_12

Их так же можно взять из метаданных вашего adfs сервера. Для adfs они задаются в описании утверждений сервера и тип утверждений идентичен на всех adfs серверах.

Поле Значение
First name field ID http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
Last name field ID http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
Email field ID http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

Ниже настройки приводим к такому виду:

adfs_13

Поле сертификата не заполняем. Включаем поддержку обмена без использования шифрования, и поле Entity ID тоже не указываем. Оно совпадает с адресом логин центра.

Настройка url адресов

В разделе Config Urls идет перечисление точек входа для авторизации. Нажимаем + что бы добавить новую форму и заполняем ее.

adfs_14

Здесь надо указать следующие данные

Поле Значение Описание
Form template saml Шаблон формы входа, всегда saml.
Title ADFS OM Название, которое отображается в окне выбора способа входа.
Matching drivers ^saml Регулярное выражение для поиска драйверов аутентификации для показа на форме входа.
User selectable true true = показывать пользователям в списке доступных форм входа.
false = не показывать.
При любом значении форма входа доступна при вводе URL (см. параметр URL).
URL adfs Один или несколько путей формы входа в URL относительно корня сайта (/).

При данной настройке для входа через ADFS требуется перейти по ссылке https://адрес_логин_центра/adfs (параметр URL). Данная ссылка будет отображаться в списке доступных способов входа (параметр User selectable).

adfs_15

Настройка предпочтительного способа входа

По умолчанию вход в логин центр происходит через логи пароль пользователя логин центра. Прочие способы входа доступны на странице логина через Other ways to sign in.

adfs_16

Для задания другого способа входа идем в раздел Config Urls и меняем значение поля Default driver.

adfs_17

Значение параметра Default driver должно соответствовать имени одного из драйверов аутентификации (usernamePassword, saml-имя, activedirectory-имя, oauth-имя и т. д., где «имя» — это установленное Unique name в Config / Authentication).

В данном случае на 2ом шаге мы задали Unique name как adfs-om и мы добавляли Saml drivers. Поэтому значение этого поля будет saml-adfs-om.

Info

Если установить saml как предпочтительный способ входа, после входа пользователя по адресу логин центра, он будет сразу перенаправлен на форму авторизации adfs. (или сразу в логин центр если был ранее авторизован) Выбор других способ входа становится недоступен. Поэтому пользователи, которые входят через учетные данные в логин центре должны входить по полной ссылке на форму авторизации в ЛЦ. https://адрес_логин_центра/username

Перезапуск логин центра

После внесения изменений в работу авторизации логин центра, не все настройки могут применится без перезапуска логин центра. Поэтому по окончании настроек требуется его перезапуск. Для этого подключаемся к серверу логин центра по ssh. Входим в каталог установленного логин центра и выполняем последовательно:

./manage stop
./manage start

На этом настройка adfs закончена.