SAML является одним из самых распространенных протоколов аутентификации, который используется для реализации технологии единого входа. Сотрудник предприятия, который авторизовался в корпоративном приложении SAML впоследствии может буквально в один клик входить в другие корпоративные приложения, не запоминая множество сложных паролей и без необходимости постоянно их менять. Это делает аутентификацию пользователей более простой, удобной и безопасной. В данной статье мы расскажем о том, как интегрировать Carbonio с корпоративным приложением SAML.
При аутентификации по протоколу SAML в процессе участвуют три стороны: это сам пользователь, который осуществляет аутентификацию, Service Provider — корпоративное приложение, в котором происходит аутентификация, а также Identity Provider — хранилище учетных записей, у которого SP запрашивает подтверждение после ввода логина и пароля пользователя. В случае совпадения передаваемых пользователем аутентификационных данных, хранящихся в IdP, Service Provider формирует временный токен, который позволяет пользователю входить во все корпоративные приложения, интегрированные с SAML.
Настройка входа с использованием SAML
Для конфигурации входа с использованием SAML вам потребуется выполнить часть настроек на стороне сервис-провайдера, а часть на стороне почтового сервера. В частности на стороне сервис-провайдера настраиваются
-
sp.entityid — Метаданные приложения SAML. В качестве этой настройки указывается ссылка формата https://SAMLProvider.ru/zx/auth/samlMetadata?domain=carbonio.ru. В конце ссылки указывается имя домена для которого настраивается интеграция с SAML.
-
sp.assertion_consumer_service.url — Ссылка для входа пользователей. В качестве этой настройки также указывается ссылка формата https://SAMLPorvider.ru/zx/auth/saml
-
sp.nameidformat — формат имени входа. В качестве этой настройки указывается регулярное выражение urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Во всех приведенных выше примерах настроек SAMLPorvider.ru — это ссылка на провайдера SAML, а carbonio.ru — название почтового домена, для которого проводится интеграция.
Провести интеграцию с приложением SAML можно либо автоматически, либо вручную.
В первом случае вам потребуется получить ссылку на файл метаданных вашего Identity Provider и выполнить следующую команду в командной строке Carbonio.
carbonio auth saml import carbonio.ru URL https://IDProvider.ru/simplesaml/saml/idp/metadata.php
Если IdP расположен в локальной сети вашего предприятия, можно включить опцию игнорирования подлинности SSL-сертификата.
carbonio auth saml import carbonio.ru URL https://IDProvider.local/app/CarbonioSAML/sso/saml/metadata.php allow_unsecure true
В большинстве случаев этого достаточно для корректной интеграции SAML с Carbonio, однако в отдельных случаях может потребоваться ручная настройка интеграции с SAML.
Для этого экспортируйте параметры SAML из Carbonio в json-файл
carbonio auth saml get carbonio.ru export_to /tmp/saml.json
Откройте файл /tmp/saml.json и вручную замените в нем параметры entityid, assertion_consumer_service.url и nameidformat (2-4 строчки файла), на те, которые предоставляет провайдер SAML.
Сохраните изменения в файле и импортируйте измененный файл с настройками в Carbonio
carbonio auth saml import carbonio.ru /tmp/saml.json
Можно также изменять эти настройки прямо в командной строке при помощи команд
-
carbonio auth saml set carbonio.ru entityid https://SAMLPorvider.ru/zx/auth/samlMetadata?domain=carbonio.ru
-
carbonio auth saml set carbonio.ru assertion_consumer_service.url https://SAMLPorvider.ru/zx/auth/saml
-
carbonio auth saml set carbonio.ru sp.nameidformat urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Узнать текущие значения данных настроек можно при помощи команд
-
carbonio auth saml set carbonio.ru entityid
-
carbonio auth saml set carbonio.ru assertion_consumer_service.url
-
carbonio auth saml set carbonio.ru sp.nameidformat
В случае, если все настройки выполнены корректно, на экране входа появится кнопка “Login SAML” с помощью которой можно войти в Carbonio при помощи учетных данных SAML.
Настройка выхода с использованием SAML
Часть провайдеров SAML требуют помимо процедуры входа в учетную запись настроить также и выход из нее. Процесс настройки также включает в себя изменение ряда параметров в json-файле конфигурации. Среди них:
-
sp.single_logout_service.url — ссылка на соответствующий сервис провайдера SAML
-
sp.x509cert — SSL сертификат
-
sp.privatekey — ключ для сертификата
В случае если у вас по какой-то причине нет сертификата и ключа для использования сервиса выхода из учетной записи, вы можете сгенерировать его самостоятельно в OpenSSL и затем просто зарегистрировать у вашего провайдера SAML
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt
Также в зависимости от требований вашего провайдера SAML вам может потребоваться включить шифрование и подпись запроса на выход из учетной записи. Делается это за счет установки настроек security.logoutrequest_signed,
security.logoutresponse_signed и security.authnrequest_signed на значение true.
По вопросам тестирования, приобретения, предоставления лицензии и консультаций обращаться на почту sales@svzcloud.ru к эксклюзивному партнеру Zextras.
ссылка на оригинал статьи https://habr.com/ru/company/Zextras/blog/714136/
Добавить комментарий