账号已加入正确的组,登录成功,连接却仍被拒绝,或者连上后访问不到任何有用的资源。继续加组直到某处松动,只会给出远超工单所需的权限。组成员身份只是授权决策的一个输入,而不是决策本身:网关收集会话事实,按有序策略逐条匹配,然后才决定会话能访问什么。如果失败的是另一个条件,改组只会改变暴露面。

组成员身份是条件,不是权限

在 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 showsWhat it meansWhere to look next
6272, access grantedAuthentication and authorization both succeededRoutes, split tunnel, DNS, per-resource rules
6273, access deniedA policy matched and denied, or nothing matched and the default deniedThe conditions of the policy that fired, in order
6274, request discardedThe request never reached authorizationShared 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。
  • 只改一个对象,策略顺序、单个条件或一个组,并记录改的是哪个。
  • 开一个新会话,确认日志里出现放行,并确认资源确实能打开。
  • 再测一个本应仍被拒绝的用户,确认修复没有意外放宽策略。

如果放行正确而资源仍打不开,问题在授权成功的那一刻就已转到路由或名称解析。把两种失败分开,下一张工单只需几分钟而不是一下午。

相关文章