Настройка ONLYOFFICE SP и Shibboleth IdP
Введение
Единый вход (англ. Single Sign-On, SSO) — технология, которая позволяет пользователям входить в систему только один раз, а затем получать доступ ко множеству приложений и сервисов без повторной аутентификации.
Если на веб-портале есть несколько обширных независимых разделов (форум, чат, блоги и т. д.), пользователь, пройдя аутентификацию в одном из сервисов, автоматически получает доступ ко всем остальным и не вводит данные своей учетной записи несколько раз.
SSO — это всегда совместная работа двух приложений: поставщика учетных записей (англ. Identity Provider, далее «IdP») и поставщика сервиса (англ. Service Provider, далее «SP»). ONLYOFFICE SSO реализует только SP. В качестве IdP может выступать множество различных провайдеров, но в этой статье мы рассмотрим реализацию Shibboleth.
Если вы хотите использовать SSO при подключении десктопных редакторов ONLYOFFICE к ONLYOFFICE Workspace, отключите Приватные комнаты в Панели управления.
Подготовка ONLYOFFICE Workspace для настройки SSO
- Установите ONLYOFFICE Workspace v. 11.0.0 для Docker или любую более позднюю версию с поддержкой SSO.
- Привяжите доменное имя, например,
myportal-address.com. - На портале перейдите в Панель управления > HTTPS, создайте и примените сертификат letsencrypt для шифрования трафика (для включения HTTPS на портале).
Создание Shibboleth IdP
Требования
-
Для развертывания Shibboleth IdP потребуется чистая хост-машина CentOS 7.
-
На хост-машине для IdP должно быть правильно настроено время и установлен сервис синхронизации времени:
timedatectl statusyum install ntpsystemctl enable ntpd.servicentpdate time.apple.com -
На машине должен быть установлен пакет
unzip:yum install unzip -
На машине должны быть установлены Docker и Docker Compose.
-
К машине должно быть привязано доменное имя (например,
your-idp-domain.com)
Создание Shibboleth IdP
Для создания, настройки и запуска Shibboleth IdP скачайте и выполните скрипт install.sh.
Скрипт выполняет следующие действия:
- скачивает docker-файлы для создания образов и контейнеров Shibboleth IdP с github,
- меняет стандартный домен
idptestbed.eduв файлах конфигурации на домен, указанный при запуске скрипта, - добавляет доступ по протоколу SAML для указанного домена ONLYOFFICE SP,
- указывает, какие атрибуты необходимы ONLYOFFICE SP для получения информации о пользователях от Shibboleth IdP (настройка Сопоставление атрибутов),
- создает и настраивает LDAP и создает пользователей для выдачи,
- включает динамическую загрузку метаданных от ONLYOFFICE SP в Shibboleth IdP,
- включает Shibboleth Single Logout (SLO), если необходимо.
-
Скачайте скрипт install.sh:
curl -L https://raw.githubusercontent.com/ONLYOFFICE/helpcenter-scripts/master/workspace/control-panel-sso-shibboleth/install.sh -o install.sh -
Сделайте скрипт исполняемым:
chmod +x install.sh -
Выполните скрипт, заменив параметры на свои:
./install.sh -id your-idp-domain.com -sd myportal-address.com --no_sloПараметры скрипта:
- -id — доменное имя текущей машины для Shibboleth IdP.
- -sd — доменное имя, на котором развернут ONLYOFFICE SP.
- --no_slo — отключает Single Logout в Shibboleth IdP (необязательный параметр).
-
Дождитесь, когда после выполнения скрипта Shibboleth IdP запустится.
-
Чтобы проверить, что Shibboleth IdP запустился корректно, откройте в браузере ссылку
https://your-idp-domain.com/idp/shibboleth. Должен отобразиться xml-файл. -
Скопируйте ссылку
https://{your_idp_domain}/idp/shibboleth(например,https://your-idp-domain.com/idp/shibboleth) и перейдите на портал ONLYOFFICE под учетной записью администратора. Откройте страницу Панель управления > SSO.
Настройка ONLYOFFICE SP
-
Убедитесь, что вы вошли в Панель управления ONLYOFFICE как администратор, и щелкните вкладку SSO в разделе НАСТРОЙКИ ПОРТАЛА на левой боковой панели.
примечаниеВы можете зарегистрировать только одного корпоративного поставщика учетных записей для вашей организации на портале ONLYOFFICE.

