Провайдеры аутентификации - Продукт Modus BI
Общее описание
Для обеспечения возможности входа пользователя на аналитический портал (АП) посредством разных методов идентификации и аутентификации, спроектированы и разработаны провайдеры аутентификации.
Провайдер аутентификации
Провайдер аутентификации (ПА) — это некоторый внутренний/внешний метод/сервис, который может выполнить идентификацию и последующую аутентификацию пользователя, результатом работы которого будет как минимум информация об учётных данных пользователя и маркер доступа с периодом действия («токен»).
Пока период действия маркера доступа не истек, пользователь автоматически входит на АП.
На основе текущей реализации вариантов входа на АП созданы следующие провайдеры аутентификации:
- «Password» — провайдер использующий имя пользователя и пароль для аутентификации;
- «LDAP for Active Directory» — провайдер передающий имя пользователя и пароль в службу каталогов «Active Directory» посредством протокола «LDAP»;
- «SAML» — провайдер выполняющий создание подписанного «XML–документа» по стандарту «SAML», который используется для идентификации системы и передающий созданный документ внешней системе для выполнения аутентификации пользователя;
- «OAuth2.0 Client Credentials» — провайдер аутентификации выполняющий авторизацию посредством стандарта авторизации «OAuth 2.0», с использованием типа предоставления учётных данных «ClientCredentials», который используется для конфиденциальных клиентов, которые запрашивают доступ к своим ресурсам или ресурсам, заранее согласованным с сервером авторизации;
- «OAuth2.0 Authorization Code» — провайдер аутентификации выполняющий авторизацию посредством стандарта авторизации «OAuth 2.0», с использованием типа предоставления учётных данных «Authorizationcode», который в основном используется для «Web-сервисов», которые выполняют перенаправление запроса на сервер авторизации и обрабатывают ответ.
Конфигурация провайдера аутентификации
Так как для одного провайдера аутентификации могут быть разные настройки, то совокупность уникальных настроек и провайдера аутентификации объединены понятием конфигурация провайдера аутентификации.
Таким образом получается, что администратор АП может управлять методом идентификации и аутентификации на АП посредством создания/изменения конфигураций провайдера аутентификации.
Параметры конфигурации провайдера аутентификации
Параметры конфигурации провайдера состоят из двух частей: постоянных параметров и динамического набора полей, который определяется схемой провайдера аутентификации.
Постоянные параметры конфигурации:
-
«Провайдер» аутентификации/авторизации — выбирается при добавлении конфигурации и не может быть изменён.
-
«Тип хеширования» — алгоритм который используется для обработки пароля пользователя, выбирается при добавлении конфигурации и не может быть изменен.
-
«Имя конфигурации» — уникальное внутреннее название для конфигурации.
-
«Отображаемое наименование» — уникальное название конфигурации, которое отображается пользователю.
-
«Администратор доступа» — пользователь, от имени которого выполняются автоматические операции после успешной обработки ответа от службы/сервиса идентификации/аутентификации.
-
«Иконка» — графическое изображение которое выводится в форме Входа/Выхода пользователя.
-
«Встроенный» — признак, который устанавливается разработчиками и не может быть изменен, характеризует конфигурацию провайдера аутентификации, встроенную в АП, которая используется всегда при отсутствии других конфигураций.
-
«По умолчанию» — признак, указывающий на конфигурацию, которая используется для идентификации/аутентификации пользователя, если пользователь не существует в списке пользователей АП или создан без указания конфигурации провайдера.
-
«Показывать форму» — признак указывает на необходимость отображения формы Входа.
Для каждого провайдера аутентификации набор динамических полей определяют разработчики на основе схемы.
Провайдеры аутентификации с динамическим набором полей:
-
«Password»:
-
необходимо ввести имя пользователя — требует ввода имени пользователя в форме Входа;
-
необходимо ввести пароль — требует ввода пароля в форме Входа;
-
-
«LDAP for Active Directory»:
По умолчанию 0.
Если равен 0, то используется стандартный порт «389» для не защищённого соединения или порт «636» для защищённого соединения (параметры указываются ниже);
Пример: «dc=example,dc=com»;
Пример: «cn=username,dc=example,dc=com»;
Пример: username@example.com.
-
необходимо ввести имя пользователя — требует ввода имени пользователя на форме Входа;
-
следует ввести пароль — требует ввода пароля на форме Входа;
-
адрес («host») — обязательное поле, содержит IP-адрес или DNS-имя сервера LDAP;
-
порт («port») — не обязательное поле, содержит порт, который прослушивается службой LDAP на «адрес».
- база поиска («base_dn») — обязательное поле, содержит уникальное имя базы поиска («DN»), состоящее из одного или нескольких относительных уникальных имён («RDN»).
- база поиска с пользователем («bind_dn») — не обязательное поле, содержащее уникальное имя базы поиска, содержащее клиента/пользователя.
-
пароль пользователя ( «bind_pass») — не обязательный если не указан «база поиска с пользователем», содержит пароль клиента/пользователя, указанного в «база поиска с пользователем»;
-
не использовать шифрование TLS («skip_tls») — не обязательное поле, по умолчанию значение «Да», не использовать шифрование TLS при выполнении запросов;
-
использовать шифрование SSL («use_ssl») — не обязательное поле, по умолчанию значение «Нет», использовать шифрование SSL при выполнении запросов (параметры указываются ниже);
-
SSL-сертификат («ssl_cert») — не обязательное поле, путь и наименование файла, содержащего SSL-сертификат, используется если «использовать шифрование SSL» установлено в «Да»;
-
SSL-ключ («ssl_key») — не обязательное поле, путь и наименование файла, содержащего SSL-ключ, используется если «использовать шифрование SSL» установлено в «Да»;
-
название сервера из SSL-сертификата («server_name») — не обязательное поле, содержащее название сервера, указанное в SSL сертификате (Server Name Indication), используется если «использовать шифрование SSL» установлено в «Да»;
-
NetBIOS имя домена («server_netbios») — необязательное поле, содержит NetBIOS имя домена по умолчанию. Используется для формирования логина пользователя sAMAccountName стандарта. Если данная настройка указана, и не включена настройка «использовать в качестве имени пользователя UPN», то имя домена будет добавляться к логину пользователя автоматически, если логин не содержит имени домена. Например имя домена “HOUSE”, а логин введенный пользователем “v.ivanov”, то логин используемый для аутентификации будет “HOUSE\v.ivanov”, однако если пользователь введет логин вместе с именем домена “HOUSE\v.ivanov”, то ничего к логину прибавляться не будет;
-
пропускать проверку безопасность при использовании SSL («insecure_skip_verify») — не обязательное поле, по умолчанию установлено в «Да», пропускать проверку безопасность при использовании SSL;
-
использовать в качестве имени пользователя UPN («user_principal_name») — не обязательное поле. Указывает порталу, что в качестве логина пользователи будет использовать userPrincipalName (UPN) — имя участника-пользователя. Это новый формат указания имени пользователя для входа в систему, основанный на интернет-стандарте RFC 822. UPN образуется сочетанием имени пользователя с доменным суффиксом, например “ivanov_ii@home.local”. По умолчанию настройка установлена в значение «Да» - использовать UPN. Если настройка указана «Нет», то в качестве логина будет использоваться sAMAccountName свойство учетной записи пользователя.
-
-
«SAML»:
Пример: «metadata.xml»;
Пример: «https://dev.modusbi.ru/v1/api»;
Пример: «domain.cert»;
Пример: «domain.key»;
Если значение настройки не указано, то используется первая запись «XML-тэга» «SingleSignOnService» из файла настроек, указанного в пункте «1». Допустимые поддерживаемые значения:
Если значение настройки не указано, то используется первая завись «XML-тэга» «SingleLogoutService» из файла настроек, указанного в пункте «1».
Допустимые поддерживаемые значения:
В соответствии с документацией (§4.2), поддерживаются следующие значения:
- «urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified» — используется как значение по умолчанию; - «urn:oasis:names:tc:SAML:2.0:nameid-format:persistent»; - «urn:oasis:names:tc:SAML:2.0:nameid-format:transient»; - «urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress»; - «urn:oasis:names:tc:SAML:1.1:nameid-format:x509SubjectName»;
- поставщик учётных записей: «Файла метаданных» — обязательное поле, содержит наименование и полный путь к файлу, содержащему метаданных поставщика идентификации/аутентификации.
- поставщик сервиса: «Адрес сервера портала» — обязательное поле, содержит адрес сервера портала.
-
поставщик сервиса: «Использовать самозаверенный сертификат» — не обязательное поле, если значение установлено в «Да», то автоматически создаётся сертификат и ключ для доменного имени используемого в адресе сервера портала;
-
поставщик сервиса: «Файла сертификата» — обязательное поле, если сервер портала использует протокол «HTTPS» и значение «Поставщик сервиса: Использовать самозаверенный сертификат» установлено в «Нет», содержит наименование и полный путь к файлу, содержащему сертификат, созданный для доменного имени, используемого в адресе АП.
- поставщик сервиса: «Файла ключа для сертификата» — обязательное поле, если сервер портала использует протокол «HTTPS» и значение «Поставщик сервиса: Использовать самозаверенный сертификат» установлено в «Нет», содержит наименование и полный путь к файлу, содержащему ключ для сертификата созданный для доменного имени, используемого в адресе АП.
-
поставщик сервиса: «Создавать пользователя» — не обязательное поле, если установлено в «Да», то после получения ответа от «Поставщик учётных записей» об успешной идентификации/аутентификации, создаётся новый пользователь в АП с данными полученными из ответа;
-
поставщик сервиса: «Устанавливать Профили» — не обязательное поле, если установлено в «Да», то после получения ответа от «Поставщик учётных записей» об успешной идентификации/аутентификации, пользователю устанавливаются «Профили» с использованием «Групп для конфигурации провайдера аутентификации»;
-
поставщик учётных записей: «способ передачи для Входа» (SingleSignOnService) – определяет значение атрибута «Binding» «XML-тэга» «SingleSignOnService», который необходимо использовать в файле настроек, указанного в пункте «1».
-
«urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST» — значение по умолчанию;
-
«urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect»;
-
поставщик учётных записей: «способ передачи для Выхода» (SingleLogoutService) – определяет значение атрибута «Binding» «XML-тэга» «SingleLogoutService», который необходимо использовать в файле настроек, указанного в пункте «1».
-
«urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST» - значение по умолчанию;
-
«urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect»;
-
поставщик сервиса: «Формат идентификатора пользователя» (NameIDFormat) – задаёт значение «XML-тэга» из которого необходимо получать формат представления идентификатора пользователя.
-
поставщик сервиса: «Подписать запрос аутентификации» — определяет необходимость использования шифрования отправляемых данных;
-
пставщик сервиса: «Проверять действительность сертификата шифрования» — перед тем как подписывается запрос аутентификации выполняется проверка срока годности сертификата, используемого для шифрования;
-
поставщик сервиса: «Не проверять подпись» — при обработке ответа от поставщика учётных записей не выполняется проверка подписи перед расшифровкой;
-
поставщик сервиса: «Разрешить отсутствие атрибутов» — если в результате обработки ответа от поставщика учётных записей не будут найдены некоторые атрибуты в «XML-тэгах», то не возвращать ошибку обработки;
-
поставщик сервиса: «Проверять данные подтверждения субъекта» — при обработки ответа от поставщика учётных записей проверяются атрибуты «XML-тэга» «urn:oasis:names:tc:SAML:2.0:assertion Subject».
-
«OAuth2.0 Client Credentials»:
- «Необходимо ввести пароль» — требует ввода пароля на форме Входа;
- «Идентификатор приложения» — строковое значение, полученное при регистрации на сервере авторизации («client id»);
- «Код приложения» — строковое значение, полученное при регистрации на сервере авторизации («client secret»);
- «Адрес сервера авторизации» — интернет адрес сервера авторизации;
- «Адрес получения маркера доступа» — интернет адрес куда необходимо отправлять запросы на получение маркера доступа;
- «Адрес получения данных пользователя» — интернет адрес куда необходимо отправлять запросы с полученным маркером доступа, чтобы получить данные пользователя;
- «Получать области пользователя» (разделённые пробелом) — строка, содержащая значения, описывающие данные пользователя на стороне сервера авторизации и использующиеся при создании и обновлении пользователя после успешной аутентификации в АП, по умолчанию равно «openid name email groups roles»;
- «Области для установки профилей» (разделённые пробелом) — строка, содержащая значения, описывающие данные пользователя на стороне сервера авторизации и использующиеся для установки профилей после успешной аутентификации в АП, посредством «Групп конфигурации провайдера аутентификации», по умолчанию равно «groups roles»;
- «Создавать пользователя» — не обязательное поле, если установлено в «Да», то после успешной авторизации на сервере авторизации, создаётся новый пользователь в АП с данными полученными из ответа;
- «Устанавливать Профили» — не обязательное поле, если установлено в «Да», то после успешной авторизации на сервере авторизации, пользователю устанавливаются «Профили» с использованием «Групп для конфигурации провайдера аутентификации».
-
«OAuth2.0 Authorization Code»:
- «Необходимо ввести имя пользователя» — требует ввода имени пользователя на форме Входа;
- «Необходимо ввести пароль» — требует ввода пароля на форме Входа;
- «Идентификатор приложения» — строковое значение, полученное при регистрации на сервере авторизации («client id»);
- «Код приложения» — строковое значение, полученное при регистрации на сервере авторизации («client secret»);
- «Адрес сервера портала» (https://demo.modusbi.ru/v1/api) – интернет адрес публикации API Аналитического портала. На этот адрес будет выполнено перенаправление с сервера авторизации. Обычно интернет адрес публикации API состоит из интернет адреса Аналитического портала «https://demo.modusbi.ru» и относительного пути к точке публикации API «/v1/api».
- «Адрес сервера авторизации» — интернет адрес сервера авторизации;
- «Адрес получения маркера доступа» — интернет адрес куда необходимо отправлять запросы на получение маркера доступа;
- «Адрес получения данных пользователя» — интернет адрес куда необходимо отправлять запросы для получения данных о пользователе (атрибутов учетной записи);
- «Имя атрибута из которого получать ’login’ пользователя» - не обязательное поле. Имя атрибута учетной записи, значение из которого следует использовать в качестве логина пользователя. Если не заполнено, используется атрибут “email”;
- «Имя атрибута из которого получать ‘Имя’ пользователя» - не обязательное поле. Имя атрибута учетной записи, значение из которого следует использовать в качестве имени пользователя. Если не заполнено, используется атрибут “given_name”;
- «Имя атрибута из которого получать ‘Фамилию’ пользователя» - не обязательное поле. Имя атрибута учетной записи, значение из которого следует использовать в качестве фамилии пользователя. Если не заполнено, используется атрибут “family_name”;
- «Имя атрибута из которого получать ‘Отчество’ пользователя» - не обязательное поле. Имя атрибута учетной записи, значение из которого следует использовать в качестве отчества пользователя. Если не заполнено, используется атрибут “middle_name”;
- «Имя атрибута из которого получать ‘E-mail’ пользователя» - не обязательное поле. Имя атрибута учетной записи, значение из которого следует использовать в качестве адреса электронной почты пользователя. Если не заполнено, используется атрибут “email”;
- «Получать области пользователя» — строка, в которой перечислены имена областей (scope) к которым нужно запрашивать доступ для получения информации о пользователе (атрибутов учетной записи). Имена областей следует отделять пробелами. Значение по умолчанию «openid name email groups roles»;
- «Атрибуты для установки профилей» — строка, в которой перечислены имена атрибутов учетной записи пользователя (получаемых от сервера аутентификации) содержащих информацию о членстве пользователя в группах. Имена атрибутов следует отделять пробелами. По умолчанию используются атрибуты «groups» и «roles». Значения атрибутов, перечисленных в этой настройке, должны быть массивами из строк - имен групп. Имена групп, получаемые из перечисленных атрибутов, должны совпадать с именами групп указанным в «Настройка групп» конфигурации провайдера аутентификации.
— "Claim JSON Type": String
— "Aggregate attribute": On
-
«Создавать пользователя» — не обязательное поле, если установлено в «Да», то после успешной авторизации на сервере авторизации, создаётся новый пользователь в АП с данными полученными из ответа;
-
«Устанавливать Профили» — не обязательное поле, если установлено в «Да», то после успешной авторизации на сервере авторизации, пользователю устанавливаются «Профили» с использованием «Групп для конфигурации провайдера аутентификации» и значений из свойств перечисленных в настройке «Свойства для установки профилей».
Создание/изменение пользователя
Так как в результате идентификации и аутентификации пользователя может возникнуть необходимость создания/изменения учетных данных пользователя АП, а также назначение доступа пользователя к разным частям АП посредством назначения «Профилей», то для каждой конфигурации провайдера аутентификации возможно:
-
Указание необходимости создании пользователя после успешной идентификации и аутентификации.
-
Назначение пользователю «Профилей» (любых типов) на основании полученного «Списка доступа» в результате идентификации и аутентификации в провайдере аутентификации.
Группы для конфигурации провайдера аутентификации
Для корректного назначения «Профилей» пользователю необходимо, чтобы с каждым возможным элементом «Списка доступа» были установлены связи с одним или несколькими существующими «Профилями».
Таким образом для каждой конфигурации провайдера аутентификации можно создать свой уникальный «Список доступа», который называется «Группы конфигурации».
Каждый элемент «Группы конфигурации» может быть связан с одним или несколькими существующими «Профилями».
Установка «Профилей» пользователя
Для обеспечения корректного текущего доступа пользователя к частям АП, установка «Профилей» на основании связи с «Группами конфигурации» выполняется каждый раз после успешной идентификации и аутентификации пользователя в провайдере аутентификации, посредством удаления установленных «Профилей» кроме профиля с типом «Личный» и назначения новых «Профилей» на основании «Группами конфигурации».
Добавление конфигурации провайдеров доступа
- Зайти на портал с правами администратора. Перейти в меню «Администрирование» (1), «Настройки провайдеров» (2) и нажать на кнопку «Добавить конфигурацию» (3):
- Заполнить поля «Имя», «Отображаемое наименование», «Выбрать провайдера авторизации», тип хэширования и нажать «Создать»:
- Перейти в редактирование конфигурации по кнопке «Настройки».
- При необходимости изменить «Имя» (1) и «Отображаемое наименование» (2), установить опции (3) и выбрать иконку (4), выбрать администратора доступа (5), заполнить поля (6) — поля меняются в зависимости от выбранного провайдера авторизации:
Пример настройки для Active Directory
Описание настройки провайдера доступа для интеграции АП с Active Directory Federation Services
На данном этапе предполагается, что установлены и настроены компоненты Active Directory (далее – AD), Active Directory Federation Services (далее – AD FS), Модуль АП.
Шаги настройки AD FS
Для начала необходимо произвести настройки AD FS.
Открываем оснастку «Управление AD FS», переходим в пункт «Описания утверждений», добавляем новые описания утверждений путем нажатия «Добавить описания утверждений…»:
- У всех описаний утверждений нужно будет выбрать пункт «Опубликовать это описание утверждения в метаданных федерации в качестве типа утверждений, которые может отправлять данная служба федерации».
- Отображаемое имя – modusDepartment, Идентификатор утверждения – Department.
- Отображаемое имя – modusEmail, Идентификатор утверждения – Email.
- Отображаемое имя – modusGroup, Идентификатор утверждения – Group.
- Отображаемое имя – modusID, Идентификатор утверждения – ID.
- Отображаемое имя – modusLogin, Идентификатор утверждения – Login.
- Отображаемое имя – modusName, Идентификатор утверждения – Name.
- Отображаемое имя – modusOrganization, Идентификатор утверждения – Organization.
- Отображаемое имя – modusPatronymic, Идентификатор утверждения – Patronymic.
- Отображаемое имя – modusPosition, Идентификатор утверждения – Position.
- Отображаемое имя – modusRole, Идентификатор утверждения – Role.
- Отображаемое имя – modusSurname, Идентификатор утверждения – Surname.
Далее переходим в пункт «Отношения доверия проверяющей стороны». Добавляем новое отношение доверия путем нажатия «Добавить отношение доверия проверяющей стороны…» и следуем по шагам мастера настройки:
- Пропускаем пункт «Добро пожаловать!».
- В пункте «Выбор источника данных» выбираем «Ввод данных о проверяющей стороне вручную».
- В пункте «Указание отображаемого имени» в поле «Отображаемое имя:» вписываем ModusBI.
- В пункте «Выберите профиль» выбираем «Профиль AD FS».
- В пункте «Настйроки сертификата» нажимаем «Обзор» и выбираем *.cer файл открытого ключа SSL сертификата шифрования ModsuBI.
- Пропускаем пункт «Настройка URL-адреса».
- В пункте «Настройка идентификатора» в полу «Идентификатор отношения даверия проверяющей стороны:» вписываем «https://доменный_адрес_ModusBI/v1/api/login/ID_конфигурации_в_ModusBI» и нажимаем «Добавить».
- В пункте «Настроить многофакторную проверку подлинности» выбираем «Сейчас не настраивать параметры для этого отношения доверия с проверяющей стороной.».
- В пункте «Выбор правил авторизации выдачи» выбираем «Разрешить доступ к этой проверяющей стороне всем пользователям».
- Пропускаем пункт «Готовность для добавления отношения доверия».
- В пункте «Готово» выбираем «Открыть диалоговое окно «Изменение правил утверждений» для этого отношения доверия проверяющей стороны после закрытия мастера».
После настройки нажимаем «Закрыть».
Продолжаем работу в открывшемся окне «Изменение правил утверждения для …».
Далее добавляем новое общее правило путем нажатия «Добавить правило…»:
- В пункте «Выберите тип правила» в поле «Шаблон правила утверждения:» выбираем «Отправка атрибутов LDAP как утверждений»;
- В пункте «Настройте правило утверждения» указываем:
- «Имя правила утверждения:» – main,
- «Хранилище атрибутов:» – «Active Directory»,
- Добавляем строки в поле «Сопоставление атрибутов LDAP типам исходящих утверждений:»:
- Атрибут LDAP – SAM-Account-Name, Тип исходящего утверждения – modusLogin,
- Атрибут LDAP – E-Mail-Addresses, Тип исходящего утверждения – modusEmail,
- Атрибут LDAP – Surname, Тип исходящего утверждения – modusSurname,
- Атрибут LDAP – Display-Name, Тип исходящего утверждения – modusName,
- Атрибут LDAP – Organization-Name, Тип исходящего утверждения – modusOrhanization,
- Атрибут LDAP – Department, Тип исходящего утверждения – modusDepartment;
Завершаем настройку нажатием «Готово».
Добавляем новое правило для пользователей путем нажатия «Добавить правило…»:
- В пункте «Выберите тип правила» в поле «Шаблон правила утверждения:» выбираем «Отправка членства в группе как утверждения».
- В пункте «Настройте правило утверждения»:
- «Имя правила утверждения:» – group.Пользователь.
- "Группа пользователя:" - нажмите "Обзор..." и выберите группу AD. (Группу необходимо создать или выбрать существующую для управления Ролью или правами пользователя в ModusBI).
- "Тип исходящего утверждения:" - "modusGroup".
- "Значение исходящего утверждения:" - Пользователь.
Завершаем настройку нажатием "Готово".
Добавляем новое правило для аналитиков путем нажатия "Добавить правило...":
- В пункте "Выберите тип правила" в поле "Шаблон правила утверждения:" выбираем "Отправка членства в группе как утверждения".
- В пункте "Настройте правило утверждения":
- "Имя правила утверждения:" - group.Аналитик.
- "Группа пользователя:" - нажмите "Обзор..." и выберите группу AD. (Группу необходимо создать или выбрать существующую для управления Ролью или правами пользователя в ModusBI).
- "Тип исходящего утверждения:" - "modusGroup".
- "Значение исходящего утверждения:" - Аналитик.
Завершаем настройку нажатием "Готово".
Добавляем новое правило для администраторов путем нажатия "Добавить правило...":
- В пункте "Выберите тип правила" в поле "Шаблон правила утверждения:" выбираем "Отправка членства в группе как утверждения",
- В пункте "Настройте правило утверждения":
- "Имя правила утверждения:" - group.Администратор.
- "Группа пользователя:" - нажмите "Обзор..." и выберите группу AD. (Группу необходимо создать или выбрать существующую для управления Ролью или правами пользователя в ModusBI).
- "Тип исходящего утверждения:" - "modusGroup".
- "Значение исходящего утверждения:" - Администратор.
Завершаем настройку нажатием "Готово".
Обратите внимание, что «Значение исходящего утверждения» - это, по сути, название группы в конфигурации, создаваемой в Модуле АП. Соответственно в зависимости от потребностей могут создаваться различные правила для групп.
Переходим к редактированию появившегося отношения доверия путем нажатия, предварительно выбрав его, меню "Свойства":
- Перейдем во вкладку "Конечные точки",
- Добавим первую конечную точку путем нажатия "Добавить SAML...":
- "Тип конечной точки:" - "Получатель проверочного утверждения SAML Assertion",
- "Привязка:" - "POST",
- Не отмечаем "Установить доверенный URL-адрес в качестве используемого по умолчанию",
- "Индекс:" - 0,
- "Доверенный URL-адрес:" - https://доменный_адрес_ModusBI/v1/api/login,
- Завершаем нажатием "ОК";
- Добавим вторую конечную точку путем нажатия "Добавить SAML...":
- "Тип конечной точки:" - "Получатель проверочного утверждения SAML Assertion",
- "Привязка:" - "POST",
- Отмечаем "Установить доверенный URL-адрес в качестве используемого по умолчанию",
- "Индекс:" - 1,
- "Доверенный URL-адрес:" - https://доменный_адрес_ModusBI/v1/api/login?pcid=ID_конфигурации_в_ModusBI,
- Завершаем нажатием "ОК";
Настройка ADFS завершена.
Шаги настройки в Модуле АП
Со стороны сервера Модуля АП необходимо скопировать в корневую папку ModusBI следующие файлы:
- Файл настроек федерации https://доменный_адрес_ADFS/FederationMetadata/2007-06/FederationMetadata.xml,
- Файл отрытого ключа SSL сертификата шифрования ModusBI,
- Файл закрытого ключа SSL сертификата шифрования ModusBI;
Для добавления конфигурации провайдера на Аналитическом портале, перейти в меню «Администрирование» / «Настройки безопасности» и нажать «Добавить конфигурацию».
В появившейся форме заполнить поля:
- Имя - Уникальное имя конфигурации (пример: AD FS),
- Отображаемое наименование - Описание, отображаемое в зависимых полях (пример: AD FS),
- Выбрать провайдера авторизации - SAML,
- Выбрать тип хеширования - SHA-256;
Далее нажимаем «Создать».
После создания, в списке конфигураций нажать на редактирование конфигурации . Откроется форма редактирования конфигурации.
Заполняем поля настроек:
- «Поставщик учётных записей: Файла метаданных (metadata.xml)» — имя файла настроек федерации (пример: FederationMetadata.xml);
- «Поставщик учётных записей: способ передачи для Входа (SingleSignOnService)» — https://доменный_адрес_ADFS/adfs/ls/;
- «Поставщик учётных записей: способ передачи для Выхода (SingleLogoutService)» — https://доменный_адрес_ADFS/adfs/ls/;
- «Поставщик сервиса: Адрес сервера портала (https://demo.modusbi.ru)» — https://доменный_адрес_ModusBI/v1/api;
- «Поставщик сервиса: Использовать самозаверенный сертификат» — Выкл;
- «Поставщик сервиса: Файла сертификата (domain.cert)» — имя файла открытого ключа SSL сертификата шифрования;
- «Поставщик сервиса: Файла ключа для сертификата (domain.key)» — имя файла закрытого ключа SSL сертификата шифрования;
- «Поставщик сервиса: Формат идентификатора пользователя (NameIDFormat)» — urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified;
- «Поставщик сервиса: Создавать пользователя» — Вкл;
- «Поставщик сервиса: Устанавливать Профили» — Вкл;
- «Поставщик сервиса: Подписать запрос аутентификации» — Выкл;
- «Поставщик сервиса: Проверять действительность сертификата шифрования» — Выкл;
- «Поставщик сервиса: Не проверять подпись» — Вкл;
- «Поставщик сервиса: Разрешить отсутствие атрибутов» — Вкл;
- «Поставщик сервиса: Проверять данные подтверждения субъекта» — Выкл;
- «Использовать имя пользователя в качестве логина» — Выкл;
- «Загружать автоматически значения серверных переменных по данным провайдера» — Выкл;
- «Устанавливать роли из групп» — Выкл.
Сохраняем настройки нажатием «Сохранить»;
Далее необходимо создать группы в конфигурации с целью:
- Назначения Ролей пользователям;
- Управления доступами пользователей.
Редактирование групп доступно по кнопке «Настроить группы» в конфигурации.
Нажимаем на кнопку и открывается список групп, изначально список пуст и нас нужно создать группы.
Для начала создаем три группы для определения Ролей пользователя («Администратор», «Аналитик», «Пользователь»). Чтобы создать группу нажимаем «Создать группу».
Указываем необходимые значения, например для группы Администратор:
- Имя группы — «Администратор»;
- Отображаемое наименование группы — «Администратор».
И нажимаем «Создать».
Повторяем для каждой Роли АП.
Далее необходимо каждой группе по управлению Ролью указать «ID» роли в Метаданных. Для этого нужно подключится к базе метаданных АП под суперпользователем через любое доступное приложение по управлению базами данных. И заполнить поле «role_id» соответствующим значением. Например можно выполнить SQL-скрипты:
UPDATE <схема>.provider_group
SET role_id=1
WHERE provider_group_id=<id группы Администратор>
UPDATE <схема>.provider_group
SET role_id=2
WHERE provider_group_id=<id группы Аналитик>
UPDATE <схема>.provider_group
SET role_id=3
WHERE provider_group_id=<id группы Пользователь>
Настройка групп по управлению Ролями пользователей завершена.
Далее в зависимости от потребностей, создаются группы по управлению доступами пользователей. Создание таких групп ничем не отличается от создания группы для определения ролей. Но для них нет необходимости указывать «ID» роли в метаданных.
Для групп по управлению доступами указываются настроенные профили доступа АП. Для этого нужно перейти в список групп конфигурации («Настройки безопасности/ Редактировать конфигурацию/ Настроить группы»). Нажать на редактирование нужной группы . Откроется форма редактирования группы, где можно назначить необходимые профили доступа.
После назначения профилей доступа нажать «Сохранить».
После настройки конфигурации, на начальном окне входа АП, где вводятся логин/пароль, появится соответствующая кнопка.
При нажатии на эту кнопку вход будет выполняться через AD FS.
Настройки взаимодействия AD FS и Модуля АП завершены.
Предполагаемый сценарий организации доступа
- В интерфейсе AD FS:
- Создают нового пользователя.
- Назначают группы новому пользователю:
- Группу управления ролью
- Группу управления доступом
- В интерфейсе АП:
- Пользователь переходит на страницу АП в браузере
- Нажимает на кнопку входа через AD FS
- Вводит логин/пароль
- Происходит вход в систему
- Пользователю назначаются Роль и Профили доступа в соответствии с выбранными группами AD FS.