Настройка 2-факторной аутентификации для VMware vCloud Director Содержание 1. Установка Keycloak Server ...... 2 1.1 Установка Keycloak в качестве Docker контейнера ...... 2 1.2 Установка Keycloak Standalone на виртуальную машину с гостевой ОС Centos7 ...... 3 1.2.1 Подготовка платформы под сервер ...... 3 1.2.2 Установка необходимых утилит ...... 4 1.2.3 Установка дистрибутива Keycloak Standalone ...... 4 1.2.4 Установка Keycloak как сервис в Centos7 ...... 5 1.3 Установка Keycloak Standalone на виртуальную машину с гостевой ОС Windows Server 2019 ...... 8 1.3.1 Подготовка платформы под сервер ...... 8 1.3.2 Установка необходимых утилит ...... 8 1.3.3 Установка дистрибутива Keycloak Standalone ...... 9 1.3.4 Установка Keycloak как сервис в Windows Server 2019 ...... 10 2. Настройка поддержки HTTPS для Keycloak ...... 16 2.1 Настройки доменного имени ...... 17 2.2 Установка и настройка Nginx ...... 17 2.2.1 Установка и настройка Nginx на Docker ...... 17 2.2.2 Установка и настройка Nginx на Centos7 ...... 17 2.2.3 Установка и настройка Nginx на Windows Server 2019 ...... 19 3. Настройка связки с vCloud Director ...... 23 3.1 Настройка со стороны Keycloak ...... 23 3.2 Выгрузка метаданных из vCloud Director ...... 25 3.2.1 Выгрузка метаданных для версии vCloud Director 10.0.0+ ...... 25 3.2.2 Выгрузка метаданных для версии vCloud Director 9.0.0 ...... 26 3.3 Настройка клиента в Keycloak...... 27 3.4 Финальная настройка со стороны vCloud Director ...... 31 3.4.1 Финальная настройка в vCloud Director 10.0.0+ ...... 31 3.4.2 Финальная настройка в vCloud Director 9.0.0 ...... 34 3.5 Вход в vCloud Director под учетной записью Keycloak ...... 37 4. Настройка 2-факторной аутентификации с ...... 38 Настройка 2-факторной аутентификации для VMware vCloud Director Для аутентификации пользователей в интерфейсе VMware vCloud Director (начиная с версии 9.0.0) поддерживается функционал «SAML provider». В данном «Руководстве пользователя» рассмотрена настройка 2-факторной аутентификации при подключении пользователя к vCloud Director. Для этого используются сервер Keycloak и приложение Google Authenticator на мобильном устройстве (смартфоне). Ссылка на статью-источник: https://digaround.cloud/vcloud_2fa_google_authenticator/ 1. Установка Keycloak Server Keycloak – это ориентированный на современные применения и сервисы продукт с открытым кодом для реализации single sign-on с возможностью управления доступом. Проект сообщества JBoss находится под управлением . Цель проекта – помощь в создании безопасных приложений и сервисов с минимальным написанием собственного кода для аутентификации. Существуют несколько вариантов установки серверной части данного приложения: ▪ как готовый контейнер в Docker; ▪ Standalone версия на операционную систему Linux; ▪ Standalone версия на операционную систему Windows. Системные требования (System Requirements) для сервиса keycloak приведены ниже. These are the requirements to run the Keycloak authentication server: ✓ Can run on any operating system that runs Java ✓ Java 8 JDK ✓ zip or gzip and tar ✓ At least 512M of RAM ✓ At least 1G of diskspace ✓ A shared external database like PostgreSQL, MySQL, Oracle, etc. Keycloak requires an external shared database if you want to run in a cluster. Please see the database configuration section of this guide for more information. ✓ Network multicast support on your machine if you want to run in a cluster. Keycloak can be clustered without multicast, but this requires a bunch of configuration changes. Please see the clustering section of this guide for more information. ✓ On Linux, it is recommended to use /dev/urandom as a source of random data to prevent Keycloak hanging due to lack of available entropy, unless /dev/random usage is mandated by your security policy. To achieve that on Oracle JDK 8 and OpenJDK 8, set the java.security.egd system property on startup to file:/dev/urando 1.1 Установка Keycloak в качестве Docker контейнера Простейшим способом запуска Keycloak будет установка его в качестве контейнера, если ваша инфраструктура уже содержит работающий сервис Docker. Для этого, запустите в сервисе Docker команду: docker run -p 8080:8080 -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=admin quay.io/keycloak/keycloak:11.0.0

