我有一个 web 应用程序,它也执行 kerberos 和基本身份验证。我不知道客户有什么能力。所以这两种身份验证机制都是在 401 回复中发送的。
回复标头将包含,
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"
但是,我希望客户端只有在协商失败时才回退到基本身份验证。
我想要的流程应该是这样的,
- 客户端请求
- 服务器响应 WWW-Authenticate: Negotiate
- 客户端重新请求(使用错误的身份验证数据或某些标志表明它无法继续)
- 服务器再次使用 WWW-Authenticate: Basic realm="MYREALM" 响应
- 客户端进行基本身份验证。
我怎样才能做到这一点?我修改了服务器代码来做到这一点。但是不在任何域中的浏览器(它应该进行基本身份验证)在第 2 步之后没有响应。