====== Практические примеры использования Keycloak в качестве корпоративного OpenID сервера ====== ===== Реклама ===== * Ваши пользователю не любят лишний раз вводить пароли? Помогите им, возьмите на вооружение технологию единого входа, используемую Google и Microsoft, но разверните свой сервер, внутри сети предприятия ===== Техническое задание ===== * Развернуть корпоративный сервер OpenID * Подключить к серверу OpenID корпоративную базу учетных записей пользователей используя протокол LDAP * Настроить механизм единого входа для нескольких корпоративных web ресурсов (GitLab, Roundcube, BigBlueButton, MinIO ) * Настроить механизм единого входа для произвольного Web приложения ===== Запись вебинара ===== * [[https://youtu.be/ykWLHQ2i_8E]] ===== Методическая подготовка ===== * Пройдено 2 модуля курса [[Замена корпоративных решений Microsoft]] (развернута инфраструктура предприятия с MS AD) ===== Шаг 0. Введение в курс дела ===== ==== Демонстрация, что такое SSO ==== * [[Chrome]] на client2 и демонстрация roundcube gate# tail -f /var/log/squid/access.log wincient2> klist ==== Обзор веб ресурсов ==== http://gate.corp13.un:81/mail http://gate.corp13.un/ ===== Шаг 1. Создание корпоративного wildcard сертификата ===== * Запускаем импорт **keycloak.corpX.un, webinar.corpX.un** * Добавление роли AD CS CA * [[Пакет OpenSSL#Настройка атрибутов организации в конфигурации ssl]] * [[Пакет OpenSSL#Добавление расширений в запрос на сертификат]] * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] * Копирование запроса на сертификат и сертификата через WinSCP * [[Материалы по Windows#Windows CA для Linux сервисов]] * [[Материалы по Windows#Экспорт корневого сертификата]] AD и конвертация его в PEM формат ===== Шаг 2. Развертывание KeyCloak ===== * Добавляем в DNS keycloak A 192.168.X.14 ifconfig eth0 inet 192.168.X.14 route add default gw 192.168.X.1 cd conf git pull origin master sh net_server.sh X keycloak 14 vim /etc/resolv.conf hostname `cat /etc/hostname` * [[Сервис Keycloak]], Подключение, Базовая конфигурация, Страница для проверки учетных записей * Keycloak LDAP [[Сервис Keycloak#Active Directory]] * [[Сервис Keycloak#Аутентификация пользователей WEB приложения]] (any-client) в Keycloak ===== Шаг 3. Аутентификация пользователей GitLab через KeyCloak ===== * GitLab [[Инструмент GitLab#Включение TLS]] * GitLab [[Инструмент GitLab#Клиент OpenID]] ===== Шаг 4. Аутентификация пользователей любого WEB приложения через KeyCloak ===== * Apache port 80 * [[Сервис HTTP#CGI интерфейс сервера]] * [[Сервис HTTP#Управление доступом к HTTP серверу с использованием OpenID аутентификации]] ===== Шаг 5. Аутентификация пользователей Roundcube через KeyCloak ===== * Roundcube [[Web интерфейс к почте#OpenID аутентификация]] ===== Шаг 6. Аутентификация пользователей BigBlueButton через KeyCloak ===== * [[Сервис BBB#Системные требования]] (добавить HDD 50Gb) * Добавляем в DNS webinar A 192.168.X.16 ifconfig eth0 inet 192.168.X.16 route add default gw 192.168.X.1 cd conf git pull origin master sh net_server.sh X webinar 16 vim /etc/resolv.conf hostname `cat /etc/hostname` * [[Управление файловыми системами в Linux#Расширение существующего логического тома]] * [[Сервис BBB]] ===== Шаг 7. Аутентификация и авторизация пользователей MinIO через KeyCloak ===== * Запускаем импорт **minio.corpX.un** * Добавляем в DNS minio A 192.168.X.18 ifconfig eth0 inet 192.168.X.18 route add default gw 192.168.X.1 cd conf git pull origin master sh net_server.sh X minio 18 vim /etc/resolv.conf hostname `cat /etc/hostname` * [[Сервис MinIO]] Запуск сервера, подключение через браузер (можно с хост системы), создание и подключение локальной учетной записью пользователя и демонстрация необходимости атрибута policy * Сервис MinIO [[Сервис MinIO#Интеграция с Keycloak]] ===== Тестирование ===== https://keycloak.corp13.un/realms/corp13/account/ http://gate.corp13.un/cgi-bin/test-cgi/ http://gate.corp13.un/mail https://gate.corp13.un https://webinar.corp13.un http://minio.corp13.un:9000 ===== Итоги, что получилось, что надо сделать, что не удалось ===== * Keycloak MS AD LDAPS * GSSAPI SSO [[Сервис Keycloak#Kerberos]] интегрировать с OpenID ===== Вопросы =====