Руководство пользователя версия 1.2r 02_2021 2 Настройка 2-факторной аутентификации для VMware vCloud Director Keycloak готов к использованию, если в логах есть следующие строки: 07:37:29,398 INFO [org.jboss.as] (Controller Boot Thread) WFLYSRV0025: Keycloak 10.0.1 (WildFly Core 11.1.1.Final) started in 67444ms - Started 689 of 994 services (708 services are lazy, passive or on-demand) Перейдите на веб-интерфейс Keycloak по ссылке: http://IP:8080/auth/admin

1.2 Установка Keycloak Standalone на виртуальную машину с гостевой ОС Centos7 Официальная документация по установке: https://www.keycloak.org/docs/latest/server_installation/index.html 1.2.1 Подготовка платформы под сервер Для установки службы Keycloak, из шаблона была развернута виртуальная машина с “чистой” операционной системой Centos7. Для управления «проброшены» порт SSH и порт 8080 для сервиса keycloak.

Руководство пользователя версия 1.2r 02_2021 3 Настройка 2-факторной аутентификации для VMware vCloud Director При установке Keycloak Standalone Server на виртуальную машину, она не обязательно должна быть расположена в том же облаке, где настраивается 2-факторная аутентификация. Это может быть виртуальный/физический сервер в любой инфраструктуре с выходом в интернет и «проброшенным» на него портом 8080. 1.2.2 Установка необходимых утилит Зайдите на созданный сервер по SSH, обновите систему: update Установите необходимые компоненты: yum install gzip yum install tar yum install wget yum install java-1.8.0-openjdk Приложение Keycloak будет запускаться от имени пользователя keycloak. Добавьте пользователя и группу в Centos7: groupadd -r keycloak useradd -m -d /var/lib/keycloak -s /sbin/nologin -r -g keycloak keycloak Важно! Между службами vCloud Director и Keycloak должно быть синхронизировано время. Необходимо убедиться, что часовой пояс выставлен правильно и служба NTP включена: timedatectl set-timezone Europe/Kiev yum install chrony systemctl enable chronyd systemctl start chronyd 1.2.3 Установка дистрибутива Keycloak Standalone Загрузите дистрибутив отсюда: https://www.keycloak.org/downloads Вам нужна эта версия:

Руководство пользователя версия 1.2r 02_2021 4 Настройка 2-факторной аутентификации для VMware vCloud Director Скачайте архив tar.gz: wget https://downloads.jboss.org/keycloak/11.0.0/keycloak-11.0.0.tar.gz Распакуйте архив: tar xzvf keycloak-11.0.0.tar.gz Создайте папку /opt/keycloak/current/ и скопируйте туда распакованный архив: mkdir /opt/keycloak/currrent cp -r /root/keycloak-11.0.0 /opt/keycloak/current Предоставьте права на папку: chown keycloak: -R /opt/keycloak cd /opt/keycloak/current sudo -u keycloak chmod 700 standalone Отредактируйте в конфигурационном файле значение IP-адреса, который будет «прослушивать» служба keycloak: nano /opt/keycloak/current/standalone/configuration/standalone.xml Найдите строку с адресом 127.0.0.1 (нажатием сочетания клавиш «ctrl+w») и замените это значение на IP-адрес виртуальной машины (в данном примере это 192.168.0.3, когда виртуальная машина расположена за NAT):

Сохраните изменения и закройте редактор (нажатием сочетания клавиш «ctrl+x»). 1.2.4 Установка Keycloak как сервис в Centos7 Создайте файл системной службы: cat > /etc/systemd/system/keycloak.service <

[Unit] Description=Keycloak After=network.target

Руководство пользователя версия 1.2r 02_2021 5 Настройка 2-факторной аутентификации для VMware vCloud Director [Service] Type=idle User=keycloak Group=keycloak ExecStart=/opt/keycloak/current/bin/standalone.sh TimeoutStartSec=600 TimeoutStopSec=600

[Install] WantedBy=multi-user.target EOF Установите и запустите службу: systemctl daemon-reload systemctl enable keycloak systemctl start keycloak Откройте порт 8080 на фаерволе: sudo iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload Теперь, при входе через браузер на http://внешний_ip:8080 вы увидите:

