# Визуализатор потока OAuth 2.0 / OIDC с кодом авторизации и PKCE

Сквозная симуляция потока кода авторизации с PKCE: генерация verifier/challenge, URL авторизации, обмен токенами, чек-лист проверки ID Token и демо атаки перехвата.

> Каноническая страница: https://elysiatools.com/ru/tools/oauth-oidc-authorization-code-pkce-flow-visualizer

- **Категория:** Development

- **Ключевые слова:** визуализатор oauth потока, pkce s256 генератор, проверка id token, проверка at_hash, демо потока кода авторизации, симулятор openid connect

## Обзор

Симулятор в точности по спецификациям, офлайн: вывод S256-вызова по RFC 7636, полный чек-лист OIDC Core §3.1.3.7 с настоящим HS256-токеном и at_hash, сценарий атаки и аннотированная матрица параметров. Без сетевых вызовов; фиксированные демонстрационные часы делают вывод воспроизводимым.

## Входные данные

- **Вариант потока** (select)
- **code_verifier (43-128 символов unreserved, пусто = пример из RFC)** (text): leave blank to use the RFC 7636 Appendix B example (43 chars)
- **URL эмитента** (text): https://auth.example.com
- **client_id** (text): spa-demo-client
- **redirect_uri (должен точно совпадать с регистрацией)** (text): http://127.0.0.1:8080/callback
- **scope (openid включает OIDC)** (text): openid profile email
- **client_secret (демо-ключ подписи HS256)** (text): demo-secret-not-for-production
- **state (пусто = детерминированное демо-значение)** (text): opaque CSRF token, echoed back on the callback
- **nonce (пусто = детерминированное демо-значение)** (text): binds the ID Token to this authentication session
- **Смоделировать атаку перехвата кода** (checkbox)

## Когда использовать

- Отладка интеграции OAuth 2.0 / OIDC в SPA или мобильных приложениях при формировании code_challenge и параметров запросов.
- Проверка логики валидации ID Token, расчета хэша at_hash и проверки утверждений (claims) без поднятия внешнего IdP.
- Демонстрация и аудит уязвимости перехвата кода авторизации в небезопасных клиентах без PKCE.

## Как это работает

- На основе выбранного метода вычисляется code_challenge из code_verifier по алгоритму SHA-256 (S256) или plain в соответствии с RFC 7636.
- Формируются параметры авторизационного URL (client_id, redirect_uri, scope, state, nonce) и эмулируется ответ от сервера авторизации.
- Генерируется тело запроса к конечному узлу токенов, создается демо ID Token (HS256) и запускается чек-лист проверок iss, aud, exp, nonce и at_hash.
- В режиме симуляции атаки отображается сценарий, при котором перехваченный код авторизации используется без валидного verifier.

## Сценарии использования

- Изучение и преподавание протоколов OAuth 2.0 и OpenID Connect с наглядным отображением фронтканала и бэкканала.
- Верификация правильности генерации параметров авторизации и тела POST-запроса на обмен токенов перед релизом приложения.
- Анализ рисков безопасности и моделирование вектора атаки с перехватом authorization_code на публичных клиентах.

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

### Выполняет ли симулятор реальные сетевые вызовы к провайдерам?

Нет, вся обработка, расчет хэшей и симуляция шагов выполняются локально и офлайн.

### Какие требования предъявляются к параметру code_verifier?

Он должен содержать от 43 до 128 символов из набора unreserved (буквы, цифры, дефис, точка, подчеркивание, тильда).

### Что проверяет чек-лист валидации ID Token?

Чек-лист выполняет 9 проверок по OIDC Core §3.1.3.7: iss, aud, azp, подпись HS256, alg, exp, iat, nonce и at_hash.

### Зачем нужен расчет at_hash в OIDC?

Параметр at_hash связывает выданный access_token с полученным ID Token для защиты от подмены токена доступа.

### Почему вариант PKCE S256 предпочтительнее plain?

S256 передает только хэш verifier через браузер, защищая исходный секрет от перехвата вредоносным кодом.

## Связанные инструменты

