Ответ
Да, я развертывал и настраивал Keycloak как центральный сервис аутентификации и авторизации (IAM) для внутренних и клиентских приложений.
Мой практический опыт с Keycloak:
- Развертывание и управление инфраструктурой: Разворачивал Keycloak в высокодоступной конфигурации на Kubernetes. Использовал PostgreSQL в качестве базы данных для хранения realm'ов и пользователей. Управление конфигурацией (realms, clients, roles) автоматизировал с помощью Terraform, что позволяло версионировать настройки безопасности и быстро восстанавливать окружение.
# Пример: Создание клиента для внутреннего API-сервиса resource "keycloak_openid_client" "internal_api" { realm_id = keycloak_realm.apps.id client_id = "internal-api-service" name = "Internal API Service" enabled = true access_type = "CONFIDENTIAL" service_accounts_enabled = true valid_redirect_uris = [ "https://api.internal.com/*" ] } # Создание роли и назначение её Service Account'у resource "keycloak_role" "api_writer" { realm_id = keycloak_realm.apps.id name = "writer" } resource "keycloak_openid_client_service_account_role" "sa_role" { realm_id = keycloak_realm.apps.id service_account_user_id = keycloak_openid_client.internal_api.service_account_user_id client_id = keycloak_openid_client.internal_api.id role = keycloak_role.api_writer.name } - Интеграция с инфраструктурой: Настраивал провайдер OIDC в Ingress NGINX Controller для аутентификации пользователей на уровне шлюза. Интегрировал Keycloak с такими инструментами, как Grafana (для единого входа) и API-шлюзами (Kong, KrakenD).
- Безопасность и мониторинг: Настраивал политики паролей, двухфакторную аутентичность (2FA) и блокировку учетных записей. Направлял аудит-логи Keycloak (события входа, регистрации) в централизованную систему логирования (Loki) для последующего анализа и оповещений.