Как видно из сообщения (см. изображение выше), вам необходимо создать учетную запись «admin». В консоли выполните команду: cd /opt/keycloak/current/ ./bin/add-user-keycloak.sh --realm master --user admin --password <Ваш_пароль> service keycloak restart

Руководство пользователя версия 1.2r 02_2021 6 Настройка 2-факторной аутентификации для VMware vCloud Director Страница входа через браузер должна выглядеть так:

По умолчанию, Keycloak в обязательном порядке требует поддержку HTTPS при подключении с внешних IP-адресов. Если данный протокол использовать не планируется, выполните следующие команды (в первой команде потребуется ввести ранее созданный пароль учетной записи «admin»): ./bin/kcadm.sh config credentials --server http://192.168.0.3:8080/auth - -realm master --user admin ./bin/kcadm.sh update realms/master -s sslRequired=NONE ./bin/kcadm.sh update realms/vcloud -s sslRequired=NONE service keycloak restart Вам станет доступной страница входа в Administration Console:

Руководство пользователя версия 1.2r 02_2021 7 Настройка 2-факторной аутентификации для VMware vCloud Director 1.3 Установка Keycloak Standalone на виртуальную машину с гостевой ОС Windows Server 2019 Официальная документация по установке- https://www.keycloak.org/docs/latest/server_installation/index.html 1.3.1 Подготовка платформы под сервер Для установки службы Keycloak, из шаблона была развернута виртуальная машина с «чистой» операционной системой Windows Server 2019 Standard. Для управления «проброшены» порт RDP и порт 8080 для сервиса keycloak. При установке Keycloak Standalone Server на виртуальную машину, она не обязательно должна быть расположена в том же облаке, где настраивается 2-факторная аутентификация. Это может быть виртуальный/физический сервер в любой инфраструктуре с выходом в интернет и «проброшенным» на него портом 8080.

1.3.2 Установка необходимых утилит Зайдите на созданный сервер по RDP. Загрузите необходимые для работы keycloak компоненты Java с официального сайта либо с «зеркала» и установите их: https://java.com/ru/download/ https://www.oracle.com/java/technologies/javase-jdk14-downloads.html

Укажите путь к директории Java в переменных среды Windows.

Руководство пользователя версия 1.2r 02_2021 8 Настройка 2-факторной аутентификации для VMware vCloud Director Для этого, откройте Contorl Pannel -> System and Security -> System -> Advanced System Settings -> Environment Variables:

Создайте новую переменную среды с именем JAVA_HOME и укажите путь к папке с установленным Java Development Kit:

1.3.3 Установка дистрибутива Keycloak Standalone Откройте браузер и загрузите дистрибутив отсюда: https://www.keycloak.org/downloads

Руководство пользователя версия 1.2r 02_2021 9 Настройка 2-факторной аутентификации для VMware vCloud Director Вам нужна эта версия:

Загрузите архив и распакуйте его в каталог C:\keycloak-11.0.0\ Отредактируйте в конфигурационном файле значение IP-адреса, который будет «прослушивать» служба keycloak. Для этого, откройте в приложении «Блокнот» файл C:\keycloak-11.0.0\standalone\configuration\standalone.xml Нажмите сочетание клавиш «ctrl+f» и найдите 2 строки с адресом "127.0.0.1". Замените это значение на свой IP-адрес (в примере, приведенном на изображении ниже, это 192.168.0.4):

Сохраните и закройте файл. 1.3.4 Установка Keycloak как сервис в Windows Server 2019 Скопируйте папку "service" из каталога C:\keycloak-11.0.0\docs\contrib\scripts\ в каталог C:\keycloak-11.0.0\bin\ Откройте командную строку CMD. Перейдите в каталог C:\keycloak-11.0.0\bin\service cd C:\keycloak-11.0.0\bin\service

Руководство пользователя версия 1.2r 02_2021 10 Настройка 2-факторной аутентификации для VMware vCloud Director Установите службу: service install /name Keycloak /display Keycloak /desc "Keycloak service" /startup Должно получиться так:

Откройте services.msc и запустите службу Keycloak:

Руководство пользователя версия 1.2r 02_2021 11 Настройка 2-факторной аутентификации для VMware vCloud Director Создайте правило в Windows Firewall для порта 8080:

