Gluu vs keycloack vs wso2 управление идентификацией
Я провожу исследование для какой платформы я должен использовать для своей компании, мы используем Auth0, и мы хотели бы перейти на новую.
Я рассматриваю новые платформы:
- Keycloack
- Gluu
- Управление идентификацией Wso2
У кого-нибудь есть опыт работы с этими платформами? Можете ли вы подсказать, какие преимущества и недостатки есть у какой-либо платформы? И что вы предлагаете мне выбрать?
Пока что мне удалось установить gluu server, keycloack и wso2, кажется очень хитрым.
1 ответ
Я основатель Gluu. Я могу пролить свет на дизайнерские решения:
Это правда, что мы используем хорошие компоненты с открытым исходным кодом, где существует активное сообщество. Почему мы должны заново изобретать колесо? Shibboleth IDP - отличная, всесторонняя реализация. Проблемы быстро решаются Консорциумом Shibboleth, который финансирует разработчиков для исследования любых потенциальных проблем и быстрого исправления программного обеспечения. Мы также используем Passport-js. Имея более 300 стратегий для многих социальных сетей, мы не могли бы охватить весь спектр необходимых разъемов, если бы все написали сами. Наконец, мы разделили последний выпуск OpenDJ с открытым исходным кодом, который был стабильным для нас в производстве более десяти лет. Можно сказать, что во многих отношениях Gluu - это пылесос с открытым исходным кодом - мы находим хорошие компоненты с открытым исходным кодом и интегрируем их в нашу платформу. Это позволяет нам сосредоточиться на разработке компонентов, в которые мы добавляем наибольшую ценность - инструменты OAuth2, UMA, OpenID Connect и devops. В этих областях мы не можем полагаться на внешнее сообщество, чтобы внедрять инновации достаточно быстро. В SAML или LDAP нет ничего нового. Но OAuth быстро развивается. Поэтому наша цель - внедрить программное обеспечение с очень стабильными стандартами и написать программное обеспечение, в котором нам необходимо быстро внедрять инновации. Остерегайтесь компаний, которые хотят написать весь стек - это приводит к серьезным недостаткам продукта, потому что ни одна компания не может быть экспертом во всем. Сила методологии разработки открытого исходного кода заключается в использовании сообщества.
Мы очень усердно работаем над интеграцией компонентов, чтобы снизить затраты на развертывание и эксплуатацию. Если вы мне не верите, попробуйте установить Gluu Server. Все, что вам нужно сделать, это установить пакет, запустить программу установки, ответить на 10 вопросов, и все готово. Сравните это с инструкциями по развертыванию других платформ IAM - либо с открытым исходным кодом, либо с коммерческой. Что вы обнаружите, так это то, что они позволят вам сбросить файлы war в контейнеры сервлетов, отредактировать вручную файлы конфигурации, настроить базы данных, запустить множество служб, настроить веб-серверы и так далее. Вы могли бы сказать, что любой дистрибутив linux - это тоже связка программного обеспечения с открытым исходным кодом. Но, как и дистрибутив Linux, Gluu Server интегрирован, протестирован и поддерживается в течение длительного периода времени. Уже более десяти лет мы поддерживаем критически важные развертывания в сферах финансов, правительства, телекоммуникаций, здравоохранения, розничной торговли, университетов и многих других. Кроме того, со временем мы оптимизировали Gluu Server для низких эксплуатационных расходов. Со временем операционные затраты являются основным фактором, влияющим на совокупную стоимость владения. Эксплуатационные расходы превышают даже стоимость лицензий - поэтому, если вы считаете, что коммерческий продукт дешевле в эксплуатации, вы должны оплатить лицензию. Мы достигли низкой совокупной стоимости владения, предоставив административный интерфейс и инструменты. И за счет сокращения разовых интеграций и запатентованных решений безопасности (путем поддержки только широко принятых открытых стандартов безопасности). Быстрое проприетарное решение одного поставщика - это головная боль завтрашнего дня поддержки / обновления.
Gluu сделала огромные инвестиции в "брокерскую деятельность по идентификации", которую мы называем управлением "входящей идентификацией". Вот почему мы интегрировали Passport-JS. Вы можете принимать входящие удостоверения от SAML, OpenID Connect, CAS, Facebook, Microsoft Azure AD, Linkedin или более 300 различных провайдеров социальных сетей. Фактически, входящая идентификация является движущей силой нашего бизнеса. Ни одна другая платформа не обладает такой гибкостью для управления рабочим процессом, как сопоставление атрибутов, динамическая регистрация пользователей (которые появляются на вашем веб-сайте впервые через социальный вход в систему или SAML) или дополнительные методы обнаружения мошенничества после подтверждения.
Мы протестировали с OpenJDK. Версия 2.4.4 использовала только OpenJDK. Вопрос о том, какую JVM с открытым исходным кодом использовать, является отраслевой проблемой, которая одинакова для всех: Keycloak, WS02 и Gluu используют Java. Эксплуатационные расходы, скорость, кластеризация, функции: это драйверы для развертывания платформы IAM, а не JVM.
Когда вы рассматриваете IAM с открытым исходным кодом, вам следует рассмотреть четыре основных компонента: код, документы, пакеты и поддержка. Если вы рассмотрите все эти факторы, вы увидите, что Gluu - единственный с сильной историей в каждой категории. Пакеты особенно важны. Gluu предоставляет пакеты для Centos, Red Hat, Ubuntu и Debian. Мы также предоставляем дистрибутив контейнеров linux, Kubernetes и вскоре Helm. Системным администраторам не нужен код, они хотят легко устанавливать двоичные файлы (и легко обновлять). Полная документация также является проблемой. И, наконец, поддержка сообщества имеет важное значение. Список рассылки недостаточно для IAM. Проблемы слишком сложны. Вот почему мы запустили портал поддержки: https://support.gluu.org/ Gluu тратит много времени на ответы на вопросы сообщества. Несмотря на то, что всегда есть ограничения - мы не собираемся поддерживать крупные компании бесконечно (мы зарабатываем на жизнь, продавая контракты на поддержку)- мы проверяем каждую проблему поддержки и стараемся помочь сообществу осмотреться и преодолеть любые проблемы блокирования,
Keycloak является частью Red Hat, которая приобретается IBM. Это создало немало неопределенности вокруг продукта, что вызывает сожаление. Я хотел бы видеть надежный рынок для IAM с открытым исходным кодом. Однако реальность такова, что у IBM есть платформа IAM, и вопрос о том, сложен ли Keycloak в это предложение, окончен ли он или раздвоен, является открытым вопросом, на который не обратились ни IBM, ни Red Hat. IBM не позволит инженерам работать над проектами с открытым исходным кодом, которые конкурируют с их собственными продуктами. Поэтому, если Keycloak продолжится, нынешней команде придется уйти от своего работодателя, или кому-то еще придется его раскошелиться. Это легче сказать, чем сделать. В Gluu мы строим бизнес на открытой платформе Soure, и это действительно сложный рынок. Существуют крупные конкуренты и сильные SaaS-предложения (такие как Okta, Microsoft Azure AD и Google Identity). Написание кода недостаточно - учитывая инновации и увеличивающуюся область безопасности, продукт IAM требует постоянных усилий, чтобы сохранить его актуальность. IAM-инфраструктуру сложно заменить. Убедитесь, что вы понимаете, что то, что вы устанавливаете, будет в течение длительного времени. В Gluu мы занимаемся этим уже 10 лет. Мы финансируемы изнутри, поэтому у нас нет венчурных капиталистов, которые бы давали им выход. У нас есть долгосрочное видение, чтобы выиграть на внутреннем рынке IAM путем создания лучшего продукта и привлечения самого большого сообщества к нашему продукту. Это может занять еще несколько десятилетий. Но мы в этом надолго.
Убедитесь, что продукты, которые вы рассматриваете, как минимум прошли сертификацию OpenID Connect: https://openid.net/certification/
Несмотря на то, что Gluu Server делает многое, он все еще является частью более широкого сообщества разработчиков систем безопасности и идентификации с открытым исходным кодом. Это одна из причин, по которой я написал книгу на тему "Охрана периметра". Он охватывает теорию, лежащую в основе продукта (что такое SAML?), А также показывает примеры использования сервера Gluu и... других продуктов с открытым исходным кодом для достижения ваших целей. Вы можете найти его на Apress по адресу: https://gluu.co/book
Сервер Gluu был разработан с учетом трех целей: 1) скорость; 2) резервирование; 3) Низкая стоимость владения. Существует большая разница между "проектом" и "продуктом". Продукты включают документы, QA, упаковку, маркетинг, поддержку, обучение, инструменты devops - все, что вам нужно для успеха проекта. И есть также разница между "продуктом" и "платформой". Gluu Server - не единственный наш продукт. У нас также есть: 1) Super Gluu (мобильное приложение FIDO 2FA); 2) oxd (сервер промежуточного ПО клиента OAuth); 3) Диспетчер кластеров (графический интерфейс для развертывания кластеров); 4) Casa (веб-портал для учетных данных Mg / Consent Mgt); 5) Gluu Gateway (API-интерфейс на основе Kong-CE).
- Несколько других важных функций, которые вы должны рассмотреть: 1) Поддержка FIDO - у сервера Gluu есть конечные точки для FIDO2 и FIDO U2F; 2) Поддержка UMA -Gluu является единственной платформой, которая поддерживает как токен UMA, так и конечную точку authz, мы также являемся единственной платформой, которая поставляет программное обеспечение клиента и RS для UMA; 3) Простой механизм расширения - сценарии перехвата Gluu позволяют настраивать поведение сервера Gluu на определенных критических этапах путем написания бизнес-логики с синтаксисом Python; 4) Простота резервного копирования и восстановления (даже используя пакеты linux, Gluu Server может быть скопирован с помощью простой команды tar); 5) Поддержка многопартийных федераций
Я надеюсь, что вы найдете эти пункты полезными в вашей оценке. Решение о том, какую платформу IAM использовать, является важным решением - оно может быть с вами в течение десяти или более лет. Если вы решите использовать Gluu Server, вы очень добро пожаловать в сообщество. И я думаю, вы обнаружите, что в будущем появится много замечательных функций, которые укрепят нашу позицию лидера рынка IAM с открытым исходным кодом.
Я делаю похожий поиск, и в целом они кажутся очень похожими, что означает, что любой из них, вероятно, не будет плохим выбором:
- Поддержка аналогичных протоколов (OpenID Connect, OAuth2, SAML 2)
- Интерфейс администратора
- Поддержка многофакторной аутентификации
- Открытый исходный код с доступной коммерческой поддержкой
Я документирую свои результаты здесь, но я постараюсь выделить мои основные выводы:
WSO2 Identity Server
К сожалению, для меня это были красные флаги, которые всплыли, когда я смотрел на это:
- Загружаемые двоичные файлы на их сайте не содержат последних обновлений безопасности. Хотя вы можете скомпилировать и упаковать себя из исходного кода, неясно, являются ли последние исправления безопасности открытыми. ( http://lists.jboss.org/pipermail/keycloak-user/2016-August/007281.html)
Похоже, что он работает на своем собственном промежуточном программном обеспечении (WSO2 Carbon), что означает, что вы не сможете использовать имеющийся опыт работы с Tomcat, WildFly, Jetty и т. Д.
Отсутствует поддержка OpenJDK (это стало проблемой из-за недавних изменений в доступности Oracle Java)- Расспросив их об этом, они, похоже, начали включать OpenJDK в свои тесты совместимости для определенных версий.
Последние версии не тестируются на серверных ОС- Согласно их матрице совместимости, она протестирована на Windows 8, 10, Ubuntu, Fedora (все настольные ОС)
- По-прежнему это так, но я не думаю, что есть основания полагать, что WSO2 Identity Server не будет работать на серверных ОС.
Gluu
У Gluu сложилось впечатление, что он состоит из нескольких продуктов с открытым исходным кодом, склеенных вместе. Хотя это может быть невероятный продукт, я не решался даже попробовать его, потому что был обеспокоен тем, насколько хорошо все части будут взаимодействовать и насколько хорошо Gluu сможет поддерживать компоненты, созданные кем-то другим.
Одним из таких компонентов является Shibboleth IdP, на который Gluu полагается для SAML. Поскольку Shibboleth IdP не поддерживает OpenJDK, я ожидаю, что Gluu также будет иметь такое же ограничение.
Хотя WSO2 IS и Keycloak поддерживают брокерскую идентификацию, я не нашел ничего в документации Gluu, указывающей, что она поддерживает эту функцию.
Keycloak
В отличие от Gluu, Keycloak был разработан с нуля как единый продукт. Это также единственный продукт из 3, который поддерживает OpenJDK.
Keycloak, казалось, как нельзя лучше подходил для моей ситуации, поэтому он был единственным из трех, которые я попробовал.
Я столкнулся с несколькими небольшими ошибками и заметил пару раз, что документация не была достаточно конкретной, чтобы полностью помочь мне в решении поставленной задачи. Это может быть связано с его относительной незрелостью (первый выпуск был в сентябре 2014 года), но, несмотря на это, в целом он казался солидным продуктом.
другие
У меня нет опыта в этом, но, основываясь на других перечисленных вами продуктах, они могут вас заинтересовать:
Если между продуктами нет большого расстояния с точки зрения функциональных возможностей, подумайте над следующими предложениями:
- Спросите вокруг своей компании и посмотрите, есть ли внутренние знания.
- Попробуйте несколько PoC вокруг ваших основных сценариев использования (включая технические стеки) или сценариев использования, которые, по вашему мнению, будут самыми хитрыми, чтобы увидеть, как вы справляетесь.
- Определите ваши ключевые технические стеки и найдите проекты с открытым исходным кодом с похожими техническими стеками - посмотрите, какие они используют.
- Поскольку сами проекты имеют открытый исходный код, посмотрите, насколько активны их репозитории GitHub.
- Посмотрите на их форумах поддержки или теги переполнения стека и посмотрите, насколько они активны. Вы хотите знать, что вы можете получить помощь.
- Попробуйте определить, что является самым популярным или быстро растет
Эти предложения могут быть более или менее применимы к вам - они не упорядочены по важности. Дело в том, что вам нужно решение, наилучшее для вашей ситуации, быстрое взвешивание, а также долгосрочный рост.