Authorization æ¨é
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2015å¹´7æ.
* Some parts of this feature may have varying levels of support.
HTTP Authorization è«æ±æ¨é å¯ä»¥ç¨ä¾æä¾æèï¼ä»¥ä¾¿ç¨æ¶ä»£çè伺æå¨é²è¡é©èï¼å¾è訪ååä¿è·çè³æºã
Authorization æ¨é é常ï¼ä½ä¸ç¸½æ¯ï¼å¨ç¨æ¶ä»£çç¬¬ä¸æ¬¡åè©¦å¨æ²ææèçæ
æ³ä¸è«æ±åä¿è·çè³æºå¾ç¼éã伺æå¨æè¿åä¸å 401 Unauthorized è¨æ¯ï¼å
¶ä¸å
å«è³å°ä¸å WWW-Authenticate æ¨é ãéåæ¨é æåºå¯ä»¥ä½¿ç¨åªäºé©èæ¹æ¡ä¾è¨ªåè³æºä»¥åç¨æ¶ç«¯ä½¿ç¨éäºæ¹æ¡æéçä»»ä½éå è¨æ¯ãç¨æ¶ä»£çæå¾æä¾çæ¹æ¡ä¸é¸æå
¶æ¯æçæå®å
¨çé©èæ¹æ¡ï¼æç¤ºç¨æ¶è¼¸å
¥æèï¼ç¶å¾éæ°è«æ±è³æºï¼å¨ Authorization æ¨é ä¸å
å«ç·¨ç¢¼çæèï¼ã
éåæ¨é æå¨è·¨æºéå®åä¸è¢«åªé¤ã
åè¨»ï¼æ¤æ¨é æ¯éç¨ HTTP é©èæ¡æ¶çä¸é¨åãå®å¯ä»¥èå¤ç¨®é©èæ¹æ¡ä¸èµ·ä½¿ç¨ã
| æ¨é é¡å | è«æ±æ¨é |
|---|---|
| ç¦æ¢çè«æ±æ¨é | å¦ |
èªæ³
Authorization: <auth-scheme> <authorization-parameters>
// åºæ¬é©è
Authorization: Basic <credentials>
// æè¦é©è
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>-
ä¸ä¸²åå é²ä½æ¸åï¼ç¨æ¼èæç¨æ¶ç¥éå¯ç¢¼ã該æ¼ç®æ³ç·¨ç¢¼ç¨æ¶ååå¯ç¢¼ãrealmã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
è¦åï¼Base64 編碼å¯ä»¥å¾å®¹æå°åè½ä»¥ç²ååå§å稱åå¯ç¢¼ï¼å æ¤ Basic é©è䏿ä¾ä»»ä½å¯ç¢¼å¸å®å
¨æ§ãä½¿ç¨ HTTPS æ¯è¢«æ¨è¦çï¼å°¤å
¶æ¯å¨ä½¿ç¨ Basic é©èæã
åé± HTTP é©èï¼çè§£å¦ä½é ç½® Apache æ Nginx 伺æå¨ä»¥ä½¿ç¨ HTTP åºæ¬é©èä¾ä¿è·ä½ çç¶²ç«ã
è¦ç¯
| Specification |
|---|
| HTTP Semantics > # field.authorization > |