Внешняя регистрация пользователей

Здравствуйте! Извиняюсь за возможно глупый вопрос, но нигде не могу найти информацию про возможность самостоятельной регистрации пользователей. подскажите пожалуйста имеется ли возможность в itop реализовать данный функционал, потребность в том, чтобы пользователи могли самостоятельно регистрироваться в сервисе и желательно забивать обязательные поля

Может возможно реализовать интеграцию со сторонними сервисами?

Айтоп умеет забирать пользователей из LDAP. Наверняка есть внешние инструменты, позволяющие самостоятельную регистрацию в LDAP добавить.
Второй вариант – IdP провайдер с OpenID Connect, SAML или CAS, облачный или свой. Делали интеграцию Keycloak + iTop по OpenID Connect, понравилось. В Keycloak есть самостоятельная регистрация, права пользователям там же выдаются.

Подскажите пожалуйста, интеграцию делали с помошью какого модуля?

image

SAML или OAuth?
Дело в том, что насколько я понял первый работает только по протоколу SAML, а второй заточен только на сервисы MS Azure и Google.
Если не затруднит, расскажите про Вашу интеграцию немного подробнее.
Буду очень признателен!

Делал собственный модуль, потому что на тот момент SAML в айтопе не было. Keycloak поддерживает SAML, так что можно попробовать его.

Про интеграцию особо и нечего рассказать. Типовая схема OIDC c Authorization Code Flow. Пользователь открывает айтоп, айтоп видит, что сессии у пользователя ещё нет, редиректит того на кейклок. Кейклок спрашивает у пользователя логин/пароль (можно OTP приделать или Kerberos), аутентифицирует пользователя и перенаправляет обратно в айтоп с кодом, который затем айтоп обменяет у кейклока на токены пользователя. Получив токены, айтоп их разбирает, проверяет, создаёт пользователя UserExternal и соответствующую Person, если их ещё нет, присваивает ему нужные профили (они у нас через роли в кейклок назначаются) и запускает пользователя в систему, создавая ему внутреннюю сессию. Когда пользователь наработался, он нажимает “Выйти”, и айтоп убивает внутреннюю сессию и сессию в кейклоке.

Есть ещё у нас Bearer аутентификация. Это когда от имени пользователя в айтоп ходит какой-то другой сервис, в котором пользователь залогинен, например, наш отдельный клиентский портал на React. Тут айтоп сразу получает токен, проверяет и выдаёт права на один конкретный запрос, то есть внутреннюю сессию для пользователя не создаёт.

UPD: Забыл упомянуть, что есть ещё отдельная периодическая синхронизация всех пользователей, которая выгребает всех из кейклока с помощью ELT и передаёт в Источники синхронизации айтопа.