Отказ от ответственности: надеюсь, что это не противоречит руководящим принципам, я также задавал этот вопрос на форумах Keycloak https://keycloak.discourse.group/t/sso-impossible-from-direct-grant-app-to-redirected-app/319
Я обдумывал эту проблему и подозреваю, что это невозможно, поэтомуЯ ищу подтверждение или подтверждение.
У меня есть 2 приложения, которые мы назовем «происхождение» и «пункт назначения». Мне нужно включить SSO навигацию от «источника» до «места назначения». Оба используют один и тот же экземпляр Keycloak (с OAuth, а не SAML2). Это было бы легко, если бы оба приложения использовали перенаправление ... но они этого не делают, «origin» использует прямой доступ.
Конечный пользователь входит в систему «origin», предоставляя логин + пароль непосредственноВ пользовательском интерфейсе приложения пользователь устанавливает интерфейс WebSocket со своим бэкэндом и использует его для отправки учетных данных пользователя; бэкэнд вызывает API Keycloak с логином + паролем и получает токены для всех дальнейших операций (доступ к API). Для каждого WebSocket существует один сеанс, пользовательский интерфейс никогда не знает о токенах или Keycloak, а просто вызывает бэкэнд с токенами, и когда пользователь выходит из системы, WebSocket закрывается и контейнер бэкэнда уничтожается.
«Пункт назначения »более классический, он обычно использует Keycloak с перенаправлением.
Я хочу, чтобы пользователь мог переходить к пункту назначения без запроса учетных данных.
Из того, что я нашелв Интернете это кажется невозможным. Refs:
Так что мои вопросы ...
- так ли этовозможно?
- Может ли приложение «origin» поместить свои токены в файл cookie, который будет найден приложением «destination», или, точнее, по интерфейсу входа в Keycloak?
- может «origin»”Вызываете ли вы какой-нибудь API Keycloak, чтобы сообщить ему, что приложение-получатель может считаться вошедшим в систему с одинаковыми токенами? Таким образом, когда приложение «назначение» пытается войти в систему, Keycloak даже не запрашивает учетные данные.
- есть ли другой обходной путь? В долгосрочной перспективе я мог бы попросить «origin» использовать перенаправление, но краткосрочный хак был бы крут.
Я должен добавить, что я не являюсь подлинным экспертом. Я работал с SAML2 в прошлом, поэтому я понимаю общую картину.
Любая помощь или совет приветствуются: -)