Актуальная инструкция для версии 3.20 и выше находится здесь.
Интеграционное решение ориентировано на компоненты Active Directory:
Службы федерации Active Directory используются для аутентификации пользователей. AD FS позволяет использовать технологию единого входа (SSO). В нашем случае важно, что AD FS использует Встроенную Аутентификацию Windows, что позволяет входить в систему без ввода логина и пароля (требует настройки в IE и Firefox). Если пользователи будут использовать AD FS только находясь в домене, то не обязательно делать эту службу доступной во внешнюю сеть.
Службы каталогов AD используются для импорта пользователей из AD в систему и для выбора учетной записи AD при связывании с пользователем. Связывание происходит по полю SID.
ADFS_Certificate, в разделе «Выбрать хранилище сертификата для нового сертификата:» выберите «Личный». ADFS_Login.aspx в Вашей системе (например: https://your.system.ru/streamline/ADFS_Login.aspx). Нажимаем на кнопку «Далее».https://your.system.ru/streamline). Нажмите «Далее».sid; c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid"]=>issue(claim = c); (копировать вместе со знаком ;)Скачать Windows Identity Foundation можно по ссылке.
Предварительные действия на сервере приложения:
ADFS_Login.aspx в корень приложенияСлужбы каталогов AD должны быть доступны для сервера IIS по LDAP. Для системы «Адванта» настройка службы выполняется в конфигурационных файлах, находящимися в папке с веб-контентом системы.
web.config изменить следующие значения:<configSections> добавить секцию:<section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<system.web>/<httpModules> добавить секцию:<add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<system.webServer>/<modules> добавить секцию:<add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler"/>
</configuration>добавить следующее:<microsoft.identityModel configSource="identityModel.config"/>
identityModel.config изменить следующие значения:<add value=«https://your.system.ru/streamline» /> вводится имя вашей системы;<wsFederation passiveRedirectEnabled=«true» issuer=«https://your.domain.local/adfs/ls/» realm=«https://your.system.ru/streamline» requireHttps=«true» /> – значение issuer – адрес локальной службы AD FS, значение realm – адрес вашей системы;<add thumbprint="0D716212E046FA4299539777103BC481B9D0FC23" name="https://your.domain.local/adfs/services/trust" /> – значение thumbprint – отпечаток сертификата, находится на сервере службы федерации Active Directory: оснастка AD FS → Сертификаты → CN=ADFS Signing - ServerADFS.your.domain.local → Состав → Отпечаток. certutil.
<?xml version="1.0" encoding="utf-8"?> <microsoft.identityModel> <service> <audienceUris> <add value="https://your.system.ru/streamline" /> </audienceUris> <federatedAuthentication> <wsFederation passiveRedirectEnabled="true" issuer="https://your.domain.local/adfs/ls/" realm="https://your.system.ru/streamline" requireHttps="true" /> <cookieHandler requireSsl="true" /> </federatedAuthentication> <!--<issuerNameRegistry type="TrustedIssuerNameRegistry"/>--> <issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"> <trustedIssuers> <add thumbprint="0D716212E046FA4299539777103BC481B9D0FC23" name="https://your.domain.local/adfs/services/trust" /> </trustedIssuers> </issuerNameRegistry> <certificateValidation certificateValidationMode="None" /> </service> </microsoft.identityModel>
Настройка интеграции со службой AD FS в файле web.config (до версии 3.03.2166.х)
<configuration> добавить следующее:<ldapService ldapPath="LDAP://адрес сервера с AD FS/" baseDN="база поиска объектов в AD"> <authenticationTypes> <add authenticationType="Secure" /> <add authenticationType="Signing" /> <add authenticationType="Sealing" /> </authenticationTypes> </ldapService>
ldapPath – адрес службы. Значение по умолчанию (LDAP://) можно использовать, когда сервер приложения находится в домене. Иначе нужно указать действительный адрес службы и порт, если порт отличается от стандартного (389). Например: LDAP://ad.domain.local/baseDN – базовый DN каталога пользователей. Если не указан, то используется дефолтный DN, который определен в самой службе каталогов. Лучше указывать действительный DN. Например: DC=domain,DC=localauthenticationTypes – типы аутентификации. Влияют на защищенность (шифрование и подпись) передаваемых данных. По умолчанию: Secure, Signing, Sealing. Если в службе каталогов настроен SSL (требует установки Certification Authority), то нужно указать SecureSocketsLayer в authenticationTypes.<configSections> добавить тег:<section name="ldapService" type="Config.LDAPConfigurationSection, smcorelib" />
Ссылка на пример файла Client.config с настройками интеграции под ADFS
Службы федерации и приложение не обмениваются напрямую, только через браузер. Пользователь вводит логин и пароль для доступа к веб-сервисам AD FS, а приложение никогда не получает эти данные. Вместо логина и пароля приложение получает от AD FS утверждения, а именно доменный sid пользователя. Передача утверждений происходит с использованием шифрования. Также утверждения подписываются в AD FS, используя SAML. Доверие приложения к сервису утверждений основано на подписи, которая проверяется по отпечатку сертификата.
Важно использовать заверенный сертификат для веб-сервисов AD FS (этот сертификат устанавливается в IIS). Это не тот сертификат, который используется для подписи и шифрования утверждений.
https://имя системы в сертификате безопасности → Закрыть).После выполнения всех вышеописанных настроек, необходимо активировать синхронизацию с AD в самой системе. Для этого под учетными данными администратора системы:
Далее, чтобы в систему можно было заходить под доменными учетными данными пользователей, нужно загрузить этих пользователей из AD. Здесь два варианта:
domain\user или user@domain.local.
1. Для авторизации на сервере через AD необходимо установить службу «Windows – проверка подлинности» (Windows Authentication).
После установки службы «Windows - проверка подлинности» откройте Диспетчер служб IIS:
2. Настройка client.config:
<configuration><configSections>:<section name="ldapService" type="Config.LDAPConfigurationSection, smcorelib"/> <section name="adDomains" type="Config.ADDomainsConfiguration, smcorelib"/>
<configSections>:<adDomains>
<domains>
<add name="Имя домена" login="Логин пользователя" password="Пароль" ldappath="LDAP://Адрес LDAP(127.0.0.1:389)" />
</domains>
</adDomains>
где:
LDAP://192.168.0.200:389 или LDAP://domain.local:389).Ссылка на пример файла Client.config с настройками интеграции под NTLM
Добавить систему в раздел Местная интрасеть (Свойства браузера → Безопасность → Местная интрасеть → Сайты → Добавить сайт с адресом системы → Закрыть).
После выполнения всех вышеописанных настроек, необходимо активировать синхронизацию с AD в самой системе. Для этого под учетными данными администратора системы:
Далее, чтобы пользователи могли заходить в систему под своими доменными учетными записями, их нужно загрузить в систему из AD. Здесь два варианта: