Конфигурирование компоновочного блока рабочих инструкций для пользователя в сессии (аутентификация Windchill)
Опция аутентификации Пользователя в сессии использует Windchill для аутентификации с ThingWorx. После того как пользователь получит доступ к ThingWorx, он будет направлен в Windchill для аутентификации. После прохождения аутентификации пользователь возвращается к ThingWorx. Для данной конфигурации необходимо, чтобы один и тот же пользователь существовал в Windchill и ThingWorx.
В ThingWorx присутствует опция конфигурации для автоматического создания пользователей в ThingWorx после того, как они пройдут аутентификацию в Windchill. Если данная опция конфигурации не выбрана, то необходимо автономное наличие пользователей в Windchill и ThingWorx. Необходимо добавить пользователя ThingWorx в соответствующую группу пользователей ThingWorx для доступа к сущностям и службам компоновочных блоков рабочих инструкций. При выборе опции автоматического создания пользователей в ThingWorx, можно назначить группу, в которую пользователи будут добавляться автоматически.
Для конфигурирования компоновочного блока рабочих инструкций с целью использования опции аутентификации Пользователя в сессии необходимо настроить Windchill, ThingWorx и компоновочный блок рабочих инструкций.
Предварительные условия для аутентификации Windchill
Windchill необходимо настроить для SSL.
ThingWorx необходимо настроить для SSL.
Конфигурирование компоновочного блока рабочих инструкций и ThingWorx для использования аутентификации Windchill
Выполните следующие этапы, чтобы настроить компоновочный блок рабочих инструкция и ThingWorx в целях использования Windchill для аутентификации:
1. Предоставьте экземпляру Java ThingWorx права на сертификаты для сервера Windchill. Импортируйте (корневой) сертификат в Java keystore, используемое ThingWorx.
2. Если EnableSSO отображается для ThingWorx в файле platform-settings.json, то установите значение false и перезапустите сервер ThingWorx. В противном случае перейдите к шагу 3.
3. Создайте новый профиль данных в ThingWorx с именем CustomHeadersDataShape. В разделе Определение полей создайте два следующих определения полей с Базовым типом=Строка:
Accept-Language
Authorization
4. Создайте дубликат вещи PTC.SCA.SCO.MPMLink_ODataConnector для своих конфигураций. Такие пользовательские настройки, как переопределение службы, необходимо выполнять в дубликате. Дополнительные сведения см. в разделах Настройка соединителя MPMLink OData и Дублирование сущностей компоновочных блоков.
a. В разделе Конфигурация задайте следующие значения:
В разделе Общие настройки соединения соединителя выберите Нет для Типа аутентификации
В разделе Настройки CSRF введите /servlet/odata для Относительного URL-адреса для запроса CSRF GET
В разделе Настройки HTTP-подключения соединителей:
Оставьте пустыми Имя пользователя и Пароль
Для Основного URL-адреса введите https://<Имя хост-компьютера Windchill>:<порт>/Windchill/sslClientAuth, с надлежащими значениями <Имя хост-компьютера Windchill> и <порт> для вашей системы Windchill
Для Относительного URL-адреса введите /servlet/odata
Для URL-адреса подключения введите /servlet/WindchillGW/wt.httpgw.HTTPServer/ping
Нажмите Сохранить.
b. В разделе Сервисы переопределите службу GetCustomHeaderParameters. Добавьте следующий код в службу:
var Language = Resources["CurrentSessionInfo"].GetCurrentUserLanguage();
var params = {
infoTableName: "InfoTable",
dataShapeName: "CustomHeadersDataShape"
};
var result = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
params = {
tableName: "GenericConnectorConnectionSettings" /* STRING */
};
var configTable = me.GetConfigurationTable(params);
var row = configTable.getRow(0);
var authType = row.getStringValue("AuthenticationType");
if ("None".equals(authType)) {
var CurrentUser = Resources["CurrentSessionInfo"].GetCurrentUser();
var baseEncodedStr = base64EncodeString(CurrentUser + ':');
var authHeaderValue = "Basic " + baseEncodedStr;
row = {
"Accept-Language": Language,
"Authorization": authHeaderValue
};
} else {
row = {
"Accept-Language": Language
};
}
result.AddRow(row);
c. Нажмите Готово.
d. Нажмите Сохранить.
5. Откройте вещь PTC.SCA.SCO.MPMLinkWorkDefinitionConverter для редактирования. Удостоверьтесь в том, что поле Соединителя ссылается на дубликат соединителя, настроенный на этапе 4.
6. Откройте вещь PTC.SCA.SCO.OperatorAdvisorContentProxyMediaEntity для редактирования. В разделе Конфигурация задайте следующие значения:
В разделе Информация о соединениях с источниками содержимого:
Установите флажок Динамическое содержимое
Для URL введите https://<Имя хост-компьютера Windchill>:<порт>, с надлежащими значениями <Имя хост-компьютера Windchill> и <порт> для вашей системы Windchill
Установите флажок Игнорировать ошибки SSL
Для Типа аутентификациивыберите Пользователь в сессии
Оставьте пустыми Имя пользователя и Пароль
Для Проверять URL-адрес подключения введите https://<Имя хост-компьютера Windchill>:<порт>/Windchill/sslClientAuth/servlet/odata с надлежащими значениями <Имя хост-компьютера Windchill> и <порт> для вашей системы Windchill
В разделе Конфигурирование соединений SSL задайте следующие значения:
Для Пути к хранилищу ключей SSL, введите путь к ThingWorx keystore
Для Пароля хранилища ключей SSL введите пароль для вашего ThingWorx keystore
Для Пути к хранилищу доверия SSLвведите путь к truststore
Для Пароля хранилища доверия SSLвведите пароль для вашего truststore
В разделе Конфигурация пользователя в сессии для Параметра запроса пользователя в сессии введите wt.effectiveUid
7. Нажмите Сохранить.
8. Установите Integration Runtime. Дополнительные сведения см. в разделе Конфигурация Integration Runtime.
9. Проверьте конфигурацию для ThingWorx:
a. Перейдите к вещи PTC.SCA.SCO.MPMlink_ODataConnector из этапа 4.
b. В разделе Сервисы запустите службу ValidateConnection. Следующий результат подтверждает успешное соединение:
Выходные данные для сервиса ValidateConnection.
Конфигурация PTC Identity Provider Authenticator
* 
Перед настройкой PTC Identity Provider Authenticator убедитесь в том, что в ThingWorx импортирована последняя версия расширения ptc-windchill-extension-[ReleaseVersion]. Чтобы получить доступ к последней версии расширения, необходимо:
1. Загрузить и распаковать содержимое файла PTC-Windchill-Extension-for-ThingWorx. Для определения расположения загрузки перейдите на страницу Загрузка программного обеспечения PTC и разверните следующие папки: PTC Smart Connected Applications > Release Apps > PTC Windchill Extension for ThingWorx.
2. Откройте файл ptc-windchill-extension-<версия>.zip и удалите файл ptc-thingview-extension.zip. Последняя версия ptc-thingview-extension.zip уже импортирована в качестве части компоновочного блока рабочих инструкций.
3. Импортируйте файл ptc-windchill-extension-<версия>.zip.
Для настройки PTC Identity Provider Authenticator выполните следующие действия:
1. В ThingWorx Composer на панели навигации перейдите в раздел Безопасность > Аутентификаторы.
2. Откройте ptc-identity-provider-authenticator.
3. В разделе Общие сведения:
Установите флажок Включено.
Введите надлежащее значение для Приоритета. Значение установлено на 1 по умолчанию, указывая то, что данный аутентификатор будет выполняться первым. Значение Приоритет важно, если необходимо выполнить проверки, используя несколько аутентификаторов. При сбое аутентификатора с приоритетом 1 проверка подлинности проводится следующим аутентификатором и т.д.
4. В разделе Конфигурация:
В разделе Конфигурация аутентификатора есть две настраиваемых опции: CreateUserDynamically и HomeMashup.
CreateUserDynamically: при установке флажка аутентификатор автоматически создает пользователя в ThingWorx, если данный пользователь не существует, осуществляя его аутентификацию в Windchill. Если флажок не установлен, то браузер настроен на переход к Windchill для аутентификации и, если данный пользователь не существует в ThingWorx, то он не сможет открыть ThingWorx.
HomeMashup: назначает главный мэшап для новых пользователей. Если главный мэшап не указан, то ThingWorx направляет браузер на страницу поиска ThingWorx.
В User Configuration добавьте UserGroup. Это группа пользователей, в которую автоматически добавляются пользователи, динамически созданные ThingWorx. Выберите группу пользователя, в которой предоставлен доступ к сущностям и сервисам компоновочного блока рабочих инструкций.
5. Нажмите Сохранить.
Добавить фильтры Servlet в конфигурацию Tomcat
Аутентификационный фильтр поставщика удостоверений Windchill используется для перенаправления не прошедшего проверку подлинности пользователя ThingWorx к форме входа в систему Windchill для прохождения аутентификации. После успешной аутентификации приложение ThingWorx получает ключ и имя пользователя.
Терминал ThingWorx фильтра настроен в файле web.xml, находящимся в каталоге установки ThingWorx Tomcat:
1. Остановите Tomcat и Integration Runtime.
2. Откройте ранее загруженный файл PTC-Windchill-Extension-for-ThingWorx и скопируйте файл ptc-identity-provider-authentication-filter-<версия>.jar из каталога idp в каталог установки WEB-INF/lib ThingWorx Tomcat.
3. Перейдите к файлу <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml.
4. Сделайте копию файла web.xml и сохраните ее в известном местоположении.
5. Замените файл <ThingWorx Tomcat>\webapps\Thingworx\WEB-INF\web.xml файлом web.xml из каталога \idp\twx-8.x.x загруженного ранее файла PTC-Windchill-Extension-for-ThingWorx.
6. Откройте файл web.xml и добавьте сведения о сервере Windchill в записи IdentityProviderAuthenticationFilter и IdentityProviderKeyValidatorFilter в следующем формате:
[http or https]://[Windchill-host]:[Windchill-port]/[Windchill WebApp name]
[Windchill WebApp name] можно найти, производя поиск по wt.webapp.name в <Windchill>\codebase\wt.properties.
7. Запустите Tomcat и Integration Runtime.
Дополнительные конфигурации Windchill
1. Создайте файл ca-bundle.crt в <HTTPSERVER_HOME>\conf\.
2. Отредактируйте файл ca-bundle.crt:
Добавьте содержимое сертификата Windchill Server SSL
Добавьте содержимое сертификата ThingWorx SSL
* 
Если Windchill настроен с помощью сторонней цепочки сертификатов SSL, то необходимо добавить копию содержимого сертификатов Windchill и ThingWorx в ca-bundle.crt в следующем порядке:
a. Корневой сертификат Windchill
b. Промежуточный сертификат Windchill
c. Сертификат сервера Windchill
d. Сертификат ThingWorx
3. Сохраните файл ca-bundle.crt.
4. Создайте файл sslclientauth.conf в <HTTPSERVER_HOME>\conf\sslvhostconf.d.
5. Отредактируйте sslclientauth.conf, чтобы добавить следующую строку:
SSLCACertificateFile <PATH_TO>\ca-bundle.crt
Замените <PATH_TO> путем к файлу ca-bundle.crt.
6. Сохраните файл sslclientauth.conf.
7. Отредактируйте файл <HTTPSERVER_HOME>\conf\conf.d\20-mod_ssl.conf:
Удалите комментарий к строке, содержащей следующее (удалите знак решетки ( # ) в начале строки):
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
Удалите комментарий к строке, содержащей следующее:
SSLVerifyDepth
8. Сохраните файл 20-mod_ssl.conf.
9. Отредактируйте файл <HTTPSERVER_HOME>\conf\httpd.conf. Убедитесь в том, что для следующих строк нет комментариев (удалите знаки решетки ( # ) в начале этих строк):
LoadModule log_config_module modules/mod_log_config.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
10. Сохраните файл httpd.conf.
11. Откройте файл <HTTPSERVER_HOME>\conf\conf.d\30-app-Windchill-Auth.conf. Убедитесь в наличии записи sslClientAuth, аналогичной следующей:
# SSL client certificate authenticated resources
<IfModule ssl_module>
<LocationMatch ^/+Windchill/+sslClientAuth(;.*)?>
Require all granted
SSLVerifyClient require
SSLOptions +ExportCertData
</LocationMatch>
</IfModule>
12. Перезапустите сервер PTC HTTP с опцией -DSSL для активации SSL.
13. Отредактируйте файл <Windchill>\codebase\WEB-INF\web.xml.
a. Найти <filter-name>TrustedSSLAuthFilter</filter-name>
b. Добавьте новый init-param после существующего:
<init-param>
<param-name>trustedSubjectPattern.1</param-name>
<param-value>.*[hostname].* </param-value>
</init-param>
Используйте имя хост-компьютера из темы сертификата для [hostname]. Например, если тема CN=mycompany.domain.com, то используйте mycompany для [hostname].
14. Сохраните файл web.xml.
15. Перезапустите Windchill.
Проверьте конфигурацию
Необходимо согласовать имя пользователя - администратора для Windchill и ThingWorx. Необходимо принять во внимание следующие опции:
Если в Windchill не внесены изменения, то пользователь - администратор с именем Administrator создан при установке Windchill. Используя настроенную систему ThingWorx вы будете аутентифицированы как такой пользователь, получая полный доступ к правам пользователя - администратора в ThingWorx.
Если вы изменили Windchill таким образом, что пользователь с именем Administrator отсутствует, то необходимо выбрать общее имя пользователя для Windchill и ThingWorx, и добавить данного пользователя в группу пользователей "Администраторы" ThingWorx.
Откройте ThingWorx URL-адрес в браузере для проверки настроек аутентификации Windchill. Браузер будет направлен в Windchill для аутентификации. Укажите учетные данные Windchill для Administrator (или других пользователей, которые являются администраторами в конфигурации ThingWorx). Браузер будет перенаправлен в ThingWorx Composer. Убедитесь, что вы используете ThingWorx от имени этого пользователя. Это подтверждает то, что ThingWorx был настроен должным образом с помощью аутентификации Windchill.
При выборе автоматического создания пользователей аутентификатором проведите нижеследующую проверку. Для проверки необходимо открыть браузер URL-адресу ThingWorx. Вы будете перенаправлены в Windchill для аутентификации. Предоставьте Windchill учетные данные пользователя, не существующего в ThingWorx. Браузер будет перенаправлен в ThingWorx, на страницу, указанную в качестве главного мэшапа для динамически созданных пользователей. Убедитесь, что вы используете ThingWorx от имени этого пользователя.
Было ли это полезно?