← Ко всем записям

SPI

SSO SPI: от PoC на Hanko к Supabase или собственному Postgres

12 мин

Как контракт CredentialVerifier превращается в Service Provider Interface — это позволяет менять credential-бэкенд без правок IdP, UI и инвариантов безопасности.

PoC живёт на Hanko. MVP должен запускаться на том, что уже эксплуатирует заказчик — чаще всего это Supabase или собственный Postgres. Мы рассматриваем это как задачу SPI, а не задачу форка.

Что гарантирует SPI

  • Проверить сессионный или bearer-токен и вернуть нормализованные identity claims.
  • Отдать FlowConfig, который UI сможет нарисовать (API URL, имя cookie, путь логаута, скрипт SDK).
  • Поддержать поверхность feature flags, чтобы UI мог скрывать или показывать точки регистрации.
  • Сохранить инварианты безопасности: подписанные cookie, JWT-валидация через JWKS, allowlist-ы origin.

Бэкенды в дорожной карте

  • Hanko — PoC. Credentials, JWKS, WebAuthn из коробки.
  • Supabase — частый выбор для greenfield-продуктов; SPI мапит токены Supabase Auth в IdentityClaims.
  • Собственный Postgres — для команд, уже управляющих пользователями, паролями или passkey самостоятельно; SPI оборачивает существующее хранилище.

Что не меняется при смене бэкенда

  • IdP — эндпоинты SAML и OIDC ведут себя одинаково.
  • Hosted-UI — те же страницы входа, выхода и ошибок.
  • Чек-лист безопасности — каждый бэкенд должен удовлетворять одним и тем же проверкам JWT, cookie и origin.

Что меняется

  • Пакет адаптера, реализующий CredentialVerifier.
  • URL браузерного бандла, на который указывает SDKScript.
  • Операционные вопросы — где живут пользователи, как хранятся пароли или passkey, как добраться до Admin API.

Логотип Auth Fly

Auth Fly

Открытый конструктор аутентификации

Об Auth Fly