Skip to content

GSSO — платформа идентификации и единого входа gStack — Техническое задание

Код документаSPEC-GSSO-2026 / Отчёт 00
Версия0.1-draft (исходный текст EN, имеющий преимущественную силу)
Дата2026-10-05
СтатусЧерновик — открыт для рецензирования; ни одно ADR пока не принято
Сопутствующие отчёты01 ADR · 02 Требования · 03 Потребители и контракт · 04 Техническая документация · 05 Дорожная карта
Дизайнgsso.dc.html (исходник: gstyle/design/src/GStack/GSSO.dc.html, опубликован по адресу s3.eu-west-1.amazonaws.com/gstack.awsarhitect.me/Sistem+GStack/GSSO.dc.html)
ВерсияДатаИзменения
0.1-draft2026-10-05Первоначальное техническое задание: назначение, проблема, область применения, участники, глоссарий, обзор архитектуры, принципы, AC-001..030, Q-GSSO-1..14
  • GSSO — название платформы. Во всех текстах для пользователей пишется «GSSO»; «Keycloak» обозначает только встроенный движок идентификации.
  • Идентификаторы: GSSO-ADR-nnn (решения, отчёт 01), GSSO-FR-nnn и GSSO-NFR-<AREA>-nnn (требования, отчёт 02), AC-nnn (критерии приёмки, настоящий отчёт), Q-GSSO-n (открытые вопросы, настоящий отчёт), фазы S0..S5 (отчёт 05).
  • Идентификаторы никогда не перенумеровываются. Изменённая строка помечается [REVISED дата], устаревшая — [WITHDRAWN дата] причина, а новые идентификаторы добавляются в конец своей серии.
  • Предметные термины — румынские (Platforma, AtribuireAcces, RolPlatforma…) на всех языках; лексика фреймворков остаётся английской.
  • CAP-GSSO-nn — возможности, запрошенные приложениями-потребителями (отчёт CRM 03 §4.1 и пакеты gDocFlow, gTenders, gFlow, gInsight).
  • CU-* — универсальные требования gStack; NFRQnn — коды нефункциональных требований caiet de sarcini (saas_drumuri/docs/reports/02-cerinte-functionale-nefunctionale.md).
#ОтчётСодержание
00Техническое задание (настоящий документ)назначение, проблема, цели, область применения, участники, глоссарий, соответствие требованиям, архитектура, принципы, критерии приёмки, открытые вопросы
01ADRGSSO-ADR-001..014
02ТребованияGSSO-FR-, GSSO-NFR-, трассируемость к CAP-GSSO, CU-*, NFRQ
03Потребители и контракткаждое приложение gStack, его текущая схема аутентификации и путь миграции; API, события, starter, подключение
04Техническая документацияпредставления C4, компоненты, модель данных, потоки, модель realm, безопасность, развёртывание, тестирование
05Дорожная картафазы S0–S5 с контрольными точками выхода, MVP, риски, зависимости

GSSO — общая платформа идентификации, аутентификации, авторизации и единого входа (PaaS) gStack. Она даёт каждому SaaS gStack (Interdicții, Cancelaria, gDocs, gRegistry, Drumuri, CRM, gDocFlow, gTenders…) и PaaS (GLog, GNotify, gStorage, gFlow, портал GDS…) единое место, чтобы:

  • аутентифицировать сотрудников, граждан и сервисы (OIDC/OAuth 2.1, SAML 2.0, федерация MPass/eID, федерация AD/LDAP, MFA);
  • регистрировать платформы и сервисы вместе с их клиентами и предоставляемыми ими ролями;
  • авторизовать, назначая роли конкретному пользователю на конкретной платформе, при необходимости в пределах организационной единицы и окна действия, с запросом и согласованием;
  • синхронизировать эту управляемую модель в движок идентификации и выявлять расхождения (drift);
  • аудировать каждый вход, token, административное изменение и назначение доступа в GLog;
  • управлять realm (тенантами), пользователями, сессиями, учётными данными и политиками аутентификации из консоли GDS.

GSSO строится поверх существующего Keycloak 26.6.3 (https://sso.gstack.esempla.systems). Keycloak остаётся средой выполнения идентификации: учётные данные, сессии, token, MFA и федерация. GSSO добавляет то, чего Keycloak не хватает для государственной платформы:

  • каталог сервисов;
  • управляемый жизненный цикл назначений доступа;
  • согласование с целевым состоянием (desired-state reconciliation);
  • журнал аудита только для добавления (append-only);
  • стандартный набор интеграции;
  • консоль в дизайн-системе gStack.

Текущее состояние по наблюдениям на 2026-10-05:

  1. Нет платформы, есть только сервер. Keycloak 26.6.3 работает как вручную настроенный контейнер на общем демо-хосте. Нет инфраструктуры как кода, нет экспорта realm, нет собственной темы и нет резервной копии конфигурации ни в одном репозитории.
  2. Один общий realm с клиентами всех приложений. Realm interdictii содержит interdictii-web, gregistry-web, glog-web, glog-ingest, gstack-platform, cancelarie и другие. Realm, названный по одному SaaS, на практике является realm сотрудников gStack.
  3. На realm ссылаются, но они не согласованы. Код ссылается на realm gdocs, gnotify, gstorage, gstack и ultra. Только gstorage зафиксирован как созданный; gnotify зафиксирован как отсутствующий. Ничто не указывает, какие realm должны существовать.
  4. Четыре несогласованные схемы интеграции:
    • A, двойная аутентификация: приложение выпускает собственный JWT HS512 после входа через Keycloak (interdictii, gdocs, gnotify).
    • B, полноценный resource server: приложение напрямую проверяет token Keycloak (gregistry, glog, cancelarie).
    • C, только локальный JWT плюс MPass SAML: drumuri.
    • D, только проект: CRM, gFlow, gDocFlow, gTenders. Роли хранятся частично в Keycloak, частично в базах данных приложений.
  5. Грубые роли. Существуют только роли realm ROLE_ADMIN и ROLE_USER. Они общие для всех приложений, поэтому администратор одного приложения является администратором всех.
  6. Нет управления доступом. Назначения выполняются вручную в административной консоли Keycloak. Нет ни запроса, ни согласования, ни срока действия, ни обоснования, ни представления «кто что может делать на какой платформе».
  7. Нет пригодного аудита. События Keycloak не хранятся долговременно и не пересылаются в GLog. Показатели дашборда из дизайна (входы за 24 ч, неудачные входы, структура способов аутентификации) получить невозможно.
  8. Отсутствуют возможности, запрошенные потребителями:
    • CAP-GSSO-01: корпоративный realm и клиенты для каждого микросервиса.
    • CAP-GSSO-02: AD/LDAP и TOTP в зависимости от роли.
    • CAP-GSSO-03: список сессий и принудительное завершение.
    • CAP-GSSO-04: отзыв ≤ 60 с и claims организационной единицы.
    • CAP-GSSO-06: автоматизируемое создание клиентов.
    • CAP-GSSO-07: token exchange.
  9. Эксплуатационная хрупкость. TLS-сертификат sso. истёк 2026-09-23 и сломал все входы, а административные секреты хранятся в заметках открытым текстом.

3. Цели и критерии успеха

Section titled “3. Цели и критерии успеха”
#ЦельКритерий успеха
G-1Один вход во все приложения сотрудников gStackПользователь, вошедший в любое приложение сотрудников, открывает любое другое приложение сотрудников без повторного запроса пароля (AC-010)
G-2Авторизация в разрезе платформРоли имеют пространство имён платформы (CRM_ADMIN, INTERDICTII_EMITENT…); администратор одной платформы не имеет прав на другой (AC-012)
G-3Управляемый доступУ каждого назначения роли есть инициатор запроса, согласующий (для чувствительных ролей), обоснование, срок действия и журнал аудита (AC-013..016)
G-4Конфигурация как кодRealm, клиенты, роли, mappers, flows и тема воспроизводятся из репозитория на пустом Keycloak (AC-005)
G-5Видимость расхожденийИзменение, сделанное напрямую в административной консоли Keycloak, обнаруживается и регистрируется в течение одного цикла согласования (AC-008)
G-6Стандартная интеграцияНовое приложение интегрируется с помощью одной зависимости starter и трёх настроек; ни одно приложение не выпускает собственные token (AC-020)
G-7Полный аудитКаждый вход, неудача, выпуск token для сервисных учётных записей, административное изменение и переход назначения доступа появляются в GLog с указанием субъекта, realm, IP и времени (AC-017)
G-8Возможности для потребителейCAP-GSSO-01, 02, 03, 04, 06 и 07 реализованы (трассируемость — в отчёте 02 §III)

4. Заинтересованные стороны и потребители

Section titled “4. Заинтересованные стороны и потребители”
Заинтересованная сторонаИнтерес
Команда платформы gStackВладеет GSSO: сборка, эксплуатация, обновление Keycloak, публикация starter
Владельцы платформ (приложений)Регистрируют своё приложение, определяют его роли, согласуют назначения доступа к своему приложению
Офицер безопасности / аудиторПроверяет доступ, согласует чувствительные роли, читает аудит и отчёты о входах
Администраторы IAM учрежденийУправляют пользователями своего realm или организационной единицы
Конечные пользователи-сотрудникиОдин вход, MFA, самообслуживание учётных данных и сессий
ГражданеВход на публичные порталы через MPass/eID
Приложения-потребителиToken со стабильными claims, сервисные учётные записи, административный API для создания ресурсов

Потребители перечислены в отчёте 03:

  • SaaS: interdictii, cancelaria, gdocs, gregistry, drumuri, CRM, gDocFlow, gTenders.
  • PaaS: glog, gnotify, gstorage, gflow, gportal/GDS, документация платформы/RAG.
  • Мобильные: gsso_mob (GovSign).
  • Сайты whitelabel: ultra-, bts-, esempla-*.

5.1 Входит в область применения

Section titled “5.1 Входит в область применения”
  1. Keycloak 26.6.x как встроенный движок идентификации, развёртываемый из репозитория GSSO с:
    • базовой конфигурацией realm (gstack, cetatean, шаблон тенанта);
    • расширениями Keycloak от GSSO (event listener, protocol mappers);
    • темами GDS для входа, учётной записи и электронной почты на RO/RU/EN.
  2. Управление realm (тенантами): создание из шаблона, включение/отключение, брендирование, федерация (broker) и политики. В консоли есть переключатель realm.
  3. Каталог сервисов: платформы и сервисы (SaaS/PaaS) с владельцами, базовыми URL, акцентными цветами, их клиентами (public PKCE, confidential, bearer-only, сервисная учётная запись) и ролями, которые предоставляет каждая платформа (роли realm или клиента, составные, чувствительные).
  4. Управление пользователями:
    • создание, приглашение, включение/отключение, редактирование атрибутов (IDNP, организационная единица, локаль);
    • сброс учётных данных, обязательные действия (required actions);
    • просмотр и завершение сессий;
    • просмотр и удаление учётных данных MFA;
    • поиск по всем realm через проекцию.
  5. Назначения доступа (AtribuireAcces): запрос → согласование/отклонение → активно → отзыв/истечение. Назначения выполняются в разрезе пользователь × роль платформы × необязательная организационная единица × окно действия, с согласованием по принципу «четырёх глаз» для чувствительных ролей, массовым назначением и уведомлениями об истечении срока.
  6. Организационные единицы: дерево, выдаваемое в claim org_unit.
  7. Политики аутентификации для каждого realm:
    • способы: пароль, OTP, WebAuthn/passkey, QR с другого устройства (cross-device), client credentials, broker, magic link;
    • парольная политика и время жизни сессий;
    • обязательная MFA для чувствительных ролей;
    • браузерный flow, отображаемый как упорядоченные шаги.
  8. Согласование с целевым состоянием в Keycloak: идемпотентные задания, повторные попытки, периодическое полное согласование, режим отчёта о расхождениях или принудительного применения для каждого realm, а также принятие под управление (adoption) существующих realm.
  9. События:
    • пользовательские и административные события Keycloak через расширение в Kafka;
    • собственные события GSSO только для добавления;
    • пересылка в GLog;
    • дашборд: KPI, входы за 24 ч, неудачи, структура способов аутентификации, последние события безопасности.
  10. API в зонах GovStack: admin (консоль), app (приложения-потребители: саморегистрация, поиск пользователей, запрос назначения доступа, завершение сессий), плюс эксплуатационные endpoints.
  11. Набор интеграции: gsso-spring-boot-starter, @gstack/gsso-angular, а также runbook и чек-лист подключения.
  12. Конфигурация token exchange (RFC 8693) для вызовов от имени пользователя (on-behalf-of) между приложениями.
  13. Путь миграции для каждого существующего приложения со схем A/B/C на стандарт, включая принятие под управление realm interdictii.

5.2 Не входит в область применения

Section titled “5.2 Не входит в область применения”
  • Повторная реализация провайдера идентификации. Вход, token, учётные данные и федерация остаются в Keycloak (GSSO-ADR-001).
  • Бизнес-авторизация внутри приложения (видимость на уровне строк, владение объектами). GSSO предоставляет роли и claims, а решение принимает приложение.
  • Квалифицированная электронная подпись (MSign / подпись в gsso_mob). GSSO аутентифицирует; подпись — отдельный сервис.
  • Кадровая система. Сотрудники и организационная структура могут импортироваться, но кадровый мастер-источник остаётся внешним.
  • Фактический переход в продуктиве существующих приложений и общего realm. Он планируется в отчёте 05 и выполняется только с явного одобрения владельцев.
  • Terraform provider и оператор Kubernetes. Они опциональны в S5.
УчастникРоль GSSOМожет
Администратор платформыGSSO_ADMINВсё во всех realm; управление realm, шаблонами, настройками reconciler
Администратор realmGSSO_REALM_ADMIN (в пределах realm)Пользователи, клиенты, роли, политики одного realm
Владелец платформыGSSO_PLATFORM_OWNER (в пределах платформы)Определять роли и клиентов платформы, согласовывать назначения доступа к ним
Согласующий / офицер безопасностиGSSO_APPROVERВторое согласование для чувствительных ролей; пересмотры доступа
АудиторGSSO_AUDITORТолько чтение: каталог, назначения доступа, события, отчёты
Служба поддержкиGSSO_HELPDESKПоиск пользователей, сброс учётных данных, разблокировка, завершение сессий; без изменения ролей
Конечный пользователь—Самообслуживание через консоль учётной записи Keycloak (тема GDS): пароль, MFA, сессии; запрос доступа
Приложение-потребительсервисная учётная запись со scope gsso:appСаморегистрация (если разрешена), поиск пользователей, запрос назначений доступа, завершение сессий
Reconcilerсервисная учётная запись gsso-reconciler в masterПрименение целевого состояния к Keycloak (никогда не используется людьми)
ТерминЗначение
RealmТенант Keycloak: изолированные пользователи, клиенты, роли и политики. Сущность GSSO Realm
PlatformaSaaS или PaaS gStack, зарегистрированный в каталоге (crm, glog…)
ClientAplicatieКлиент OIDC/SAML платформы: SPA (public + PKCE), backend (confidential или bearer-only), сервисная учётная запись
RolPlatformaРоль, предоставляемая платформой, с префиксом её кода (CRM_ADMIN). Может быть составной или чувствительной
AtribuireAccesНазначение доступа: один пользователь получает одну роль платформы, при необходимости для организационной единицы и окна действия
UnitateOrganizationalaУзел дерева организационных единиц, выдаваемый в claim org_unit
PoliticaAutentificareПолитика аутентификации realm: способы, парольная политика, MFA, время жизни сессий
JobSincronizareОдна единица работы по согласованию (создание/изменение/удаление в Keycloak) или одно обнаруженное расхождение
ProiectieUtilizatorМодель чтения GSSO с возможностью поиска для пользователя Keycloak
EvenimentGssoСобытие аудита только для добавления (вход, администрирование, назначение доступа, синхронизация)
Целевое состояние (desired state)Конфигурация, объявленная в GSSO; Keycloak приводится к ней
Расхождение (drift)Различие между целевым состоянием и Keycloak
Принятие под управление (adoption)Однократный импорт конфигурации существующего realm в каталог
Сессия SSOБраузерная сессия Keycloak, общая для всех клиентов realm
BFFBackend-for-frontend: шлюз JHipster хранит token на стороне сервера; SPA получает сессионный cookie
MPassГосударственный сервис аутентификации Молдовы (SAML), подключаемый через broker в realm cetatean
IDNPГосударственный персональный идентификатор (13 цифр), хранится как атрибут пользователя

8. Соответствие требованиям

Section titled “8. Соответствие требованиям”
ОбластьСсылкаОтвет GSSO
Персональные данныеЗакон 133/2011 (РМ), согласован с GDPRМинимальный набор атрибутов пользователя; IDNP доступен только уполномоченным ролям; очистка проекции при удалении пользователя; политика хранения аудита
Информационная безопасностьNFRQ56–66 (минимальные привилегии, OWASP Top 10, истечение сессий, аудит безопасности)Роли с пространством имён платформы, принцип «четырёх глаз» для чувствительных ролей, политика MFA, время жизни сессий, аудит всех административных действий
АудитТребование криминалистической прослеживаемости Закона 133, CU-AUDIT-*EvenimentGsso только для добавления с цепочкой хэшей; пересылка в GLog WORM
ИнтероперабельностьGovStack Identity BB, CU-API-003..006OIDC/OAuth 2.1, SAML, RFC 8693, RFC 7807, зоны API GovStack
Государственная идентификацияMPass / eIDБрокеринг идентификации в realm cetatean
ДоступностьNFRQ39 (WCAG 2.1 AA)Компоненты GDS в консоли и темах входа
ЯзыкиNFRQ38RO (основной), RU, EN в консоли, темах и письмах
AI ActРегламент (ЕС) 2024/1689Не является системой ИИ; нет автоматизированных решений о доступе (классификация в отчёте 01, GSSO-ADR-014)

9. Высокоуровневая архитектура

Section titled “9. Высокоуровневая архитектура”
flowchart LR
subgraph Users[Пользователи]
adm[Администратор IAM / владелец / аудитор]
staff[Сотрудник]
cit[Гражданин]
end
subgraph GSSO
web[gsso-web<br/>Angular + GDS]
gw[gsso-gateway<br/>JHipster BFF]
srv[gsso<br/>микросервис JHipster]
db[(PostgreSQL gsso)]
kc[Keycloak 26.6<br/>+ расширения gsso + темы GDS]
kdb[(PostgreSQL keycloak)]
end
kafka[[Kafka]]
glog[GLog]
gnotify[GNotify]
apps[SaaS / PaaS gStack]
mpass[MPass / eID]
ldap[AD / LDAP]
adm --> web --> gw --> srv
gw -. вход OIDC .-> kc
srv -- Admin REST --> kc
srv --- db
kc --- kdb
kc -- события --> kafka --> srv
srv -- аудит --> glog
srv -- письма об истечении / согласовании --> gnotify
staff -- OIDC --> kc
cit -- OIDC --> kc -- SAML broker --> mpass
kc -- федерация --> ldap
apps -- token / JWKS --> kc
apps -- api/v1/app --> gw
  • gsso хранит управляемую модель и согласует её в Keycloak через Admin REST API, используя сервисную учётную запись gsso-reconciler.
  • Keycloak публикует пользовательские и административные события через расширение-event listener GSSO в Kafka gsso.kc-events.v1.
  • gsso потребляет эти события, сохраняет их, обновляет проекцию пользователей и дашборд и пересылает их в GLog.
  • Приложения никогда не вызывают административный API Keycloak. Они используют token и JWKS из Keycloak и api/v1/app из GSSO.
  1. Keycloak — среда выполнения, GSSO — плоскость управления (control plane). Никакая логика учётных данных, сессий или token не реализуется повторно (GSSO-ADR-001).
  2. Целевое состояние объявляется в GSSO и приводится в Keycloak. Ручные правки в Keycloak являются расхождением (GSSO-ADR-004).
  3. Один realm сотрудников для настоящего SSO. Все приложения gStack для сотрудников являются клиентами realm gstack. Граждане находятся в cetatean. Изолированные тенанты получают собственный realm (GSSO-ADR-002).
  4. Роли принадлежат платформам. Каждая роль имеет вид <PLATFORM>_<ROLE>. Единственные межплатформенные роли — GSSO_* и роль по умолчанию ROLE_USER (GSSO-ADR-005).
  5. Доступ назначается, а не редактируется. Сопоставления ролей для людей создаются только через AtribuireAcces, поэтому у каждого есть инициатор запроса, согласующий (когда нужно), окно действия и обоснование (GSSO-ADR-006).
  6. События только добавляются и покидают платформу. Всё находится в EvenimentGsso и в GLog (GSSO-ADR-007).
  7. Один способ интеграции. Приложения являются клиентами OAuth2 или resource servers, проверяющими token GSSO, через starter. Ни одно приложение не выпускает собственные token и не хранит пароли (GSSO-ADR-009).
  8. Конфигурация как код. Базовые конфигурации realm, расширения и темы хранятся в git. Продуктивный Keycloak можно восстановить из репозитория плюс резервной копии базы данных (GSSO-ADR-011).
  9. Минимальные привилегии и принцип «четырёх глаз» для чувствительных ролей, MFA для чувствительных ролей, короткие сессии для администраторов.
  10. Стек DEV-PLAYBOOK: микросервис + шлюз JHipster 9.1.0, OAuth2, Maven, PostgreSQL, Kafka, ro,ru,en, отдельное Angular SPA на GDS (GSSO-ADR-010).

11. Сводка требований и критерии приёмки

Section titled “11. Сводка требований и критерии приёмки”

11.1 Группы требований (подробности в отчёте 02)

Section titled “11.1 Группы требований (подробности в отчёте 02)”
ГруппаИдентификаторыКоличество
Realm и тенанты — FR-RLMGSSO-FR-001..01010
Каталог сервисов — FR-CATGSSO-FR-011..02212
Пользователи и сессии — FR-USRGSSO-FR-023..03614
Роли и назначения доступа — FR-GRTGSSO-FR-037..05216
Организационные единицы — FR-ORGGSSO-FR-053..0564
Аутентификация и федерация — FR-AUTGSSO-FR-057..07014
Согласование — FR-SYNGSSO-FR-071..08010
События и аудит — FR-EVTGSSO-FR-081..09010
Дашборд и отчёты — FR-RPTGSSO-FR-091..0966
API приложений и набор интеграции — FR-APIGSSO-FR-097..10812
Консоль (UI) — FR-UIGSSO-FR-109..1168
Нефункциональные — NFR-*PERF, CAP, AVL, SEC, TEN, OBS, OPS, CMP, DATA44
IDКритерий
AC-001docker compose up стека GSSO на пустом хосте даёт Keycloak с realm gstack и cetatean, темой входа GDS на RO/RU/EN и загруженными расширениями GSSO
AC-002Администратор входит в консоль GSSO через gsso-gateway (realm gstack, клиент gsso-console); SPA не хранит token
AC-003Создание realm из шаблона тенанта в консоли создаёт его в Keycloak с базовыми flows, mappers и темой
AC-004Переключатель realm ограничивает каждый экран консоли выбранным realm; GSSO_REALM_ADMIN видит только свой realm
AC-005Удаление realm gstack в тестовом Keycloak и запуск полного согласования воссоздаёт управляемых каталогом клиентов, роли, mappers и политики
AC-006Регистрация платформы с 2 клиентами и 3 ролями создаёт их в Keycloak в течение 10 с
AC-007Согласование идемпотентно: двукратный запуск не даёт ни изменений, ни дубликатов
AC-008Роль, созданная вручную в административной консоли Keycloak, появляется как DRIFT в течение одного цикла согласования; в режиме enforce она удаляется
AC-009Принятие под управление существующего realm импортирует его клиентов, роли и сопоставления ролей в каталог без изменения Keycloak
AC-010Пользователь, вошедший в приложение A (realm gstack), открывает приложение B без запроса пароля; выход из консоли завершает сессию SSO
AC-011Access token содержит roles (плоский список), org_unit, locale и, если разрешено, idnp; sub — UUID
AC-012Пользователь с CRM_ADMIN не получает ни одного полномочия GLOG_* или INTERDICTII_* в GLog или Interdicții
AC-013Запрос назначения доступа к нечувствительной роли, согласованный владельцем платформы, переходит в ACTIVA, и роль присутствует в следующем token пользователя
AC-014Назначение доступа к чувствительной роли требует двух разных согласующих; инициатор не может согласовать собственный запрос
AC-015Назначение доступа с validPana в прошлом завершается планировщиком по истечении срока, сопоставление удаляется, пользователь уведомляется
AC-016Отзыв назначения доступа удаляет сопоставление и завершает сессии пользователя в затронутых клиентах; роль отсутствует в token в течение 60 с
AC-017Успешный вход, неудачный вход, административное изменение и переход назначения доступа отображаются в списке событий консоли и в GLog с указанием субъекта, realm, IP и времени
AC-018UPDATE и DELETE на eveniment_gsso отклоняются репозиторием и триггером базы данных
AC-019Дашборд показывает realm, клиентов, пользователей, активные сессии, входы с шагом 2 ч за 24 ч (успех/неудача) и структуру способов аутентификации
AC-020Пример приложения Spring Boot только с gsso-spring-boot-starter и 3 настройками проверяет token GSSO и сопоставляет roles с authorities
AC-021Приложение со scope gsso:app саморегистрирует свою платформу, клиентов и роли через POST /api/v1/app/platforme (если для него разрешена саморегистрация)
AC-022DELETE /api/v1/app/utilizatori/{sub}/sesiuni завершает сессии пользователя в течение 60 с
AC-023Token exchange от клиента crm-gateway к аудитории gdocflow возвращает token для того же пользователя с целевой аудиторией; неразрешённая пара отклоняется
AC-024OTP требуется при входе для пользователя, имеющего любую чувствительную роль; WebAuthn принимается как альтернатива
AC-025Вход гражданина в клиент cetatean передаётся через broker на mock MPass SAML и создаёт или связывает пользователя по IDNP
AC-026Списки пользователей, клиентов, ролей, назначений доступа и событий поддерживают фильтрацию, сортировку и пагинацию и отвечают в пределах целевых значений NFR-PERF
AC-027Все надписи консоли переведены на RO, RU и EN; ни одного непереведённого ключа не видно (проверка /gfront)
AC-028/health/live, /health/ready (включает доступность Keycloak), /metrics, /info, /api/v1/openapi.json отвечают; ошибки соответствуют RFC 7807
AC-029/gsast не сообщает ни об одной находке уровня high/critical без принятого исключения (waiver); в репозитории нет секретов
AC-030Пробный прогон (dry-run) миграции realm interdictii формирует отчёт о сопоставлении (клиенты, роли, пользователи) без какой-либо записи в продуктив
IDВопросПредлагаемый ответОтветственный
Q-GSSO-1Оставить realm interdictii как realm сотрудников и переименовать его только в отображении или создать gstack и мигрировать?Создать gstack, принять interdictii под управление в режиме только чтения, мигрировать по одному приложению (отчёт 05, S4)Команда платформы + владельцы приложений
Q-GSSO-2Продуктивная интеграция с MPass: метаданные SAML, сертификаты и тестовые учётные записи от AGE?Mock в S2, реальные метаданные — когда будут доступныУчреждение
Q-GSSO-3Какой каталог AD/LDAP (для каждого учреждения) и федерация только для чтения или с записью?Только чтение, режим редактирования READ_ONLY, для каждого realmИТ учреждения
Q-GSSO-4Какие роли являются чувствительными по умолчанию?Все *_ADMIN, GSSO_*, кроме GSSO_AUDITOR, роли, помеченные владельцамиОфицер безопасности
Q-GSSO-5Срок действия назначений доступа по умолчанию (бессрочно или, например, 12 месяцев с продлением)?12 месяцев для чувствительных ролей, бессрочно для остальных, с ежегодным пересмотром доступаОфицер безопасности
Q-GSSO-6Кто может согласовывать: только владелец платформы или также руководитель организационной единицы пользователя?Владелец платформы плюс согласующий для чувствительных ролей; руководитель организационной единицы — опционально для каждой платформыВладельцы платформ
Q-GSSO-7Хранение событий входа (БД GSSO или GLog)?90 дней в GSSO, в GLog — согласно политике GLogDPO
Q-GSSO-8Входит ли realm граждан cetatean в продуктивную область применения этой платформы или позже?Проектируется сейчас, продуктив — после доступности MPassПродукт
Q-GSSO-9Вход в gsso_mob по QR с другого устройства: реализовать как authenticator Keycloak (SPI) или сохранить endpoint одобрения для каждого сайта?Authenticator Keycloak в S5, единая реализация для всех сайтовКоманда платформы
Q-GSSO-10Хостинг: остаться на общем демо-хосте или перейти на целевой Kubernetes из playbook?Docker compose на демо-хосте для S0–S3; Helm chart для целевой средыDevOps
Q-GSSO-11Должны ли приложения сохранять локальную аварийную («break-glass») учётную запись администратора?Никаких локальных паролей; break-glass = аварийная учётная запись в realm master, находящаяся у команды платформыОфицер безопасности
Q-GSSO-12Саморегистрация платформ через API app: разрешена для всех приложений или только для CI команды платформы?Только для явно помеченных клиентов; остальные — через консольКоманда платформы
Q-GSSO-13idnp в token: всегда, никогда или для каждого клиента отдельно?Для каждого клиента, по явному включению через client scope idnp, с одобрения DPODPO
Q-GSSO-14Периодичность обновления Keycloak (минорные версии 26.x) и кто за неё отвечает?Ежеквартально, команда платформы, с набором тестов базовой конфигурации realm в качестве контрольной точкиКоманда платформы