Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Moscow Python Meetup №85. Максим Юрченко. Время...

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

October 25, 2023
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Время перемен OpenSource IAM в 2023 Identity and Access Management

    (IAM) 3 Регистрация Авторизация Аутентификация
  2. Время перемен OpenSource IAM в 2023 Identity and Access Management

    (IAM) 3 Регистрация Авторизация Аутентификация Аудит доступов Управление пользователями
  3. IAM + SSO 4 • Проверяет подлинность пользователя • Является

    единым местом по выдаче прав и ролей • Единая точка аудита действий пользователя • Берет на себя вопрос интеграции с внешними системами Время перемен OpenSource IAM в 2023
  4. OAuth и OIDC OAuth (RFC-6749) • Говоря про OAuth, чаще

    всего имеется в виду OAuth 2.0 • Вводятся 2 токена: — Access token — Refresh token • Не отвечает за аутентификацию 5 Время перемен OpenSource IAM в 2023
  5. OAuth и OIDC OAuth (RFC-6749) • Говоря про OAuth, чаще

    всего имеется в виду OAuth 2.0 • Вводятся 2 токена: — Access token — Refresh token • Не отвечает за аутентификацию OIDC • Прослойка аутентификации над OAuth 2 • Добавляет сведения о профиле пользователя • Появляется Identity Token (регламентировано JWT) 5 Время перемен OpenSource IAM в 2023
  6. OAuth и OIDC OAuth (RFC-6749) • Говоря про OAuth, чаще

    всего имеется в виду OAuth 2.0 • Вводятся 2 токена: — Access token — Refresh token • Не отвечает за аутентификацию OIDC • Прослойка аутентификации над OAuth 2 • Добавляет сведения о профиле пользователя • Появляется Identity Token (регламентировано JWT) 5 Время перемен OpenSource IAM в 2023
  7. Что если написать свою IAM систему? • Вам ее поддерживать

    • Отсутствие внешней экспертизы • Интеграция с другими сервисами 6 Время перемен OpenSource IAM в 2023
  8. Что если написать свою IAM систему? • Вам ее поддерживать

    • Отсутствие внешней экспертизы • Интеграция с другими сервисами 6 Время перемен OpenSource IAM в 2023
  9. Варианты IaM систем 7 • Authelia • Authentik • Zitadel

    • Casdoor Время перемен OpenSource IAM в 2023
  10. 8 • Написан на Go • Имеется возможность оплатить support

    • Имеются некритичные платные self-hosted features Немного фактов Время перемен OpenSource IAM в 2023
  11. 8 • Написан на Go • Имеется возможность оплатить support

    • Имеются некритичные платные self-hosted features • 5000+ звезд • 70+ контрибьюторов • Активно закрываются различные баги Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023
  12. 8 • Написан на Go • Имеется возможность оплатить support

    • Имеются некритичные платные self-hosted features • 5000+ звезд • 70+ контрибьюторов • Активно закрываются различные баги Немного фактов GitHub статистика Что пошло не так? • На момент выбора решение было сырым • Поддержка LDAP частично в разработке Время перемен OpenSource IAM в 2023
  13. 8 • Написан на Go • Имеется возможность оплатить support

    • Имеются некритичные платные self-hosted features • 5000+ звезд • 70+ контрибьюторов • Активно закрываются различные баги Немного фактов GitHub статистика Что пошло не так? • На момент выбора решение было сырым • Поддержка LDAP частично в разработке Время перемен OpenSource IAM в 2023
  14. 9 • Написан на Python • Имеются платные self-hosted features

    Немного фактов Время перемен OpenSource IAM в 2023
  15. 9 • Написан на Python • Имеются платные self-hosted features

    • 4000+ звезд • 100+ контрибьюторов Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023
  16. 9 • Написан на Python • Имеются платные self-hosted features

    • 4000+ звезд • 100+ контрибьюторов • На 1 человека приходится 98% залитого кода Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023
  17. 9 • Написан на Python • Имеются платные self-hosted features

    • 4000+ звезд • 100+ контрибьюторов • На 1 человека приходится 98% залитого кода Немного фактов GitHub статистика Что пошло не так? • Отсутствует поддержка подгрупп внутри групп • LTS релизы только в Enterprise версии • В планах продукта разделение на Enterprise и Community версии Время перемен OpenSource IAM в 2023
  18. 9 • Написан на Python • Имеются платные self-hosted features

    • 4000+ звезд • 100+ контрибьюторов • На 1 человека приходится 98% залитого кода Немного фактов GitHub статистика Что пошло не так? • Отсутствует поддержка подгрупп внутри групп • LTS релизы только в Enterprise версии • В планах продукта разделение на Enterprise и Community версии Время перемен OpenSource IAM в 2023
  19. 10 • Написан на Go • Простая установка • Имеется

    некоторое количество плагинов Немного фактов Время перемен OpenSource IAM в 2023
  20. 10 • Написан на Go • Простая установка • Имеется

    некоторое количество плагинов • 17000+ звезд • 100+ контрибьюторов • На 3 человека приходится 98% залитого кода Немного фактов GitHub статистика Время перемен OpenSource IAM в 2023
  21. 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
  22. 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
  23. 11 • Написан на Go • Неофициально принадлежит Tencent •

    Очень подробная документация по подключению внешних провайдеров Немного фактов Casdoor Время перемен OpenSource IAM в 2023
  24. 11 • Написан на Go • Неофициально принадлежит Tencent •

    Очень подробная документация по подключению внешних провайдеров • 7000+ звезд • 140+ контрибьюторов • Активное community Немного фактов GitHub статистика Casdoor Время перемен OpenSource IAM в 2023
  25. 11 • Написан на Go • Неофициально принадлежит Tencent •

    Очень подробная документация по подключению внешних провайдеров • 7000+ звезд • 140+ контрибьюторов • Активное community Немного фактов GitHub статистика Что пошло не так? • github.com/casdoor/casdoor/issues/1531 • Весьма сомнительные решения по MR в GitHub Casdoor Время перемен OpenSource IAM в 2023
  26. 11 • Написан на Go • Неофициально принадлежит Tencent •

    Очень подробная документация по подключению внешних провайдеров • 7000+ звезд • 140+ контрибьюторов • Активное community Немного фактов GitHub статистика Что пошло не так? • github.com/casdoor/casdoor/issues/1531 • Весьма сомнительные решения по MR в GitHub Casdoor Время перемен OpenSource IAM в 2023
  27. 12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает

    различные недостатки casdoor Немного фактов Casgate Время перемен OpenSource IAM в 2023
  28. 12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает

    различные недостатки casdoor Немного фактов В чем отличие от Casdoor? • github.com/casdoor/casdoor/issues/1531 • Возможность создавать ссылку-приглашение • Добавлена возможность запросить смену пароля для пользователя при первом входе • Автоназначение роли по атрибутам от LDAP, SAML или OAuth • Гибкий AuthZ mapping ролей, основанный на casbin Casgate Время перемен OpenSource IAM в 2023
  29. 12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает

    различные недостатки casdoor Немного фактов В чем отличие от Casdoor? • github.com/casdoor/casdoor/issues/1531 • Возможность создавать ссылку-приглашение • Добавлена возможность запросить смену пароля для пользователя при первом входе • Автоназначение роли по атрибутам от LDAP, SAML или OAuth • Гибкий AuthZ mapping ролей, основанный на casbin Casgate GitHub статистика Время перемен OpenSource IAM в 2023
  30. 12 • Fork Casdoor • Разрабатывается группой энтузиастов • Закрывает

    различные недостатки casdoor Немного фактов В чем отличие от Casdoor? • github.com/casdoor/casdoor/issues/1531 • Возможность создавать ссылку-приглашение • Добавлена возможность запросить смену пароля для пользователя при первом входе • Автоназначение роли по атрибутам от LDAP, SAML или OAuth • Гибкий AuthZ mapping ролей, основанный на casbin Casgate GitHub статистика Время перемен OpenSource IAM в 2023
  31. 13 • Написан на Java • Разработан RedHat • Лежит

    в основе RedHat SSO Немного фактов Keycloak Время перемен OpenSource IAM в 2023
  32. 13 • Написан на Java • Разработан RedHat • Лежит

    в основе RedHat SSO Немного фактов Keycloak GitHub статистика • 17000+ звезд • 950+ контрибьюторов • Очень большое community Время перемен OpenSource IAM в 2023
  33. 13 • Написан на Java • Разработан RedHat • Лежит

    в основе RedHat SSO Немного фактов Почему остановились на нем? Keycloak GitHub статистика • 17000+ звезд • 950+ контрибьюторов • Очень большое community • Быстрые фиксы найденных уязвимостей • RedHat, как maintainer продукта • Существует с 2014 года • Большое количество плагинов • Большое community • Чат в Telegram • Профильные конференции Время перемен OpenSource IAM в 2023
  34. Немного истории 16 2021 год Сами написали сервис авторизации на

    основе Azure AD + auth_request на nginx Март 2022 Azure объявляет об уходе из РФ Апрель 2022 Первоначальное подключение Keycloak как SSO в наши приложения Июнь 2022 Переход на работу с Keycloak, через proxy Август 2022 Обновление 17 -> 19 Октябрь 2023 Обновление 19 -> 21 Время перемен OpenSource IAM в 2023
  35. Базовые настройки безопасности Keycloak 20 • Закрыть master realm •

    Следовать рекомендациям по настройке reverse proxy • Закрыть endpoint с метриками Время перемен OpenSource IAM в 2023
  36. Время перемен OpenSource IAM в 2023 Почему остановились на proxy?

    27 • Для обновления Keycloak не подключаем разработчиков • Для обновления proxy разработчики также не нужны • Позволяет легко сменить SSO провайдера • Разграничение зон ответственности • Прозрачные логи перехода пользователей по URL
  37. Проблематика • Создание пользователя через UI отнимает много времени •

    Небезопасная передача паролей • Пользователи забывают пароли • Привязка пользователя в БД к доменной УЗ 29 Время перемен OpenSource IAM в 2023
  38. Решение 30 • Для выдачи прав достаточно выдать роль в

    Keycloak • Пароли генерируются автоматически и присылаются на почту • При блокировке УЗ – права пропадают автоматически • Общее время на выдачу прав сократилось в разы Время перемен OpenSource IAM в 2023