Руководство пользователя версия 1.2r 02_2021 12 Настройка 2-факторной аутентификации для VMware vCloud Director

Руководство пользователя версия 1.2r 02_2021 13 Настройка 2-факторной аутентификации для VMware vCloud Director

В браузере на этом же Windows Server перейдите по ссылке http://локальный_ip:8080/auth

Руководство пользователя версия 1.2r 02_2021 14 Настройка 2-факторной аутентификации для VMware vCloud Director В открывшемся окне будет предложено создать админ-пользователя. Впишите логин и пароль:

Далее, вы сможете перейти в админ-панель:

Руководство пользователя версия 1.2r 02_2021 15 Настройка 2-факторной аутентификации для VMware vCloud Director

Важно! По умолчанию, при подключении с внешних IP адресов для Keycloak требуется поддержка HTTPS. Если вы не планируете использовать данный протокол, откройте Realm Master. Перейдите в Realm Settings -> Login -> Require SSL и установите значение «none»:

2. Настройка поддержки HTTPS для Keycloak Учитывая, что в связке Keycloak -> vCloud Director передаются учетные данные пользователей, предпочтительным вариантом будет использование шифрованного протокола HTTPS вместо HTTP. Для его настройки вам понадобится: ▪ доменное имя; ▪ доступ к управлению DNS-записями на регистраторе доменных имен; ▪ сервер Nginx в качестве Frontend Proxy для сервиса Keycloak; ▪ действительный SSL сертификат; ▪ проброшенные 80 и 443 порты на веб-прокси.

Руководство пользователя версия 1.2r 02_2021 16 Настройка 2-факторной аутентификации для VMware vCloud Director 2.1 Настройки доменного имени Для примера, был заказан бесплатный тестовый домен test-keycloak.pp.ua на регистраторе доменных имен nic.ua Нужно зайти в настройки DNS-записей и создать А-запись:

Важно! Если вы не используете стандартные NAME-сервера, то А-запись необходимо создавать на том NAME-сервере, который обслуживает доменное имя. 2.2 Установка и настройка Nginx 2.2.1 Установка и настройка Nginx на Docker В случае установки Keycloak в качестве Docker-контейнера, фронтенд-прокси необходимо будет настроить в другом контейнере. Ссылка на сайт docker: https://hub.docker.com/_/nginx Статья по настройке nginx в docker-контейнере - https://www.docker.com/blog/how-to-use-the- official-nginx-docker-image/ 2.2.2 Установка и настройка Nginx на Centos7 Установка фронтенда Nginx будет произведена на ту же виртуальную машину, где установлен Keycloak Standalone Server. Установите пакет Nginx: yum install nginx Включите и запустите службу: systemctl enable nginx systemctl start nginx Далее, нужно сгенерировать LetsEncrypt SSL-сертификат для Вашего доменного имени. В приведенном примере, сертификат сгенерирован для test-keycloak.pp.ua Для генерации сертификатов воспользуйтесь командой: ./certbot-auto --nginx

Руководство пользователя версия 1.2r 02_2021 17 Настройка 2-факторной аутентификации для VMware vCloud Director Важно! Перед генерацией сертификата убедитесь, что ваше доменное имя «резолвится» на внешний IP-адрес, «за которым» расположена виртуальная машина. Создайте конфигурацию nginx для сайта: nano /etc/nginx/conf.d/test-keycloak.pp.ua.conf Пример конфигурации: upstream keycloak { # Use IP Hash for session persistence ip_hash;

# List of Keycloak servers server 192.168.0.3:8080; } server { server_name test-keycloak.pp.ua; listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/test-keycloak.pp.ua/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/test-keycloak.pp.ua/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot ssl_session_cache shared:SSL:1m; # ssl_prefer_server_ciphers on; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://keycloak; } } server { if ($host = test-keycloak.pp.ua) { return 301 https://$host$request_uri; } # managed by Certbot

listen 80; server_name test-keycloak.pp.ua; return 404; # managed by Certbot

} Сохраните и закройте редактор сочетанием клавиш «ctrl+x». Проверьте правильность конфигурации: nginx -t Должен быть выдан ответ: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful Перезапустите nginx: service nginx restart Добавьте правила в фаервол: sudo iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT

Руководство пользователя версия 1.2r 02_2021 18 Настройка 2-факторной аутентификации для VMware vCloud Director firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload Включите режим работы для Keycloak в режиме «за Proxy»: cd /opt/keycloak/current/ sudo -u keycloak ./bin/jboss-cli.sh 'embed-server,/socket-binding- group=standard-sockets/socket-binding=proxy-https:add(port=443)' sudo -u keycloak ./bin/jboss-cli.sh 'embed- server,/subsystem=undertow/server=default-server/http-listener=default:write- attribute(name=redirect-socket,value=proxy-https)' service keycloak restart Зайдите на Keycloak по доменному имени https://ваш_домен/auth/ 2.2.3 Установка и настройка Nginx на Windows Server 2019 Установка фронтенда Nginx будет произведена на ту же виртуальную машину, где установлен Keycloak Standalone Server. Загрузите дистрибутив Nginx -http://nginx.org/ru/download.html Распакуйте в C:\nginx-1.19.2 Загрузите утилиту для запуска Nginx как службы в Windows - http://nssm.cc/download Распакуйте в C:\nssm-2.24 Откройте командную строку CMD и перейдите в каталог с nssm: C:\nssm-2.24\win64 Выполните команду для установки службы nginx: nssm.exe install nginx Появится экран графического интерфейса, в котором необходимо установить путь для приложения к исполняемому файлу nginx:

Руководство пользователя версия 1.2r 02_2021 19 Настройка 2-факторной аутентификации для VMware vCloud Director Откройте на Windows Firewall порты 80 и 443 (по аналогии с портом 8080):

Загрузите утилиту Certbot для генерации LetsEncrypt сертификата - https://dl.eff.org/certbot- beta-installer-win32.exe Проинсталлируйте Certbot на виртуальную машину. Остановите службу Nginx. Откройте командную строку PowerShell и запустите команду: certbot certonly --standalone В процессе нужно будет ввести email для обновления и ваше доменное имя (в приведенном примере test-keycloak.pp.ua). Должно получиться:

Руководство пользователя версия 1.2r 02_2021 20 Настройка 2-факторной аутентификации для VMware vCloud Director Примечание: certbot под Windows не устанавливает сертификат на работающие веб-службы apache и nginx. Конфиг-файлы нужно создавать вручную. Созданные сертификаты расположены в папке C:\Certbot\live Скопируйте их в папку C:\certs Далее, отредактируйте файл C:\nginx-1.19.2\conf\nginx.conf Пример конфиг-файла, который получился в результате:

#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } upstream keycloak { # Use IP Hash for session persistence ip_hash; # List of Keycloak servers server 192.168.0.4:8080; } server { server_name test- keycloak.pp.ua; listen 443 ssl; # managed by Certbot ssl_certificate C:\certs\fullchain1.pem; ssl_certificate_key C:\certs\privkey1.pem; ssl_session_cache shared:SSL:1m; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://keycloak; } } server { if ($host = test-keycloak.pp.ua) { return 301 https://$host$request_uri; } listen 80; server_name test- keycloak.pp.ua; return 404; } }

Для дебага откройте PowerShell и проверьте правильность синтаксиса Nginx: cd C:\nginx-1.19.2

.\nginx.exe -t Должно получиться:

Запустите службу Nginx в services.msc:

Руководство пользователя версия 1.2r 02_2021 21 Настройка 2-факторной аутентификации для VMware vCloud Director После этого, включите режим работы «за Proxy» для Keycloak. Откройте PowerShell и введите команды: cd C:\keycloak-11.0.0

.\bin\jboss-cli.bat 'embed-server,/socket-binding-group=standard-sockets/socket- binding=proxy-https:add(port=443)'

.\bin\jboss-cli.ps1 'embed-server,/subsystem=undertow/server=default- server/http-listener=default:write-attribute(name=redirect-socket,value=proxy- https)' Должно получиться:

После этого, перезапустите службу Keycloak:

Зайдите на Keycloak по доменному имени https://ваш_домен/auth/

Руководство пользователя версия 1.2r 02_2021 22 Настройка 2-факторной аутентификации для VMware vCloud Director 3. Настройка связки с vCloud Director 3.1 Настройка со стороны Keycloak Войдите в систему под учетной записью созданного ранее пользователя admin. Если аутентификация «зависнет» - обновите страницу. После входа в систему сначала вам нужно создать новый Realm для вашего vCloud Tenant, настроить имя для этого Realm. Важно! В данном примере сервер Keycloak расположен «за NAT». Вам необходимо зайти на сервер по внешнему IP-адресу, если вы не настраивали HTTPS: http://внешний_ip:8080/auth/ или по доменному имени, если вы настраивали HTTPS: https://ваш_домен/auth/ Это нужно для корректной выгрузки метаданных из Keycloak.

