Вы можете настроить интеграцию Creatio c Active Directory Federation Services (ADFS), чтобы с ее помощью управлять возможностью единого входа для всех пользователей системы. Для этого нужно выполнить ряд настроек как на стороне ADFS, так и на стороне Creatio.
Чтобы выполнить настройку на стороне Creatio, вам потребуется доступ к конфигурационным файлам и серверу приложения. Пользователям облачной версии системы необходимо обратиться в службу технической поддержки, которая выполнит все необходимые настройки на стороне Creatio. Ниже приведена инструкция по настройке единого входа для пользователей on-site. Настоятельно рекомендуем предоставить службе поддержки временный доступ к конфигурации Creatio, либо производить эту настройку под руководством службы технической поддержки.
Важно
В примере использован адрес сайта Creatio https://site01.creatio.com/Demo_161215/ и адрес сайта сервиса ADFS http://adfs01.mysite.com/adfs/. При выполнении настройки замените адреса на соответствующие адреса ваших сайтов.
Настройки на стороне ADFS
Запустите ADFS.
1.Добавьте в ADFS новый Trusted Relaying Party (Рис. 1).
2.Выберите опцию “Enter data about the relying party manually” (Рис. 2).
3.В поле [Display name] ведите имя Relying Party. Имя необходимо только для упорядоченного ведения списка доверенных приложений в ADFS.
4.Оставьте профиль “AD FS Profile”, выбранный по умолчанию. Нажмите кнопку [Next].
5.На шаге выбора сертификата нажмите кнопку [Next].
6.Включите поддержку протокола SAML 2.0. Укажите адрес сайта, добавьте к нему “/ServiceModel/AuthService.svc/SsoLogin“ (Рис. 3).
7.В идентификаторах укажите корень сайта и нажмите кнопку [Add] (Рис. 4).
Важно
Идентификатор используется при проверке подлинности источника, который запрашивает выполнение аутентификации. URL должен совпадать полностью, включая “/” в конце.
8.Значения остальных параметров настройте в соответствии с требованиями безопасности вашей организации. Для тестового использования эти настройки можно оставить по умолчанию.
9.Нажмите Finish. В открывшемся окне по кнопке [Add Rule] добавьте новое правило формирования SAML Assertion в SAML Response (Рис. 5).
На заметку
Данные, которые формируются новым правилом, будут использоваться приложением Creatio для поиска пользователя и актуализации его ролей.
10.На первом шаге добавления правила оставьте настройку, выбранную по умолчанию, и нажмите кнопку [Next]. Установите набор параметров, которые будут получены из данных пользователя (Рис. 6). В указанном примере в SAML Assertion будет передаваться Name пользователя и список групп домена, в которые он входит. Для синхронизации ролей пользователя нужно, чтобы на стороне ADFS был атрибут “Token Groups – Qualified by Domain Name” = “Role”.
11.Нажмите кнопку [Save].
12.Откройте настройки созданного Trusted Relay и на вкладке [Advanced] укажите шифрование SHA-1 согласно алгоритму сертификата сайта.
13.Для настройки шифрования SAML-пакета на вкладке [Encryption] добавьте публичный ключ сертификата (Рис. 7).
На заметку
Если вы используете Creatio cloud, то публичный ключ сертификата будет предоставлен службой поддержки.
14.На вкладке [Endpoints] добавьте Logout endpoint, для которого установите такие параметры (Рис. 8):
Endpoint type: SAML Logout
Binding: Redirect
Trusted URL: https://site01.creatio.com/Demo_161215/ServiceModel/AuthService.svc/SsoLogout
15.На вкладке [Signature] добавьте сертификат для подписывания Logout Request (Рис. 9).
Важно
Без сертификата не будет работать выход из приложений.
Настройки на стороне Creatio cloud
Если вы используете Creatio cloud, то обратитесь в службу технической поддержки для выполнения настройки.
Настройки на стороне Creatio on-site
Если вы используете Creatio on-site, то выполните следующие настройки в конфигурационных файлах:
Важно
Настоятельно рекомендуем производить эту настройку под руководством службы технической поддержки.
1.Укажите данные провайдера идентификации в saml.config. В параметре Name укажите FQDN вашего сайта.
Важно
Значение параметра ServiceProvider Name должно быть идентично значению Identifier. указанному на стороне провайдера идентификации ADFS. Таким образом выполняется проверка, что SAML Assertion выдан именно для вашего приложения. Для этого удобнее использовать FQDN вашего сайта.
2.В секции Partner Identity Provider укажите настройки со стороны IdP. Эти настройки можно посмотреть в файле метаданных.
WantAssertionSigned=“false“— если не будет использоваться сертификат шифрования при обмене SALM Assertion.
SingleSignOnServiceUrl — URL сервиса единого входа провайдера. Для ADFS, как правило, это: https://site01.creatio.com/Demo_161215/adfs/ls.
SingleLogoutServiceUrl — URL сервиса единого входа провайдера. Для ADFS, как правило, это: https://site01.creatio.com/Demo_161215/adfs/ls.
PartnerCertificateFile — путь к сертификату безопасности в файловой системе сервера приложения creatio. Нужно задавать, если WantAssertionSigned=“true“.
SignLogoutRequest=“true” — важно указывать для ADFS, поскольку подписывание LogoutRequest обязательно.
SignLogoutResponse=“true” — важно указывать для ADFS, поскольку подписывание LogoutResponse обязательно.
OverridePendingAuthnRequest=“true” — опция, которая помогает при ошибках IdP initiated login.
Пример saml.config для тестового ADFS Terrasoft:
<?xml version="1.0"?>
<SAMLConfiguration xmlns="urn:componentspace:SAML:2.0:configuration">
<ServiceProvider Name="https://site01.creatio.com/Demo_161215/"
Description="Example Creatio Service Provider"
AssertionConsumerServiceUrl="~/ServiceModel/AuthService.svc/SsoLogin"
LocalCertificateFile="sp.pfx"
LocalCertificatePassword="password"
/>
<PartnerIdentityProviders>
<!-- ADFS Creatio -->
<PartnerIdentityProvider Name="http://adfs01.mysite.com/adfs/services/trust"
OverridePendingAuthnRequest="true"
Description="MVC Example Identity Provider"
SignAuthnRequest="false"
SignLogoutRequest="true"
SignLogoutResponse="true"
WantSAMLResponseSigned="false"
WantAssertionSigned="false"
WantAssertionEncrypted="false"
SingleSignOnServiceUrl="https://adfs01.mysite.com/adfs/ls"
SingleLogoutServiceUrl="https://adfs01.mysite.com/adfs/ls"
PartnerCertificateFile="Certificates\idp.cer"/>
</PartnerIdentityProviders>
</SAMLConfiguration>
3.Добавьте в файловую систему, в которой находится приложение Creatio, приватный ключ сертификата шифрования. Укажите путь к файлу, а также пароль в файлах конфигурации saml.config (Рис. 10, 1).
Измените значение параметра WantAssertionEncrypted на “true” (Рис. 10, 2).
Вы можете проверить работоспособность внесенных настроек по внешнему виду передаваемого SAML-пакета:
•SAML-пакет с включенным шифрованием (Рис. 11).
•SAML-пакет без шифрования (Рис. 12).
4.Укажите сертификат, которым будет выполняться подпись SAML Assertion. Важно, чтобы сертификат был физически добавлен в корневую папку сайта и в папку Terrasoft.WebApp.
LocalCertificateFile="sp.pfx"
LocalCertificatePassword="password"
5.Внесите необходимые настройки в web.config в корневой папке сайта:
a.Включите использование SSO Auth-провайдеров при выполнении авторизации в Creatio:
SsoAuthProvider — провайдер входа в основное приложение.
SSPSsoAuthProvider — провайдер входа на портал.
Указывать можно оба провайдера или только один, который нужен в конкретном случае.
<terrasoft>
<auth providerNames="InternalUserPassword,SSPUserPassword,SsoAuthProvider,SSPSsoAuthProvider" autoLoginProviderNames="" defLanguage="en-US" defWorkspaceName="Default" useIPRestriction="false" loginTimeout="30000">
<providers>
b.Укажите, какой из провайдеров идентификации, указанных в saml.config, нужно использовать. В web.config App Loader задайте параметр PartnerIdP значением из строки Issuer URL в saml.config, например:
<appSettings> ... <add key="PartnerIdP" value="http://adfs01.mysite.com/adfs/services/trust"/> ... </appSettings>
c.Установите использование SSO-провайдера по умолчанию при входе на сайт. Для этого укажите в web.config App Loader ресурс по умолчанию Login/NuiLogin.aspx?use_sso=true.
На заметку
Для возможности входа с использованием логина/пароля остается доступной прямая ссылка https://site01.creatio.com/Login/NuiLogin.aspx?
Для тестирования работы SSO до включения по умолчанию можно использовать ссылку https://site01.creatio.com/NuiLogin.aspx?use_sso=true.
Установите отправку к провайдеру идентификации при переходе в корень сайта:
<defaultDocument> <files> <add value="Login/NuiLogin.aspx?use_sso=true" /> </files> </defaultDocument>
Установите отправку к провайдеру идентификации при отсутствии сессии пользователя:
<authentication mode="Forms">
<forms loginUrl="~/Login/NuiLogin.aspx?use_sso=true" protection="All" timeout="60" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="ViewPage.aspx?Id=4e342d5e-bd89-4b79-98e2-22e433122403" cookieless="UseDeviceProfile" enableCrossAppRedirects="true" />
</authentication>
6.Включите Single Log Out в web.config в папке Terrasoft.WebApp:
/Terrasoft.WebApp/web.config
<add key="UseSlo" value="true" />
7.Включите Just-In-Time User Provisioning в web.config в корневой папке приложения:
<add name="UseJit" value="true" />
Тип пользователя определяется страницей, с которой им был выполнен вход в систему. Если для входа используется сценарий “Identity initiated “, то необходимо явно указать значение DefUserType:
•General - обычный пользователь;
•SSP – пользователь портала.
8.Настройте сопоставление полей из SAML Assertion с колонками в Creatio в справочнике [Преобразователь SAML атрибута в название поля контакта]. Это необходимо для корректного заполнения полей контакта при создании нового пользователя с помощью Just-In-Time User Provisioning. Если поле пусто или отсутствует в данных провайдера идентификации, оно может быть заполнено значением, указанным в поле [Значение по умолчанию] справочника. При следующем входе пользователя поля контакта, указанные в справочнике, будут заполнены значением, полученным из провайдера, или актуальным значением по умолчанию.
На заметку
Если справочника нет в списке справочников, его необходимо зарегистрировать.
9.Для использования технологии единого входа в мобильном приложении установите признак [Значение по умолчанию] в системной настройке [Использовать SSO в мобильном приложении].
Смотрите также