所以我想实现以下情景:HTTP规格:代理授权和授权头
- 的申请是由基本身份验证保护。假设它位于
app.com
- 在应用程序前面的HTTP代理也需要身份验证。它是在
proxy.com
托管因此,用户必须提供代理,并在同一个请求的应用既证书,他也因此有不同的用户名/密码对:一对,以验证自己对应用程序,而另一个用户名/密码对,以对代理进行身份验证。
阅读规范后,我不太确定我应该如何实现这一点。我想要做的是:
- 用户向代理发出HTTP请求,而不进行任何类型的身份验证。
- 代理回答
407 Proxy Authentication Required
,并返回Proxy-Authenticate
标题,格式为:"Proxy-Authenticate: Basic realm="proxy.com"
。
问题:这Proxy-Authenticate
标题设置正确吗? - 客户端然后用
Proxy-Authorization
标题重试请求,即代理username:password
的Base64表示。 - 这次代理验证请求,但应用程序使用
401 Unauthorized
标题进行回答。用户由代理进行了身份验证,但不是由应用程序进行身份验证。该应用程序将一个WWW-Authenticate
标题添加到响应中,如WWW-Authenticate: Basic realm="app.com"
。 问题:此标题值是否正确? - 客户端再次尝试使用
Proxy-Authorization
标头和Authorization
标头,并使用应用程序的username:password
的Base64表示值重新发送请求。 - 此时,代理成功验证请求,并将请求转发给验证用户的应用程序。客户终于得到回应。
整个工作流程是否正确?
嗯,感谢您在这里解释的Proxy- *标题,正在寻找它们。但是你解决了你的问题吗?为什么问题仍然存在? – 2013-02-03 16:51:35
由于您只是要求对方法进行一般验证,所以我试着在我的答案中添加一些其他颜色,以便对此设置的其他排列方式进行说明。但是,如果因为您尝试了所描述的内容并遇到特定错误而提出此问题,请更新问题以包含该错误;尽管我尽了最大努力来验证您发布的内容,但真正的测试只是简单地尝试一下,看看会发生什么。 – 2013-03-22 03:58:31