В статье рассматривается процесс интеграции Apache Kafka с OAuth 2.0 для обеспечения безопасности межсервисного взаимодействия и разграничения прав доступа к топикам.
Рассматриваются ключевые аспекты настройки Kafka Broker'ов и клиентов с использованием механизма SASL/OAUTHBEARER, а также особенности работы с токенами доступа, включающими claims, которые управляют доступом к топикам.
a. Установка и запуск Keycloak
Скачать Keycloak:
wget <https://github.com/keycloak/keycloak/releases/download/21.1.1/keycloak-21.1.1.zip>
Распаковать архив:
unzip keycloak-21.1.1.zip
Запустить Keycloak:
cd keycloak-21.1.1/bin
./kc.sh start-dev
b. Создание Realm и клиента
Войти в админ-консоль Keycloak по адресу:
<http://localhost:8080/>
Создать новый Realm (например, "KafkaRealm").
В рамках этого Realm создать нового клиента:
kafka-client
openid-connect
confidential
c. Настройка ролей и маппинга ролей в токены
topic-read
, topic-write
, topic-admin
.Client Scopes
добавить маппинг для включения ролей в токен:
User Realm Role
roles
String
True
d. Конфигурация времени жизни токена