- [Генератор PKCE Code Verifier и Challenge](https://elysiatools.com/ru/tools/pkce-code-verifier-generator): Создание, проверка и верификация пар code_verifier / code_challenge PKCE (RFC 7636) для OAuth2 / OIDC. Три режима: (1) создать новую пару из криптостойких случайных байт (256/384/512/768 бит), (2) аудит имеющегося verifier по RFC — длина (43–128), набор \[A-Za-z0-9-._~\] и ≥256 бит энтропии, (3) проверить пару, пересчитав BASE64URL(SHA256(verifier)). При желании строит полный URL запроса авторизации и тело обмена токена. Дополняет универсальный nonce-generator (только выдаёт пару) аудитом соответствия RFC и проверкой пар.
- [Генератор мнемонических фраз BIP39](https://elysiatools.com/ru/tools/mnemonic-bip39-generator): Генерирует или проверяет BIP39-фразы из 12-24 слов с выводом энтропии и seed PBKDF2-HMAC-SHA512
- [Сравнение хеш-алгоритмов](https://elysiatools.com/ru/tools/hash-algorithm-comparator): Хеширует один и тот же вход с помощью MD5, SHA-1, SHA-256, SHA-512, BLAKE2b и BLAKE3 и сравнивает их: длину, hex/Base64-дайджест, статус безопасности (взломан/современный) и относительный бенчмарк скорости. Полезно для обучения, выбора алгоритма и проверки контрольных сумм.
- [Генератор головоломок Kakuro / Fillomino / Masyu / Yajilin / Hashiwokakero / Nurikabe / Slitherlink / Star Battle с доказательством единственности](https://elysiatools.com/ru/tools/kakuro-fillomino-masyu-yajilin-hashiwokakero-nurikabe-slitherlink-and-star-battle-puzzle-generator-with-uniqueness-prover): Детерминированно по семени генерирует головоломки 8 семейств Nikoli (одно семя — одна доска): плотное Какуро, Fillomino, Масю, Ядзилин, Хасивокакеро, Нурикабэ, Слизерлинк и Star Battle; каждая доска строится «решение вначале» и проверяется исчерпывающим перебором, считающим решения до двух — единственность доказана, при исчерпании бюджета честно сообщается «unproven»; прилагаются SVG головоломки и решения и сложность по числу узлов поиска.
- [Синхронизатор палитры Tailwind](https://elysiatools.com/ru/tools/tailwind-color-palette-sync): Введите HEX, выберите схему именования (шкала 50–950 / одно имя / вложенность) — генерирует фрагмент theme.extend.colors для tailwind.config.ts с уровнями WCAG AA/AAA. Тёмная тема опциональна.
- [Автономный генератор кодов TOTP / HOTP](https://elysiatools.com/ru/tools/totp-hotp-offline-generator): Генерирует одноразовые пароли TOTP RFC 6238 (6/8 цифр, 30/60 с) и HOTP RFC 4226 (по счётчику) из base32-секрета, локально, с HMAC-SHA1/256/512, и формирует otpauth:// URI
- [Тиреоидный индекс (интерпретация ТТГ/FT4/FT3)](https://elysiatools.com/ru/tools/thyroid-index): Сопоставляет ТТГ, FT4 и (опционально) FT3 для оценки тиреоидной оси. Референс для взрослых: ТТГ 0.4–4.0 мМЕ/л, FT4 0.8–1.8 нг/дл (≈10–23 пмоль/л), FT3 2.3–4.2 пг/мл (≈3.5–6.5 пмоль/л). ТТГ высок + FT4 низ → явный первичный гипотиреоз (Хасимото, после абляции, дефицит йода, амиодарон/литий); ТТГ высок + FT4 норм → субклинический гипотиреоз; ТТГ низ + FT4 высок (±FT3 высок) → явный первичный гипертиреоз (Базедов, токсический узел, ранний тиреоидит, йод/амиодарон); ТТГ низ + FT4 норм → субклинический гипертиреоз или экзогенный гормон, или ранний тиреоидит — определить FT3 для исключения Т3-токсикоза; ТТГ норм/низ + FT4 низ → центральный (вторичный/третичный) гипотиреоз (патология гипофиза/гипоталамуса); ТТГ высок + FT4 высок → ТТГ-продуцирующая аденома или резистентность к тиреоидным гормонам; всё в норме → эутиреоз (при нетиреоидной болезни возможен низкий FT3). Ограничения: циркадный ритм ТТГ (пик 22:00–02:00, надир вечером); дофамин, стероиды, тяжёлая болезнь, каберголин подавляют ТТГ; при беременности — триместр-специфичные диапазоны; гетерофильные антитела искажают ТТГ/FT4; амиодарон — тиреотоксикоз 1 типа (йод) или 2 типа (деструктивный). Источники: ATA 2014/2016, NACB 2002, Garber 2012, MDCalc. Не медицинская консультация.
- [Генератор хешей текста](https://elysiatools.com/ru/tools/text-hash-generator): Вычисляет MD5, SHA-1, SHA-256, SHA-512 и CRC-32 любого текста сразу. Возвращает hex и Base64 по UTF-8 кодировке.

## Примеры

- [Примеры Комментариев Кода](https://elysiatools.com/ru/samples/code-comment-samples): Примеры кода с различными стилями комментариев для тестирования удаления комментариев
- [Примеры OAuth 2.0 и OpenID Connect](https://elysiatools.com/ru/samples/oauth-openid-connect): Примеры фреймворка авторизации OAuth 2.0 и протокола аутентификации OpenID Connect
- [Примеры QR-кодов](https://elysiatools.com/ru/samples/qrcode-samples): Примерные изображения QR-кодов для тестирования инструментов чтения и генерации QR-кодов
- [Примеры OAuth 2.0](https://elysiatools.com/ru/samples/oauth2-samples): Примеры реализации OAuth 2.0, включая потоки авторизации, конфигурации клиентов и лучшие практики безопасности
