Web Api/ASP.. NET windows身份验证工作
本文关键字:windows 身份验证 工作 NET ASP Api Web | 更新日期: 2023-09-27 18:15:48
根据asp.net官方网站
集成的Windows身份验证允许用户使用他们的Windows凭证,使用Kerberos或NTLM。客户端发送授权头
中的凭据
但它的优点是在同一页
内置在IIS中。不发送请求中的用户凭据。
这有点令人困惑。那么,Windows身份验证如何真正工作在http请求Web Api/ASP.NET?
. NET Windows身份验证利用了一些技术使其实现相对透明和无缝。所使用的基本身份验证模式是Kerberos和/或NTLM,下面将对此进行解释。一旦基本身份验证过程完成,IIS将结果传递给ASP.NET。结果是经过身份验证的用户或匿名用户。ASP。. NET然后开始构建应用程序使用的IPrinciple
对象。
-------------- --------------
- - ----(1)---> - -
- Client - <---(2)---- - Domain -
- - ----(3)---> - Controller -
- - <---(4)---- - -
-------------- --------------
' /'
(5) '
' (6)
'/ '
--------------
- -
- Web -
- Server -
- -
--------------
(1) -客户端从KDC请求TGT
(2) - KDC发送TGT到客户端
(3) -客户端使用TGT请求TGS访问资源
(4) - TGS发送会话密钥和票据给客户端
(5) -客户端发送票据到web服务器
Web服务器向客户端发送响应
NTLM
-------------- --------------
- - ----(1)---> - -
- Client - <---(2)---- - Web -
- - ----(3)---> - Server -
- - <---(6)---- - -
-------------- --------------
' /'
(4) '
' (5)
'/ '
--------------
- -
- Domain -
- Controller -
- -
--------------
(1) -客户端请求访问web服务器的用户名
Web服务器向客户端发送挑战消息
(3) -客户端使用密码哈希(NTLM响应)加密挑战并发送给web服务器
(4) - Web服务器向域控制器发送用户名、挑战和NTLM响应
(5) -域控制器检查NTLM响应
Web服务器向客户端发送响应
引用:
https://learn.microsoft.com/en-us/windows/desktop/secauthn/microsoft-kerberos
https://learn.microsoft.com/en-us/windows/desktop/secauthn/microsoft-ntlm
Windows身份验证允许用户使用Windows凭据登录同一域下的内网环境。就像您使用公司网络登录到公司的笔记本电脑(您的窗口凭据)一样。(贵公司域名)如果你的Web Api是开放给所有人使用的,那么你不应该使用Windows身份验证。