Как настроить интеграцию с ADFS
Если вы используете провайдер идентификации ADFS, необходимо настроить интеграцию с ним. Для этого нужно выполнить ряд настроек как на стороне ADFS, так и на стороне bpm’online.
Важно
В примере настройки использован адрес сайта bpm’online https://site01.bpmonline.com/Demo_161215/ и адрес сайта сервиса ADFS http://adfs01.mysite.com/adfs/. При выполнении настройки замените адреса на соответствующие адреса ваших сайтов.
Настройки на стороне ADFS
1.Добавьте в ADFS новый Trusted Relaying Party (Рис. 442).
2.Выберите опцию “Enter data about the relying party manually” (Рис. 443).
3.В поле [Display name] ведите имя Relying Party. Имя необходимо только для упорядоченного ведения списка доверенных приложений в ADFS.
4.Оставьте профиль “AD FS Profile”, выбранный по умолчанию. Нажмите Next.
5.На шаге выбора сертификата нажмите Next.
6.Включите поддержку протокола SAML 2.0. Укажите адрес сайта, добавьте к нему: “/ServiceModel/AuthService.svc/SsoLogin“ (Рис. 444).
7.В идентификаторах укажите корень сайта и нажмите Add (Рис. 445).
Важно
Идентификатор используется при проверке подлинности источника, который запрашивает выполнение аутентификации. URL должен совпадать полностью, включая “/” в конце.
8.Значения остальных параметров настройте в соответствии с требованиями безопасности вашей организации. Для тестового использования эти настройки можно оставить по умолчанию.
9.Нажмите Finish. В открывшемся окне по кнопке Add Rule добавьте новое правило формирования SAML Assertion в SAML Response (Рис. 446).
На заметку
Данные, которые формируются новым правилом, будут использоваться приложением bpm’online для поиска пользователя и актуализации его ролей.
10.На первом шаге добавления правила оставьте настройку, выбранную по умолчанию, и нажмите Next. Установите набор параметров, которые будут получены из данных пользователя (Рис. 447). В указанном примере в SAML Assertion будет передаваться Name пользователя и список групп домена, в которые он входит.
11.Нажмите Save.
12.Откройте настройки созданного Trusted Relay и на вкладке “Advanced” укажите шифрование SHA-1 согласно алгоритму сертификата сайта.
13.На вкладке Endpoints добавьте Logout endpoint, для которого установите такие параметры (Рис. 448):
Endpoint type: SAML Logout
Binding: Redirect
Trusted URL: https://site01.bpmonline.com/Demo_161215/ServiceModel/AuthService.svc/SsoLogout
14.На вкладке Signature добавьте сертификат для подписывания Logout Request (Рис. 449).
Важно
Без сертификата не будет работать выход из приложений.
Настройка на стороне bpm’online
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.bpmonline.com/Demo_161215/adfs/ls.
SingleLogoutServiceUrl — URL сервиса единого входа провайдера. Для ADFS, как правило, это: https://site01.bpmonline.com/Demo_161215/adfs/ls.
PartnerCertificateFile — путь к сертификату безопасности в файловой системе сервера приложения bpm'online. Нужно задавать, если 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.bpmonline.com/Demo_161215/"
Description="Example bpm'online Service Provider"
AssertionConsumerServiceUrl="~/ServiceModel/AuthService.svc/SsoLogin"
LocalCertificateFile="sp.pfx"
LocalCertificatePassword="password"
/>
<PartnerIdentityProviders>
<!-- ADFS BPMOnline -->
<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.Укажите сертификат, которым будет выполняться подпись SAML Assertion. Важно, чтобы сертификат был физически добавлен в корневую папку сайта и в папку Terrasoft.WebApp.
LocalCertificateFile="sp.pfx"
LocalCertificatePassword="password"
4.Внесите необходимые настройки в web.config в корневой папке сайта:
a.Включите использование SSO Auth-провайдеров при выполнении авторизации в bpm'online:
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.bpmonline.com/NuiLogin.aspx.
Для тестирования работы SSO до включения по умолчанию можно использовать ссылку https://site01.bpmonline.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>
5.Включите Single Log Out в web.config в папке Terrasoft.WebApp:
/Terrasoft.WebApp/web.config
<add key="UseSlo" value="true" />
6.Включите Just-In-Time User Provisioning в web.config в корневой папке приложения:
<add name="UseJit" value="true" />
7.Настройте сопоставление полей из SAML Assertion с колонками в bpm’online в справочнике [Преобразователь SAML атрибута в название поля контакта]. Это необходимо для корректного заполнения полей контакта при создании нового пользователя с помощью Just-In-Time User Provisioning. Если поле пусто или отсутствует в данных провайдера идентификации, оно может быть заполнено значением, указанным в поле [Значение по умолчанию] справочника.
На заметку
Если справочника нет в списке справочников, его необходимо зарегистрировать.
Смотрите также