将 ThingWorx 配置为资源提供者
配置 resourceServerSettings.json 文件
1. 停止 ThingWorx 服务器。
2. 在与 sso-settings.json 相同的目录中创建 resourceServerSettings.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"
},
"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. 务必按照要求对每个参数的值进行编辑。您的实施可能会有所不同,具体取决于多个因素,例如您组织的安全策略以及联合的 CAS。根据下表中的信息来设置不同参数的值。
4. 启动 ThingWorx 服务器。
ResourceServerSettings.accessTokenServicesSettings 设置
参数
说明
tokenUsernameAttribute
可选:用于保存资源请求用户名的声明名称。
默认值:“unique_name”
tokenPublicKeyUrl
必填:Microsoft Entra ID 公钥端点 (用于验证访问令牌)。
值的构建方式如下:
https://login.microsoftonline.com/<Microsoft Entra ID 租户 ID>/discovery/keys?appid=<ThingWorx 资源服务器应用程序的应用程序 ID>
administratorAlias
可选。
若要通过 ThingWorx 管理员访问 RP,则为必要参数。
* 
如果已在 sso-settings.json 文件中进行了配置,则无需在此处设置值。
Microsoft Entra ID 中配置的管理员用户名。
administratorInternalName
可选:ThingWorx 中配置的管理员用户名。
Administrator
tokenValidationType
必填:访问令牌 (JWT) 的属性点。
local
issuer
可选:附加令牌验证检查的颁发者值。
令牌中 ISS 声明内显示的颁发者值。
ResourceServerSettings.globalScopes 设置
参数
说明
globalScopes
以逗号分隔的全局范围的列表。包括访问任何资源所需的最小范围集。如果此参数缺失或为空,则会将 THINGWORX 设置为默认全局范围。请勿将此参数留空。如果没有专用范围,则会将 THINGWORX 设置为值。
对于作为资源服务器配置的 ThingWorx,此为在将 ThingWorx 配置为资源服务器的步骤 2 中创建的范围。
"globalScopes": "THINGWORX_APP1,THINGWORX_APP2"
ResourceServerSettings.uriScopes 设置
参数
说明
uri
URI 模式。将需要其他范围的资源或资源组定义为全局范围。
Thingworx/Things/** - control all Things
Thingworx/Things/Thing1 – control Thing1
scopes
其他范围的逗号分隔列表。仅允许获得所有已列出范围 (包括全局) 授权的用户获取资源。
“方法”
可选。定义将应用此范围的 URI 方法。
* 
如果未提供方法属性,则假定指定 URI 受所有 HTTP 方法的给定范围保护。
可能的值是 REST 协议中允许的任何方法,例如 GET 或 POST。
如果为 URI 定义了作用域,则必须获得全局作用域和所定义的 URI 作用域的授权,才能访问该资源。如果存在多个适用于请求资源的 URI 规则,则必须获得所有相关范围授权才能访问该资源。要避免访问受限制的资源,请将 URIscope 添加到这些 REST 端点,使得端点的作用域不存在于授权服务器中。除范围保护外,ThingWorx 还具有其自己的基于用户的权限,这些权限也将应用于范围的最大值。例如,如果用户 A 请求的资源具有正确的范围但没有权限,则请求将失败,并会出现 403 错误。
示例文件:
示例文件
这对您有帮助吗?