Keycloak против MaxKey, как выбрать систему единого входа с открытым исходным кодом?
Keycloak против MaxKey, как выбрать систему единого входа с открытым исходным кодом?

Единый вход Sign On)сокращенноSSO,Пользователям достаточно один раз войти в систему и пройти аутентификацию, чтобы получить доступ ко всем взаимно доверенным прикладным системам.,Нет необходимости входить в систему снова.

Основные функции:

  1. Все прикладные системы используют общую систему аутентификации личности.
  2. Все прикладные системы могут идентифицировать и извлекать информацию о билетах.

протокол

Пользователь середина Heart System как Server,Он должен быть связан с клиентом для авторизации&Получить информацию о пользователеиз。В настоящее время в целом популяренизиметь LDAP, CAS, OIDC (на основе Oauth2.0)、SAML и т. д., кроме того Kerberos и т. д. встречаются реже изпротокол. Его цель в основном та же: браузер инициирует запрос клиенту, а клиент обращается к пользовательской системе для получения Cookie или другие условия аутентификации, пользовательская система несет ответственность за вход в систему и возврат условий аутентификации клиенту.

LDAP

Lightweight Directory Access Протокол, облегченный протокол доступа к каталогам. Этот протокол может быть знаком студентам, которые немного имели дело с корпоративными службами. Это относительно старый протокол сертификации, но он все еще предоставляется большинством пользовательских систем внутри компании. ЛДАП Он хранится в виде файла, через IP Протокол осуществляет аутентификацию и авторизацию пользователей с четкой иерархической структурой, что особенно подходит для внутренней пользовательской системы компании. Когда присоединяются новые сотрудники, вам нужно добавить только одного LDAP участники могут получить доступ wiki、gitlab、oa Жду всех систем. Большинство интернет-компаний, таких как Baidu, Alibaba и Ele.me, используют этот метод для внутреннего управления сотрудниками. Конкретная ссылка: https://ldap.com/

CAS

CAS лабораторией Йельского университета 2002 В 2017 году была выпущена унифицированная служба аутентификации с открытым исходным кодом серединаизстандартного протокола, которая также используется многими предприятиями для внутреннего входа в систему, например, Alibaba. C Протокол входа в терминал, такой как Alipay, Taobao. См. подробный стандарт протокола. https://apereo.github.io/cas/6.4.x/protocol/CAS-Protocol-Specification.html . Его суть в том, что сервер возвращает ticket как Условия сертификации,Клиент определяет, существует ли условие,Если он существует, проверьте статус входа пользователя через интерфейс проверки.,Также возвращает информацию о пользователе,В противном случае войдите в систему. При этом клиент может настроить процесс входа в систему.,Предоставляется через серверизинтерфейс для аутентификации。Общий процесс показан на рисунке.^1

Пользователь Apereo CAS,Кроме того, некоторые языки также разработали разные серверы в соответствии с этим протоколом.,Однако приложений мало.

OIDC (реализация OAuth 2.0)

Open ID Connect основан на Oauth 2.0 из протокола Open Identity Authentication. Оаутент2 Это сам протокол аутентификации, который обеспечивает поток авторизации, и стандартный общий протокол, который не имеет контента, связанного с аутентификацией личности пользователя. ОИДК На этой основе реализована аутентификация пользователя, которая полностью совместима с Оаутентификация 2.0. Поэтому для наших общих открытых платформ, таких как Weibo, QQ и WeChat, обзор документов Oauth2.0 протокола, по сути, использование из – это тоже нестандартная структура из OIDC, и о чем все в основном говорили Oauth2.0==OIDC。

OIDC В настоящее время широко используется протокол аутентификации пользователей, официальный сайт: https://openid.net/connect/ . Самым основным из них является режим кода авторизации, а затем поддерживается поток прямой авторизации, поток неявной авторизации, авторизация по паролю и другая одноранговая аутентификация на стороне клиента, однократная аутентификация и другие методы процесса авторизации.

Основной процесс режима кода авторизации заключается в том, что клиент инициирует запрос к серверу, запрашивая интерфейс авторизации сервера с параметрами состояния, client_id, client_secret, redirect_uri и области действия. После того, как сервер открывает собственную страницу авторизации для авторизации, он. перезвонит по адресу redirect_uri с параметром «Код есть». Клиент обменивает код на access_token с сервера, а затем может использовать токен для любых действий. (Лень рисовать картинки...)

