Содержание
Введение
Технология единого входа (англ. Single Sign-On или SSO) — технология, которая позволяет пользователям осуществлять вход в систему только один раз, а затем получать доступ ко множеству приложений/сервисов без повторной аутентификации.
SSO — это всегда совместная работа двух приложений: поставщика учетных записей (англ. Identity Provider, далее по тексту сокращенно «IdP») и поставщика сервиса (англ. Service Provider, далее по тексту сокращенно «SP»). Р7-Офис SSO реализует только SP. В качестве IdP может выступать множество различных провайдеров, но в этой статье мы рассмотрим реализацию OneLogin.
Подготовка Р7-Офис для настройки SSO
- Установите версию Р7-Офис. Корпоративный сервер для Docker с поддержкой SSO.
- Привяжите доменное имя, например, myportal-address.com.
- На портале перейдите в Панель управления -> HTTPS, создайте и примените сертификат letsencrypt для шифрования трафика (для включения HTTPS на портале).
- Перейдите на хостовую машину, скопируйте значения закрытого ключа и открытого сертификата, которые вы использовали для включения HTTPS, и сохраните их в любом текстовом редакторе, например, в Блокноте (эти значения потребуются позже для настройки SSO).
Создание IdP в OneLogin
- Зарегистрируйтесь в OneLogin, если ещё не зарегистрировались.
- Войдите в OneLogin под учетной записью администратора.
- Перейдите в меню APPS -> Add Apps.
- В строке для поиска Find Application введите следующий текст: SAML Test Connector (Idp:
- Среди полученных вариантов выберите подходящий, например, SAML Test Connector (IdP) w/encrypt.
- В новом открывшемся окне напишите любое имя в поле Display Name, чтобы отличать это приложение от других, смените иконки на собственные и нажмите кнопку Save.
- Примечание: Перейдите в подменю Configuration и заполните поля в соответствии с приведенной ниже таблицей:Вместо myportal-address.com укажите собственное доменное имя или публичный IP-адрес, на котором располагается Р7-Офис SP.
Application Details RelayState https://myportal-address.com Audience https://myportal-address.com/sso/ Recipient https://myportal-address.com/sso/acs ACS (Consumer) URL Validator ^https:\/\/myportal-address\.com\/sso\/acs\/$ ACS (Consumer) URL https://myportal-address.com/sso/acs Single Logout URL https://myportal-address.com/sso/slo/callback SAML Encryption Public key * -----BEGIN CERTIFICATE----- MIIE9zCCA9+gAwIBAgISA5VHo5m3/9NM1/gv8SDlE7vxMA0GCSqGSIb3DQEBCwUA MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzA1MzExNTEzMDBaFw0x NzA4MjkxNTEzMDBaMBUxEzARBgNVBAMTCmRvY2tlcjQudGswggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQC/LuH8Hcu0DUz2b8lFiUYHK1l2R55m/3ap9DsA /BbOJdbnFm/v5dTgUL4Vx73aX8vl2I5ePh5siNrhEuc7d8VfQ62WqLHM/3jz0wVi vFJN4rRVZAOK/S7zfTGf6HUloi0Jg+Rol2zh0IfWUN+UczClJ0b0zewYEF8ZLhNY W65X2fx6BahK6zbRotNj3tJy0zib6znqBOPhT999pnk5L0S+CfzNhVHH/V+lPVtX Tu9tSILnFQpVAsv3oKo/7n/N/F9t5bI/kMllXQFReq1a+9KTOv0OlZgEd7xMu8ht 707IdILRBAW3f1iMMT43DpmjkcST7NnNEbsLXSlBIwKz8GENAgMBAAGjggIKMIIC BjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMC MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFOqivMdw2WduQJmO1lXsq9E3zEvmMB8G A1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAu BggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9yZzAv BggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9yZy8w FQYDVR0RBA4wDIIKZG9ja2VyNC50azCB/gYDVR0gBIH2MIHzMAgGBmeBDAECATCB 5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0c2Vu Y3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUgbWF5 IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBvbmx5 IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZvdW5k IGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqGSIb3 DQEBCwUAA4IBAQBItwpwwcQGMvap2hGhBQnZoS8bJ5iuq24KmEl3TrLdtLyklPy2 oR1HXgfW5fpTCGP744pVBwGXO2A8+2J6/wcNybo/odoB9dSzAMfRtXQR83XN4F8l 6E5zShBZ1kkzJayk4RytSzBR+uyTR1J7erK1MxlmOgQfLp2JqQsdEO6qpycER5pY mK77eWGrEE2+tOwgY4amlnLgBSif+nieUgQiSRboHGSF6nizES2pBKTk595P4pzK 9W5ax4zjqwQnMQujcjrHm7kbny2gFLH1wl0MY0yRlBytaFOhSWvr2g5JDFjgoFtd xEe8PMKA+cfU+0SznX/ynMgrz4MqSRRtQChx -----END CERTIFICATE-----
Примечание: * Здесь представлен пример сертификата HTTPS для доменного имени myportal-address.com, созданный с помощью сервиса letsencrypt. - Нажмите кнопку Save и перейдите в подменю Parameters. Используйте ссылку Add parameter, чтобы создать 5 параметров (
givenName
,sn
,mail
,title
,mobile
), для каждого из них отметив опцию Include in SAML assertion: - Отредактируйте значение каждого параметра, выбирая подходящее значение из списка:
- Когда все нужные поля для атрибутов в утверждениях SAML будут заполнены в IdP, получится примерно такой же результат, как на следующем изображении. Нажмите кнопку Save.
- Перейдите в подменю SSO:
Скопируйте ссылку из поля Issuer URL (например, https://app.onelogin.com/saml/metadata/666179) и перейдите на портал Р7-Офис под учетной записью администратора. Откройте страницу Панель управления -> SSO.
Настройка Р7-Офис SP
- Убедитесь, что вы зашли в качестве администратора в Панель управления Р7-Офис, и щелкните вкладку SSO.Примечание: Вы можете зарегистрировать только одного корпоративного поставщика учетных записей для вашей организации на портале Р7-Офис.
- Включите SSO, используя переключатель Включить аутентификацию с помощью технологии единого входа. Ссылку, скопированную из поля Issuer URL в OneLogin, вставьте в поле URL-адрес XML-файла метаданных IdP.Нажмите кнопку со стрелкой вверх, чтобы загрузить метаданные IdP. Форма Настройки поставщика сервиса Р7-Офис будет автоматически заполнена данными из OneLogin IdP.
- В поле Пользовательская надпись для кнопки входа вы можете ввести любой текст вместо стандартного «Single Sign-on«. Этот текст будет отображаться на кнопке для входа с помощью сервиса Single Sign-on на странице аутентификации портала Р7-Офис.
- Теперь необходимо добавить сертификаты в раздел Сертификаты поставщика сервиса. Можно добавить сертификаты, взятые ранее при настройке HTTPS, или любые другие.Примечание: открытый сертификат в OneLogin должен быть тем же, что и сертификат, загруженный в разделе Сертификаты поставщика сервиса, и закрытый ключ должен к нему подходить.
Должно получиться примерно так:
Примечание: Форму с заголовком Сопоставление атрибутов настраивать не нужно, так как мы указали эти же параметры при создании OneLogin IdP. - Нажмите кнопку Сохранить. Должен открыться раздел Метаданные поставщика сервиса Р7-Офис. Проверьте, что настройки доступны публично, кликнув по кнопке СКАЧАТЬ XML-ФАЙЛ МЕТАДАННЫХ ПОСТАВЩИКА СЕРВИСА. Должно отобразиться содержимое XML-файла.
Создание пользователей в OneLogin и предоставление им доступа к Р7-Офис
Чтобы создать пользователей в OneLogin и предоставить им доступ к Р7-Офис SP, выполните следующие действия:
- перейдите на страницу All Users в OneLogin под учетной записью администратора,
- создайте нового пользователя или отредактируйте уже существующего,
- перейдите в подменю Applications,
- выберите наше новое созданное приложение из списка и нажмите CONTINUE,
- в новом открывшемся окне добавьте недостающие данные, если это необходимо, или просто закройте его,
- нажмите кнопку SAVE USER,
- теперь пользователь может работать в Р7-Офис SP.
Проверка работы Р7-Офис SP и OneLogin IdP
Вход в Р7-Офис на стороне SP
- Перейдите на страницу аутентификации Р7-Офис (например, https://myportal-address.com/auth.aspx).
- Нажмите на кнопку Single sign-on (название кнопки может отличаться, если вы указали свой вариант при настройке Р7-Офис SP). Если этой кнопки нет, то SSO не включен.
- Если всё настроено верно в SP и IdP, мы будем перенаправлены на форму логина в OneLogin IdP:
- Введите логин и пароль пользователя, которому дан доступ к Р7-Офис SP, и нажмите кнопку LOG IN.
- Если выдаётся такая страница, то пользователю не предоставлен доступ к Р7-Офис SP:
В этом случае нужно выйти из OneLogin и повторить шаги 1—4, но используя учетные данные другого пользователя.
- Если учетные данные указаны правильно, мы будем перенаправлены на главную страницу портала (если такого пользователя нет на портале, он будет создан автоматически, а если данные были изменены в IdP, они будут обновлены).
Профили пользователей, добавленных с помощью SSO-аутентификации
Возможность редактирования профилей пользователей, созданных с помощью SSO-аутентификации, ограничена. Поля профиля пользователя, полученные из IdP, заблокированы для редактирования (а именно: Имя
, Фамилия
, Email
, Позиция
и Местоположение
). Эти поля можно отредактировать только из вашей учетной записи в IdP.
Пользователи, созданные с помощью SSO-аутентификации, отмечены в списке пользователей значком SSO для администраторов портала:
Выход из Р7-Офис SP
- Выход можно осуществить с портала, используя пункт меню Выйти. Пользователь также должен автоматически выйти из OneLogin IdP, если он вышел из всех других приложений, к которым ему дали доступ в OneLogin и куда он произвёл вход до этого.
- При удачном выходе вы будете перенаправлены страницу аутентификации портала.
- Если перейти на страницу с приложением (например, https://companypage.onelogin.com/login), вы увидите форму логина:
Вход в Р7-Офис на стороне Onlogin IdP
- Перейдите на страницу вашей компании в OneLogin (например, https://companypage.onelogin.com/login).
- Войдите, используя ваши учетные данные в OnleLogin.
- Если учетные данные указаны правильно, вы будете перенаправлены на страницу с приложениями, доступ к которым предоставил вам администратор вашей компании в OneLogin. Нажмите на нужное приложение (например, SAML Test Connector (IdP) w/encrypt).
- Если всё настроено верно, вы будете перенаправлены на портал myportal-address.com.
Выход из OneLogin IdP
- Перейдите на страницу вашей компании в OneLogin (например, https://companypage.onelogin.com/) и нажмите на пункт меню Выход.
- Если всё пройдёт правильно, вы выйдете из портала и будете перенаправлены на страницу логина в OneLogin.