Keycloak — это решение для управления идентификацией и доступом с открытым исходным кодом, которое обеспечивает надежные возможности аутентификации и авторизации пользователей. По умолчанию Keycloak позволяет пользователям проходить аутентификацию с использованием различных методов, включая локальную аутентификацию по имени пользователя и паролю и вход через социальную сеть. Однако в некоторых сценариях вам может потребоваться ограничить вход в систему только определенными поставщиками удостоверений (IdP) для повышения безопасности или для обеспечения единого входа (SSO). В этой статье мы рассмотрим несколько способов достижения этого требования на примерах кода.
Метод 1: настройка устройства сопоставления поставщиков удостоверений
Keycloak предоставляет встроенную функцию под названием «Сопоставление поставщиков удостоверений», которая позволяет сопоставлять определенные IdP с пользователями. Используя эту функцию, вы можете принудительно войти в систему только через определенного IdP. Вот пример того, как его настроить:
- Войдите в консоль администратора Keycloak.
- Выберите нужную область и перейдите в раздел «Клиенты» >«Ваш клиент» >«Картографы».
- Нажмите «Создать» и выберите соответствующий тип преобразователя на основе вашего IdP (например, «Импортер атрибутов SAML» для IdP на основе SAML).
- Настройте параметры сопоставления, такие как атрибут, который нужно сопоставить, и атрибут пользователя, который нужно обновить.
- Сохраните конфигурацию картографа.
Метод 2: настраиваемый поток аутентификации
Другой подход заключается в создании настраиваемого потока аутентификации, который обходит форму входа в Keycloak по умолчанию и перенаправляет пользователей непосредственно к нужному IdP для аутентификации. Вот пример того, как это реализовать:
- Создайте новый процесс аутентификации в консоли администратора Keycloak.
- Добавьте в поток новое выполнение «Перенаправителя поставщика удостоверений».
- Настройте выполнение для перенаправления пользователей на конечную точку аутентификации нужного поставщика удостоверений.
- Сохраните процесс аутентификации.
Метод 3: переопределение потока аутентификации
Keycloak позволяет переопределить поток аутентификации по умолчанию для определенных клиентов. Используя эту функцию, вы можете создать собственный поток аутентификации, включающий только нужный IdP, и использовать его для целевого клиента. Вот пример того, как это сделать:
- Создайте собственный процесс аутентификации (как описано в методе 2).
- Перейдите в раздел «Клиенты» >«Ваш клиент» >«Переопределения потока аутентификации».
- Выберите собственный процесс аутентификации для параметров «Поток браузера» и «Прямой поток предоставления».
- Сохраните изменения.
В этой статье мы рассмотрели три метода принудительного входа в систему через поставщика удостоверений только в Keycloak. Настроив сопоставитель поставщика удостоверений, создав собственный поток аутентификации или используя переопределения потока аутентификации, вы можете ограничить вход в систему определенными поставщиками удостоверений и повысить безопасность и удобство использования ваших приложений.
Помните, что выбор подходящего метода зависит от вашего конкретного варианта использования и требований. Следуя этим подходам, вы можете использовать гибкость Keycloak для легкого достижения желаемого поведения при входе в систему.