You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Unified Automation库配置OPC UA服务器用户名与角色

Unified Automation OPC UA服务器:用户创建、角色分配及身份认证配置

一、用户与角色的创建顺序

先创建角色,再关联用户。角色是权限的集合载体,先定义角色对应的访问权限(如Read、Write、Browse),再将用户关联到对应角色以获得权限。

二、创建用户并关联角色的具体实现

1. 创建角色并配置权限

// 创建自定义角色节点(命名空间索引1,可根据实际调整)
UaNodeId roleNodeId = UaNodeId("Operator", 1);
UaRoleType roleType(session);
// 初始化角色:节点ID、名称、显示名称
UaStatus status = roleType.createRole(roleNodeId, "Operator", UaLocalizedText("en", "Operator Role"));

// 为角色添加读取数据值的权限
UaPermissionMapping readPermission;
readPermission.setNodeId(UaNodeId(UA_NS0ID_READ));
readPermission.setGranted(true);
roleType.addPermission(readPermission);

// 可按需添加其他权限,如Write、Browse等

2. 添加用户到服务器用户管理器

// 获取服务器的用户身份管理实例
UaUserIdentityManager* pUserManager = pUaServer->getUserIdentityManager();
// 添加用户(参数:用户名、密码、用户描述)
UaStatus status = pUserManager->addUser("opc_user", "opc_pass", UaString("Operator User"));

3. 将用户关联到角色

// 绑定用户到目标角色的成员列表
UaRoleMembers roleMembers(session, roleNodeId);
// 用户的NodeId需与创建时一致(此处假设用户节点在命名空间1)
status = roleMembers.addMember(UaNodeId("opc_user", 1));

三、解决匿名用户无法查看数值的问题

匿名用户默认仅拥有Browse权限(查看模型结构),需为内置的AnonymousRole添加Read权限:

// 获取内置匿名角色的节点ID
UaNodeId anonymousRoleId = UaNodeId(UA_NS0ID_ANONYMOUSROLE);
UaRoleType anonymousRole(session, anonymousRoleId);

// 添加读取权限
UaPermissionMapping readPerm;
readPerm.setNodeId(UaNodeId(UA_NS0ID_READ));
readPerm.setGranted(true);
anonymousRole.addPermission(readPerm);

四、修复UserNameIdentityToken无法连接的问题

1. 确保服务器端点启用用户名认证

// 获取服务器配置与端点信息
UaServerConfig* pConfig = pUaServer->getConfig();
UaEndpoint endpoint = pConfig->getEndpoint(0); // 取第一个端点,可根据实际调整

// 添加用户名令牌支持(安全策略根据实际场景选择,示例为无加密)
endpoint.addUserTokenPolicy(UaUserTokenPolicy(
    UA_USERTOKENPOLICY_USERNAME,
    "",
    UA_SECURITY_POLICY_NONE_URI
));
// 更新端点配置
pConfig->updateEndpoint(endpoint);

2. 关键排查点

  • 调用pUserManager->userExists("opc_user")验证用户已成功添加到服务器
  • 客户端令牌的用户名、密码需与服务器配置完全一致
  • 客户端使用的安全策略需与服务器端点配置匹配(如无加密、Basic256Sha256等)

内容的提问来源于stack exchange,提问作者oiergoiergh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:45:32