Настроить Single Sign-On через Azure AD

Продукты
Все продукты

Вы можете настроить интеграцию Creatio с Azure Active Directory (Azure AD), чтобы с ее помощью управлять возможностью единого входа для всех пользователей системы, которые работают в корпоративной сети. Дальнейшая инструкция предназначена для пользователей .NET Framework.

Для интеграции необходимо выполнить ряд настроек как на стороне Azure AD, так и на стороне Creatio.

  1. Настройки на стороне Azure AD:
    1. Зарегистрировать SAML SSO-приложения.
    2. Определить конечные точки (endpoints).
  2. Настройки на стороне Creatio:
    1. Настроить конфигурационные файлы.
    2. Проверить работу интеграции.
    3. Настроить Just-in-Time User Provisioning (опционально).

Важно. В примере использован адрес сайта Creatio https://site01.creatio.com/Demo_161215/ и адрес сайта сервиса Azure AD http://azure01.mysite.com/azure/. При выполнении настройки замените адреса на соответствующие адреса ваших сайтов.

Выполнить настройки на стороне Azure AD 

Для выполнения дальнейших настроек зарегистрируйте приложение в учетной записи администратора службы управления корпоративными удостоверениями Azure Active Directory (Azure AD). Подробно о том, как это сделать, читайте в документации Microsoft.

  1. Добавьте в Azure AD новое SSO-приложение (Trusted Relaying Party):
    1. Перейдите в раздел Корпоративные приложения (Enterprise applications) → Все приложения (All Applications).
    2. Нажмите кнопку Новое приложение (New application).
    3. В секции Добавление локального приложения (Add from the gallery) выберите “Creatio” и добавьте приложение. Подробнее: Add Creatio from the gallery, документация Microsoft (на английском языке).
  2. Перейдите в раздел Единый вход (Single single-on) и укажите следующие параметры:
    1. В поле Выбрать метод единого входа (Single Sign-on Mode) выберите “SAML”.
    2. В поле Идентификатор (сущности) (Identifier) укажите полное имя сайта, например, “https://ts1-dtcc1-crm-26909-2.creatio.com/”.
    3. В поле URL-адрес ответа (Reply URL) укажите полное имя сайта и адрес “svc/SsoLogin”, например, “https://ts1-dtcc1-crm-26909-2.creatio.com/ServiceModel/AuthServiceModel/AuthService.service.svc/SsoLogin”.
  3. Для выполнения настроек на стороне Creatio сохраните следующие данные (Рис. 1):
    • Azure AD Identifier,
    • Login URL,
    • Logout URL.
Рис. 1 — Данные, необходимые для настроек на стороне Creatio
creatio_azure_settings.png

На заметку. По умолчанию в Creatio из Azure AD передаются следующие поля: Given name (имя), Surname (фамилия), Email address (электронный адрес), Name (название). В качестве логина пользователя используется email-адрес.

Выполнить настройки на стороне Creatio 

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

Ниже приведена инструкция по настройке единого входа для пользователей Creatio on-site. Настоятельно рекомендуем предоставить службе поддержки временный доступ к конфигурации Creatio, либо производить эту настройку под руководством службы технической поддержки.

