В документации приведён полный список терминов и определений. В данной статье мы рассмотрим основные понятия, без понимания которых невозможно разобраться в принципах работы Keycloak и эффективно применять его на практике.
IAM (система управления идентификацией и доступом) - это система, которая обеспечивает безопасный доступ к ресурсам компании (базам данных, электронной почте, приложениям и другим данным). Она гарантирует, что доступ получат только проверенные пользователи и с минимальным количеством помех.
Технология единого входа (Single Sign-On, SSO) - это технология, при использовании которой пользователь переходит из одного раздела портала в другой, либо из одной системы в другую, не связанную с первой системой, без повторной аутентификации.
JSON Web Token (JWT) - это открытый стандарт (RFC 7519) для создания токенов доступа, основанный на формате JSON. Как правило, используется для передачи данных для аутентификации в клиент-серверных приложениях. Токены создаются сервером, подписываются секретным ключом и передаются клиенту, который в дальнейшем использует данный токен для подтверждения подлинности аккаунта.
OpenID Connect представляет собой аутентификационную надстройку над протоколом авторизации OAuth2.0. OpenID Connect позволяет интернет-ресурсам проверить личность пользователя на основе аутентификации, выполненной авторизационным сервером. Для работы используется RESTful API, описанный в спецификации. Также в OpenID Connect определены дополнительные механизмы для надёжного шифрования и цифровой подписи. Стандарт позволяет использовать дополнительные возможности, такие как управление сессиями и обнаружение OpenID-провайдеров.
OAuth 2.0 - открытый протокол (схема) авторизации, обеспечивающий предоставление третьей стороне ограниченного доступа к защищённым ресурсам пользователя без передачи ей (третьей стороне) логина и пароля.
Roles (роли). Роли определяют тип или категорию пользователя. admin, user, manager, employee - это типичные роли, которые могут существовать в организации. Приложения часто предоставляют доступ и разрешения конкретным ролям, а не отдельным пользователям, поскольку работа с пользователями может быть слишком детализированной и сложной в управлении.
Groups (Группы). Группы управляют группами пользователей. Для группы можно задать атрибуты. Также можно сопоставить роли с группой. Пользователи, которые становятся членами группы, наследуют атрибуты и сопоставления ролей, заданные группой.
Realms (области управления). Область управления содержит набор пользователей, учетных данных, ролей и групп. Пользователь принадлежит к области управления и входит в неё. Области управления изолированы друг от друга и могут управлять только теми пользователями, которые находятся под их контролем, и проверять их подлинность.
Clients (клиенты) - это сущности, которые могут запрашивать у Keycloak аутентификацию пользователя. Чаще всего клиентами являются приложения и сервисы, которые хотят использовать Keycloak для собственной защиты и обеспечения единого входа. Клиентами также могут быть сущности, которые просто хотят запросить идентификационные данные или токен доступа, чтобы безопасно вызывать другие сервисы в сети, защищённые Keycloak.
Identity provider (поставщики идентификаций). Поставщик идентификаций (IDP) — это сервис, который может аутентифицировать пользователя. Keycloak — это IDP.
Identity provider federation (федерация поставщиков идентификаций). Keycloak можно настроить таким образом, чтобы он делегировал аутентификацию одному или нескольким поставщикам удостоверений. Вход через социальные сети, например Facebook или Google, — это пример объединения поставщиков удостоверений. Вы также можете настроить Keycloak таким образом, чтобы он делегировал аутентификацию любому другому поставщику удостоверений OpenID Connect или SAML 2.0.
Authentication Context Class Reference (ACR, Ссылка на класс контекста аутентификации) - это необязательный параметр, который используется в запросах SAML и OpenID Connect (OIDC). Этот параметр позволяет поставщикам услуг отправлять поставщику удостоверений дополнительную информацию, чтобы поставщик удостоверений мог обеспечить дополнительную защиту в процессе аутентификации пользователя, то есть указать бизнес-правила, которые необходимо соблюдать при аутентификации. В некоторых контекстах ACR называют уровнем защиты (LoA).