В настоящее время у нас есть 3 платформы (функционально разные), которые имеют собственную базу пользователей и поставщиков удостоверений.
Теперь некоторым пользователям платформы требуется доступ к некоторым API на других платформах (например, поиск продуктов на других платформах). Проблема в том, что пользователь с именем X может присутствовать на одной или на всех трех платформах с разными паролями. Имя пользователя будет распространено через подтвержденный адрес электронной почты.
Все платформы используют Open ID Connect (Keycloak as IDP) для аутентификации и имеют разные роли (разрешения) для каждой платформы. Теперь предложенный метод для достижения этой цели состоит в том, чтобы иметь другого родительского IDP и синхронизировать всех пользователей и разрешения для этого централизованного IDP. Поэтому, когда пользователю необходимо выполнить поиск на нескольких платформах, ему будет предложено войти в систему с использованием родительского IDP и получить токен.
Проблема этого подхода заключается в том, что все API-интерфейсы (3 платформы) должны быть изменены для поддержки этого нового токена (который будет подписан с использованием секретного кода родительского IDP). И все изменения на уровне пользователя для пользователя платформы должны быть синхронизированы с родительским IDP. Был бы очень признателен, если бы я знал, есть ли какой-нибудь другой способ решения этой проблемы в контексте безопасности.