Чтобы выполнить настройку на стороне Creatio, необходимо заполнить параметры SAML-провайдера, указав данные идентификации в saml.config:

  1. В параметре “Name” укажите FQDN вашего сайта.

    Важно. Значение параметра ServiceProvider Name должно быть идентично значению Identifier, указанному на стороне провайдера идентификации Azure AD. Таким образом выполняется проверка, что SAML Assertion выдан именно для вашего приложения. Для этого удобнее использовать FQDN вашего сайта, например, https://site01.creatio.com/Demo_161215/. Обратите внимание, URL должен совпадать полностью, включая “/” в конце.

  2. В секции “Partner Identity Provider” укажите настройки со стороны IdP.
    1. Name” — название Identity провайдера. Для Azure AD обычно параметр выглядит следующим образом: https://sts.windows.net/<Azure account id>/.
    2. WantAssertionSigned” — признак использования сертификата шифрования. Укажите “false”, если вы не планируете использовать сертификат шифрования при обмене SAML Assertion.
    3. SingleSignOnServiceUrl” — URL сервиса единого входа провайдера. Для Azure AD это обычно https://login.microsoftonline.com/<Azure account id>/saml2. Вы можете узнать настройки добавленного коннектора в кабинете Azure.
    4. SingleLogoutServiceUrl” — URL сервиса единого выхода провайдера. Для Azure AD это обычно https://logout.microsoftonline.com/<Azure account id>/saml2. Вы можете узнать настройки добавленного коннектора в кабинете Azure.
    5. PartnerCertificateFile” — путь к сертификату безопасности в формате .*cer в файловой системе сервера относительно корня приложения Creatio. Нужно задавать, если WantAssertionSigned="true".
    6. OverridePendingAuthnRequest” —признак использования валидации при запросе. Укажите “true”, если вы не планируете выполнять валидацию соответствия ответа IdP ранее созданным Auth Request.

      Пример фрагмента кода saml.config для Azure AD:

      <
      ServiceProvider Name = "https://site01.creatio.com/Demo_161215/"
      Description = "Example Creatio Service Provider"
      AssertionConsumerServiceUrl = "~/ServiceModel/AuthService.svc/SsoLogin"
      LocalCertificateFile = "sp.pfx"
      LocalCertificatePassword = "password" /
          >
          <
          PartnerIdentityProviders >
          <
          !--Azure AD Creatio-- >
          <
          PartnerIdentityProvider Name = "http://azure01.mysite.com/azure/services/trust"
      OverridePendingAuthnRequest = "true"
      Description = "MVC Example Identity Provider"
      SignAuthnRequest = "false"
      SignLogoutRequest = "true"
      SignLogoutResponse = "true"
      WantSAMLResponseSigned = "false"
      WantAssertionSigned = "false"
      WantAssertionEncrypted = "false"
      SingleSignOnServiceUrl = "https://azure01.mysite.com/azure/ls"
      SingleLogoutServiceUrl = "https://azure01.mysite.com/azure/ls"
      PartnerCertificateFile = "Certificates\idp.cer" />
      
  3. Выполните настройки в корневых папках сайта. После указания настроек SAML-провайдера необходимо включить использование SAML SSO в Creatio. Внесите необходимые настройки в web.config в корневой папке сайта, чтобы включить использование SSO Auth-провайдеров при выполнении авторизации в Creatio:
    1. SsoAuthProvider” — провайдер входа в основное приложение.
    2. SSPSsoAuthProvider” — провайдер входа на портал. Указывать можно оба провайдера или только один, который нужен в конкретном случае.
      /web.config 
      <terrasoft> 
      <auth providerNames="InternalUserPassword,SSPUserPassword,SsoAuthProvider,SSPSsoAuthProvider" autoLoginProviderNames="" defLanguage="en-US" defWorkspaceName="Default" useIPRestriction="false" loginTimeout="30000"> 
      <providers>
      
      1. Укажите, в каком SAML Attribute будет выполняться поиск имени учетной записи пользователя, входящего через SSO. Имя пользователя указывается в атрибуте NameID SAML Assertion. Для обратной совместимости настроек на стороне Creatio используется значение из SAMLNameFieldName, если оно указано, например:

        /web.config
        <add key="SAMLNameFieldName" value="name" />
    3. Укажите, в каком SAML Attributes будет выполняться поиск ролей учетной записи пользователя, входящего через SSO (используется для Just-In-Time User Provisioning):

      /web.config
      <add key="SAMLRoleFieldName" value="roles" />
    4. Укажите, какой из IdP, указанных в saml.config, необходимо использовать. В web.config App Loader необходимо задать параметр “PartnerIdP” значением из строки Issuer URL в saml.config, например: https://sts.windows.net/a2cf6876-ff98-4480-8792-dc1903e649c7/”.

      /web.config 
      <appSettings> 
      <add key="PartnerIdP" value="https://sts.windows.net/a2cf6876-ff98-4480-8792-dc1903e649c7/"/> 
      </appSettings>
      
      
    5. Установите использование SSO провайдера по умолчанию при входе на сайт. Для этого укажите в web.config App Loader ресурс по умолчанию NuiLogin.aspx?use_sso=true.

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

    6. Настройте перенаправление на страницу входа Azure AD при переходе на сайт Creatio.

      /web.config 
      <defaultDocument> <files> <add value="/Login/NuiLogin.aspx?use_sso=true" /> </files> </defaultDocument>
    7. Настройте перенаправление на страницу входа Azure AD при переходе на страницу конкретной записи.

      /web.config 
      <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> 
  4. Выполните настройки в web.config App (в папке Terrasoft.WebApp):
    1. Включите Single Log Out.
      /Terrasoft.WebApp/web.config 
      <add key="UseSlo" value="true" /> 
      
    2. Включите использование SSO, если нет активной сессии и выполняется переход по ссылке вида: https://<site FQDN>/0/Nui/ViewModule.aspx#CardModuleV2/ContactPageV2/edit/f2e9c5a0-7b6f-4320-bba1-30e78bfce75c:
      /web.config 
      <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> 
      
  5. Включите Just-In-Time User Provisioning.
    1. Включите Just-In-Time User Provisioning web.config Loader.
      /web.config
      <add name="UseJit" value="true" /> 
    2. Настройте сопоставление полей из SAML Assertion с колонками в Creatio, используя справочник “SAML field name converters to contact field name”.