OIDC На всех (не почти) языках доступен фреймворк середина, и все пользовательские системы также поддерживаются, поэтому это очень широко используемый изпротокол. Обычно мы используем авторизованный логин WeChat, QQ. Авторизованный вход, Github Все входы в систему используют этот метод аутентификации.

SAML

Security Assertion Markup Язык, язык разметки утверждений безопасности. один на основе xml Изпротокол обмена данными аутентификации и авторизации между различными доменами безопасности представляет собой очень классический протокол авторизации. Поэтому в большинстве пользовательских систем будет SAML протоколизподдержки. Однако использование из в Китае все еще относительно невелико, сообщает OIDC. Внешний вид привлек к себе всеобщее внимание. Для ознакомления обратитесь к Википедии: Язык разметки утверждений безопасности

Apereo CAS

Официальный сайт:https://apereo.github.io/cas/6.4.x/index.html

Это старая система единого входа, разработанная на языке Java, которая до сих пор активно поддерживается с полным графиком выпуска и циклом обслуживания. На официальном сайте представлены следующие функции:

Spring Webflow/Spring Boot Java server component. Pluggable authentication support (LDAP, Database, X.509, SPNEGO, JAAS, JWT, RADIUS, MongoDb, etc) Support for multiple protocols (CAS, SAML v1, SAML v2, WS-Federation, OAuth2, OpenID, OpenID Connect, REST) Support for multifactor authentication via a variety of providers (Duo Security, FIDO U2F, YubiKey, FIDO2 WebAuthN, Google Authenticator, Authy, Acceptto, Inwebo, etc.) Support for delegated authentication to external providers such as ADFS, Facebook, Twitter, SAML2 IdPs, etc. Built-in support for password management, notifications, terms of use and impersonation. Support for attribute release including user consent. Monitor and track application and system behavior, statistics and metrics in real-time. Manage and review audits and logs centrally, and publish data to a variety of downstream systems. Manage and register client applications and services with specific authentication policies. Cross-platform client support (Java, .Net, PHP, Perl, Apache, etc). Integrations with InCommon, Box, Office365, ServiceNow, Salesforce, Workday, WebAdvisor, Drupal, Blackboard, Moodle, Google Apps, etc.

Его съемная сертификацияподдерживать、многопротоколподдерживать、OTP Поддержка и многие другие функции являются основными моментами. Как уже говорилось, многие внутренние системы используют вторичное развитие или расширение. CAS, например Alibaba.

Развертывание поддерживает Docker и встроенную войну.

Разработка и внедрение CAS Overlay метод, то есть после первого развертывания определенный файл ресурсов или class Скопируйте файл на свойизsrc/mainВторичная разработка в каталоге,существовать package автоматически заменит ваши файлы в исходный проект для настройки функций.

Интерфейс входа в систему по умолчанию в последней версии (6.4) CAS выглядит следующим образом:

это использовать запуск Docker из. После входа в систему интерфейс также очень прост.,существовать左侧иметь相关文档链接избоковая панель。Вы можете обратиться к другим людям за базовыми методами запуска.изстатья:https://www.cnblogs.com/zhzhlong/p/11551361.html

CAS Это система, ориентированная на аутентификацию, поэтому функция регистрации отсутствует. По умолчанию информация о пользователе сохраняется в памяти. Все конфигурации используются. Java из yml форматировать файл. Итак, если вы хотите использовать MySQL как механизм хранения,Тогда вам нужно представитьmysql-connector然后再существовать yml Настройте подключение к базе данных, структуру таблиц и другую информацию. Необходимо пройти регистрацию и другие функции. overlay из способа расширения. и overlay Я попробовал из, и можно сказать, что он довольно сложен в использовании. После его настройки Docker Образ также необходимо перекомпилировать.

В общем, КАС Это очень мощная система аутентификации пользователей, и существует множество связанных с ней плагинов с открытым исходным кодом. Но поскольку он слишком мощный и специализированный, нам обычно нужны дополнительные функции, но мы не хотим их использовать. CAS как Использование его в производственной среде потребует много работы. И документация не очень подробная. Доступ CAS Он должен поддерживать язык клиента, например PHP-CAS ждать.

Keycloak

Keycloak В 2013 Выпущен в конце года 1.0-alpha версия, последняя версия на данный момент 15.0.2 Сейчас 16.0.0 середина разрабатывается полным ходом. Это относительно полная система аутентификации пользователей, разработанная Java разработка, база jboss。