-
Включите SSO с помощью переключателя Включить аутентификацию с помощью технологии единого входа и вставьте ссылку на Shibboleth IdP в поле URL-адрес XML-файла метаданных IdP.
-
Нажмите кнопку со стрелкой вверх, чтобы загрузить метаданные IdP. Поля формы Настройки поставщика сервиса ONLYOFFICE будут автоматически заполнены данными из Shibboleth IdP.
Поскольку мы отключили SLO при выполнении скрипта install.sh, указав параметр
--no_slo, поле IdP Single Logout Endpoint URL останется пустым. -
После загрузки метаданных IdP в разделе IdP Public certificates будет добавлено два сертификата. Вы также увидите всплывающее окно с сообщением: «Несколько сертификатов проверки IdP не поддерживаются. Пожалуйста, оставьте только основной сертификат».
Удалите второй сертификат в списке и оставьте только первый — это основной сертификат. Используйте ссылку Удалить рядом со вторым сертификатом, чтобы удалить его. Если не удалить этот сертификат, настройки не удастся сохранить.
-
В поле Пользовательская надпись для кнопки входа вы можете ввести любой текст вместо стандартного (Single Sign-on). Этот текст будет отображаться на кнопке для входа с помощью сервиса единого входа на странице аутентификации ONLYOFFICE.
-
Теперь необходимо сгенерировать самоподписанные сертификаты или добавить любые другие в разделе Сертификаты поставщика сервиса.
ВажноВ списке Использовать для выберите опцию signing and encrypt, так как Shibboleth IdP автоматически настроен скриптом install.sh на проверку цифровой подписи и шифрование данных.

Должно получиться примерно так:

-
В разделе Сопоставление атрибутов укажите соответствие полей модуля Люди ONLYOFFICE атрибутам пользователя, которые будут возвращаться из Shibboleth IdP.
Поле Атрибут First Name urn:oid:2.5.4.42Last Name urn:oid:2.5.4.4Email urn:oid:0.9.2342.19200300.100.1.3Location urn:oid:2.5.4.7Title urn:oid:2.5.4.12Phone urn:oid:0.9.2342.19200300.100.1.41
В разделе Дополнительные параметры можно включить опцию Скрыть страницу аутентификации, чтобы скрыть страницу аутентификации по умолчанию и автоматически перенаправлять на сервис SSO.
ВажноЕсли вам необходимо восстановить страницу аутентификации по умолчанию (чтобы иметь доступ к порталу, если ваш сервер IdP выйдет из строя), добавьте ключ
/Auth.aspx?skipssoredirect=trueпосле доменного имени портала в адресной строке браузера. -
Нажмите кнопку Сохранить.
-
Должен открыться раздел Метаданные поставщика сервиса ONLYOFFICE.
-
Проверьте, что настройки доступны публично, нажав кнопку Скачать XML-файл метаданных поставщика сервиса. Должно отобразиться содержимое XML-файла.

Обычно этот XML-файл используется для настройки Shibboleth IdP, но поскольку скрипт install.sh включает
DynamicHTTPMetadataProvider, этот шаг не обязателен (Shibboleth IdP сам скачает этот xml-файл при первом запросе на вход).
Проверка работы ONLYOFFICE SP и Shibboleth IdP
Скрипт install.sh создает четырех тестовых пользователей, под которыми можно проверить работу ONLYOFFICE SP и Shibboleth IdP.
| Имя пользователя | Пароль | Комментарий | |
|---|---|---|---|
student1@{your_idp_domain} | student1 | password | Эталонный |
student2@{your_idp_domain} | student2 | password | Без givenName |
student3@{your_idp_domain} | student3 | password | С умлаутами |
staff1@{your_idp_domain} | staff1 | password | Только обязательные поля |
Вход в ONLYOFFICE на стороне SP
-
Перейдите на страницу аутентификации ONLYOFFICE (например,
https://myportal-address.com/Auth.aspx). -
Нажмите кнопку Single sign-on (надпись на кнопке может отличаться, если вы указали свой вариант при настройке ONLYOFFICE SP). Если этой кнопки нет, значит, SSO не включен.

-
Если все параметры SP и IdP настроены верно, вы будете перенаправлены на форму входа Shibboleth IdP:
-
Введите имя пользователя и пароль учетной записи Shibboleth IdP (username:
student1, password:password) и установите флажок Don't Remember Login. -
Если учетные данные указаны правильно, откроется новое окно. Разрешите передачу данных, нажав кнопку Accept.

-
Если учетные данные указаны правильно, вы будете перенаправлены на главную страницу портала. Учетная запись пользователя будет создана автоматически, если ее еще нет, или обновлена, если данные были изменены в IdP.

Профили пользователей, добавленных с помощью SSO-аутентификации
Возможность редактирования профилей пользователей, созданных с помощью SSO-аутентификации, ограничена. Поля профиля пользователя, полученные из IdP, заблокированы для редактирования (а именно: Имя, Фамилия, Email, Должность и Местоположение). Эти поля можно отредактировать только из вашей учетной записи в IdP.
На следующем изображении показано меню «Действия» для пользователя SSO:

На следующем изображении показан профиль пользователя SSO, открытый на редактирование:

Пользователи, созданные с помощью SSO-аутентификации, отмечены в списке пользователей значком SSO для администраторов портала:

Чтобы выйти из Shibboleth IdP (если при входе не был установлен флажок Don't Remember Login), перейдите по ссылке следующего вида: https://{shibboleth-idp-domain}/idp/profile/Logout