Windows 认证与访问控制核心流程

阶段一:身份认证 (Authentication)
1. 应用请求
应用通过 SSPI 接口发起身份认证请求
2. 凭据校验
SSP(如 NTLM / Kerberos)计算密文并完成身份验证
3. 上下文提取
LSASS 验证通过,提取用户的 SIDRID 标识
4. 令牌生成
构建 Access Token,生成进程绑定的 Primary Token 或线程挂载的 Impersonation Token
阶段二:访问控制 (Authorization)
1. 发起请求
线程携带 Token 申请打开对象,提交期望权限 Desired Access
2. 特权检查
SRM 接管,检查 Token 中是否启用能绕过检查的 Privilege(特权)
3. 描述符比对
读取对象的 Security Descriptor
• 遍历 DACL 中的 ACE(比对 Access Mask 决定放行/拒绝)
• 匹配 SACL 规则写日志
4. 判定结果
允许访问则返回对象句柄,拒绝则返回 Access Denied