配置 ThingWorx 的公开访问权限
在 Vuforia Studio 中,将项目的“访问权限”属性设置为“公开”,即可确保所发布项目中的体验支持公开访问。这样,发布到 Experience Service 的内容无需身份验证即可访问。如果公开体验需要访问 ThingWorx 中的数据,则 Experience Service 必须配置为允许公开体验匿名访问 ThingWorx。
Experience Service 可用作 ThingWorx 服务器的代理。当某个体验向 ThingWorx 申请检索属性值或调用服务时,相关请求首先会发送到 Experience Service。如果是公开体验,则 Experience Service 代理会先在请求中附加一个应用程序密钥,然后再将该请求转发给 ThingWorx 服务器。此应用程序密钥可标识用于执行该请求的 ThingWorx 凭据。Experience Service 必须配置相应的应用程序密钥,才能向体验授予所需的 ThingWorx 公开访问权限。
如果某个体验中包含来自 ThingWorx 的数据,还必须同时提供该数据在 ThingWorx 中的公开访问权限。
应用程序密钥的配置
|
有时,应用程序密钥配置 (用于支持公开访问) 可能在 Experience Service 安装过程中即已完成。在这种情况下,您的 ThingWorx 服务器上已经存在名为 es-public-access 的用户和同名的应用程序密钥,且您的 Experience Service 已经配置为使用该应用程序密钥对 ThingWorx 进行公开访问。此外,名为 es-public-access-org 的组织也已存在,且 es-public-access 用户将是其中一员。如果是这种情况,您可以跳过本部分。为完成 ThingWorx 服务器的公开访问配置,请按照 授予用户权限中“启用对属性、服务和事件的访问权限”部分的步骤操作。
|
若要允许体验对 ThingWorx 进行公开访问而不提示用户进行身份验证,必须将 Experience Service 及其关联的 ThingWorx 服务器配置为允许公开访问。若要允许对 ThingWorx 进行公开访问,必须在 ThingWorx 中创建可用于访问 ThingWorx 中所需的属性或服务的应用程序密钥 (公开互联的体验需要这些属性或服务)。使用以下步骤在 ThingWorx 中创建必要的应用程序密钥。
1. 创建一个名为 es-public-access 的用户。
2. 创建一个名为 es-public-access-org 的组织。
3. 将 es-public-access 用户添加到 es-public-access-org 组织。
4. 配置用户,使其具有必要权限来访问公开体验所需的 ThingWorx 数据。有关对 es-public-access 用户必须授予的访问权限详细信息,请参阅下文中的“用户授权”部分。
5. 配置 es-public-access-org 组织,使其具有必要的可见性权限来访问公开体验所需的 ThingWorx 数据。有关对 es-public-access-org 组织必须授予的访问权限详细信息,请参阅下文中的“用户授权”部分。
6. 创建一个应用程序密钥,并将其与 es-public-access 用户相关联。
7. 导航到 Experience Service 的管理控制台。
8. 编辑 ThingWorx 代理设置并设置匿名应用程序密钥参数,使其与在步骤 3 中所创建应用程序密钥的 keyId 属性相同。
用户授权
若要允许公开体验的用户在 ThingWorx 中访问所需的性能和服务,必须在 ThingWorx 中授予上述 es-public-access 用户对 WebSocket 连接和体验数据的以下运行时权限:
• WebSocket 连接:
◦ 对 EntityServices 资源的可见性权限
◦ 对 EntityServices 资源上 GetClientApplicationKey 服务的运行时服务执行权限:
◦ 对 SDKGateway 事物模板的可见性权限
◦ 对 SDKGateway 事物模板的可见性实例权限
◦ 对 SDKGateway 事物模板的运行时实例“服务执行”权限:
有关授予这些权限的详细信息,请参阅
授予用户权限中的“启用 WebSocket 连接”部分。
• 体验数据:
◦ 对任何需要公开体验访问的实体的可见性权限
◦ 对任何其他会在公开体验中显示其值的属性的运行时“属性读取”权限
◦ 对任何其他由公开体验所使用的他服务的运行时“服务执行”权限
◦ 对任何其属性值配置为“自动刷新”的事物所发生 DataChange 事件的运行时“事件订阅”权限
有关授予这些权限的详细信息,请参阅
授予用户权限中的“启用对属性、服务和事件的访问权限”部分。
此外,在 ThingWorx 中还必须授予 es-public-access-org 组织对 WebSocket 连接和体验数据的以下可见性权限:
• WebSocket 连接:
◦ 对 EntityServices 资源的可见性权限
◦ 对 SDKGateway 事物模板的可见性实例权限
• 体验数据:
◦ 对任何需要空开体验访问的实体的可见性权限