Конфигурирование интеграции с Active Directory

  1. Запустите сервер PassOffice с помощью файла PassOfficeSrv.bat

  2. Затем откройте браузер, в адресную строку введите адрес хоста, на котором запущен сервер PassOffice (например, localhost:80) и авторизуйтесь под учетной записью Администратора (логин и пароль Администратора задается во время установки системы)

  3. Откройте пункт меню «Администрирование / Настройки интеграции»

  4. Отредактируйте настройки интеграции Active Directory, указав:

    • логин и пароль оператора Active Directory, от лица которого будет работать PassOffice

    • URL Active Directory

    • Поисковая база

    • поставьте флажок Блокировка человека и его карт при деактивации в Active Directory, тогда заблокированный пользователь в Active Directory после импорта станет неактивным (будет снята галка Активен)

    • Connection timeout и Read timeout

  5. На вкладке «SSL» добавьте сертификат, поддерживаются сертификаты x509 и хранилища JKS, PKCS12. При включенной настройке Упрощенная проверка не происходит проверка хоста и домена.

  6. На вкладке «Аутентификация»:

    • поставьте флажок Разрешать аутентификацию и Разрешать саморегистрацию, после авторизации будет создан оператор с соответствующими ролями (в Active Directory у оператора должны быть указаны ФИ и email)

    • укажите Настройки по умолчанию для оператора

    • укажите Настройки внешнего вида для оператора по умолчанию

Выберите стратегию в случае обнаружения совпадений:

  • Приоритет импортируемой системы, при расхождении данных, поля из PassOffice заменятся на поля из Active Directory, указав Что делать, если нет каких-либо данных в сторонней системе:

  • Игнорировать, если поле есть и в PassOffice и в Active Directory, то оно будет заменено на соответствующее из Active Directory. Если поле есть в PassOffice, но нет в Active Directorу, то поле останется из PassOffice.

  • Очищать в бюро пропусков, если поле есть и в PassOffice и в Active Directory, то оно будет заменено на соответствующее из Active Directory. Если поле есть в PassOffice, но нет в Active Directorу, то поле в PassOffice будет очищено.

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

  1. На вкладке «Артибуты» укажите:

    1. Маску даты рождения, например, dd/MM/yyyy

    2. Маску ФИО, например, {name} {surname} {middlename} необходимо для того, чтобы указать в каком порядке будут импортированы ФИО

    3. Добавьте соответствия полей и атрибутов, например:

ФИО=displayName
Имя=givenName,GivenName
Фамилия=sn
Почта=mail
Логин=userPrincipalName
Телефон=telephoneNumber
Рабочий телефон=telephoneNumber
Комната=physicalDeliveryOfficeName
Отдел=department
Должность=title
Организация=Company
Страна=co
  1. На вкладке «Настройки операторов» задайте соответствие Настроек оператора в PassOffice и группы Active Directory.

В случае, если у пользователя несколько групп, подходящих под отображение, ему будут присвоены те настройки оператора, которые в таблице указаны выше.

  1. На вкладке «Настройки внешнего вида» задайте соответствие Настроек внешнего вида в PassOffice и группы Active Directory.

    В случае, если у пользователя несколько групп, подходящих под отображение, ему будут присвоены те настройки оператора, которые в таблице указаны выше.

  2. На вкладке «Доп.настройки» сконфигурируйте размер пакетов для импорта - добавьте тип объекта - Человек, Оператор, По умолчанию и укажите размер пакета

  3. Проведите Тест соединения. Если тест проходит успешно - активируйте данные настройки соединения. В случае ошибок проверьте логи сервера PassOffice.

  4. После активации соединения возможно опционально автоматическое задание Ролей на основе групп Active Directory. Для этого на вкладке «Роли» задайте соответствие ролей - Подача заявок, Согласование заявок, Выдача пропусков, Перевыдача пропусков, Изъятие пропусков, Картотека, Дежурный режим, Работа с реестром, Администрирование, Терминалы, История проходов, Служба безопасности, выбрав необходимую группу из выпадающего списка. При этом можно указать только одно значение, ввести название группы или выбрав необходимую группу из выпадающего списка. После того как Оператор авторизуется, ему автоматически будут присвоены права в соответствии с его группой в Active Directory.

  5. Реактивировать/Деактивировать соединение можно с помощью соответствующих кнопок. Если после активации внесены изменения в настройки необходимо нажать «Реактивировать», чтобы применились настройки.

