```{index} saml, vcd, vclouddirector, внешние ссылки ``` # SAML provider для VCloudDirector ## Инструкция по первичной настройке ```{seealso} [https://bakingclouds.com/configure-vcloud-director-to-use-keycloak-identity-as-saml-provider/](https://bakingclouds.com/configure-vcloud-director-to-use-keycloak-identity-as-saml-provider/) ``` ## Регенерация сертификатов VCloudDirector ### 1. На стороне VCD Срок действия сертификатов VDC видно в {menuselection}`Administration --> Identity Providers --> SAML`: ```{figure} img/vcd-saml-configuration.png :target: /_images/vcd-saml-configuration.png :alt: 'VCD: SAML Configuration' VCD: SAML Configuration ``` Попытка cгенерировать новые самостоятельно ({menuselection}`Edit --> Regenerate`) успехом не увенчалась (ошибок нет, но после сохранения вижу старый серт). ТП выполнила перегенерацию самостоятельно и ответила: > Описанное вами поведение портала вызвано известным вендору багом. > С помощью workaround срок действия сертификата был продлён. По ссылке со скриншота выше ({guilabel}`Metadata` [https://vcd.sbercloud.ru/cloud/org/SiteFactory/saml/metadata/alias/vcd](https://vcd.sbercloud.ru/cloud/org/SiteFactory/saml/metadata/alias/vcd)) загружаем `spring_saml_metadata.xml` --- из него возьмём новые сертификаты VCD для импорта в Keycloak. ### 2. Извлекаем сертификаты Нам требуются два сертификата: для подписи и для шифрования. Ниже пример файла `spring_saml_metadata.xml`, отметил, откуда копировать сертификаты. ```xml --- тут сертификат подписи в формате PEM --- --- тут сертификат шифрования в формате PEM --- urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress urn:oasis:names:tc:SAML:2.0:nameid-format:transient urn:oasis:names:tc:SAML:2.0:nameid-format:persistent urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName ``` Копируем сертификаты в файлы, например, `vcloud_signing_cert.pem` и `vcloud_encryption_cert.pem,` добавив строки для идентификации: ```text -----BEGIN CERTIFICATE----- < вставляем содержимое сертификата сюда > -----END CERTIFICATE----- ``` ### 3. На стороне Keycloak Идём на [ https://auth.appworks.ru/auth/admin/master/console/#/realms/master](https://auth.appworks.ru/auth/admin/master/console/#/realms/master) *(на 2022-09-15 нужно **разрешить доступ** на уровне `nginx` на `c04-dmz-nginx`)*. Открываем {guilabel}`Realm Master`, слева в меню --- {guilabel}`Клиенты`, в списке выбираем {guilabel}`vcloud`, переходим на вкладку {guilabel}`Ключи`. Импортируем полученные в пункте 2 сертификаты в {guilabel}`Ключ подписи` и {guilabel}`Ключ шифрования`. Проверяем, что авторизация в VCD работает.