====== Практические примеры использования 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
===== Вопросы =====