В наших заметках и статьях мы не раз писали о том, как полезно интегрировать IDM и Servise Desk.Сегодня расскажу подробнее на примере реального проекта, что собой может представлять такая интеграция, как она работает и какую пользу позволяет получить.
Задача была следующей: автоматизированное исполнение в IDM согласованных в SD заявок на управление учетными записями (добавление/отзыв прав, блокировка, сброс пароля, изменение информации). Основной плюс здесь, конечно же, в автоматизированном добавлении/отзыве прав доступа, что существенно уменьшает количество ручного труда по управлению доступом в системе.
Ролевые модели для управляемых систем уже существовали на момент начала работ, поэтому в IDM системе использовались уже задокументированные роли с определенным набором прав в управляемых системах. Схема именования была такой: Система.ИмяРоли1, Система.ИмяРоли2 и т.д.
После подключения управляемых систем к IDM и настройке ролевой модели необходимо настроить периодический импорт имен ролей в систему SD. Это необходимо для запросов на доступ, которые в SD будут представлять из себя запросы на добавлени/отзыв ролей. Система SD ничего не знает о составе ролей и правах доступа, она знает только имена ролей. После этого можно настраивать правила согласования запросов в SD с привязкой к управляемым системам.
Все взаимодействие между SD и IDM происходит через веб-сервисы. В нашем случае это обмен запросами в XML-формате. На этапе создания запроса на доступ SD получает информацию о текущих ролях пользователя и отображает на форме запроса. Это сделано для исключения дублирования запросов ролей. В дальнейшем эту информацию планируется использовать для создания конфликтных комбинаций ролей на стороне SD, например, нельзя запросить роль "Кассир-контролер", если уже есть роль "Кассир". После согласования запроса на доступ система SD формирует XML и отправляет в IDM. Затем запрос исполняется автоматически, и отправляется ответ в сторону SD о результате исполнения. После этого запрос закрывается.
Помимо исполнения запросов на доступ, еще одной интересной задачей было реализовать передачу в SD информацию о текущих правах пользователей в системах, которые в данный момент не управляются IDM. Такие системы используют единый формат выгрузки текущих пользователей и их прав. Был разработан специальный коннектор к файлам выгрузки. Коннектор позволил получать информацию о пользователях и правах так, как будто это полноценная управляемая система. Пришлось немного поправить логику работы для типовых процессов IDM, но в итоге получилось очень красиво. С помощью коннектора можно получать учетные записи, автоматически привязывать их к сотрудникам. Получать права доступа и группировать их в роли. При этом попытки изменения учетных записей IDM не производит.
Схема системы:
В подобных проектах можно выделить несколько ключевых этапов:
- Построение ролевой модели
- Синхронизация каталога ролей между IDM и SD
- Настройка правил согласования
- Разработка интеграции
Такая несложная схема позволяет сэкономить много часов работы администраторам систем, в большинстве случаев им не нужно будет заходить в консоль, достаточно лишь согласовать запрос в SD. Еще один плюс – все роли сотрудника можно увидеть в одном окне, даже для неуправляемых систем.