Единый вход Sign On)сокращенноSSO,Пользователям достаточно один раз войти в систему и пройти аутентификацию, чтобы получить доступ ко всем взаимно доверенным прикладным системам.,Нет необходимости входить в систему снова.
Основные функции:
Пользователь середина Heart System как Server,Он должен быть связан с клиентом для авторизации&Получить информацию о пользователеиз。В настоящее время в целом популяренизиметь LDAP, CAS, OIDC (на основе Oauth2.0)、SAML и т. д., кроме того Kerberos и т. д. встречаются реже изпротокол. Его цель в основном та же: браузер инициирует запрос клиенту, а клиент обращается к пользовательской системе для получения Cookie или другие условия аутентификации, пользовательская система несет ответственность за вход в систему и возврат условий аутентификации клиенту.
Lightweight Directory Access Протокол, облегченный протокол доступа к каталогам. Этот протокол может быть знаком студентам, которые немного имели дело с корпоративными службами. Это относительно старый протокол сертификации, но он все еще предоставляется большинством пользовательских систем внутри компании. ЛДАП Он хранится в виде файла, через IP Протокол осуществляет аутентификацию и авторизацию пользователей с четкой иерархической структурой, что особенно подходит для внутренней пользовательской системы компании. Когда присоединяются новые сотрудники, вам нужно добавить только одного LDAP участники могут получить доступ wiki、gitlab、oa Жду всех систем. Большинство интернет-компаний, таких как Baidu, Alibaba и Ele.me, используют этот метод для внутреннего управления сотрудниками. Конкретная ссылка: https://ldap.com/
CAS лабораторией Йельского университета 2002 В 2017 году была выпущена унифицированная служба аутентификации с открытым исходным кодом серединаизстандартного протокола, которая также используется многими предприятиями для внутреннего входа в систему, например, Alibaba. C Протокол входа в терминал, такой как Alipay, Taobao. См. подробный стандарт протокола. https://apereo.github.io/cas/6.4.x/protocol/CAS-Protocol-Specification.html . Его суть в том, что сервер возвращает ticket как Условия сертификации,Клиент определяет, существует ли условие,Если он существует, проверьте статус входа пользователя через интерфейс проверки.,Также возвращает информацию о пользователе,В противном случае войдите в систему. При этом клиент может настроить процесс входа в систему.,Предоставляется через серверизинтерфейс для аутентификации。Общий процесс показан на рисунке.^1:
Пользователь Apereo CAS,Кроме того, некоторые языки также разработали разные серверы в соответствии с этим протоколом.,Однако приложений мало.
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 Все входы в систему используют этот метод аутентификации.
Security Assertion Markup Язык, язык разметки утверждений безопасности. один на основе xml Изпротокол обмена данными аутентификации и авторизации между различными доменами безопасности представляет собой очень классический протокол авторизации. Поэтому в большинстве пользовательских систем будет SAML протоколизподдержки. Однако использование из в Китае все еще относительно невелико, сообщает OIDC. Внешний вид привлек к себе всеобщее внимание. Для ознакомления обратитесь к Википедии: Язык разметки утверждений безопасности
Официальный сайт: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 В 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 Name
、Last Name
,И нам может просто понадобиться прозвище,Отмена первых двух обязательных атрибутов требует некоторой доработки.
Официальный сайт: 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 в дополнение к реализации входа пользователя и связанной с ним реализации протокола.,Что еще более важно, это достижение управления жизненным циклом пользователей.,Управление доступом пользователей с базовой ролью,У каждого есть свои преимущества,Как выбрать, зависит от конкретной ситуации.