Skip to content

GrantoAuthorization server, который можно разобрать на части

Модульный сервер авторизации с открытым кодом: OAuth 2.0, OIDC и GNAP в одном ядре. core, consent и rbac — отдельные артефакты. Поставь только то, что нужно. Замени любой модуль своим — без форка монолита.

core: OAuth2/OIDC/сессии — готовоconsent/RBAC — roadmapGNAP — в разработке

AGPLv3 · Go · совместимая миграция с ORY Hydra login/consent

Вы не выбирали монолит — он просто так получился ​

  • В Keycloak realm, пользователи, темы и сам authorization server живут в одном дистрибутиве. Отключить «половину» почти нельзя.
  • В ORY Hydra login и consent — «напишите сами». Качество, безопасность и сопровождение этого куска — целиком на вас, с нуля, на свой страх и риск.
  • В Auth0 / Okta модульность — это тарифный план. Свой способ входа рядом со своим кодом не поставишь: либо их Actions, либо их лимиты.

Granto — не ещё один цельный IdP. Это протокольное ядро плюс отдельные модули, которые можно ставить, снимать и менять местами, не трогая остальное.

Что такое Granto ​

Granto — линейка независимых модулей авторизации с общими контрактами, а не один большой сервис:

МодульРольСтатус
coreядро AS: сессии, OAuth 2.0, OpenID Connect, GNAPготово: OAuth2/OIDC
consentlogin/consent UX: engine + плагины способов входаroadmap
rbacавторизация на ролях и политикахroadmap

Каждый модуль можно установить отдельно, не устанавливать вовсе или заменить своей реализацией — если соблюдён контракт (API). Подробнее — в архитектуре.

Чем Granto отличается от того, что вы уже знаете ​

GrantoORY HydraKeycloakAuth0 / Okta
Модули — отдельные артефакты✓частично (AS отдельно, но не линейка)✕ монолит✕ только облако
Consent — продукт (engine + плагины)roadmap✕ «напишите сами»частично, внутри SPIчастично, в их runtime
OAuth + OIDC + GNAP в одном ядре✓ (GNAP — в разработке)OAuth/OIDC без GNAPбез GNAPбез GNAP
Публичный API = только RFC✓✓частично + proprietaryснаружи стандарт, внутри — их API
Hydra-like Admin + strict accept✓исходный паттерн✕ другая модель✕
logout_scope: session / device / subject✓руками поверх базового logoutдругая модель (realm sessions)через Enterprise-фичи

Полная таблица (9 продуктов, 8 критериев) — в документации.

Для кого это ​

  • Вы на ORY Hydra, и консент-приложение, которое кто-то написал «на коленке» два года назад, теперь никто не хочет трогать.
  • Вы оцениваете Keycloak, но вам не нужны его темы, realm'ы и встроенный user-store — только протокол.
  • Вы строите B2B API-платформу и хотите закладывать GNAP уже сейчас, не меняя authorization server через три года.
  • У вас compliance-требования, из-за которых login и выдача токенов должны физически жить в разных сетевых периметрах.

Быстрый старт ​

bash
docker compose up -d        # postgres + redis + core
curl localhost:4444/.well-known/openid-configuration

core поднимается как один бинарник, без встроенного UI — consent/login обслуживает ваш собственный процесс (или наш — см. статус и roadmap). Полный гайд — быстрый старт в документации.

Частые вопросы ​

Это bit-identical API с ORY Hydra? Нет. Мы переносим идею и модель login/consent-приложений Hydra (challenge → accept/reject → verifier), а не байт-в-байт копируем формат. Честные отличия — в гайде по миграции.

Можно использовать только core, без consent и rbac? Да. Это и есть основная идея: core — самодостаточный authorization server, consent и rbac — опциональные модули поверх него.

Чем это лучше, чем просто Keycloak? Если вам нужен готовый IdP с темами, пользователями и админкой «из коробки» — вам, возможно, и правда нужен Keycloak. Granto — для тех, кому нужен только протокол, а всё остальное — своё или по частям.

Какая лицензия? AGPLv3.

Production-ready? core прошёл несколько раундов review (корректность + безопасность). consent, rbac и GNAP — ещё не готовы для прод-замены существующего стека; честный статус — в roadmap.

AGPLv3