Шаг 1. Регистрация клиента
Создайте OIDC client для SPA, укажите точные redirect URI и разрешённые web origins. Не используйте wildcard redirect URI.
Шаг 2. Библиотека OIDC
Выберите поддерживаемый OIDC client, который реализует PKCE, state, обработку callback и хранение данных без раскрытия чувствительных значений.
reference, not drop-in SDK code · typescript
// Псевдоконфигурация: поля зависят от выбранной библиотеки
const oidc = {
authority: 'https://id.example.org/realms/master',
client_id: 'my-spa',
redirect_uri: 'https://app.example.org/callback',
response_type: 'code',
scope: 'openid profile',
// PKCE: S256
};Шаг 3. Защита приложений
Ресурсный сервер должен самостоятельно валидировать access token; наличие токена в браузере не означает авторизацию. Разрешения проверяются на backend.
Риски интеграции
- Неверный redirect URI или CORS
- Хранение токенов в localStorage без оценки угроз
- Отсутствие проверки state после callback
- Передача client_secret в публичный bundle