1 of 24

Keycloak X. Что за зверь и с чем его едят?

2 of 24

Обо мне

Попов Виктор

Keycloak X. Что за зверь и с чем его едят?

Техлид DevOps-команды департамента по развитию и эксплуатации корневых систем в X5 Group

Помогаю поддерживать и развивать k8s-кластеры as-a-service для 20+ продуктовых команд. А так же кучу сопутствующих инструментов

Поддерживаю централизованный keycloak для внутренних пользователей компании

Чиню коммуникации между dev- и ops- командами

Рассказываю пользователям, чем вообще занимаются инженеры

2

tg: @IvanovIvanIvanovich1 �mail: vik.popov@x5.ru

3 of 24

Что такое keycloak X?

Keycloak X. Что за зверь и с чем его едят?

Keycloak X – это кейклок, использующий Quarkus вместо Wildfly��Вот тут подробнее от разработчиков Keycloak:�https://www.keycloak.org/2020/12/first-keycloak-x-release.adoc��Вот тут подробнее про Quarkus:�https://quarkus.io/

3

4 of 24

Зачем это нужно?

Например вот зачем:

Keycloak X. Что за зверь и с чем его едят?

4

5 of 24

Зачем это нужно?

Смена модели хранения данных:

Keycloak X. Что за зверь и с чем его едят?

5

6 of 24

Зачем это нужно?

Упрощение конфигурации

Keycloak X. Что за зверь и с чем его едят?

Было:

6

Стало:

7 of 24

Зачем это нужно?

Упрощение конфигурации

Keycloak X. Что за зверь и с чем его едят?

Но немного XML всё же осталось:

7

8 of 24

В каком всё это состоянии?

Keycloak X. Что за зверь и с чем его едят?

11 февраля вышла первая стабильная Quarkus версия – 17.0.0��Wildfly версия объявлена Legacy��Где-то летом Wildfly версии выходить перестанут вообще.��Для пользователей RedHat SSO обещают еще два года поддержки JBoss версии

8

9 of 24

Документация

Keycloak X. Что за зверь и с чем его едят?

С документацией прямо сейчас всё очень плохо.Главное, что появилось в стабильной версии это документация.

С документацией прямо сейчас всё плохо.

9

В каком всё это состоянии?

10 of 24

Документация

Keycloak X. Что за зверь и с чем его едят?

Вот тут можно почитать про запуск сервера:

https://www.keycloak.org/server/configuration

Вот тут про все параметры запуска:

https://www.keycloak.org/server/all-config

Вот тут про настройку кешей:

https://www.keycloak.org/server/caching

10

В каком всё это состоянии?

11 of 24

Документация

Keycloak X. Что за зверь и с чем его едят?

11

В каком всё это состоянии?

Настройки, которые есть в документации:

��А вот настройка, которая есть в примере, но нет в документации:

# Do not attach route to cookies and rely on the session affinity capabilities from reverse proxy

#spi-sticky-session-encoder-infinispan-should-attach-route=false

Настройки, которых нет в документации:

12 of 24

Документация

Keycloak X. Что за зверь и с чем его едят?

12

В каком всё это состоянии?

Readme репозитория, где собираются docker контейнеры кейклока:

https://github.com/keycloak/keycloak-containers

13 of 24

Документация

Keycloak X. Что за зверь и с чем его едят?

13

В каком всё это состоянии?

Сам репозиторий:

14 of 24

Настройки по умолчанию

Keycloak X. Что за зверь и с чем его едят?

14

Важные изменения

hostname-strict = true��“/” вместо “/auth/”

http-enabled = false

15 of 24

Keycloak X. Что за зверь и с чем его едят?

15

Темы: изменился лишь путь, куда нужно копировать темы.��Было: /opt/jboss/keycloak/themes

Стало: /opt/keycloak/themes��Все старые темы скорее всего будут работать.����SPI: ��Если использовался функционал WildFly то SPI работать не будут.�Если использовался только функционал keycloak, то скорее всего SPI будут работать.��Копировать вот сюда: /opt/keycloak/providers

Темы и SPI

Важные изменения

16 of 24

Keycloak X. Что за зверь и с чем его едят?

16

Ключ --build «готовит» приложение к запуску с заданными настройками��Можно сделать вот так:�� FROM quay.io/keycloak/keycloak-x:15.1.1

RUN /opt/keycloak/bin/kc.sh build --metrics-enabled=true

docker build -t mykeycloakx .��И получить контейнер, который будет запускаться очень быстро.

Символ в документации обозначает, что настройка может быть применена только на через build.��Ключ --start запускает приложение.��Ключ --auto-build «готовит» и запускает. Так дольше, но подготовительный этап не нужен

Build и Start

Важные изменения

17 of 24

Keycloak X. Что за зверь и с чем его едят?

17

Как я обновлялся: dockerfile

Важные изменения

Было:

Стало:

18 of 24

Keycloak X. Что за зверь и с чем его едят?

18

Как я обновлялся: конфиги

Важные изменения

Было:

Стало:

19 of 24

Keycloak X. Что за зверь и с чем его едят?

19

Как я обновлялся: подключение к базе

Важные изменения

Было:

Стало:

20 of 24

Keycloak X. Что за зверь и с чем его едят?

20

Зачем было менять названия переменных?

Важные изменения

21 of 24

Keycloak X. Что за зверь и с чем его едят?

21

Зачем было менять названия переменных?

Важные изменения

22 of 24

Keycloak X. Что за зверь и с чем его едят?

22

Как я обновлялся: HA

Важные изменения

Было:

Стало:

23 of 24

Keycloak X. Что за зверь и с чем его едят?

23

Как я обновлялся: параметры запуска

Важные изменения

Было:

Стало:

24 of 24

Спасибо за внимание!