仅当协商失败时如何从协商方法回退到基本方法
我有一个网络应用程序,它也执行 kerberos 和基本身份验证。我不知道客户有什么能力。因此这两种身份验证机制都是在 401 回复中发送的。
回复标头将包含,
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"
但是,我希望客户端仅在协商失败时才回退到基本身份验证。
我希望流程应该是这样的,
- 客户端请求
- 服务器使用 WWW-Authenticate 响应:协商
- 客户端重新请求(使用错误的身份验证数据或使用某些标志指示它无法继续)
- 服务器再次使用 WWW-Authenticate 响应:基本领域=“MYREALM”
- 客户端进行基本身份验证。
我该怎么做?我修改了服务器代码来执行此操作。但是不在任何域中的浏览器(它应该进行基本身份验证)在步骤2之后没有响应。
I have a webapplication which does the kerberos and basic authentication as well. I do not know what the client is capable of. So both auth mechanisms are sent in 401 reply.
The reply header will contain,
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"
But, I want the client to fall back to basic auth only if negotiate fails.
I want the flow should be like,
- The client request
- Server responds with WWW-Authenticate: Negotiate
- The client re-request with (either with wrong auth data or with some flag indicating it can't proceed)
- The server response again with WWW-Authenticate: Basic realm="MYREALM"
- Client does basic auth.
How can I do this? I modified the server code to do this. But the browser which is not in any domain (its supposed to do basic auth) does not respond after step2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的浏览器是什么?具体的 RFC 第 4.6 章 要求浏览器必须使用提供的最强身份验证。我不记得如果浏览器无法获取凭据应该做什么。
What is your browser? The specific RFC chapter 4.6 mandates that the browser has to use the strongest auth offered. I cannot recall what the browser should do if it cannot obtain credentials for that.