Share
Embed
Moscow Python Meetup №85. Максим Юрченко. Время перемен: OpenSource IaM в 2023
Поговорим о том что такое SSO, какие IaM есть. Почему мы выбрали Keycloak и какие проблемы он нам решил.
Видео: https://youtu.be/dFUs6927f18
Moscow Python: http://moscowpython.ru
Курсы Learn Python: http://learn.python.ru
Moscow Python Podcast: http://podcast.python.ru
Заявки на доклады: https://bit.ly/mp-speaker
Moscow Python Meetup PRO
October 25, 2023
Transcript
60 slides
-
Время перемен OpenSource IAM в 2023 Identity and Access Management
(IAM) 3 Регистрация Авторизация Аутентификация -
Время перемен OpenSource IAM в 2023 Identity and Access Management
(IAM) 3 Регистрация Авторизация Аутентификация Аудит доступов Управление пользователями -
IAM + SSO 4 • Проверяет подлинность пользователя • Является
единым местом по выдаче прав и ролей • Единая точка аудита действий пользователя • Берет на себя вопрос интеграции с внешними системами Время перемен OpenSource IAM в 2023 -
OAuth и OIDC OAuth (RFC-6749) • Говоря про OAuth, чаще
всего имеется в виду OAuth 2.0 • Вводятся 2 токена: — Access token — Refresh token • Не отвечает за аутентификацию 5 Время перемен OpenSource IAM в 2023 -
OAuth и OIDC OAuth (RFC-6749) • Говоря про OAuth, чаще
всего имеется в виду OAuth 2.0 • Вводятся 2 токена: — Access token — Refresh token • Не отвечает за аутентификацию OIDC • Прослойка аутентификации над OAuth 2 • Добавляет сведения о профиле пользователя • Появляется Identity Token (регламентировано JWT) 5 Время перемен OpenSource IAM в 2023 -
OAuth и OIDC OAuth (RFC-6749) • Говоря про OAuth, чаще
всего имеется в виду OAuth 2.0 • Вводятся 2 токена: — Access token — Refresh token • Не отвечает за аутентификацию OIDC • Прослойка аутентификации над OAuth 2 • Добавляет сведения о профиле пользователя • Появляется Identity Token (регламентировано JWT) 5 Время перемен OpenSource IAM в 2023 -
Что если написать свою IAM систему? • Вам ее поддерживать
• Отсутствие внешней экспертизы • Интеграция с другими сервисами 6 Время перемен OpenSource IAM в 2023 -
Что если написать свою IAM систему? • Вам ее поддерживать
• Отсутствие внешней экспертизы • Интеграция с другими сервисами 6 Время перемен OpenSource IAM в 2023 -
Варианты IaM систем 7 • Authelia • Authentik • Zitadel
• Casdoor Время перемен OpenSource IAM в 2023 -
8 • Написан на Go • Имеется возможность оплатить support
• Имеются некритичные платные self-hosted features Немного фактов Время перемен OpenSource IAM в 2023 -
8 • Написан на Go • Имеется возможность оплатить support
• Имеются некритичные платные self-hosted features • 5000+ звезд • 70+ контрибьюторов • Активно закрываются различные баги Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023 -
8 • Написан на Go • Имеется возможность оплатить support
• Имеются некритичные платные self-hosted features • 5000+ звезд • 70+ контрибьюторов • Активно закрываются различные баги Немного фактов GitHub статистика Что пошло не так? • На момент выбора решение было сырым • Поддержка LDAP частично в разработке Время перемен OpenSource IAM в 2023 -
8 • Написан на Go • Имеется возможность оплатить support
• Имеются некритичные платные self-hosted features • 5000+ звезд • 70+ контрибьюторов • Активно закрываются различные баги Немного фактов GitHub статистика Что пошло не так? • На момент выбора решение было сырым • Поддержка LDAP частично в разработке Время перемен OpenSource IAM в 2023 -
9 • Написан на Python • Имеются платные self-hosted features
Немного фактов Время перемен OpenSource IAM в 2023 -
9 • Написан на Python • Имеются платные self-hosted features
• 4000+ звезд • 100+ контрибьюторов Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023 -
9 • Написан на Python • Имеются платные self-hosted features
• 4000+ звезд • 100+ контрибьюторов • На 1 человека приходится 98% залитого кода Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023 -
9 • Написан на Python • Имеются платные self-hosted features
• 4000+ звезд • 100+ контрибьюторов • На 1 человека приходится 98% залитого кода Немного фактов GitHub статистика Что пошло не так? • Отсутствует поддержка подгрупп внутри групп • LTS релизы только в Enterprise версии • В планах продукта разделение на Enterprise и Community версии Время перемен OpenSource IAM в 2023 -
9 • Написан на Python • Имеются платные self-hosted features
• 4000+ звезд • 100+ контрибьюторов • На 1 человека приходится 98% залитого кода Немного фактов GitHub статистика Что пошло не так? • Отсутствует поддержка подгрупп внутри групп • LTS релизы только в Enterprise версии • В планах продукта разделение на Enterprise и Community версии Время перемен OpenSource IAM в 2023 -
10 • Написан на Go • Простая установка • Имеется
некоторое количество плагинов Немного фактов Время перемен OpenSource IAM в 2023 -
10 • Написан на Go • Простая установка • Имеется
некоторое количество плагинов • 17000+ звезд • 100+ контрибьюторов • На 3 человека приходится 98% залитого кода Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023 -
10 • Написан на Go • Простая установка • Имеется
некоторое количество плагинов • 17000+ звезд • 100+ контрибьюторов • На 3 человека приходится 98% залитого кода Немного фактов GitHub статистика Что пошло не так? • Отсутствует поддержка SAML в качестве внешнего IdP • github.com/authelia/authelia/issues/189 – поддержка OIDC (все еще позиционируется как Beta) • github.com/authelia/authelia/issues/1275 – невозможность изменения конфига без перезапуска пода Время перемен OpenSource IAM в 2023 -
10 • Написан на Go • Простая установка • Имеется
некоторое количество плагинов • 17000+ звезд • 100+ контрибьюторов • На 3 человека приходится 98% залитого кода Немного фактов GitHub статистика Что пошло не так? • Отсутствует поддержка SAML в качестве внешнего IdP • github.com/authelia/authelia/issues/189 – поддержка OIDC (все еще позиционируется как Beta) • github.com/authelia/authelia/issues/1275 – невозможность изменения конфига без перезапуска пода Время перемен OpenSource IAM в 2023 -
11 • Написан на Go • Неофициально принадлежит Tencent •
Очень подробная документация по подключению внешних провайдеров Немного фактов Casdoor Время перемен OpenSource IAM в 2023 -
11 • Написан на Go • Неофициально принадлежит Tencent •
Очень подробная документация по подключению внешних провайдеров • 7000+ звезд • 140+ контрибьюторов • Активное community Немного фактов GitHub статистика Casdoor Время перемен OpenSource IAM в 2023 -
11 • Написан на Go • Неофициально принадлежит Tencent •
Очень подробная документация по подключению внешних провайдеров • 7000+ звезд • 140+ контрибьюторов • Активное community Немного фактов GitHub статистика Что пошло не так? • github.com/casdoor/casdoor/issues/1531 • Весьма сомнительные решения по MR в GitHub Casdoor Время перемен OpenSource IAM в 2023 -
11 • Написан на Go • Неофициально принадлежит Tencent •
Очень подробная документация по подключению внешних провайдеров • 7000+ звезд • 140+ контрибьюторов • Активное community Немного фактов GitHub статистика Что пошло не так? • github.com/casdoor/casdoor/issues/1531 • Весьма сомнительные решения по MR в GitHub Casdoor Время перемен OpenSource IAM в 2023 -
12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает
различные недостатки casdoor Немного фактов Casgate Время перемен OpenSource IAM в 2023 -
12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает
различные недостатки casdoor Немного фактов В чем отличие от Casdoor? • github.com/casdoor/casdoor/issues/1531 • Возможность создавать ссылку-приглашение • Добавлена возможность запросить смену пароля для пользователя при первом входе • Автоназначение роли по атрибутам от LDAP, SAML или OAuth • Гибкий AuthZ mapping ролей, основанный на casbin Casgate Время перемен OpenSource IAM в 2023 -
12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает
различные недостатки casdoor Немного фактов В чем отличие от Casdoor? • github.com/casdoor/casdoor/issues/1531 • Возможность создавать ссылку-приглашение • Добавлена возможность запросить смену пароля для пользователя при первом входе • Автоназначение роли по атрибутам от LDAP, SAML или OAuth • Гибкий AuthZ mapping ролей, основанный на casbin Casgate GitHub статистика Время перемен OpenSource IAM в 2023 -
12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает
различные недостатки casdoor Немного фактов В чем отличие от Casdoor? • github.com/casdoor/casdoor/issues/1531 • Возможность создавать ссылку-приглашение • Добавлена возможность запросить смену пароля для пользователя при первом входе • Автоназначение роли по атрибутам от LDAP, SAML или OAuth • Гибкий AuthZ mapping ролей, основанный на casbin Casgate GitHub статистика Время перемен OpenSource IAM в 2023 -
13 • Написан на Java • Разработан RedHat • Лежит
в основе RedHat SSO Немного фактов Keycloak Время перемен OpenSource IAM в 2023 -
13 • Написан на Java • Разработан RedHat • Лежит
в основе RedHat SSO Немного фактов Keycloak GitHub статистика • 17000+ звезд • 950+ контрибьюторов • Очень большое community Время перемен OpenSource IAM в 2023 -
13 • Написан на Java • Разработан RedHat • Лежит
в основе RedHat SSO Немного фактов Почему остановились на нем? Keycloak GitHub статистика • 17000+ звезд • 950+ контрибьюторов • Очень большое community • Быстрые фиксы найденных уязвимостей • RedHat, как maintainer продукта • Существует с 2014 года • Большое количество плагинов • Большое community • Чат в Telegram • Профильные конференции Время перемен OpenSource IAM в 2023 -
Немного истории 16 2021 год Сами написали сервис авторизации на
основе Azure AD + auth_request на nginx Март 2022 Azure объявляет об уходе из РФ Апрель 2022 Первоначальное подключение Keycloak как SSO в наши приложения Июнь 2022 Переход на работу с Keycloak, через proxy Август 2022 Обновление 17 -> 19 Октябрь 2023 Обновление 19 -> 21 Время перемен OpenSource IAM в 2023 -
Управление Keycloak 19 • Используем terraform провайдер для IaC: Время
перемен OpenSource IAM в 2023 -
Базовые настройки безопасности Keycloak 20 • Закрыть master realm •
Следовать рекомендациям по настройке reverse proxy • Закрыть endpoint с метриками Время перемен OpenSource IAM в 2023 -
OIDC через proxy Посмотрим со стороны приложения 24 Время перемен
OpenSource IAM в 2023 -
Время перемен OpenSource IAM в 2023 Почему остановились на proxy?
27 • Для обновления Keycloak не подключаем разработчиков • Для обновления proxy разработчики также не нужны • Позволяет легко сменить SSO провайдера • Разграничение зон ответственности • Прозрачные логи перехода пользователей по URL -
Проблематика • Создание пользователя через UI отнимает много времени •
Небезопасная передача паролей • Пользователи забывают пароли • Привязка пользователя в БД к доменной УЗ 29 Время перемен OpenSource IAM в 2023 -
Решение 30 • Для выдачи прав достаточно выдать роль в
Keycloak • Пароли генерируются автоматически и присылаются на почту • При блокировке УЗ – права пропадают автоматически • Общее время на выдачу прав сократилось в разы Время перемен OpenSource IAM в 2023 -
Спасибо за внимание! Maxim Yurchenko mv-yurchenko mv_yurchenko [email protected] Спасибо за
внимание! Фамилия Имя Контакты