Ранее,Автор однажды написал статью«Первый опыт установки OpenLDAP»пытатьсяиспользовать Docker Развертывание в один клик OpenLDAP. Среди них для LDAP Протокол также содержит базовое введение, но не объясняет, как его использовать. LDAP Предоставить Единую для различных приложений. служба аутентификации еще не получила глубокого распространения на практике. В этой статье предполагается использовать LDAP Интегрируйтесь в различные сторонние системы или сервисы внутри команды в качестве центра. Например, приватизированные службы хостинга кода, обычно используемые внутри команд. Gitlab, сервис сетевых дисков Nextcloud, сервис ускорения кэширования Squid, предназначенный для доступа к внутренним кластерам OpenVPN Услуги, услуги внутренней базы знаний команды Dokuwiki, внутренняя база кода и служба образов контейнеров Nexus3 и т. д.
В условиях бурного роста прикладных систем Единая служба аутентификации (UIA) становится все более важным. С точки зрения непрофессионала, Единая служба аутентификации — это набор учетных записей и ряд веб-приложений и приложений. Приложение избавляет пользователя от необходимости поддерживать большое количество учетных записей и в то же время обеспечивает определенную степень защиты безопасности учетной записи пользователя. Например, Единая служба аутентификация может попросить пользователя ввести код проверки по SMS или подтверждение по электронной почте при входе в систему. Многофакторная аутентификация, такая как код «Рять» или динамический вторичный код проверки, комплексный «Кусочек» гарантируют безопасность входа пользователя. Как и в университете, причина, по которой мы можем получить доступ ко всем приложениям веб-сайтов и другим разрешениям, благодаря использованию Единой служба аутентификации。
Единая служба Аутентификация обычно связана с контролем авторизации, который может подтвердить, к каким ресурсам у пользователя есть разрешения, какие операции можно выполнять и т. д. Конечно, каждая прикладная система также может иметь свою собственную систему контроля авторизации, непосредственно перенимая или дополняя существующую единую систему. служба Аутентификация обеспечивает средства контроля авторизации, доступные из. Общие решения унифицированной аутентификации включают в себя OpenID Connect、OAuth 2.0、SAML2(Shibboleth)、CAS и т. д. Фактически, все эти решения должны иметь способ хранения информации о пользователях. Конечно, мы можем использовать реляционную базу данных для ее реализации или использовать облегченный протокол каталогов (LDAP). Как упоминалось в предыдущей статье, LDAP По сравнению с реляционными базами данных запросы и просмотр выполняются быстрее, но LDAP Существуют определенные ограничения на изменение значений атрибутов и самих атрибутов. Поэтому фактическая из Единая служба аутентификации будут сочетать в себе эти два преимущества и дополнять друг друга, обеспечивая тем самым более комплексные и надежные услуги по сертификации.
Кроме Единая служба аутентификацииснаружи,кроме Единый вход Сервис (SSO). По сравнению с единой сертификацией, Единый вход После одного успешного входа в систему доступдругой поддерживает тот же Единый Веб-сайт входа может быть автоматически аутентифицирован без какого-либо ведома при его использовании, что напрямую устраняет проблемы с повторным входом пользователя в систему. Конечно, теперь из Единая служба аутентификации Большинство из них также интегрированы Единый вход Сервис. Итак, теперь мы можем считать завершенным из Единая служба аутентификации должны содержать следующие пункты:
Различные виды Единой подробно описаны в из Ссылки. служба решения (договора) аутентификации, среди которых OpenID Connect Решение относительно хорошо удовлетворяет вышеуказанным функциональным требованиям. WeChat, QQ, Baidu, Taobao и т. д., которые мы используем в повседневной жизни, используют это решение. Мы также обычно называем этот тип стороннего метода входа «входом через социальные сети». Конечно, причина, по которой эти производители выбирают OpenID Connect а не выбирать CAS, вероятно, главным образом потому, что OpenID Connect основан на OAuth 2.0 из Единая служба решение для аутентификации. Хотя CAS Он также был встроен OAuth 2.0 Сертифицировано и даже совместимо SAML2 Подожди, но в итоге всё равно будет ограничено B/S сцена. OpenID Connect Сценарии, на которые он ориентирован, не ограничиваются Б/С и К/С. Знаете, с развитием смартфонов мобильные клиенты стали очень большим рынком, а количество ежедневных посещений даже намного выше, чем у десктопных браузеров.
Чтобы проверить, можно ли его принять LDAP Создание Единой в качестве базового хранилища служба аутентификации, здесь мы выбираем более известные из RedHat Спонсорская разработка на основе OpenID Connect программное обеспечение с открытым исходным кодом протокола Keycloak。на самом деле,на основе CAS Существуют также относительно известные протоколы. aperoeo/cas。Но как это сказать,Есть две причины не выбирать его. Во-первых, он основан на на CAS протокол, во-вторых, его функция немного отличается от той, которую я хочу. Хотя также возможно LDAP В качестве базового хранилища все данные доступны только для чтения. Лично я думаю, что это можно сделать LDAP В качестве базового хранилища из Единая служба Решение аутентификации должно, по крайней мере, давать пользователю возможность выбрать вариант «только для чтения» или «записываемый». На этом этапе Keycloak Чтобы сделать лучше.
Keycloak Официально предоставлено составлено Docker Зеркало, мы можем использовать docker-compose руководить Развертывание в один клик。Содержимое файла конфигурации следующее:
# docker-compose.yml
version: '3'
services:
postgres:
image: postgres
volumes:
- ./data:/var/lib/postgresql/data
environment:
POSTGRES_DB: keycloak
POSTGRES_USER: keycloak
POSTGRES_PASSWORD: password
keycloak:
image: quay.io/keycloak/keycloak:legacy
environment:
DB_VENDOR: POSTGRES
DB_ADDR: postgres
DB_DATABASE: keycloak
DB_USER: keycloak
DB_SCHEMA: public
DB_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: Pa55w0rd
ports:
- 8080:8080
depends_on:
- postgres
использовать docker-compose up -d
команда для запуска службы. Причина, по которой здесь используетсяиз legacy этикетка вместо latest этикетка, главным образом потому, что Keycloak Команда вносит коррективы в способ его запуска и связанные с ним параметры. последний Теги можно использовать docker run
Команда запускается нормально, но docker-compose Это работает не очень хорошо. Версии кода двух тегов на самом деле одинаковы, за исключением некоторых различий в запуске службы.
доступ http://127.0.0.1:8080/auth/realms/master/account/#/ Вы можете войти на страницу пользователя и нажать в правом верхнем углу, чтобы войти. Здесь напрямую используйте учетную запись пользователя-администратора ипароль в приведенном выше файле конфигурации.
После успешного входа вы увидите, что в правом верхнем углу уже есть имя пользователя, а кнопка входа также изменилась на кнопку выхода.
доступ http://127.0.0.1:8080/auth/admin/master/console Вы можете войти на страницу администратора и войти в систему автоматически.
Перейдите на вкладку «Темы», включите интернационализацию и установите язык интерфейса по умолчанию, затем нажмите «Сохранить».
Обновите страницу, чтобы увидеть установленный интерфейс на китайском языке.
Левая панель навигациипереключиться наФедерация пользователейвкладка,Выберите добавить ldap.
Введите соответствующую информацию о конфигурации, как показано ниже. Поскольку это соединение. OpenLDAP Итак, поставщик выбираетдругой。дляпользовательможет пройти Keycloak изменить LDAP изпароль,здесьиз Выбор режима редактированиязаписываемый。Кроме того, после заполнения конфигурации вы можете воспользоваться правомизтестовое соединениеиТестовая проверкакнопка, чтобы проверить, работает ли конфигурация。Как показано ниже,Лучшие советы для успешной проверки. Нажмите «Сохранить», чтобы завершить изменение LDAP.
Обновите страницу после настройки LDAP.,Ниже будут четыре новыхизкнопка。НажмитеСинхронизировать всех пользователейТы можешьпользователь Синхронизировать с Keycloak。
Переключите левую панель навигации напользовательвкладка,По умолчанию пусто,Нажмите «Просмотреть всех пользователей», чтобы увидеть администраторов и пользователей LDAP в .
Как показано на рисунке ниже, доказано, что Keycloak успех Подключиться к LDAP。
потому что LDAP Сам пароль менять не очень удобно. Требуется дополнительная сторонняя поддержка. Здесь используется. Keycloak Встроенный изWAY изменить LDAP серединаизпароль。длягарантироватьпользователь Исправлятьизпарольиметь определенныеизбезопасность,Нам нужно создать несколько новыхпарольизсложные правила。Переключите левую панель навигации напроверятьвкладка,Выбрать еще разпароль Стратегиявкладка,использоватьверхний правый уголизДобавить политикудобавить разныеизстратегические требования,Нажмите кнопку «Сохранить», когда закончите.
Хотя мы установили здесь требования политики к сложности новых паролей, они еще не вступили в силу для пользователей системы. Нам нужно вернуться к предыдущему LDAP Конфигурацияиз Расширенные настройкисередина Открытьпроверятьпароль Стратегия。Изображение нижесерединаиз LDAPv3 пароль Вы можете включить его или нет, это мало на что влияет.
Чтобы проверить Политика паролей Действительно ли пользователи эффективны?,нуждатьсяпереключиться в самом начале страницы изпользователя. Нажмите Update кнопка для перехода на обновленную страницу пароля. Здесь система может проверить безопасность и потребовать еще раз ввести пароль и вторичный код проверки (если есть), просто введите их.
Вот простой пароль для установки 1234 Возвращенное сообщение об ошибке является примером. Вообще говоря, мы установим следующие стратегии для пароля:
Как анализировалось ранее, полная из Единая служба аутентификации должны иметь многофакторную аутентификацию. Многофакторная аутентификация более безопасна, чем OTP (одноразовый пароль). Плащ-ключ Просто поддержи OTP – проверка. Как вы можете видеть на странице ниже, значение по умолчанию OTP Возможна настройка политикииспользовать FreeOTP и Google Аутентификатор. Но если вы измените одну из конфигураций, после сохранения будет отображаться, что поддерживается только Бесплатно ОТП. Как ни странно, FreeOTP Похоже, это программное обеспечение с открытым исходным кодом обновляется не очень часто, а его клиент для Android очень старый. По авторскому тесту, если OTP Поддержка стратегии Google Anthenticator, тогда более популярный на рынке сейчас Authy、Microsoft Anthenticator и т. д. могут быть поддержаны.
Чтобы все пользователи системы могли OTP,Это можно сделать следующим образом вНеобходимая операциявкладкасередина Конфигурация OTP это операция по умолчанию. Таким образом, пользователю будет предложено настроить ОТП. (PS: Microsoft Office365 Также будет это требование по умолчанию. )
Чтобы проверить OTP Доступно ли это?,Перейти кпользователь Страница НажмитеНастройка приложения проверкикнопка。
Нажмите, чтобы перейти на страницу конфигурации, как показано ниже. использовать Только что упоминалось, что любое приложение может сканировать QR-код на странице, чтобы завершить добавление. Затем введите здесь одноразовый код проверки в соответствии с кодом вторичной проверки, отображаемым в приложении.,Нажмите «Отправить». Если он прыгает нормально,Конфигурация прошла успешно. Если конфигурация не удалась,останется на этой странице,И появляется красное сообщение об ошибке.
В дополнение к вышеизложенному введению в построение на основе LDAP из Единая служба аутентификации(Например Keycloak) может предоставлять услуги проверки входа в систему для других приложений, а также может напрямую подключать приложения к LDAP Интеграция сервисов. Здесь может возникнуть вопрос: Поскольку LDAP Его можно интегрировать с приложениями, так зачем создавать его на основе LDAP из Единая служба А как насчет аутентификации? На самом деле здесь нужно кое-что учитывать» LDAP Что лучше — публиковаться в публичной сети или в «Единой»? служба аутентификации Хорошо ли выставлять это в общедоступную сеть? «Этот вопрос. LDAP Основной целью службы каталогов является обслуживание приложений во внутренней сети, а не в глобальной сети. С Единой служба аутентификации могут быть очень хорошими по желанию LDAP Безопасно и надежно защищено внутри сети и Единая служба аутентификации действует как веб-приложение и взаимодействует с другим веб-приложением или клиентским приложением. Такой способ может показаться более элегантным и обнадеживающим.
Написать цикл на тему «Интеграция» (выкопать яму). (PS: Заранее дайте соответствующую ссылку. Если есть возможность, то написано.)
(Добавлено 28 сентября 2022 г.)
вопрос
вопрос Описание:использовать Nginx актерское мастерство Keycloak Что делать, если страница входа в систему доступа продолжает загружаться?
Решение
Решение:Это главным образом потому, что Keycoak Конфигурация по умолчанию — Нет, актерское. мастерствомодель。еслииспользовать Nginx актерское мастерство, нужно быть в docker-compose.yml из environment Добавить конфигурацию внутри PROXY_ADDRESS_FORWARDING: "true"
Затем перезапустите службу.
вопрос
вопрос Описание:Зачем развертыватьиз Keycloak Нет User Profile А как насчет функций?
Решение
Решение:Keycloak По умолчанию включена только функция стабильности, например User Profile Это все функции предварительной версии. Если вы хотите включить функцию предварительного просмотра, вам необходимо добавить конфигурацию JAVA_OPTS_APPEND: "-Dkeycloak.profile=preview"
Затем перезапустите службу.
Заявление об авторских правах: если не указано иное, авторские права на эту статью принадлежат Чжунгер на частной земле При всех перепечатках просьба указывать ссылку на эту статью.
(использовать CC BY-NC-SA 4.0 Разрешено лицензионным соглашением)
Название этой статьи: " Сервис единой аутентификации Keycloak на базе LDAP 》
Ссылка на эту статью:https://cloud.tencent.com/developer/article/2143053