基于域账户及西门子simatic logon的集中权限管理的实现
一、背景与痛点
西门子在工业自动化领域的市场占有率有目共睹,无论是流程工业还是离散制造,其 PLC、DCS、HMI 及 SCADA(WinCC)平台都深度嵌入各类生产现场。从原料输送、反应釜温控、成品包装线,到仓储物流调度、环境监控与能源管理,几乎每一套关键设备背后都有西门子自动化子系统的支撑。
然而,这些子系统通常各自为政,每台 HMI、每台上位机都维护着一套独立的用户权限库。按照常规安全策略,密码每三到六个月就要强制更换;遇到组织架构调整或人员流转时,逐一更新数十台终端的账户信息,往往耗费大量人力。最直观的痛点就是:
现场操作工揣着一本手写密码本跑产线,上面记满了各工段操作屏的登录信息——因为这些终端之间的用户体系,从来就没有统一过!!!
这种分散式的权限管理模式不仅效率低下,还存在严重的安全隐患。那么,有没有一种方法能够实现"一个账号通吃所有西门子系统"呢?答案是肯定的。
二、解决方案概述
本文介绍的核心方案是:
这是一种基于用户角色(Role-Based)的权限管理方式,具备以下优势:
- 集中管理:所有用户权限统一在 Active Directory 域服务器中维护
- 单点登录:一个域账号即可登录所有 WinCC 上位机和 HMI 触摸屏
- 合规性:Simatic Logon 符合 FDA 21 CFR Part 11 电子记录与电子签名要求
- 可扩展性:可延伸至未来的 PCS 7、MES 系统用户管理
- 安全策略:可通过域组策略统一控制密码复杂度、有效期、屏保锁定等
2.1. 环境说明
2.2. 系统架构
整个系统的核心思路是将自动化系统所有现场触摸屏和上位机的权限,集中在 Active Directory 域服务器中统一管理。
架构中的关键组件及数据流如下:
- Active Directory 域控制器:作为身份认证的权威来源,存储所有用户账户、用户组及组织单元(OU)
- Simatic Logon 服务器:作为中间件,桥接 AD 域与西门子自动化系统,提供集中认证服务
- WinCC 上位机:通过 Simatic Logon 组件接入域认证,本地无需维护用户列表
- HMI 触摸屏:通过 Remote Access 方式连接到 Simatic Logon 服务器进行认证
三、搭建 Active Directory 域环境
3.1. 安装 Active Directory 域服务
在服务器管理器中,点击"添加角色和功能",按向导完成安装:
- 在"安装类型"页面选择 "基于角色或基于功能的安装" → 下一步
- 选择本地服务器 → 下一步
- 在"角色"列表中勾选 "Active Directory 域服务" → 弹出提示时点击 "添加功能" → 下一步
- 接受默认功能 → 下一步 → 确认 → 安装
- 安装完成后,重启服务器
3.2. 将服务器提升为域控制器
安装完成后,服务器管理器会提示 "AD DS 配置警告",点击 "运行 Active Directory 域服务配置向导":
选择"添加新的林"(新环境)或"添加新的域到现有林"(现有环境),输入域名和林根域名,例如 King.local
创建并确认目录服务还原模式(DSRM)管理员密码
完成向导,等待域控制器安装和配置完成
注意:要有一个网络连接,不然不能通过"先决条件检查"。
重启服务器以应用所有更改
3.3. 创建和管理用户/组
打开 "Active Directory 管理中心"(开始 → 管理工具),进行用户创建:
3.4. 验证安装
注销当前本机用户,以域用户登录(如 King.local\Administrator)
打开 "Active Directory 用户和计算机"(ADUC)管理工具,确认能看到域结构
使用命令 nslookup 验证 DNS 解析是否正常
3.5. 在域中添加用户及用户组
在开始菜单打开“Active Directory 用户和计算机”
如果出现此界面,请执行3.3中的步骤
3.5.1. 组织规划
在相应的 OU 中创建用户组和用户:
- 用户组:
KingEngineer(工程师组)、KingOperator(操作员组) - 示例用户:创建用户
ZhangSan,并将其添加到KingEngineer用户组中
重要提示:创建用户时,建议取消勾选"用户下次登录时须更改密码"选项,避免在 HMI/触摸屏上首次登录时被迫修改密码带来的操作困扰。
3.5.2. 创建用户组
在 ADUC 中右键域 → “新建” → “组织单位”,输入名称 “Production Management Department”。相同的,在“Production Management Department”下增加“Equipment and Engineering Department”。
在“Equipment and Engineering Department”下增加用户组KingEngineer(工程师组)、KingOperator(操作员组)
3.5.3. 创建用户
创建用户ZhangSan,并将用户张三添加到用户组 KingEngineer中
取消“用户下次登录时须更改密码”。
修改用户所属用户组。
四、搭建 Simatic Logon 服务器
4.1.1. 将服务器加入域
Simatic Logon 服务器需要先加入 AD 域:
将电脑的 DNS 改为 AD 服务器的 IP 地址(这是解析域名的关键)
在系统属性中输入域名
使用域管理员账户名和密码即可加入域
重启使配置生效
4.1.2. 安装 Simatic Logon 软件包
按以下顺序安装组件:
- 安装 VC_redist 2022
- 安装 SIMATIC Automation License Manager
- 安装 Simatic Logon 软件
- 安装 Remote Access 授权(触摸屏需要此授权)
安装完成后,开始菜单中会出现以下组件:
- 事件记录浏览器:查看所有登录操作的审计记录
- 组态 Simatic Logon:配置登录选项和参数
4.1.3. 配置 Simatic Logon 组态
安装完成后,Simatic Logon 会在本地用户组中添加一个 Logon_Administrator 用户组,需要把要进行组态的用户添加到该组中。
打开"组态 Simatic Logon",以刚才添加的账户登录。
进行以下关键配置:
4.1.3.1. 常规选项卡
设置登录语言,配置欢迎信息,配置默认用户名。
4.1.3.2. 登录超时
设置自动注销时间,防止用户离开后会话长期保持
4.1.3.3. 登录设备
- 默认通过键盘登录
- 可选配置智能读卡器登录(更高安全性)
4.1.3.4. 安全选项
4.1.4. 配置防火墙规则
在 Simatic Logon 服务器上,需要修改防火墙入站规则的作用域:
- Simatic Logon Remote Access Service:
- 本地
IP 地址:选择任何地址 - 远程
IP 地址:由"本地子网"修改为任何
IP 地址
- 本地
- Simatic Logon Service:
- 本地 IP 地址:选择任何地址
- 远程 IP 地址:由"本地子网"修改为任何 IP 地址
五、WINCC 用户管理组态
5.1. 将 WinCC 服务器加入域
与 Simatic Logon 服务器类似,WinCC 服务器也需要加入域:
设置 IP 地址,DNS 设置为域服务器 IP
加入域后,将相关用户添加到本地 Logon_Administrator 用户组
或者直接把两个用户组添加进去。
注销并重新登录,使配置生效
5.2. 在 WinCC 中启用 Simatic Logon
在安装 WinCC 过程中,勾选 Simatic Logon 选项。或者参照 Logon 服务器的安装方式,单独安装 Logon 软件。
5.3. 创建用户组并分配权限
打开 Simatic WinCC 项目管理器,进入用户管理器:
点击用户管理器根目录,在右侧属性编辑器中,勾选"SIMATIC 登录"(注意:WinCC 激活运行时无法进行勾选,需先取消激活)
右键点击用户管理器,添加新组。示例添加 KingOperator 和 KingEngineer 两个用户组
注意:无需新建用户!用户由域控制器统一管理
注意:组的名称必须与域中的用户组名称完全一致,包括大小写
切换至权限选项卡,为每个用户组分配相应的操作权限。
至此,WinCC 上的用户管理组态就完成了!
5.4. 画面登录脚本
在画面上利用原来的登录脚本即可调用 Logon 窗口:
|
1 2 3 4 5 6 7 8 9 10 |
#include "apdefap.h" void OnLButtonDown(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y) { #pragma code("useadmin.dll") #include "PWRT_api.h" #pragma code() PWRTLogin('1'); } |
六、HMI(WinCC Flexible / TIA Portal)用户管理组态
6.1. 启用 Simatic Logon 登录
在 WinCC Flexible 或 TIA Portal 的组态画面中,切换至"运行系统安全性设置"选项卡:
- 勾选 "启用 Simatic Logon"
- 输入 Simatic Logon 服务器的 FQDN 名称(包含域名的服务器全名,如
logonserver.king.local)或 IP 地址 - 端口号保持默认即可
- Windows 域填写所在域的域名,如
King.local - 如果不是加密连接,不要勾选"加密的传输"选项
• 如果输入的是服务器的 FQDN 名称,则需要在 HMI 的网络地址配置中填写域服务器的 DNS 地址,使 HMI 能解析到 Simatic Logon 服务器的 IP。
• 如果填写的是 IP 地址,则确保服务器的 IP 地址固定不变,防止出现无法登录的情况。
6.2. 配置用户组及权限
在用户系统运行管理 → 组中,同样添加 BMSOperator、BMSEngineer等用户组(名称需与域中一致),并为各组配置相应的画面操作权限。
至此,HMI 用户管理组态配置完成!
七、效果展示与总结
7.1. 登录效果
在 WinCC 上位机:点击登录按钮,弹出 Simatic Logon 登录对话框。在"登录到"选项中选择域名,输入在域中建好的用户名及密码,即可成功登录。用户还可以很方便地在上位机上修改自己的密码。
在 HMI 面板:在登录对话框中直接输入域用户的用户名及密码,即可登录。如果用户未被分配到相应的权限组中,是无法成功登录的。
7.2. 审计与追溯
在 Simatic Logon 服务器中,可以通过事件记录浏览器查看所有用户的登录信息,包括登录时间、登录地点、操作记录等,满足制药行业的审计追踪要求。
需要注意的是,如果要使用该功能,需要把用户添加到Extended_Logon_Administrator
7.3. 运维效率提升
利用 Simatic Logon 以及域环境,权限变更变得异常简单:
- 当用户权限发生变更,无需到 WinCC、HMI 中进行任何组态修改
- 只需在域控制器中,将用户从相应的权限组中删除,再添加到新的用户组中即可
- 通过域组策略等手段,可以统一控制密码复杂度要求、密码最小长度、最长期限
- 可配置屏保超时锁定、重新登录验证密码等安全策略
"如今信息技术飞速发展,自动化已经不仅局限在传统的技术领域了。控制器编程已经不仅仅是 LAD、STL,而是更多地向高级语言靠拢;传感器也正在转变为智能传感器,具备云端接入能力……"
我们这个案例,就是典型的利用 IT 技术解决 OT 问题!通过将 Active Directory 域账户与西门子 Simatic Logon 相结合,实现了工厂自动化系统的集中化、标准化、合规化权限管理。希望智能制造能够早日实现!
参考资料:
WinCC SIMATIC Logon组态-SIMATIC WinCC审计追踪(Audit)-HMI-西门子下载中心常见问题大全