Ключи приложений
Ключи приложений представляют собой зашифрованные лексемы безопасности в базе данных ThingWorx, которые можно использовать для входа в приложение ThingWorx вместо использования стандартных учетных данных.
Маркеры ключей приложений могут передаваться в заголовке, в URL-адресе запроса. Запрос выполняется с использованием контекста безопасности пользователя, связанного с ключом приложения. По умолчанию при выполнении запроса с использованием ключа приложения сессия не создается. Это рекомендованный способ выполнения запроса приложения ThingWorx со стороны других систем и приложений. Однако если требуется создать сессию, можно дополнительно использовать следующий параметр запроса для передачи в маркере ключа приложения:x-thingworx-session=true.
При просмотре мэшапа через URL-адрес с использованием ключа приложения создайте сессию, добавив x-thingworx-session=true. Без сессии последующие запросы будут требовать аутентификации с использованием стандартного базового аутентификатора HTTP. После параметра запроса x-thingworx-session=true включите #mashup=[your mashup name].
* 
При создании и назначении прав для ключей приложений следует всегда использовать концепцию безопасности с минимальными правами. Назначение ключу приложения участника группы администраторов не является оптимальным методом. При попытке создания ключа приложения на основе пользователя с правами администратора отображается предупреждение.
Свойства ключа приложения
Имя свойства
Описание
Имя
Слово или фраза, идентифицирующие этот ключ. Обязательное поле.
Аватар
Изображение, которое можно загрузить для визуального представления ключа приложения.
Описание
Описание ключа приложения.
Проект
Работа или группа, связанная с этим ключом.
Теги
Теги модели, которые можно использовать для группирования или категоризации ключа приложения.
Список разрешенных IP
Список IP-адресов, которым разрешено обращаться к ThingWorx с использованием ключа приложения. IP-адреса разделяются запятыми. Если оставлено пустым, ключ приложения может использоваться любым IP-адресом.
Имя клиента
Определяемое пользователем поле, которое может представлять что-либо - например, клиента, связанного с прикладным ключом или IP-адресом. ThingWorx игнорирует любые значения, назначенные этому полю.
Ссылка на имя пользователя
Имя пользователя, которое связано с ключом приложения. Обязательное поле.
Идентификатор ключа
Генерируемое ThingWorx значение ключа. Идентификатор ключа недоступен для правки.
* 
Значение идентификатора ключа хранится в базе данных в зашифрованном виде. Симметричный ключ, используемый для шифрования этого значения, хранится в расположении /ThingworxStorage/keystore.jks, а пароль для KeyStore хранится в расположении /ThingworxPlatform/keystore-password. Если эти файлы не существуют, они будут сгенерированы. Если симметричный ключ не существует, он будет создан до запуска системы. При установке и обслуживании сервера ThingWorx убедитесь, что эти файлы сохраняются. В случае потери этих файлов ключи приложений станут нерабочими, то есть нельзя будет зашифровать значение при запуске системы и существующие ключи приложений перестанут сохраняться или подходить для аутентификации.
Дата окончания
Дата окончания действия ключа приложения. Если дата окончания не указана, используется значение по умолчанию из Подсистемы управления пользователями. Срок действия ключей приложений истекает через 24 часа после их создания, если дата окончания срока действия не указана или если значение Время жизни ключа приложения (с) в подсистеме управления пользователями не изменено.
Дата последнего изменения
Дата и время последнего изменения ключа приложения.
Главный мэшап
Мэшап по умолчанию, связанный с ключом приложения.
Документация
Дополнительные заметки или справочная информация, описывающие, как или почему это используется в данной среде.
Создание ключа приложения
Чтобы создать ключ приложения, выполните следующие действия. Для создаваемого ключа применяются настройки безопасности, предоставленные связанному пользователю в поле Ссылка на имя пользователя.
1. В ThingWorx Composer щелкните Создать.
2. Прокрутите вниз и выберите Ключи приложений.
3. Введите Имя.
4. Если необходимо, выберите или введите Описание, Проект и Теги для этого ключа.
5. В поле Ссылка на имя пользователя выберите пользователя, связанного с ключом приложения.
6. Заполните любые нужные необязательные поля, включая Список разрешенных IP, Наименование клиента, Главный мэшап, Аватар, Дата окончания или Документация.
* 
Если Дата окончания не задана, значение вычисляется путем прибавления к дате создания сущности ключа приложения значения настройки Время жизни ключа приложения (с) из подсистемы управления пользователями.
7. Щелкните Сохранить.
8. Ключ приложения отобразится в поле Идентификатор ключа.
Удаление ключа приложения
Хотя для ключа приложения можно задать дату окончания, ключи не удаляются автоматически по истечении срока действия. Можно записать логику периодически выполняющихся действий в приложении ThingWorx и удалять ключи приложения с истекшим сроком действия. См. раздел Сервисы ключей приложений. Чтобы удалить ключ приложения вручную, выполните следующие действия.
1. В Composer перейдите в раздел "Все".
2. Прокрутите вниз до раздела Безопасность.
3. Разверните этот раздел, если необходимо, и найдите Ключи приложений.
4. Выберите ключ приложения, установив флажок слева от его наименования.
5. Нажмите кнопку Удалить.
Создание ключа приложения с помощью сервиса
Чтобы создать ключ приложения с помощью сервиса, используйте следующий пример.
var params = {
clientName: undefined /* STRING */,
name: undefined /* STRING */,
description: undefined /* STRING */,
project: undefined /* STRING */,
whitelist: undefined /* STRING */,
user: undefined /* USERNAME */,
tags: undefined /* TAGS */,
expirationDate: undefined /* DATETIME */
};
// no return
Resources["EntityServices"].CreateApplicationKey(params);
//Get the generated Key's actual appKey value
var KeyID = ApplicationKeys["YOURKEYNAME"].GetKeyID();
* 
Если Дата окончания не задана, значение вычисляется путем прибавления к дате создания сущности ключа приложения значения настройки Время жизни ключа приложения (с) из подсистемы управления пользователями.
Начальная настройка ключа приложения и рекомендации для первого подключения
Устройства должны всегда находиться в интерактивном режиме в изолирующем контексте разработки или моделироваться в изолирующем контексте разработки, когда это возможно. После того как устройство будет готово к работе, необходимо создать новый ключ приложения для каждого устройства, работающего в сети периметра для приложения. После создания уникального ключа приложения и развертывания его на конкретном устройстве необходимо контролировать инициализацию этого устройства, чтобы убедиться, что оно успешно подключено к платформе.
Истечение срока действия и ротация ключей приложения
Рекомендуется задавать для ключей приложения конечную дату окончания срока действия, соответствующую предполагаемому жизненному циклу устройства, которое будет использовать учетные данные данного ключа приложения. Кроме того, не рекомендуется использовать один и тот же ключ приложения для нескольких устройств, особенно если их жизненные циклы различаются. По истечении срока действия ключа приложения на устройстве необходимо установить для этого устройства новый ключ приложения.
Истечение срока действия ключа приложения для критически важных приложений
Если не существует системы доставки нового ключа приложения на устройство, дата истечения срока для ключа приложения может быть обновлена для продления жизни сервиса. Это нерекомендуемый способ действия, но его можно использовать в качестве обходного решения, если существует угроза потери критически важных бизнес-данных. Важно отметить, что продление жизненного цикла ключа приложения за границу ожидаемого жизненного цикла устройства может нести в себе угрозы безопасности для инфраструктуры критически важного приложения.
См. также
Было ли это полезно?