Proxy Authentication Required解決
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4111920013853982&dt=1177829700074&lmt=1177829700&format=300x250_as&output=html&channel=0395067506&url=http%3A%2F%2Fwww.goalercn.com%2Fprogram%2Fview.php%3Fid%3D105&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=009900&color_border=FFFFFF&ad_type=text_image&ref=http%3A%2F%2Fwww.google.cn%2Fsearch%3Fq%3D%2BProxy%2BAuthentication%2BRequired%25E8%25A7%25A3%25E5%2586%25B3%26complete%3D1%26hl%3Dzh-CN%26newwindow%3D1&cc=100&flash=9&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480" frameborder="0" width="300" scrolling="no" height="250" allowtransparency="allowtransparency"></iframe> |
注:請參照RFC3261
使用HTTP認證
SIP為認證系統提供了一個無狀態的,試錯機制,這個認證機制式基於HTTP的認證機制的。任何時候proxy伺服器或者UA接收到一個請求(22.1節例外),它嘗試檢查請求發起者提供的身份確認。當發起方身份確認了,請求的接受方應當確認這個使用者是否式通過認證的。在本文件中,沒有建議或者討論認證系統。 本節描述的“Digest”認證機制,只提供了訊息認證和複查保護,沒有提供訊息完整性或者機密性的保證。上述的保護級別和基於這些Digest提供的保護,可以防止SIP攻擊者改變SIP請求和應答。 注意由於這個脆弱的安全性,我們不贊成”Basic”(基本的)認證方法。伺服器必須不能接收驗證方法式”Basic”型別的信任書,並且伺服器必須拒絕”Basic”。這是和RFC2543的改變。框架
使用者到使用者的認證。
當UAS收到一個UAC發起的請求,UAS在請求被處理之前進行身份認證。如果請求中沒有信任書(在Authorization頭域),UAS可以使用401(Unauthorized)拒絕認證,並且讓客戶端提供一個認證書。 WWW-Authenticate應答頭域必須在401(Unauthorized)應答訊息中出現。這個頭域值包含了至少一個表明認證方式和適用realm的引數的拒絕原因。 在401中的WWW-Authenticate頭域例子: WWW-Authenticate:Digest, realm=”biloxi.com”, qop=”auth,auth-int”, nonce=”dcd98b7102dd2f0e8b11d0f600bfb0c093", opaque="5ccc069c403ebaf9f0171e9517f40e41" 當原始請求的UAC接收到這個401(Unauthorized)應答的時候,如果可能的話,他應當重新組織這個請求,並且填寫正確的信任書。在繼續處理之前,UAC可以要求原始使用者輸入信任書。一旦信任書(不管是使用者輸入的,還是內部金鑰)提供了,UA應當把這個給特定To頭域和”realm”欄位的信任書cache起來,以備給這個地址下一個請求時候使用。UA可以用任何方式來cache這個信任書。 如果沒有找到對應realm的信任書,UAC應當嘗試用使用者”anonymous”和空口令來重新嘗試這個請求。 一旦找到了一個信任書,那麼UA應當要求在UAS或者註冊伺服器上認證自己,這是通常的情況,但是並非一定要求的,在接收到一個401(Unauthorized)應答後-可以在請求中增加一個Authorization頭域然後再認證。Authorization頭域包含了具有這個UA到請求的資源所在的realm(區域)的信任書和所需要的認證支援的引數和重現保護的引數。 Authorization頭域例子: Authorization: Digest username=”bob”, realm=”biloxi.com”, nonce=”dcd98b7102dd2f0e8b11d0f600bfb0c093", uri=”sip:[email protected]”, qop=auth, nc=00000001, cnonce=”0a4f113b”, response=”6629fae49393a05397450978507c4ef1", opaque=”5ccc069c403ebaf9f0171e9517f40e41" 當UAC在接收到401(Unauthorized)或者407(ProxyAuthenticationRequired)應答之後,重新用它的信任書來提交請求,它必須增加Cseq頭域的值,就像傳送一個正常的新請求一樣。Proxy到使用者的認證
類似的,當UAC傳送一個請求到proxy伺服器,proxy伺服器可以在處理請求之前,驗證原始請求的認證。如果請求中沒有信任書(在Proxy-Authorization頭域),proxy可以用407(Proxy Authentication Required)拒絕這個原始請求,並且要求客戶端提供適當的信任書。proxy必須在407(ProxyAuthenticationRequired)應答中增加一個Proxy-Authenticate頭域,並且在這個頭域中給出適用於本proxy的認證資源。 對於Proxy-Authenticate和Proxy-Authorization一起在[17]中描述,兩者有一個不同。Proxy不能在Proxy-Authorization頭域中增加值。所有的407(ProxyAuthenticationRequired)應答必須轉發到上行佇列,遵循傳送應答的步驟傳送到UAC。UAC負責在Proxy-Authorization頭域值增加適用於這個proxy要求認證的這個proxy的realm的信任書。 如果proxy要求UAC在請求中增加Proxy-Authorization頭域並且重新提交請求,那麼UAC應當增加Cseq頭域的值,就像一個新請求一樣。不過,這樣就導致提交原始請求的UAC需要忽略UAS的應答,因為Cseq的值可能是不一樣的。 當原始請求的UAC接收到一個407(Proxy Authentication Required)的時候,如果可能,它應當使用正確的信任書重新組織請求。它應當和對前邊講述的401應答的處理步驟一樣顯示和處理”realm”引數。 如果沒有找到對應realm的信任書,那麼UAC應當嘗試用使用者”anonymous”和空口令重新嘗試請求。 UAC也應當cache這個在重新發送請求中的信任書。 我們建議使用下列步驟來cache一個proxy的信任書: 如果UA在給特定Call-ID的請求的401/407應答中,接收到一個Proxy-Authenticate頭域,它應當合併對這個realm的信任書,並且為以後具有相同Call-ID的請求傳送這個信任書。這些信任書必須在對話中被cache住;不過如果UA配置的是它自己的本地外發proxy,那麼如果出現要求認證的情況,那麼UA應當cache住跨對話的信任書。注意,這個意味著在一個對話中的請求可以包含在Route頭域中所經過proxy都不需要的信任書。 任何希望在proxy伺服器上認證的UA――通常,但是並非必須,在接收到407(Proxy Authentication Required)應答之後――可以在請求中增加一個Proxy-Authorization頭域然後再次嘗試。Proxy-Authorization請求頭域允許客戶端像proxy來證明自己(或者使用者)的身份。Proxy-Authorization頭域包含了UA提供給proxy和/或者請求資源所在的realm的身份認證資訊的信任書。 一個Proxy-Authorization頭域值只提供給指定proxy驗證的,這個proxy的realm是在”realm”引數中指明的(這個proxy可以事先通過Proxy-Authenticat頭域提出認證要求)。當多個proxy組成一個鏈路的時候,如果proxy的realm和請求中的Proxy-Authorization頭域的”realm”引數不匹配,那麼這個proxy就不能使用本Proxy-Authorization頭域值來驗證。 注意,如果一個認證機制不支援Proxy-Authorization頭域的realm,porxy伺服器必須嘗試分析所有的Proxy-Authorization頭域值來決定是否其中之一有這個proxy認為合適的信任書。因為這個方法在大型網路上很耗時間,proxy伺服器應當使用一個一個支援Proxy-Authorization頭域的realm的認證方案。 如果一個請求被分支(參見16.7節),可能對同一個UAC有不同的proxy伺服器和/或者UA希望要求認證。在這種情況下,分支的proxy伺服器有責任把這些被拒絕的認證合併成為一個應答。每一個分支請求的應答中接收到WWW-Authenticate和Proxy-Authenticate頭域值必須由這個分支proxy放置在同一個應答中傳送給UA;這些頭域值的順序並沒有影響。 當proxy伺服器給一個請求發出拒絕認證的應答,在UAC用正確的信任書重新發請求過來之前,不會轉發這個請求。分支proxy可以同時向多個要求認證的proxy伺服器轉發請求。每一個proxy在沒有接收到UAC在他們各自的realm的認證之前,都不會轉發這個請求。如果UAC沒有給這些失敗的驗證提供信任書,那些發出拒絕通過認證的proxy是不會把請求轉發給UA的目標使用者的,因此,分支的優點就少了很多。 當針對包含多個拒絕認證的401(Unauthorized)或者407(Proxy Authentication Required)應答重新提交請求時,UAC應當對每一個WWW-Authenticate和Proxy-Authorization頭域值提供一個信任書。根據上邊的說明,一個請求的多個認證書應當用”realm”引數分開。 不過,在同一個401(Unauthorized)或者407(Proxy Authentication Required)應答中,可能包含對同一個realm的多個驗證拒絕。例如,當在相同域的多個proxy,使用共同的realm,接收到了一個分支請求,並且認證拒絕了的時候,就會有這樣的情況。當UAC重新嘗試這個請求的時候,UAC因此會提供多個Authorization或者Proxy-Authorization頭域,包含相同的”realm”引數。並且對於同一個realm,應當有相同的信任書。Digest 認證方案
奔進誒描述了對HTTP Digest 認證方案的SIP修改和簡化。SIP使用了和HTTP[17]幾乎完全一樣的方案。 由於RFC 2543是基於RFC2069[39]定義的HTTP Digest的,支援RFC2617的SIP伺服器也必須確保他們和RFC2069相容。RFC2617定義了保證相容性的步驟。注意,SIP伺服器必須不能接收或者發出Basic認證請求。 Digest認證的規則在[17]中定義,只是使用”SIP/2.0”替換”HTTP/1.1”,並且有如下的不同: 1、 URI有著如下的BNF: URI=SIP-URI/SIPS-URI 2、 在RFC 2617定義中,有一個HTTP Digest認證的Authorization頭域”uri”引數的錯誤,是沒有括號配對的錯誤。(在RFC2617的3.5節的例子是正確的)。對於SIP來說,’uri’引數必須在引號中引起來。 3、 digest-uri-value的BNF是: digest-uri-value=Request-URI; 在25節定義。 4、 對SIP來說,產生基於Etag的nonce的步驟例子不適用。 5、 對SIP來說,RFC2617[17]關於chache操作不適用。 6、 RFC2617[17]要求伺服器檢查請求行的URI,並且在Authorization頭域的URI要指向相同的資源。在SIP中,這兩個URI可以指向不同的使用者,因為是同一個proxy轉發的。因此,在SIP,一個伺服器應當檢查在Authorization頭域值的Request-URI和伺服器希望接收請求的使用者是否一致,但是如果兩者不一致,並無必要展示成為錯誤。 7、 在Digest認證方案中,關於計算訊息完整性保證的A2值的一個澄清,實現著應當假定,當包體是空的(也就是說,當SIP訊息沒有包體)應當對包體的hash值產生一個M5hash空串,或者: H(entity-body)=MD5(“”)= "d41d8cd98f00b204e9800998ecf8427e" 8、 RFC2617指出了在Authorization(以及擴充套件的Proxy-Authorization)頭域中,如果沒有qop指示引數,就不能出現cnonce值。因此,任何基於cnonce(包括”MD5-Sess”)的運算都要求qop指數先發送。在RFC2617中的”qop”引數是可選的,這是為了向後相容RFC2069;由於RFC2543是基於RFC2069的,”qop”引數必須被客戶和伺服器依舊是當作可選引數存在。不過,伺服器必須始終在WWW-Authentication和Proxy-Authenticate頭域值中傳送”qop”引數。如果一個客戶端在一個拒絕認證的應答中收到一個”qop”引數,他必須把這個”qop”引數放在後續的認證頭域中。相關推薦
Proxy Authentication Required解決
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><iframe name="googl
Redis (error) NOAUTH Authentication required.解決方法
style data- itl digg ews command root details tools 出現認證問題,應該是設置了認證密碼,輸入密碼既可以啦 註意密碼是字符串形式! [plain] view plain copy 127.0.0.1:6379&
Tunnel connection failed: 407 Proxy Authentication Required
報錯資訊 : Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.'
Proxy Authentication Required ( Forefront TMG
maven 報錯,需要認證,xml檔案中配置了還是不行。 解決方案: 1.下載wagon-http-lightweight-2.2.jar(地址: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-http-li
PowerShell (407) Proxy Authentication Required
$Client = New-Object -TypeName System.Net.WebClient $Client.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
python pip install --proxy 命令列提示 407 Proxy Authentication Required
可以結合一下三篇文章得出:命令下 使用 pip install --proxy 不支援 --引數 寫法,必須設定環境變數來安裝 http://blog.csdn.net/dangerousroy/article/details/52924116 http://blog.cs
Redis (error) NOAUTH Authentication required. 解決方法
今天去用Jedis去連線我的redis伺服器的時候發現報錯 如何進redis伺服器 在redis的bin資料夾裡,有redis-cli可以進去redis伺服器 如何設定密碼 用vi 進入redis.conf 然後 /requirepasswo
MASTER aborted replication with an error: NOAUTH Authentication required.已解決
MASTER aborted replication with an error: NOAUTH Authentication required. 解決方法: 啟動從redis庫時redis.log報上述錯誤,也
Redis服務停止報錯解決方案[NOAUTH Authentication required]
Redis服務停止報錯解決方案[NOAUTH Authentication required] Redis伺服器設定密碼後,使用service redis stop 會出現以下資訊: service redis stop
redis異常解決 :idea啟動本地redis出現 jedis.exceptions.JedisDataException: NOAUTH Authentication required
第一次安裝在本地redis服務,試試跑專案,結果卻出現nested exception is redis.clients.jedi
Python error: Microsoft Visual C++ 9.0 is required 解決方案
compile blank 安裝ipython con pan code logs onf pre 換了新電腦,在使用python2.7 pip 安裝ipython時,報錯了 error: Microsoft Visual C++ 9.0 is required. Get
error registry key 'SoftwareJavaSoftJava Runtime Environment'CurrentVersion' has value 'XX',but 'XX' is required 解決辦法
文件 解決辦法 打開 java版本 ftw cli 忘記 sof version 這個錯誤很奇怪,很久之前出現過一次,已經忘記咋解決的了,今天特地記錄下。 我機器上java有3個版本,1.6,1.7,1.8,環境變量JAVA_HOME是一直配的1.8為主要。 因為我3個
Scrapy安裝報錯 Microsoft Visual C++ 14.0 is required 解決辦法
amd 環境 文件 pan color normal word all lib Scrapy安裝報錯 Microsoft Visual C++ 14.0 is required 解決辦法原因:Scrapy需要的組 twisted 需要 C++環境編譯。方法一:根據錯誤提示去
阿裏雲鏡像倉庫 unauthorized: authentication required
記錄 控制臺 提示 zed water images nag type 裏的 前言 在使用阿裏雲的鏡像倉庫時遇到 unauthorized: authentication required 的問題,百度一下差點誤入歧途,特此做個記錄。 故障描述 在登陸時 出現 un
Implementing an LSA proxy authentication package
轉載自:https://kobyk.wordpress.com/2008/08/30/implementing-an-lsa-proxy-authentication-package/ LSA authentication packages are a part of the core
pycharm 安裝flask-mysqldb報錯: Microsoft Visual C++ 14.0 is required..解決方法
當在pycharm中直接安裝flask-mysqldb時報錯: error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.vi
redis安全 (error) NOAUTH Authentication required
redis安全 (error) NOAUTH Authentication required Redis 安全 我們可以通過 redis 的配置檔案設定密碼引數,這樣客戶端連線到 redis 服務就需要密碼驗證,這樣可以讓你的 redis 服務更安全。 例項
error: Microsoft Visual C++ 14.0 is required解決方案
安裝python庫的時候容易出現的錯誤,尤其是安裝scrapy的時候,需要build一些元件庫。 報錯如下: 由於電腦的Visual C++ 版本過低,導致編譯失敗,解決辦法有兩個。 error: Microsoft Visual C++ 14.0 is require
Client does not support authentication protocol 解決辦法
在smarTTY客戶端(其它客戶端也行)命令列介面進入mysql資料庫 (1)容器中登入mysql,進入mysql>命令列 1、docker exec -it mysql01 bash //mysql01是mysql容器的別名 2、mysql -
java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.解決辦法
第一次寫部落格,希望大家多多照顧! 這兩天在寫一個springboot的專案,使用了據說是黑馬的HikariCP連線池,配置過程中出現了這個問題,查閱了兩天的資料,終於搞定。 # 配置mysql spri