Keycloak: отсутствует открытый ключ области

когда я получаю доступ к консоли администратора keycloak (! удаленно) и создаю клиента:

настройки клиента keycloak

keycloak OIDC JSON не имеет открытого ключа

keycloak OIDC JSON

Я ожидал, что в JSON будет что-то вроде:

 "realm-public-key": "MIIBIjANBg....

person Tomas Marik    schedule 09.11.2016    source источник


Ответы (2)


keycloak.json в новейшем keycloak не имеет открытого ключа области ... на самом деле кажется, что вы используете keycloak версии 2.3.x, в нем были некоторые изменения. Обычно вы можете менять несколько открытых ключей для области. В документе говорится следующее:

В выпуске 2.3.0 мы добавили поддержку ротации открытых ключей. Когда администратор меняет ключи области в консоли администратора Keycloak, клиентский адаптер сможет распознать его и автоматически загрузить новый открытый ключ из Keycloak. Однако эта автоматическая загрузка новых ключей выполняется только в том случае, если у вас нет опции realm-public-key в вашем адаптере с жестко запрограммированным открытым ключом. По этой причине мы больше не рекомендуем использовать параметр realm-public-key в конфигурации адаптера. Обратите внимание, что этот параметр все еще поддерживается, но он может быть полезен, если вы действительно хотите иметь жестко запрограммированный открытый ключ в конфигурации вашего адаптера и никогда не загружать открытый ключ из Keycloak. Теоретически одна из причин этого может заключаться в том, чтобы избежать атаки злоумышленника посередине, если у вас есть ненадежная сеть между адаптером и Keycloak, однако в этом случае гораздо лучше использовать HTTPS, который защитит все запросы между адаптер и Keycloak.

person UchihaItachi    schedule 11.11.2016
comment
Есть ли документация по использованию открытых ключей? - person ibotty; 29.11.2016
comment
@ibotty Мне еще не приходилось сталкиваться с такой прямой документацией, но вы можете изменить приоритет ключей. Используется ключ с наивысшим приоритетом - person UchihaItachi; 29.11.2016
comment
Просто примечание для людей, которые ищут ответ на мой вопрос годичной давности: вы можете получить сертификаты, используемые с GET на <realm-url>/protocol/openid-connect/certs. - person ibotty; 19.09.2017
comment
А как насчет SAML? - person Henry; 15.09.2020

Я до сих пор не знаю, почему в keycloak OIDC JSON нет открытого ключа (вероятно, из соображений безопасности), но я нашел его в:

Настройки области> Ключи> Просмотр открытого ключа

введите описание изображения здесь

person Tomas Marik    schedule 09.11.2016
comment
Я до сих пор не знаю, почему в keycloak OIDC JSON нет открытого ключа. Это из-за ротации ключей. Вместо жесткого кодирования ключа в JSON гораздо более гибко, если адаптер просто загружает ключ непосредственно с сервера. Таким образом, вы можете вращать эти ключи; заменяйте их новыми каждый месяц или что-то еще. - person Stijn de Witt; 21.07.2017