#java #jwt #single-sign-on #keycloak
#java #jwt #единый вход #keycloak
Вопрос:
У нас есть веб-приложение, которое использует Keycloak для аутентификации. и нам нужно добавить JWT в качестве возможности единого входа.
Keycloak позволяет нам довольно легко настроить единый вход для наших клиентов, у которых в основном есть какие-то настройки SAML.
Однако новая система была продана практически всем нашим клиентам, эта система также утверждает, что обеспечивает единый вход.
однако я действительно не понимаю, поскольку они просто отправляют JWT (веб-токен Json).
Я не вижу никакого способа настроить их в качестве поставщика удостоверений только с этим.
Итак, я подумал, что, возможно, если мы добавим немного JWT в поток входа в браузер, а затем запросим привязку учетной записи.
Похоже, его довольно просто настроить в консоли администратора следующим образом
Я хотел бы знать, возможно ли что-то подобное вообще?
если да, то как мне назначить свой пользовательский аутентификатор моему недавно созданному потоку «Portal JWT».
Я читал некоторые документы по разработке сервера keyclaok здесь
Мне еще предстоит попробовать что-либо из этого, поскольку я не уверен, что моя идея вообще возможна.
и в документации также упоминается, что для развертывания этого предполагаемого пользовательского аутентификатора я должен просто поместить его в каталог поставщиков. похоже, этого больше не существует.
Я понимаю, что этот вопрос не содержит кода, поэтому я могу ошибаться, задавая его здесь, но мне это кажется наиболее подходящим из известных мне обменов стеками.
Все еще не стесняйтесь поправлять меня.
Ответ №1:
Я не совсем понимаю ваш поток, но когда дело доходит до «поддерживает ли Keycloak SSO», ответ, безусловно, да.
Вы можете использовать Keycloak несколькими способами:
- Как поставщик удостоверений. Keycloak поддерживает идентификационную информацию и информацию о доступе для вашей организации и предоставляет ее доверенной третьей стороне. Это позволяет вашим пользователям получать доступ к системе этой третьей стороны, используя ваши учетные данные.
- В качестве посредника идентификации. Keycloak добавляет 1 или более сторонних поставщиков идентификационных данных в качестве надежных источников идентификации. Это позволяет пользователям из доверенных сторонних организаций получать доступ к вашим системам с их учетными данными третьей стороны.
Для выполнения любого из этих действий Keycloak поддерживает как SAML, так и OIDC. SAML основан на XML. Возможно, вы имеете в виду OIDC. OIDC использует подписанные токены JWT (токен доступа и токен id) для передачи идентификационной информации.
Если кто-то говорит «отправить токен JWT», они, вероятно, говорят о варианте использования Keycloak-as-Identity-Broker. Чтобы интегрировать стороннего поставщика удостоверений в ваш брокер идентификации Keycloak, вам понадобится нечто большее, чем просто их токены JWT. Обычно вам потребуется как минимум четыре вещи: их конечная точка аутентификации, конечная точка их токена и client_id и client_secret, которые они вам предоставляют. Это позволяет вашему Keycloak доверять их стороннему IdP, и это позволяет Keycloak распознавать, проверять и использовать токены JWT, выпущенные ими.
Комментарии:
1. Хорошо, спасибо за это. Я хотел спросить, можно ли настроить это другое программное обеспечение в качестве поставщика удостоверений, когда все, что они предоставляют, — это открытый ключ и токен. Похоже, что это на самом деле невозможно.