摘要式存取通訊協定
RFC 2617 所指定的摘要式存取通訊協定是由 Microsoft Digest 安全性支援提供者 (SSP) 實作。 實作包含一組 Microsoft安全性支援提供者介面 (SSPI) 安全性內容函式,用戶端/伺服器應用程式會呼叫:
摘要式存取驗證會在配對的要求/回應交易內進行,要求源自於用戶端,而回應則源自於伺服器。 成功的摘要式存取驗證需要兩個要求/回應組。
當摘要式 SSP 用於 HTTP 驗證時,第一個和第二個要求 /回應組之間不會維護任何連線。 換句話說,伺服器不會在傳送第一個回應之後等待第二個要求。
下圖顯示客戶端和伺服器在 HTTP 路徑上所採取的步驟,以使用摘要 SSP 完成驗證。 SASL 機制會使用相互驗證,因此驗證數據會在最後一個 ASC 伺服器呼叫傳回給用戶端,以驗證用戶端是否與正確的伺服器通訊。
此程式會從用戶端傳送 HTTP 要求 1,從伺服器要求存取保護的資源開始。
伺服器會收到 HTTP 要求 1,並判斷資源需要要求中未包含的驗證資訊。 伺服器會產生客戶端的挑戰,如下所示:
- 伺服器藉由 呼叫 acquireCredentialsHandle 函式來取得其 認證。
- 伺服器會呼叫 AcceptSecurityContext (一般) 函式來產生 Digest 挑戰。
- 伺服器會將 WWW-Authenticate 標頭作為對用戶端要求的回應傳送(如 HTTP 回應 1)。 標頭包含 Digest 挑戰和不透明指示詞,其中包含針對用戶端建立之部分 安全性內容參考。 標頭會以 401 狀態代碼傳送,指出用戶端要求產生未經授權的存取錯誤。 如需摘要挑戰的詳細資訊,請參閱 摘要挑戰的內容 和 產生摘要挑戰。
- 用戶端會收到 HTTP 回應 1、擷取伺服器所傳送的摘要挑戰,併產生摘要式挑戰回應,如下所示:
- 呼叫 acquireCredentialsHandle函式或以互動方式提示使用者輸入認證,來取得用戶的認證。
- 挑戰和認證資訊會傳遞至 InitializeSecurityContext (一般) 函式,這會產生摘要式挑戰回應。
- 用戶端會傳送授權標頭,其中包含對伺服器的挑戰回應(如 HTTP 要求 2 所示)。 如需摘要式挑戰回應的詳細資訊,請參閱 摘要式挑戰回應的內容 和 產生摘要式挑戰回應。
- 伺服器會接收 HTTP 要求 2、擷取用戶端傳送的挑戰回應,並藉由呼叫 AcceptSecurityContext (General) 函式來驗證資訊。 如需驗證程式的詳細資訊,請參閱使用 Microsoft 摘要 初始驗證。
- 伺服器會將 HTTP 回應 2 傳回用戶端,作為摘要式存取通訊協定所需的第二個和最終回應。 如果驗證成功,此回應會包含要求的資源。
相關主題