Общая настройка

1.1. Конфигурирование сервера ADFS

В PassOffice используется стратегия авторизации implicit-grant flow.

Прежде чем использовать авторизацию OpenID, необходимо сконфигурировать сервер ADFS.

  1. Откройте утилиту ADFS Management

  1. Перейдите в папку Application Groups и создайте группу для приложения, в которой будет использована авторизация

  1. При создании группы нужно выбрать шаблон «Web browser accessing a web application»

  1. Необходимо настроить список поддерживаемых URL-адресов для перенаправления, добавьте полный URL-адрес до %assOffice.

  1. После создания группы нужно добавить scope «openid» в список доступных

2. Настройка атрибутов

2.1. Настройка атрибутов в ADFS

Добавляем новые атрибуты в наш аутентификационный токен, новое правило:

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

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

Также необходимо добавить заголовок Content-Security-Policy в ответ от нашего ADFS сервера. Это нужно для того, чтобы система могла обновлять аутентификационные токены при их истечении. Сделать это можно командой:

Set-AdfsResponseHeaders -SetHeaderName "Content-Security-Policy" -SetHeaderValue "frame-ancestors <адрес до PassOffice>"

Для большинства случаев данной конфигурации достаточно. Чтобы убедиться, что остальные опции, относящиеся к ADFS, настроены правильно, можно посмотреть конфигурацию вашего ADFS сервера, находящуюся по адресу: https://example.ru/adfs/.well-known/openid-configuration

3. Возможные ошибки при работе с OpenID и их решение

  1. MSIS9622 client authentication error, type: "token_error" и Failed to parse oauth token. При такой ошибке необходимо настроить политику доступа. Самое простое решение - выбрать политику Permit everyone.

  2. На странице авторизации нет опции «Авторизация через SSO». В таком случае убедитесь, что плагины, блокирующие рекламу (adblock, adguard и т.д.), выключены.

  3. 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, это можно сделать следующим образом:

     Set-AdfsResponseHeaders 
    -SetHeaderName "Content-Security-Policy" 
    -SetHeaderValue "frame-ancestors http://<myapp>"

где myapp - url, где развернут PassOffice.

4. Настройка отображения ролей

Чтобы настроить отображение ролей для авторизации через OpenID, необходимо сконфигурировать клеймы. Для этого, в настройках ADFS на вкладке «Issue Transform Rules» добавьте новое правило,

выбрав шаблон «Send Group Membership as a Claim».

Далее введите название правила, выберите группу в Active Directory, введите произвольное название клейма и его значение - true.

При этом в токене аутентификации будет клейм adminRole со значением true.

Задайте аналогичные правила для всех ролей, которые необходимо синхронизировать в PassOffice.

После редактирования параметров клейма, изменения вступят в силу после обновления токена (время жизни токена можно настроить на стороне ADFS командой Set-AdfsWebApiApplication -TokenLifeTime «минуты» -TargetIdentifier ). Также обновить токен можно, если выйти из аккаунта и авторизоваться заново.

Синхронизация ролей оператора в Active Directory:

  1. Синхронизация ролей через запуск фоновой задачи «Синхронизация операторов» или синхронизация в разделе Администрирование - Операторы. При этом в Настройках интеграции на вкладке «Роли» должны быть заданы соответствующие роли.

  2. Синхронизация ролей при авторизации через OpenID. Для каждой роли указывается название клейма, который приходит с сервера Active Directory. Например, есть клейм requestRole и его значение – true, то оператору при авторизации будет доступна роль «Подача заявок».

Last updated