ВАЖНО!

По умолчанию, при подключении с внешних IP-адресов Keycloak требует в обязательном порядке поддержку HTTPS. Если вы не планируете использовать данный протокол, то для нового Realm нужно также отключить HTTPS Откройте Realm vCloud. Зайдите в раздел Realm Settings -> Login -> Require SSL и установите значение none.

Руководство пользователя версия 1.2r 02_2021 23 Настройка 2-факторной аутентификации для VMware vCloud Director Теперь создадим пользователя:

Не забудьте установить пароль для пользователя. Если вы не хотите менять пароль при входе, снимите флаг Temporary.

Необходимо настроить «клиент» для нового Realm. Чтобы не настраивать это вручную, можно предварительно настроить его с помощью файла импорта из метаданных SAML vcloud tenant. Для получения файла, войдите на портал клиента vCloud Director в качестве администратора организации и перейдите в раздел Administration:

Руководство пользователя версия 1.2r 02_2021 24 Настройка 2-факторной аутентификации для VMware vCloud Director 3.2 Выгрузка метаданных из vCloud Director 3.2.1 Выгрузка метаданных для версии vCloud Director 10.0.0+ Настройте значение Entity ID, отредактировав конфигурацию saml. Очень важно, чтобы значение совпадало с Client ID в Keycloak:

Сохраните конфигурацию.

Руководство пользователя версия 1.2r 02_2021 25 Настройка 2-факторной аутентификации для VMware vCloud Director Нажмите на ссылку и загрузите метаданные (это будет файл .xml, который мы используем в Keycloak для предварительной настройки Realm Client):

3.2.2 Выгрузка метаданных для версии vCloud Director 9.0.0 Настройте значение Entity ID, отредактировав конфигурацию saml. Очень важно, чтобы значение совпадало с Client ID в Keycloak:

Сохраните конфигурацию.

Руководство пользователя версия 1.2r 02_2021 26 Настройка 2-факторной аутентификации для VMware vCloud Director Нажмите на ссылку и загрузите метаданные (это будет файл .xml, который мы используем в Keycloak для предварительной настройки Realm Client):

3.3 Настройка клиента в Keycloak Теперь у вас есть файл .xml с портала клиента, вернитесь к Keycloak и импортируйте его в Realm -> Clients -> Create.

Client ID должен совпадать с Entity ID в конфигурации SAML портала клиента, иначе это не сработает. Установите клиентский протокол как SAML:

Руководство пользователя версия 1.2r 02_2021 27 Настройка 2-факторной аутентификации для VMware vCloud Director Примечание: Если вы хотите войти в vcloud с помощью имени пользователя (а не электронной почты), измените на вкладке Settings в поле Name Id Format значение на username:

Когда внешний пользователь пытается войти в систему, vCloud извлекает некоторые атрибуты из токена SAML (если они доступны) и использует их для описания пользователя: ▪ email address = "EmailAddress" - важно (если e-mail неверный, то удалить пользователя из vCloud будет невозможно); ▪ user name = "UserName" - важно (имя вашего пользователя в vCloud); ▪ full name = "FullName" (полное имя пользователя) ▪ user's groups = "Groups" - важно (для аутентификации основанной на группах); ▪ user's roles = "Roles" - важно (если вы хотите управлять ролями через Keycloak, в данном варианте не используется). Если Keycloak должен передать некоторые атрибуты в токене SAML в vCloud, необходимо определить Mappers для вашего клиента. Перейдите в конфигурацию клиента, выберите вкладку Mappers и определите эти значения:

Руководство пользователя версия 1.2r 02_2021 28 Настройка 2-факторной аутентификации для VMware vCloud Director Email Mapper

FullName Mapper

Groups Mapper

Руководство пользователя версия 1.2r 02_2021 29 Настройка 2-факторной аутентификации для VMware vCloud Director Username Mapper

Перед проверкой аутентификации, создайте какую-нибудь группу, например orgAdmin:

Добавьте пользователя в эту группу:

Протестируйте его в vCloud.

