Устранение неисправностей единого входа
Для устранения проблем, связанных с SSO, включите ведение журнала событий. Чтобы включить ведение журнала событий, используйте стандартный файл logback.xml в папке ThingworxPlatform. Если файл logback.xml уже существует в этом расположении, можно просто добавить средства ведения журналов SSO к существующему набору средств ведения журналов. Дополнительные сведения о файле logback.xml см. в разделе Конфигурирование ведения журнала.
Функциональность logback.xml является стандартом Java. Инструкции по конфигурированию этих файлов см. в документации Java.
Следующая таблица содержит информацию о пакетах средств ведения журнала, которые могут быть добавлены, чтобы помочь исследовать проблемы, связанные с конфигурацией SSO в ThingWorx.
Пакет
Описание
com.thingworx.security.authentication.sso
Пакет для всех компонентов ThingWorx SSO-аутентификации. Следующие примеры представляют записи в пакетах средства ведения журнала:
Для сообщений, которые идут в журнал приложения, например:
LogUtilities.getInstance().getApplicationLogger([class name]):
<logger name="com.thingworx.security.authentication.sso" level="DEBUG"/>
Средства ведения журнала безопасности используются во многих классах в этом пакете. Пример:
LogUtilities.getInstance().getSecurityLogger(ThingworxSSOAuthenticator.class);
Чтобы включить эти средства ведения журнала, добавьте SecurityLog как корневое родительское средство ведения журнала:
<logger name="SecurityLog.com.thingworx.security.authentication.sso" level="DEBUG"/>
SecurityLog.com.thingworx.security.sso
Пакет для делегированных рабочих процессов авторизации, которые используются интегрированными соединителями при получении лексем доступа и их конфигураций.
com.thingworx.ptc.eauth.identity
Пакет для всех компонентов библиотеки SSO ядра PTC.
com.springframework.security
Пакет для всех компонентов безопасности spring framework.
com.springframework.jdbc
Пакет для всех компонентов аутентификации JDBC spring framework.
Следующие элементы устранения неисправностей можно проверять, если возникают ошибки в вашей реализации SSO.
Проблема
Администратор ThingWorx не может войти в систему - получена ошибка Invalid_scope
Описание
Пользователь после входа в систему перенаправляется на страницу ошибки ThingWorx с сообщением, что система обнаружила ошибку конфигурации аутентификации.
Решение
Одна или несколько контекстных областей, зарегистрированных в соединителе интеграции ThingWorx, или медиаобъект не соответствуют контекстным областям, зарегистрированным в PingFederate (или в выбранном CAS). Такое несоответствие контекстных областей с PingFederate может привести к тому, что администратор ThingWorx может быть заблокирован. Контекстные области поставщика ресурсов, которые зарегистрированы в ThingWorx, можно просмотреть в журнале безопасности. Решение проблемы
1. Войдите в систему PingFederate и сравните контекстные области, о которых сообщает журнал безопасности ThingWorx, с контекстными областями, зарегистрированными в PingFederate. Для любых контекстных областей в ThingWorx, которые не зарегистрированы в PingFederate или имеют несоответствующие наименования, добавьте контекстную область в PingFederate или измените наименование, чтобы соответствовать записанным в ThingWorx (даже если это неверное написание наименования контекстной области).
2. Теперь страница утверждения разрешений функционирует правильно, и вы можете войти в систему ThingWorx как администратор. В ThingWorx Composer перейдите к соединителю интеграции или медиаобъекту, которые пытаются использовать проблемную контекстную область. Удалите ее из таблицы регистрации контекстных областей для соединителя интеграции или медиаобъекта. Войдите в систему с новой сессией ThingWorx, чтобы проверить успешный вход пользователя.
3. Когда ThingWorx пытается использовать незарегистрированную контекстную область, в PingFederate удалите нежелательную контекстную область из страницы управления контекстными областями. Если имена контекстных областей не совпадают, удалите контекстную область и снова зарегистрируйте ее с правильным написанием в PingFederate, а также в соединителе интеграции ThingWorx или в объекте мультимедиа.
Проблема
Сервис в соединителе интеграции или медиаобъекте не работает - не удалось загрузить лексему доступа.
Описание
Вы вошли в ThingWorx Composer и уже имеете лексему доступа. Вы импортировали или создали соединитель с контекстной областью и попытались выполнить сервис на соединителе, но он не работает.
Решение
Выйдите из системы и снова войдите, чтобы открыть страницу утверждения разрешений для контекстных областей соединителя. Чтобы сервисы работали, необходимо согласовать предоставление недавно зарегистрированной контекстной области.
Это же верно, если вы импортируете или создаете медиаобъекты, которые содержат контекстные области.
Проблема
Ошибки инициализации контекста SSO и Bean при запуске ThingWorx.
Описание
Не удалось запустить ThingWorx.
Решение
См. журналы ошибок, чтобы определить проблему. Проблема инициализации контекста или bean описана в конце текста предупреждения или ошибки в журнале. Например, сообщение о возможной ошибке может иметь вид:
SSOConfigurationException: BasicSettings > idpMetadataFilePath cannot be null or empty
Проверьте значение параметра idpMetadataFilePath в файле sso-settings.json и добавьте соответствующее значение.
Проблема
Мэшап ThingWorx или приложение не загружаются, после того как пользователь щелкает Don’t allow для требуемых контекстных областей на странице Request Grant Approval из PingFederate.
Описание
После того как пользователь щелкает Don’t allow на странице Request Grant Approval, мэшап не загружается и URL браузера оканчивается знаком решетки "#" и символом точки ".".
Решение
По умолчанию PingFederate использует символ точки "." в качестве местозаполнителя фрагмента, что приводит к возникновению этой проблемы. Для решения этой проблемы сделайте следующее:
1. В расположении установки PingFederate перейдите к файлу <Папка_установки_PingFederate>\server\default\data\config-store\sanitize-fragments.xml.
2. Исправьте этот XML-файл и удалите точку "." из местозаполнителя фрагмента. Строка должна иметь следующий вид: <con:item name="FragmentPlaceholder"></con:item>
3. Перезапустите сервер PingFederate.
Проблема
После успешного входа в систему со строкой http://<ваш сервер>:<порт>/Thingworx/runtime/index.html#mashup=<Мой мэшап> аутентификация SAML перенаправляет вас к файлу http://<ваш сервер>:<порт>/Thingworx/runtime/index.html.
Описание
Во время входа в систему с URL-адресом мэшапа фрагмент URL-адреса (т. е. #mashup=<Мой мэшап>) не отправляется на сервер ThingWorx или на сервер аутентификации для правильного перенаправления после успешного входа в систему, потому что браузер сохраняет эти данные только для использования клиентом. Таким образом, сервер ThingWorx и сервер аутентификации получают URL-адрес без этого фрагмента, т. е. http://<ваш сервер>:<порт>/Thingworx/runtime/index.html.
Решение
Для URL-адресов мэшапов, которые используются в качестве начальной точки аутентификации, постройте URL-адреса с параметрами запроса вместо параметров фрагмента.
Таким образом, в этом случае используйте следующий URL: http://<ваш сервер>:<порт>/Thingworx/runtime/index.html?mashup=<Мой мэшап>.
Дополнительные примеры использования см. на сайте поддержки IAM.
Было ли это полезно?