Вопрос или проблема
Я использую Keycloak в качестве провайдера OIDC для нескольких веб-приложений. У меня примерно 50 пользователей и 5 приложений. Некоторые приложения содержат конфиденциальные данные и используются только менеджерами компании. Другие приложения не столь критичны и используются всеми, включая сотрудников с небольшими навыками работы с компьютером.
Я хотел бы добиться аналогичного опыта входа, как в Google, который делает процесс входа очень удобным, если вы используете свой “аутентифицированный веб-браузер”, и в то же время требует дополнительных шагов, когда доступ к нему осуществляется с неизвестного браузера/устройства.
Вот мои вопросы, с которыми я сейчас сталкиваюсь:
-
Я хотел бы установить двухфакторную аутентификацию (2FA) для приложений, содержащих конфиденциальные данные, но не для всех приложений. Что вы порекомендуете:
- Установить 2FA на уровне пользователя (т.е. у пользователя либо включена 2FA для всех приложений, либо нет).
- Установить 2FA на уровне приложения (т.е. некоторые приложения требуют 2FA, независимо от того, кто их использует).
-
Поскольку мы работаем в среде Active Directory, порекомендуете ли вы включить аутентификацию Kerberos в качестве альтернативы входу по паролю?
-
Рекомендуете ли вы включить опцию “Запомнить меня” в форме входа? В настоящее время у меня эта опция отключена, из-за чего пользователи используют менеджеры паролей в своих веб-браузерах. Разве опция “Запомнить меня” не безопаснее, чем пароль, хранящийся в браузере?
-
Рекомендуете ли вы использовать Keycloak также для защиты веб-почты? Было бы удобно иметь на один пароль меньше, но когда пользователь теряет свои учетные данные, он не сможет восстановить их через электронную почту (защищенную теми же учетными данными).
Ответ или решение
Конечно, я могу помочь с вашими вопросами по улучшению безопасности SSO в Keycloak. Давайте разобьем ваши вопросы по порядку и рассмотрим каждую ситуацию более детально.
1. Двухфакторная аутентификация (2FA)
Рекомендация: В вашем случае наиболее подходящим вариантом будет возможность применять 2FA на уровне приложений. Это позволит вам настраивать разные уровни безопасности в зависимости от конфиденциальности данных, доступных в каждом приложении.
- На уровне приложений: Вы можете установить обязательную двухфакторную аутентификацию для приложений, содержащих чувствительную информацию, а для менее критичных систем оставить стандартный логин. Это также позволит избежать путаницы среди пользователей, которые не являются компаниями менеджерами и которым может быть нецелесообразно использовать 2FA для всех приложений.
2. Kerberos аутентификация
Рекомендация: Если ваша организация активно использует Active Directory, включение Kerberos аутентификации может значительно упростить процесс входа для пользователей, предоставляя безопасный способ аутентификации без необходимости ввода паролей.
Использование Kerberos ускорит процесс аутентификации и улучшит безопасность, так как пользователи будут входить в систему автоматически, когда они уже аутентифицированы в своей локальной сети.
3. Опция "Запомнить меня"
Рекомендация: Поскольку у вас есть обеспокоенность по поводу безопасности, я рекомендую рассмотреть возможность включения опции "Запомнить меня", но с осторожностью.
- Преимущества: Эта опция улучшает опыт пользователей, уменьшая необходимость повторного ввода паролей.
- Безопасность: Если вы включите эту опцию, убедитесь, что она поддерживает безопасные механизмы хранения токенов, такие как HttpOnly и Secure cookies, чтобы минимизировать риск кражи токенов. Также учтите, что пользователи должны знать о потенциальных рисках, связанных с сохранением сеансов в общедоступных или совместно используемых устройствах.
4. Защита веб-почты через Keycloak
Рекомендация: Защита веб-почты через Keycloak может быть разумным шагом с точки зрения удобства пользователя, но следует учесть риски, связанные с восстановлением паролей.
Если пользователь забудет свои учетные данные, у него не будет возможности восстановить их, если почта защищена теми же учетными данными. Чтобы минимизировать этот риск, вы можете рассмотреть:
- Используйте отдельную почтовую систему для восстановления пароля, или
- Предложите пользователям возможность использования резервных способов аутентификации, таких как SMS или мобильное приложение для аутентификации.
Заключение
Ваша учетная политика должна быть нацелена на баланс между удобством пользователей и уровнем безопасности. Не забывайте адаптировать ваши меры безопасности в зависимости от изменений в бизнесе и технологиях. Регулярные обзоры ваших политик безопасности помогут гарантировать, что ваши меры безопасности остаются актуальными и эффективными.