При написании этого абзаца Keycloak Официальный сайт опубликовал сообщение, возвещающее о начале новой эры изновыйиз. maintainer: Tomas Даримонт, главный ответственный за keycloak.X из Развитие.

относительно CAS,Keycloak Не столько изпротоколизподдержки, сколько сертифицированный протоколподдержки OIDC и SAML, будет LDAP и Kerberos как интеграция протокола хранения данных пользователя. использовать Freemarker как HTML шаблон. Встроенный сторонний авторизованный вход. проходить jboss Предоставление услуги горячей погрузки может способствовать расширению. Все встроенные функции могут быть расширены. поддерживать Регистрация! Родное одобрение Postgres、MySQL、SQLite Подождите, пока ядро ​​базы данных.

Более того, его стандартный вход в Интерфейс системы в принципе не агрессивен. Как показано на рисунке:

Поддержка развертывания Докер, родной развертывание ожидания. Встроенная консоль управления, поддержки и многое другое. область. Предоставляется по умолчанию Master из realm Для общего управленческого использования, как правило, мы создаем свои собственные realm。

Расширение пути основано наhttps://www.keycloak.org/docs/latest/server_development/index.html,Определите функцию, которую необходимо настроить как SPI, развернуть в deployments Просто в каталоге. Темы также можно настроить, написав base Шаблон из css осознать。Изображение вышеиз Тема встроенаизkeycloakтема。

конечно,Есть и недостатки,Например, не хватает одобренияизпротокола.,Пользовательское хранилище не может быть настроено,Документ недостаточно детализирован~~ (Насколько подробным должен быть шаблон, чтобы его можно было удовлетворить?) Более важным является то, что,Его пользовательские атрибуты могут быть расширены за,Но обязательные поля по умолчанию удалить нельзя.,Например, широко используется за рубежомизFirst NameLast Name,И нам может просто понадобиться прозвище,Отмена первых двух обязательных атрибутов требует некоторой доработки.

MaxKey

Официальный сайт: https://www.maxkey.top

MaxKeyСистема аутентификации с единым входом,Омофон Марксаиз Ключевое значение – самый большой ключ,даВедущие в отрасли продукты IAM для управления идентификацией и аутентификации,поддерживатьOAuth 2.x/OpenID Connect、SAML 2.0、JWT、CAS、SCIMждать Стандартный,поставлятьСтандарты, безопасность и открытостьиз Управление идентификацией пользователей(IDM)、Аутентификация личности (AM)、Единый вход (SSO)、Управление разрешениями RBAC и ожидание управления ресурсами.

  • Стандартный

серийный номер

протокол

поддерживать

1.1

OAuth 2.x/OpenID Connect

высокий

1.2

SAML 2.0

высокий

1.3

JWT

высокий

1.4

CAS

высокий

1.5

FormBased

середина

1.6

TokenBased(Post/Cookie)

середина

1.7

ExtendApi

Низкий

1.8

EXT

Низкий

  • Авторизоватьсяподдерживать

серийный номер

Способ входа

поддерживать

2.1

Динамический проверочный код

Буквы/цифры/арифметика

2.2

Двухфакторная аутентификация

SMS/токен времени/почта

2.3

SMS-аутентификация

Облачные SMS Tencent/Облачные SMS Alibaba/Облачные SMS NetEase

2.4

жетон времени

Google/Microsoft Authenticator/FreeOTP/поддерживатьTOTPилиHOTP

2.5

аутентификация домена

Область Kerberos/SPNEGO/AD

2.6

LDAP

OpenLDAP/ActiveDirectory/стандартный сервер LDAP

2.7

социальный аккаунт

WeChat/QQ/Weibo/DingTalk/Google/Facebook/Другие

2.8

Отсканируйте QR-код, чтобы войти

Бизнес WeChat/DingTalk/Feishu QR-код, чтобы войти

Интерфейс входа в систему

Основной интерфейс

Подведите итог:

Вышеупомянутые все проекты сообщества с открытым исходным кодом.,CAS фокусируется на входе пользователя в систему и соответствующей реализации.,Keycloak и MaxKey в дополнение к реализации входа пользователя и связанной с ним реализации протокола.,Что еще более важно, это достижение управления жизненным циклом пользователей.,Управление доступом пользователей с базовой ролью,У каждого есть свои преимущества,Как выбрать, зависит от конкретной ситуации.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose