Habr<p>Интеграция платформ через Keycloak: SSO и JWT в действии</p><p>В крупных компаниях с множеством платформ, например, интерфейсом интернет-магазина и системой обработки данных, часто требуется настроить доступ между системами через единый вход (SSO). Эта статья рассматривает задачу: обеспечить доступ из фронт-системы ( reports-frontend ) к API отчётов ( reports-api ) через Keycloak, чтобы JWT-токен содержал роль report_user . В контексте e-commerce это можно представить как интерфейс магазина, где менеджеры запрашивают отчёты о продажах, а Keycloak управляет аутентификацией. Кому будет полезно? Аналитики : Узнаете, как составлять заявки (например, в Jira) на настройку Keycloak, координировать с командами и проверять JWT в DevTools, чтобы избежать ошибок, таких как отсутствие роли в токене. Разработчики : Познакомитесь с примером кода для React-фронтенда и Node.js-бэкенда, реализующим OIDC и PKCE. Архитекторы : Поймёте, как Keycloak поддерживает SSO, масштабируемость (через PostgreSQL или Active Directory) и безопасность (PKCE, HTTPS). Что внутри? Теория : Объясняем SSO, OpenID Connect (OIDC), компоненты Keycloak (realms, хранилища, PKCE) и как JWT с ролью report_user обеспечивает доступ. Практика : Показываем проект с React ( reports-frontend ), Node.js ( reports-api ) и Keycloak, запущенный через Docker Compose. Код включает realm-export.json , App.tsx , server.js , ReportPage.tsx . Аналитика : Рассказываем, как аналитик формирует заявки на настройку Keycloak и координирует работу с админами, разработчиками и DevOps. Практика SSO с Keycloak и JWT</p><p><a href="https://habr.com/ru/articles/927286/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">habr.com/ru/articles/927286/</span><span class="invisible"></span></a></p><p><a href="https://zhub.link/tags/%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>информационная_безопасность</span></a> <a href="https://zhub.link/tags/keycloak" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>keycloak</span></a> <a href="https://zhub.link/tags/%D0%B1%D1%8D%D0%BA%D0%B5%D0%BD%D0%B4" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>бэкенд</span></a> <a href="https://zhub.link/tags/%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>архитектура_приложений</span></a> <a href="https://zhub.link/tags/jwt_token" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>jwt_token</span></a></p>