JWT-аутентификация в BearPass: настройка через OIDC
JWT-аутентификация в BearPass: как это работает
JWT-аутентификация (JSON Web Token) — это способ получения доступа к API BearPass без использования долгоживущих ключей.
Вместо хранения секретов в скриптах, пайплайнах или внешних сервисах используется токен, выданный сторонним провайдером идентификации, работающим по протоколу OpenID Connect (OIDC).
BearPass в этом сценарии выступает как доверяющая сторона: он проверяет JWT-токен и, если всё корректно, выполняет запрос от имени пользователя.
Где это используется
Чаще всего JWT-аутентификация применяется в автоматизированных сценариях:
запросы к API BearPass из CI/CD (GitLab CI, GitHub Actions и др.);
интеграция с внутренними системами автоматизации;
доступ к секретам из внешних сервисов без хранения ключей;
Главное преимущество — отсутствие необходимости хранить статические API-ключи.
Как работает схема
1. Добавление доверенного провайдера
Администратор настраивает внешний OIDC-провайдер в BearPass. Для этого указываются:
Issuer — адрес провайдера (iss);
JWKS URL — источник публичных ключей для проверки подписи;
Audience — получатель токена (aud);
После этого BearPass сможет доверять токенам, выпущенным этим провайдером.
2. Привязка пользователя
Пользователь создаёт привязку своей учетной записи к внешнему идентификатору.
Для этого используется значение sub из JWT-токена — уникальный идентификатор пользователя в системе провайдера.
Именно по этому значению BearPass определяет, от чьего имени выполнять запрос.
3. Запрос к API
Внешняя система (например, CI/CD) отправляет JWT-токен в BearPass через эндпоинт:
/api/auth/login-by-jwt
В ответ система возвращает токен доступа BearPass, который используется в заголовке:
Authorization: Bearer <token>
4. Проверка и доступ
Перед выполнением запроса BearPass проверяет:
подпись токена через JWKS;
соответствие issuer и audience;
наличие привязки по значению sub;
Если всё корректно — запрос выполняется с правами пользователя.
Пример: GitHub Actions
JWT-аутентификация удобно работает с GitHub Actions.