Studio Creatio

Настройка интеграции с ADFS

Вы можете настроить интеграцию 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).

Рис. 1 — Добавление нового Trusted Relying Party

scr_chapter_single_sign_on_adfs_step1_add_party.png 

2.Выберите опцию “Enter data about the relying party manually” (Рис. 2).

Рис. 2 — Выбор опции “Enter data about the relying party manually”

scr_chapter_single_sign_on_adfs_step2_enter_data_manually.png 

3.В поле [Display name] ведите имя Relying Party. Имя необходимо только для упорядоченного ведения списка доверенных приложений в ADFS.

4.Оставьте профиль “AD FS Profile”, выбранный по умолчанию. Нажмите кнопку [Next].

5.На шаге выбора сертификата нажмите кнопку [Next].

6.Включите поддержку протокола SAML 2.0. Укажите адрес сайта, добавьте к нему “/ServiceModel/AuthService.svc/SsoLogin“ (Рис. 3).

Рис. 3 — Включение поддержки протокола SAML 2.0

scr_chapter_single_sign_on_adfs_step6_enable_saml.png 

7.В идентификаторах укажите корень сайта и нажмите кнопку [Add] (Рис. 4).

Рис. 4 — Указание идентификатора

scr_chapter_single_sign_on_adfs_step7_set_identifier.png 

Важно

Идентификатор используется при проверке подлинности источника, который запрашивает выполнение аутентификации. URL должен совпадать полностью, включая “/” в конце.

8.Значения остальных параметров настройте в соответствии с требованиями безопасности вашей организации. Для тестового использования эти настройки можно оставить по умолчанию.

9.Нажмите Finish. В открывшемся окне по кнопке [Add Rule] добавьте новое правило формирования SAML Assertion в SAML Response (Рис. 5).

Рис. 5 — Добавление правила

scr_chapter_single_sign_on_adfs_step9_add_rule.png 

На заметку

Данные, которые формируются новым правилом, будут использоваться приложением Creatio для поиска пользователя и актуализации его ролей.

10.На первом шаге добавления правила оставьте настройку, выбранную по умолчанию, и нажмите кнопку [Next]. Установите набор параметров, которые будут получены из данных пользователя (Рис. 6). В указанном примере в SAML Assertion будет передаваться Name пользователя и список групп домена, в которые он входит.

Рис. 6 — Установка параметров правила

scr_chapter_single_sign_on_adfs_step10_rule_parameters.png 

11.Нажмите кнопку [Save].

12.Откройте настройки созданного Trusted Relay и на вкладке [Advanced] укажите шифрование SHA-1 согласно алгоритму сертификата сайта.

13.Для настройки шифрования SAML-пакета на вкладке [Encryption] добавьте публичный ключ сертификата (Рис. 7).

На заметку

Если вы используете Creatio cloud, то публичный ключ сертификата будет предоставлен службой поддержки.

Рис. 7— Добавление публичного ключа

scr_chapter_single_sign_on_adfs_step13_add_public_key.png 

14.На вкладке [Endpoints] добавьте Logout endpoint, для которого установите такие параметры (Рис. 8):

Endpoint type: SAML Logout

Binding: Redirect

Trusted URL: https://site01.creatio.com/Demo_161215/ServiceModel/AuthService.svc/SsoLogout

Рис. 8 — Установка параметров Endpoint

scr_chapter_single_sign_on_adfs_step13_add_endpoint.png 

15.На вкладке [Signature] добавьте сертификат для подписывания Logout Request (Рис. 9).

Рис. 9 — Добавление сертификата

scr_chapter_single_sign_on_adfs_step14_add_certificate.png 

Важно

Без сертификата не будет работать выход из приложений.

Настройки на стороне 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).

Рис. 10 — Настройка шифрования SAML-пакета

scr_chapter_single_sign_on_adfs_add_private_key.png 

Измените значение параметра WantAssertionEncrypted на “true” (Рис. 10, 2).

Вы можете проверить работоспособность внесенных настроек по внешнему виду передаваемого SAML-пакета:

SAML-пакет с включенным шифрованием (Рис. 11).

Рис. 11 —Вид SAML-пакета с включенным шифрованием

scr_chapter_single_sign_on_adfs_saml_with_encr.png 

SAML-пакет без шифрования (Рис. 12).

Рис. 12 — Вид SAML-пакета без шифрования

scr_chapter_single_sign_on_adfs_saml_without_encr..png 

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 ресурс по умолчанию NuiLogin.aspx?use_sso=true.

На заметку

Для возможности входа с использованием логина/пароля остается доступной прямая ссылка https://site01.creatio.com/NuiLogin.aspx.
Для тестирования работы SSO до включения по умолчанию можно использовать ссылку https://site01.creatio.com/NuiLogin.aspx?use_sso=true.

Установите отправку к провайдеру идентификации при переходе в корень сайта:

<defaultDocument> <files> <add value="NuiLogin.aspx?use_sso=true" /> </files> </defaultDocument>

Установите отправку к провайдеру идентификации при отсутствии сессии пользователя:

<authentication mode="Forms">
<forms loginUrl="~/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" />

8.Настройте сопоставление полей из SAML Assertion с колонками в Creatio в справочнике [Преобразователь SAML атрибута в название поля контакта]. Это необходимо для корректного заполнения полей контакта при создании нового пользователя с помощью Just-In-Time User Provisioning. Если поле пусто или отсутствует в данных провайдера идентификации, оно может быть заполнено значением, указанным в поле [Значение по умолчанию] справочника. При следующем входе пользователя поля контакта, указанные в справочнике, будут заполнены значением, полученным из провайдера, или актуальным значением по умолчанию.

На заметку

Если справочника нет в списке справочников, его необходимо зарегистрировать.

9.Для использования технологии единого входа в мобильном приложении установите признак [Значение по умолчанию] в системной настройке [Использовать SSO в мобильном приложении].

Смотрите также

Настройка интеграции с OneLogin

Настройка Just-In-Time User Provisioning

Был ли данный материал полезен?

Как можно улучшить эту статью?