Active Directory Federation Server (ADFS)¶
ADFS является одной из реализаций SSO на основе SAML. Для настройки входа через ADFS в логин центре требуется: - добавить в adfs возможность авторизации в логин центре - настроить в логин центре авторизацию через adfs - настроить url для входа - задать предпочтительный способ входа в логин центре - перезапустить логин центра
Настройка сервера ADFS¶
Для настройки нам понадобятся метаданные узла. Для их получения идем в логин
центр. Раздел System и нажимаем на кнопку Generate SAML SP Metadata.

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

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

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

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

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

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

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

Или на языке правил:
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 пользователя его адрес электронной почты.

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.

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

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

Их так же можно взять из метаданных вашего 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 |
Ниже настройки приводим к такому виду:

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

Здесь надо указать следующие данные
| Поле | Значение | Описание |
|---|---|---|
| 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).

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

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

Значение параметра 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. Входим в каталог установленного логин центра и выполняем последовательно:
На этом настройка adfs закончена.