Конфигурирование интеграции с OpenID
Данный раздел доступен, если он активирован в лицензии.
Запустите сервер PassOffice с помощью файла PassOfficeSrv.bat
Затем откройте браузер, в адресную строку введите адрес хоста, на котором запущен сервер PassOffice (например, localhost:80) и авторизуйтесь под учетной записью Администратора (логин и пароль Администратора задается во время установки системы)
Откройте пункт меню «Администрирование / Настройки интеграции»
Отредактируйте настройки интеграции OpenID, указав:
ADFS discovery document URL
Идентификатор клиента
Алгоритм генерации токена
Тип сертификата, путь до него и пароль (для SSL)
или Загрузите конфигурацию из файла (.properties, .json)
Поставьте флажок Разрешать саморегистрацию, после авторизации будет создан оператор с соответствующими ролями. Укажите настройки по умолчанию.
Выберите стратегию в случае обнаружения совпадений:
Приоритет импортируемой системы, при расхождении данных, поля из PassOffice заменятся на поля из Active Directory, указав Что делать, если нет каких-либо данных в сторонней системе:
Игнорировать, если поле есть и в PassOffice и в Active Directory, то оно будет заменено на соответствующее из Active Directory. Если поле есть в PassOffice, но нет в Active Directorу, то поле останется из PassOffice.
Очищать в бюро пропусков, если поле есть и в PassOffice и в Active Directory, то оно будет заменено на соответствующее из Active Directory. Если поле есть в PassOffice, но нет в Active Directorу, то поле в PassOffice будет очищено.
или
Приоритет данных в бюро пропусков, при расхождении данных, поля из PassOffice останутся приоритетными.
Укажите источник данных:
Active Directory или
JWT Token, выбрав данный источник, заполните информацию:
Маску даты рождения, например, dd/MM/yyyy
Маску ФИО, например, {name} {surname} {middlename} необходимо для того, чтобы указать в каком порядке ФИО
Далее добавьте соответствия полей и атрибутов, например:
На следующем шаге задайте Соответствие ролей, указав Название и Атрибут:
Проведите Тест соединения. Если тест проходит успешно - активируйте данные настройки соединения. В случае ошибок проверьте логи сервера PassOffice.
Реактивировать/Деактивировать соединение можно с помощью соответствующих кнопок. Если после активации внесены изменения в настройки необходимо нажать «Реактивировать», чтобы применились настройки.
1. Общая настройка
1.1. Конфигурирование сервера ADFS
В PassOffice используется стратегия авторизации implicit-grant flow.
Прежде чем использовать авторизацию OpenID, необходимо сконфигурировать сервер ADFS.
Откройте утилиту ADFS Management
Перейдите в папку Application Groups и создайте группу для приложения, в которой будет использована авторизация
При создании группы, нужно выбрать шаблон «Web browser accessing a web application»
Необходимо настроить список поддерживаемых URL-адресов для перенаправления, добавьте полный URL-адрес до PassOffice.
После создания группы нужно добавить scope «openid» в список доступных
2. Настройка атрибутов
2.1. Настройка атрибутов в ADFS
Добавляем новые атрибуты в наш аутентификационный токен, новое правило:
Слева выбираем атрибут, предназначенный для токена, справа - название поля, в котором будет атрибут.
Название поля, в которое хотите положить атрибут, можно выбрать из существующих либо задать кастомное название. На рисунке выше задаются кастомные названия.
Также необходимо добавить заголовок Content-Security-Policy в ответ от нашего ADFS сервера. Это нужно для того, чтобы система могла обновлять аутентификационные токены при их истечении. Сделать это можно командой:
Для большинства случаев данной конфигурации достаточно. Чтобы убедиться, что остальные опции, относящиеся к ADFS, настроены правильно, можно посмотреть конфигурацию вашего ADFS сервера, находящуюся по адресу: https://example.ru/adfs/.well-known/openid-configuration
3. Возможные ошибки при работе с OpenID и их решение
MSIS9622 client authentication error, type: "token_error" и Failed to parse oauth token. При такой ошибке необходимо настроить политику доступа. Самое простое решение - выбрать политику Permit everyone.
На странице авторизации нет опции «Авторизация через SSO». В таком случае убедитесь, что плагины, блокирующие рекламу (adblock, adguard и т.д.), выключены.
Error details: MSIS9224: Received invalid OAuth authorization request. The received 'redirect_uri' parameter is not a valid registered redirect URI for the client identifier: '*******'. Received redirect_uri: 'https://example.ru/auth/login'. В таком случае, добавьте https://example.ru в список поддерживаемых адресов для перенаправления и убедитесь, что сертификаты валидны и настроены правильно.
Для рефреша токена необходимо, чтобы была разрешена работа с iframe, это можно сделать следующим образом:
где myapp - url, где развернут PassOffice.
4. Настройка отображения ролей
Чтобы настроить отображение ролей для авторизации через OpenID, необходимо сконфигурировать клеймы. Для этого, в настройках ADFS на вкладке «Issue Transform Rules» добавьте новое правило, выбрав шаблон «Send Group Membership as a Claim».
Далее введите название правила, выберите группу в Active Directory, введите произвольное название клейма и его значение - true.
При этом в токене аутентификации будет клейм adminRole со значением true.
Задайте аналогичные правила для всех ролей, которые необходимо синхронизировать в PassOffice. Далее в настройках интеграции OpenID на вкладке «Данные» укажите соответствие ролей.
Обратите внимание, после редактирования параметров клейма, изменения вступят в силу после обновления токена (время жизни токена можно настроить на стороне ADFS командой Set-AdfsWebApiApplication -TokenLifeTime «минуты» -TargetIdentifier ). Также обновить токен можно, если выйти из аккаунта и авторизоваться заново.
Last updated