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

Ядро IdP

Одна IdP-сессия для SAML и OIDC

10 мин

Как одна подписанная cookie idp_session мостит SAML Service Provider-ы и OIDC Relying Party на одном Identity Provider — и почему это остаётся простым.

Многие реальные стэки сочетают SAML Service Provider-ы (старые B2B-инструменты) и OIDC Relying Party (новые приложения). Auth Fly считает оба first-class на одном IdP, делящем одну сессию.

Общая cookie

После успешного входа через Hanko IdP ставит на собственном origin подписанную cookie idp_session. Cookie HttpOnly, Secure, подписана HMAC. Обработчики SAML и OIDC читают одну и ту же cookie.

Путь SAML

  • GET /sso разбирает AuthnRequest и ищет SP в allowlist по Issuer.
  • Если IdP-сессия валидна, пользователь сразу уходит на /sso/complete.
  • SAML Response подписывается и постится на ACS из конфига SP — никогда не из запроса.

Путь OIDC

  • GET /authorize валидирует client_id и redirect_uri точным сравнением по allowlist.
  • Если IdP-сессия валидна, authorization code выдаётся сразу, и пользователь возвращается с code.
  • POST /token меняет одноразовый code на access token и id_token, подписанный ключом IdP (RS256, доступен через JWKS).

Почему одна cookie

Одну подписанную cookie проще объяснить, проще отозвать и проще аудировать, чем две параллельные сессии. Экран входа рисуется один раз; оба протокола завершаются без второго запроса.


Логотип Auth Fly

Auth Fly

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

Об Auth Fly