摘要式存取通訊協定

RFC 2617指定的 Digest Access 通訊協定是由 Microsoft Digest安全性支援提供者所實作, (SSP) 。 實作包含一組 Microsoft 安全性支援提供者介面 , (SSPI) 用戶端/伺服器應用程式呼叫的安全性內容函式:

  • 建立訊息交換 的安全性內容
  • 取得摘要式 SSP 所需的資料物件,例如 認證 和內容控制碼。
  • 存取訊息 完整性 和機密性機制。

摘要式存取驗證會在配對的要求/回應交易內進行,而要求源自于用戶端,以及源自伺服器上的回應。 成功的摘要式存取驗證需要兩個要求/回應組。

當摘要式 SSP 用於 HTTP 驗證時,第一個和第二個要求/回應組之間不會維護任何連線。 換句話說,伺服器不會在傳送第一個回應之後等待第二個要求。

下圖顯示用戶端和伺服器在 HTTP 路徑上採取的步驟,以使用摘要式 SSP 完成驗證。 SASL 機制會使用相互驗證,因此驗證資料會在最終 ASC 伺服器呼叫上傳回給用戶端,以驗證用戶端是否與正確的伺服器通訊。

摘要式存取通訊協定

此程式會從用戶端開始,藉由傳送 HTTP 要求 1,向伺服器要求受存取保護的資源。

伺服器會收到 HTTP 要求 1,並判斷資源需要要求中未包含的驗證資訊。 伺服器會產生用戶端的挑戰,如下所示:

  1. 伺服器會藉由呼叫AcquireCredentialsHandle函式來取得其認證
  2. 伺服器會呼叫 AcceptSecurityCoNtext (General) 函式來產生 Digest 挑戰。
  3. 伺服器會將WWW-Authenticate標頭當做回應傳送至用戶端的要求, (顯示為 HTTP 回應 1) 。 標頭包含 Digest 挑戰和不透明指示詞,其中包含針對用戶端所建立之部分 安全性內容的 參考。 標頭會以 401 狀態碼傳送,指出用戶端要求產生未經授權的存取錯誤。 如需摘要挑戰的詳細資訊,請參閱 摘要挑戰的內容產生摘要挑戰的內容。
  4. 用戶端會收到 HTTP 回應 1、擷取伺服器傳送的摘要挑戰,並產生摘要式挑戰回應,如下所示:
    1. 藉由呼叫 AcquireCredentialsHandle 函式或以互動方式提示使用者輸入認證,可取得使用者的認證。
    2. 挑戰和認證資訊會傳遞至 InitializeSecurityCoNtext (General) 函式,這會產生摘要挑戰回應。
  5. 用戶端會將包含挑戰回應的授權標頭傳送至伺服器, (顯示為 HTTP 要求 2) 。 如需摘要挑戰回應的詳細資訊,請參閱 摘要挑戰回應的內容產生摘要挑戰回應
  6. 伺服器會收到 HTTP 要求 2、擷取用戶端所傳送的挑戰回應,並呼叫 AcceptSecurityCoNtext (General) 函式來驗證資訊。 如需驗證程式的詳細資訊,請參閱 使用 Microsoft Digest 進行初始驗證
  7. 伺服器會將 HTTP 回應 2 傳回給用戶端,做為摘要式存取通訊協定所需的第二個和最終回應。 如果驗證成功,此回應會包含所要求的資源。

摘要挑戰回應的內容