OpenID Connect

OIDC (OpenID Connect) — тонкий слой поверх OAuth 2.0, добавляющий аутентификацию (кто такой юзер). "Sign in with Google/Apple/Microsoft" — почти всегда OIDC.

Ключевое отличие от OAuth

OAuth даёт access_token для API. OIDC добавляет id_tokenJWT, подписанный AS, с claims о юзере.

id_token payload (пример)

{
  "iss": "https://accounts.google.com",
  "sub": "1234567890",       // уникальный ID юзера
  "aud": "your-client-id",
  "exp": 1700000000,
  "iat": 1699996400,
  "email": "user@example.com",
  "email_verified": true,
  "name": "John Doe",
  "picture": "https://...",
  "nonce": "n-0S6_WzA2Mj"    // защита от replay
}

Scopes

Endpoints

Валидация id_token

  1. Достать JWK по kid из header.
  2. Проверить подпись.
  3. Проверить iss совпадает с ожидаемым.
  4. Проверить aud = твой client_id.
  5. Проверить exp, iat.
  6. Проверить nonce = тот что послал в /authorize.

Provider-ы

Session management

OIDC Session Management (extension) — фронтовые iframe-check-and или backchannel logout. Синхронизация logout между IdP и RP.

См. также