ADFS является одной из реализаций SSO на основе SAML. Для настройки входа через 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"
);
Правила должны идти именно в таком порядке. Сначала задаются атрибуты, потом преобразование.
На этом настройка 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
тоже не указываем. Оно совпадает с адресом логин центра.
В разделе 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
Если установить saml как предпочтительный способ входа, после входа пользователя по адресу логин центра, он будет сразу перенаправлен на форму авторизации adfs. (или сразу в логин центр если был ранее авторизован) Выбор других способ входа становится недоступен. Поэтому пользователи, которые входят через учетные данные в логин центре должны входить по полной ссылке на форму авторизации в ЛЦ.
https://адрес_логин_центра/username
После внесения изменений в работу авторизации логин центра, не все настройки могут применится без перезапуска логин центра. Поэтому по окончании настроек требуется его перезапуск. Для этого подключаемся к серверу логин центра по ssh. Входим в каталог установленного логин центра и выполняем последовательно
./om stop
./om start
На этом настройка adfs закончена.