"Invalid Authentication Headers" 使用 IIS 10 和 Windows 身份验证
"Invalid Authentication Headers" with IIS 10 and Windows Authentication
我一直在努力让 Windows 身份验证在 IIS10 上为 .Net Core API 工作。我得到的错误是 401.2:
You are not authorized to view this page due to invalid authentication headers.
我做了以下配置:
- 站点上仅启用了 windows 身份验证(禁用匿名)
- 已为站点创建 SPN,并且已启用服务器进行委派。
- 应用程序池配置为 运行 在域帐户下
cURL 和 Postman 都给我相同的结果。有趣的是,当我直接在 API 上使用 SwaggerUI 时,我得到了预期的行为,但是当(从另一台服务器)进行外部调用时,我得到了 401.2 错误。
错误中的一些附加内容是登录方法和登录用户尚未确定。
如何解决这个问题?
我假设 Postman 和 cURL 默认发送 NTLM credentials/token 作为请求的一部分,但这是不正确的。我不得不在 IIS 上启用失败请求跟踪,发现他们正试图使用匿名身份验证。显然 Postman 不支持 NTLM 身份验证,所以我使用了 cURL 并附加了凭据。有了这个,我可以获得与 cURL 一起使用的身份验证。
我一直在努力让 Windows 身份验证在 IIS10 上为 .Net Core API 工作。我得到的错误是 401.2:
You are not authorized to view this page due to invalid authentication headers.
我做了以下配置:
- 站点上仅启用了 windows 身份验证(禁用匿名)
- 已为站点创建 SPN,并且已启用服务器进行委派。
- 应用程序池配置为 运行 在域帐户下
cURL 和 Postman 都给我相同的结果。有趣的是,当我直接在 API 上使用 SwaggerUI 时,我得到了预期的行为,但是当(从另一台服务器)进行外部调用时,我得到了 401.2 错误。
错误中的一些附加内容是登录方法和登录用户尚未确定。
如何解决这个问题?
我假设 Postman 和 cURL 默认发送 NTLM credentials/token 作为请求的一部分,但这是不正确的。我不得不在 IIS 上启用失败请求跟踪,发现他们正试图使用匿名身份验证。显然 Postman 不支持 NTLM 身份验证,所以我使用了 cURL 并附加了凭据。有了这个,我可以获得与 cURL 一起使用的身份验证。