Authorization header
Baseline 廣泛可用 *
HTTP Authorization 請求頭可用於提供憑據,以便使用者代理向伺服器進行身份驗證,從而訪問受保護的資源。
Authorization 頭通常(但並非總是)在使用者代理首次嘗試在沒有憑據的情況下請求受保護資源之後傳送。伺服器會響應 401 Unauthorized 訊息,該訊息至少包含一個 WWW-Authenticate 頭。此頭指示可用於訪問資源的身份驗證方案,以及客戶端使用它們所需的任何附加資訊。使用者代理應從提供的方案中選擇其支援的最安全的身份驗證方案,提示使用者輸入憑據,然後使用 Authorization 頭中編碼的憑據重新請求資源。
此頭將從跨域重定向中刪除。
注意:此頭是通用 HTTP 身份驗證框架的一部分。它可與多種身份驗證方案一起使用。
語法
Authorization: <auth-scheme> <authorization-parameters>
// Basic authentication
Authorization: Basic <credentials>
// Digest authentication
Authorization: Digest username=<username>,
realm="<realm>",
uri="<url>",
algorithm=<algorithm>,
nonce="<nonce>",
nc=<nc>,
cnonce="<cnonce>",
qop=<qop>,
response="<response>",
opaque="<opaque>"
指令
<auth-scheme>-
定義憑據編碼方式的身份驗證方案。一些更常見的型別(不區分大小寫)包括:
Basic、Digest、Negotiate和AWS4-HMAC-SHA256。注意:有關更多資訊/選項,請參閱HTTP 身份驗證 > 身份驗證方案
除 <auth-scheme> 之外,其餘指令特定於每個身份驗證方案。通常,您需要檢視相關規範(以下列出了一小部分方案的金鑰)。
基本認證
<credentials>-
憑據,根據指定方案編碼。
注意:有關編碼演算法的資訊,請參閱下面的示例,在
WWW-Authenticate中,在 HTTP 身份驗證中,以及在相關規範中。
摘要式身份驗證
<response>-
十六進位制數字字串,證明使用者知道密碼。該演算法對使用者名稱和密碼、領域、cnonce、qop、nc 等進行編碼。它在規範中有詳細描述。
username-
一個帶引號的字串,包含指定
realm中使用者的名稱,可以是純文字,也可以是十六進位制表示的雜湊碼。如果名稱包含欄位中不允許的字元,則可以使用username*代替(而不是“同時使用”)。 username*-
使用 RFC5987 中定義的擴充套件表示法格式化的使用者名稱。僅當名稱無法在
username中編碼且userhash設定為"false"時才應使用此選項。 uri-
有效請求 URI。有關更多資訊,請參閱規範。
realm-
所請求使用者名稱/密碼的領域(再次強調,應與所請求資源的相應
WWW-Authenticate響應中的值匹配)。 opaque-
所請求資源的相應
WWW-Authenticate響應中的值。 algorithm-
用於計算摘要的演算法。必須是所請求資源的
WWW-Authenticate響應中支援的演算法。 qop-
指示應用於訊息的保護質量的令牌。必須與所請求資源的
WWW-Authenticate響應中指定的集合中的一個值匹配。"auth":身份驗證"auth-int":帶完整性保護的身份驗證
cnonce-
客戶端提供的帶引號的僅 ASCII 字串值。客戶端和伺服器都使用此值來提供相互身份驗證,提供一些訊息完整性保護,並避免“選擇明文攻擊”。有關其他資訊,請參閱規範。
nc-
隨機數計數。客戶端傳送當前
cnonce值的請求的十六進位制計數(包括當前請求)。伺服器可以使用重複的nc值來識別重放請求。 userhash可選-
如果使用者名稱已被雜湊,則為
"true"。預設為"false"。
示例
基本認證
對於 Basic 身份驗證,憑據的構造方法是:首先將使用者名稱和密碼用冒號組合起來(例如,aladdin:opensesame),然後將結果字串編碼為 base64(例如,YWxhZGRpbjpvcGVuc2VzYW1l)。
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
另請參閱 HTTP 身份驗證,瞭解如何配置 Apache 或 Nginx 伺服器以使用 HTTP 基本身份驗證保護您的網站密碼的示例。
規範
| 規範 |
|---|
| HTTP 語義 # field.authorization |
瀏覽器相容性
載入中…