Руководство пользователя версия 1.2r 02_2021 30 Настройка 2-факторной аутентификации для VMware vCloud Director Скопируйте метаданные SAML Identity Provider из Keycloak, их нужно будет использовать для завершения настройки формы на стороне vCloud:

3.4 Финальная настройка со стороны vCloud Director 3.4.1 Финальная настройка в vCloud Director 10.0.0+ В vCloud tenant portal перейдите в раздел Administration для редактирования конфигурации SAML. Активируйте провайдера SAML и вставьте скопированные ранее метаданные:

Cохраните настройки SAML.

Руководство пользователя версия 1.2r 02_2021 31 Настройка 2-факторной аутентификации для VMware vCloud Director В разделе Members вкладки Administration появится еще одна категория – Groups:

Важно! Обязательно «импортируйте» группу из KeyCloak в vCloud Director:

Руководство пользователя версия 1.2r 02_2021 32 Настройка 2-факторной аутентификации для VMware vCloud Director

Назначьте роль:

Руководство пользователя версия 1.2r 02_2021 33 Настройка 2-факторной аутентификации для VMware vCloud Director Пример выполнения приведен на изображении ниже:

Примечание: Важно понимать, что группа не импортируется напрямую из Keycloak в vCloud Director (вы только создаете там группу с таким же именем). При входе пользователя в vCloud Director имя группы сверяется с аналогичным значением в Keycloak. При совпадении данных пользователь получит соответствующие права в системе. После этого, выполните действие Logout из vCloud Director:

3.4.2 Финальная настройка в vCloud Director 9.0.0 В vCloud tenant portal перейдите в раздел Administration для редактирования конфигурации SAML. Активируйте провайдера SAML и вставьте скопированные ранее метаданные:

Cохраните настройки SAML.

Руководство пользователя версия 1.2r 02_2021 34 Настройка 2-факторной аутентификации для VMware vCloud Director В разделе Members вкладки Administration появится еще одна категория – Groups:

Важно! Обязательно «импортируйте» группу из KeyCloak в vCloud Director:

Руководство пользователя версия 1.2r 02_2021 35 Настройка 2-факторной аутентификации для VMware vCloud Director

Назначьте роль:

Руководство пользователя версия 1.2r 02_2021 36 Настройка 2-факторной аутентификации для VMware vCloud Director Пример выполнения приведен на изображении ниже:

Примечание: Важно понимать, что группа не импортируется напрямую из Keycloak в vCloud Director (вы только создаете там группу с таким же именем). При входе пользователя в vCloud Director имя группы сверяется с аналогичным значением в Keycloak. При совпадении данных пользователь получит соответствующие права в системе. После этого, выполните действие Logout из vCloud Director:

3.5 Вход в vCloud Director под учетной записью Keycloak После входа на страницу https://iaas-bm2.gigacloud.ua/tenant/your_org вы будете перенаправлены на страницу входа KeyCloak:

Руководство пользователя версия 1.2r 02_2021 37 Настройка 2-факторной аутентификации для VMware vCloud Director 4. Настройка 2-факторной аутентификации с Google Authenticator Результатом предыдущих настроек групповой аутентификации на основе SAML между vCloud Director Tenant Portal и Keycloak SAML Identity Provider является возможность 2-факторной аутентификации в Keycloak. Предварительно настроенная аутентификация основана на OTP и поддерживается мобильными приложениями Google Authenticator или FreeOTP. Для завершения настроек 2- факторной аутентификации, активируйте OTP как Required Action в Realm, установив флажок Default Action:

Такое действие активирует 2-факторную аутентификацию только для вновь созданного пользователя. Для уже существующего ранее пользователя необходимо выбрать поле Required User Action:

Руководство пользователя версия 1.2r 02_2021 38 Настройка 2-факторной аутентификации для VMware vCloud Director Сохраните настройки, выйдите из портала vCloud Tenant. При следующем входе пользователя в систему, потребуется настройка мобильного устройства 2-факторной аутентификации. Следуйте экранным инструкциям на изображении ниже, для установки выберите мобильное приложение Google Authenticator:

В дальнейшем, при каждом входе в vCloud Director пользователю будет предлагаться ввести одноразовый код, сгенерированный приложением Google Authenticator:

На этом шаге, настройка 2-факторной аутентификации для vCloud Director завершена.

Руководство пользователя версия 1.2r 02_2021 39