Конфигурирование ThingWorx как поставщика ресурсов
Конфигурирование файла resourceServerSettings.json
Эта процедура необходима, когда ThingWorx является приложением сервера ресурсов.
1. Остановите сервер ThingWorx.
2. Создайте файл resourceServerSettings.json в той же папке, что и sso-settings.json.
Ниже приведен пример структуры файла resourceServerSettings.json:
{
"ResourceServerSettings": {
"accessTokenServicesSettings": {
"tokenUsernameAttribute": "See information in the table below",
"tokenPublicKeyUrl": "See information in the table below",
"administratorAlias": "See information in the table below",
"administratorInternalName": "Administrator",
"issuer": "See information in the table below",
"tokenValidationType": "local",
"tokenClientIDAttribute": "See information in the table below"
},
"globalScopes": "See information in the table below",
"uriScopes": [
{
"uri": "See information in the table below",
"scopes": "See information in the table below",
"method": "See information in the table below"
}
]
}
3. Убедитесь, что значение каждого параметра исправлено согласно вашим требованиям. Реализация может варьироваться и зависеть от нескольких факторов, таких как политики безопасности организации и сервер авторизации для вашего объединения. Используйте информацию, приведенную в следующих таблицах, в качестве руководства при задании значений различных параметров.
4. Запустите сервер ThingWorx.
Настройки ResourceServerSettings.accessTokenServicesSettings
Параметр
Описание
Значение
tokenUsernameAttribute
Необязательный параметр: наименование требования, которое содержит имя пользователя для запроса ресурса.
Значение по умолчанию: “unique_name”
tokenPublicKeyUrl
Требуется: конечная точка открытого ключа AD FS (используется для подтверждения лексем доступа).
Значение формируется следующим образом:
https://<Полное доменное имя хост-компьютера AD FS>adfs/discovery/keys
administratorAlias
Необязательный.
Обязателен только для доступа к RP с администратором ThingWorx.
* 
Если файл sso-settings.json уже сконфигурирован, значение здесь задавать не нужно.
Имя администратора задается в виде, в котором оно сконфигурировано в AD FS.
administratorInternalName
Необязательный параметр: имя администратора в том виде, в котором оно сконфигурировано в ThingWorx.
Administrator
tokenValidationType
Требуется: свойство, указывающее, что проверка лексемы доступа (JWT) выполняется локально.
local
issuer
Необязательный параметр: имя запрашивающего для дополнительной проверки лексемы.
Значение, которое появляется в лексеме запроса ISS.
tokenClientIDAttribute
Обязательный параметр для потока M2M (машина - машина) - учетные данные клиента. Наименование требования, которое содержит ИД клиента (clientID) поставщика сервисов (SP).
* 
Чтобы принять лексему доступа OAuth (машина-машина) AccessToken, создайте искусственного пользователя с именем поставщика сервисов. Значение SP ClientID должно быть создано в приложении ThingWorx RP.
appid
Настройки ResourceServerSettings.globalScopes
Параметр
Описание
Значение
globalScopes
Разделенный запятыми список глобальных контекстных областей. accessToken - для доступа к любому ресурсу список должен содержать хотя бы один элемент из списка. Если этот параметр отсутствует или пустой, для глобальной контекстной области по умолчанию задается значение THINGWORX.
"globalScopes": "THINGWORX
"globalScopes": "THINGWORX_APP1,THINGWORX_APP2"
Настройки ResourceServerSettings.uriScopes
Параметр
Описание
Значение
uri
Шаблон URI. Определяет ресурс или группу ресурсов, для которых требуются дополнительные контекстные области.
Thingworx/Things/** - control all Things
Thingworx/Things/Thing1 – control Thing1
scopes
Разделенный запятыми список дополнительных контекстных областей. Только пользователь, которому предоставлены все перечисленные контекстные области (включая глобальную), может получить ресурс.
method
Необязательный. Определяет метод URI, к которому будет применена контекстная область.
* 
Если свойство method не предоставлено, предполагается, что указанный URI защищен данной контекстной областью для всего метода HTTP.
Возможными значениями являются любые методы, разрешенные в протоколе REST, такие как GET или POST.
При наличии контекстных областей, определенных для URI, для доступа к этому ресурсу должны быть предоставлены глобальные контекстные области в дополнение к определенным областям для URI. Если для запрашиваемого ресурса существует более одного применимого правила URI, то для доступа к этому ресурсу должны быть предоставлены все соответствующие контекстные области. Во избежание доступа к ограниченным ресурсам добавляйте URIscope к таким конечным точкам REST с контекстной областью, которая не существует на сервере авторизации. В дополнение к защите контекстной области ThingWorx имеет собственные разрешения на основе пользователей, которые также будут применены поверх контекстных областей. Например, в случае, когда пользователь A запрашивает ресурс с правильными контекстными областями, но не имеет разрешения, запрос завершается с ошибкой 403.
Пример файла
Было ли это полезно?