仅把用户加入 VPN 组并不会自动授予访问权限
组成员身份只是一个条件,不是权限。看清网关实际匹配了什么,读取允许或拒绝记录,并测试两种结果。
账号已加入正确的组,登录成功,连接却仍被拒绝,或者连上后访问不到任何有用的资源。继续加组直到某处松动,只会给出远超工单所需的权限。组成员身份只是授权决策的一个输入,而不是决策本身:网关收集会话事实,按有序策略逐条匹配,然后才决定会话能访问什么。如果失败的是另一个条件,改组只会改变暴露面。
组成员身份是条件,不是权限
在 RADIUS 中,组以授权属性到达,属性描述会话,并不授予会话。服务器返回 Access-Accept 或 Access-Reject;接受时可附带 Filter-Id、Class 或 RFC 2868 的隧道属性,对端设备按厂商方式解释。协议里没有把组映射为完全访问的规则;这个映射由配置网关或网络接入服务器策略的人写下。
所以同一个组名在两套系统上表现不同。Microsoft NPS 用条件、约束和设置组装网络策略,并按配置顺序求值。OpenVPN Access Server 有自己的组和访问规则模型,社区版服务器则常把问题交给 client-connect 脚本或 client-config-dir 文件。
起作用的是匹配到的规则,而不是你期待的那个组
多数引擎在第一条匹配的策略或最具体的一条处停止。如果策略 3 拒绝而策略 7 允许,会话可能在到达放行规则之前就失败。顺序在 NPS 和多数网络准入产品上是真实设置,并且会随年份漂移。
随组而来的条件才是另一半:设备状态、认证方式、MFA 是否完成、来源网络、证书主体或时间窗。缺一项策略就不匹配,引擎下落,默认拒绝生效。从用户角度看组被忽略;从引擎角度看从未查询过组。
目录细节制造同样的错觉。按 Windows 组成员匹配的策略读取令牌中的 SID,那里只枚举安全组,通讯组永远不会出现。主组存放在单独字段,因此钉在该组上的策略会静默失败。
在动组之前先读允许或拒绝记录
先问一个问题:请求有没有走到授权阶段?在 NPS 上答案就在事件日志里:6272 记录放行,6273 记录拒绝,6274 记录服务器在评估策略前丢弃的请求。这三个编号把问题分成三种排查,只有一种与组有关。
| What the record shows | What it means | Where to look next |
|---|---|---|
| 6272, access granted | Authentication and authorization both succeeded | Routes, split tunnel, DNS, per-resource rules |
| 6273, access denied | A policy matched and denied, or nothing matched and the default denied | The conditions of the policy that fired, in order |
| 6274, request discarded | The request never reached authorization | Shared secret, NAS client entry, proxy chain, malformed attributes |
日志拿不到时,直接询问服务器并读返回。没有 Filter-Id 也没有隧道属性,说明服务器认为会话平平无奇,是网关在套自己的规则。带了执行点并未实现的属性,则是另一种故障:授权通过了,设备却忽略了结果。
radtest alice 'password' 10.0.0.5 0 testing123
把返回属性与网关文档中的属性对照,而不是与组名暗示的意思对照。这通常能在改任何组之前把策略问题和执行问题分开。
改组不会追溯生效
授权属性只在会话认证时返回一次。网关把它存在会话上,不会为每个数据包重读目录,所以把某人移出组后已建立的会话仍在工作,而新会话可能失败。
要让改动生效,需要一次新的授权决策,而不只是新密钥。服务器支持 RFC 5176 时,向 UDP 3799 发送 Disconnect-Request 或 CoA-Request 会强制重新评估;否则断开客户端让它重连。重协商只刷新隧道密钥,通常不改变授权结果。
修条件,不要修组
知道是哪条策略触发后,修复通常很小:把遮住预期放行的拒绝策略调换顺序,给目标策略补上缺失的设备或 MFA 条件,或者为那一个资源写窄规则,而不是把用户提升进还带着另外十个权限的组。
短循环能让改动保持诚实:
- 用原账号复现拒绝,并在改动任何东西之前记下事件 ID。
- 只改一个对象,策略顺序、单个条件或一个组,并记录改的是哪个。
- 开一个新会话,确认日志里出现放行,并确认资源确实能打开。
- 再测一个本应仍被拒绝的用户,确认修复没有意外放宽策略。
如果放行正确而资源仍打不开,问题在授权成功的那一刻就已转到路由或名称解析。把两种失败分开,下一张工单只需几分钟而不是一下午。