Аутентификация
Аутентификация — процесс проверки, что пользователь, устройство или система действительно является тем, за кого себя выдает.
Процесс оперирует субъектами, идентификаторами, учетными записями, факторами и токенами и реализуется с помощью провайдеров и аутентификаторов. Это первый шаг к безопасному контролю доступа.
Аутентификация является одним из этапов контроля доступа. Контроль доступа в Spirit IAM обеспечивает Identity & Access Proxy.
Этапы аутентификации
Предъявление идентификатора (identity claim)
Субъект сообщает, кто он. В Spirit IAM для разных учетных записей используются разные идентификаторы:
- Для пользователя — UUID учетной записи (
c81a3196-3d85-4c23-986e-62785ab51828). - Для сервисного аккаунта — UUID учетной записи (
c518d50e-20dd-4242-a735-083b69fe0f82). - Для IAM-JWK-интеграции — пара «ключ тенанта + идентификатор системы» (
iam:service). - Для API-ключа — UUID из клейма
jti(35375a19-2154-4498-80da-c002e9881453). - Для OAuth2-клиентов —
client_id(spirit-iam-cli).
Предъявление доказательства (proof of identity)
Предоставление о дного или нескольких факторов, доказывающих, что пользователь — тот, за кого себя выдает:
- Что-то, что знаешь — пароль, PIN, ключ.
- Что-то, что имеешь — токен, сертификат, TOTP-приложение, смарт-карта.
- Что-то, что ты есть — биометрия (отпечаток, лицо).
В Spirit IAM для разных типов учетных записей используются:
- Для пользователей — логин и пароль.
- Для сервисных аккаунтов — приватный ключ сервисного аккаунта.
- Для IAM-JWK интеграции — JWT-токен, подписанный приватным ключом интеграции.
- Для API-ключа — JWT-токен, подписанный одноразовым приватным ключом.
- Для OAuth2-клиента —
client_secretи другие методы, описанные стандартом OAuth2.
Проверка доказательства (identity verification)
Система сверяет предъявленные данные с зарегистрированными.
В зависимости от того, какая учетная запись участвует в процессе аутентификации, проверку могут выполнять разные компоненты системы Spirit IAM.
- Пользовательские УЗ проверяются компонентом
ORY Kratos Identities. - Сервисные УЗ, а так же OAuth2-клиенты проверяются с помощью
Ory Hydra OAuth2иTenantManager. - Токены IAM-JWK-интеграций и API-ключей проверяются компонентом
IAM-JWK.
Результат аутентификации
- Успешно — субъект считается аутентифицированным.
- Неуспешно — ошибка; возможна блокировка УЗ после нескольких попыток.