Win2012R2环境IIS6.2站点晨间SSO间歇性报401错误排查
IIS站点间歇性SSO故障(401认证错误)排查说明
故障日志对应含义
监控捕获的截断日志:
GET / - 80 - Microsoft+Monitoring+Agent+7.1.10184.0 - 401 2 5 0
日志字段对应故障特征:
- 401为HTTP未授权状态码,子状态码
2代表服务器端认证配置/服务异常导致登录失败,末尾Win32错误码5对应系统级访问被拒绝 - 该条日志的请求发起方为微软监控代理(Microsoft Monitoring Agent),这类探测请求默认不带认证凭据,正常情况下不会影响用户访问,但故障时段所有请求都会返回相同的401.2错误,说明站点侧认证服务整体失效。
SSO触发凭据弹窗的原理
当前环境配置的SSO属于Windows集成认证(Kerberos/NTLM),正常流程下浏览器收到IIS返回的认证挑战头后,会自动调用系统SSPI接口获取当前登录用户的域票据完成静默认证,全程不会弹出输入框。
只有当静默认证连续失败、IIS返回的认证信息不被浏览器识别、票据校验完全无法完成时,浏览器才会弹出凭据输入框要求用户手动提供账号密码,用户取消后就会直接返回401错误。
本次间歇性故障的根因排查方向
结合故障仅在早晨时段出现、重启站点即可恢复、每周仅偶发2次的特征,按以下优先级排查:
- 检查受影响站点对应应用池的定时回收配置:默认IIS应用池会设置固定间隔回收,若回收时间恰好设置在早间时段,回收时如果出现winauth认证模块加载失败、应用池账号用户配置文件加载异常、域控连接临时超时,就会导致认证服务整体失效,重启站点会重新加载所有模块恢复正常。
- 检查监控代理的早间探测策略:Microsoft Monitoring Agent会在固定时段批量发起站点可用性探测,若探测频率过高、并发量过大,会打满IIS默认的NTLM/Kerberos认证会话队列,导致正常用户的SSO认证请求被排队拒绝,直到队列超时清空或站点重启。
- 检查组策略/系统补丁的定时推送策略:Windows Server默认会在早间非业务高峰时段刷新域组策略、安装自动更新,若策略刷新过程中修改了站点的认证提供程序顺序、关闭了内核模式认证,且配置没有完全生效,就会出现认证异常,重启站点后配置会重新加载生效。
- 检查Kerberos SPN配置与域信任状态:若站点使用域账号作为应用池运行身份,SPN记录重复、机器账号域信任临时异常、域控早间备份时段响应超时,都会导致Kerberos票据解密失败,且NTLM回退异常时就会触发401错误。
该类SSO 401故障的常见通用诱因
- 应用池运行账号密码过期、权限临时丢失,导致认证模块无法正常初始化
- 站点同时开启多种认证方式,认证提供程序顺序错乱,匿名认证被意外禁用
- 第三方扫描、流量代理工具篡改了认证请求头,导致IIS无法识别客户端携带的SSO票据
- 内核模式认证开启状态下,服务器机器账号的本地安全策略缓存失效,无法解密客户端提交的Kerberos票据
- 服务器LSASS服务进程内存占用过高、句柄泄漏,导致认证请求处理失败,重启站点时会重置相关认证会话恢复服务
内容的提问来源于stack exchange,提问作者system radmin
相关产品推荐
相关产品推荐

