所以我想實現以下情景: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