Скрытый ключ SSO с JWT возможно ли это?

#java #jwt #single-sign-on #keycloak

#java #jwt #единый вход #keycloak

Вопрос:

У нас есть веб-приложение, которое использует Keycloak для аутентификации. и нам нужно добавить JWT в качестве возможности единого входа.

Keycloak позволяет нам довольно легко настроить единый вход для наших клиентов, у которых в основном есть какие-то настройки SAML.

Однако новая система была продана практически всем нашим клиентам, эта система также утверждает, что обеспечивает единый вход.

однако я действительно не понимаю, поскольку они просто отправляют JWT (веб-токен Json).

Я не вижу никакого способа настроить их в качестве поставщика удостоверений только с этим.

Итак, я подумал, что, возможно, если мы добавим немного JWT в поток входа в браузер, а затем запросим привязку учетной записи.

Похоже, его довольно просто настроить в консоли администратора следующим образом протестируйте изменения в браузере

Я хотел бы знать, возможно ли что-то подобное вообще?

если да, то как мне назначить свой пользовательский аутентификатор моему недавно созданному потоку «Portal JWT».

Я читал некоторые документы по разработке сервера keyclaok здесь

Мне еще предстоит попробовать что-либо из этого, поскольку я не уверен, что моя идея вообще возможна.

и в документации также упоминается, что для развертывания этого предполагаемого пользовательского аутентификатора я должен просто поместить его в каталог поставщиков. похоже, этого больше не существует.

Я понимаю, что этот вопрос не содержит кода, поэтому я могу ошибаться, задавая его здесь, но мне это кажется наиболее подходящим из известных мне обменов стеками.

Все еще не стесняйтесь поправлять меня.

Ответ №1:

Я не совсем понимаю ваш поток, но когда дело доходит до «поддерживает ли Keycloak SSO», ответ, безусловно, да.

Вы можете использовать Keycloak несколькими способами:

  1. Как поставщик удостоверений. Keycloak поддерживает идентификационную информацию и информацию о доступе для вашей организации и предоставляет ее доверенной третьей стороне. Это позволяет вашим пользователям получать доступ к системе этой третьей стороны, используя ваши учетные данные.
  2. В качестве посредника идентификации. 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. Хорошо, спасибо за это. Я хотел спросить, можно ли настроить это другое программное обеспечение в качестве поставщика удостоверений, когда все, что они предоставляют, — это открытый ключ и токен. Похоже, что это на самом деле невозможно.