WWW-Authenticate ãããã¼
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
HTTP ã® WWW-Authenticate ã¬ã¹ãã³ã¹ãããã¼ã¯ããªã½ã¼ã¹ã¸ã®ã¢ã¯ã»ã¹æ¨©ãå¾ãããã«ä½¿ããã HTTP èªè¨¼ã¡ã½ãã (ã¾ãã¯ãã£ã¬ã³ã¸) ãå®ç¾©ãã¾ãã
ãã®ãããã¼ã¯ãä¸è¬ç㪠HTTP èªè¨¼ã®æ çµã¿ã®ä¸é¨ã§ãããå¤ãã®èªè¨¼æ¹å¼ã§ä½¿ç¨ãããã¨ãã§ãã¾ãã ããããã®ãã£ã¬ã³ã¸ã«ã¯ããµã¼ãã¼ã対å¿ãã¦ããæ¹å¼ã¨ããã®æ¹å¼åã«å®ç¾©ããã¦ãã追å 弿°ãè¨è¼ããã¦ãã¾ãã
HTTP èªè¨¼ã使ç¨ãããµã¼ãã¼ã¯ãä¿è·ããããªã½ã¼ã¹ã¸ã®ãªã¯ã¨ã¹ãã«å¯¾ã㦠401 Unauthorized ã¬ã¹ãã³ã¹ãè¿ãã¾ãã
ãã®ã¬ã¹ãã³ã¹ã«ã¯ã1 ã¤ä»¥ä¸ã® WWW-Authenticate ãããã¼ã¨ 1 ã¤ä»¥ä¸ã®ãã£ã¬ã³ã¸ãå«ã¾ãã¦ããªããã°ãªããããªã½ã¼ã¹ã¸ã®ã¢ã¯ã»ã¹ã«ã©ã®ãããªèªè¨¼æ¹å¼ã使ç¨ã§ãããï¼ããã³ããããã®æ¹å¼ãå¿
è¦ã¨ãã追å ãã¼ã¿ï¼ã示ãã¾ãã
1 ã¤ã® WWW-Authenticate ãããã¼ã«ã¯è¤æ°ã®ãã£ã¬ã³ã¸ã許ããã1 ã¤ã®ã¬ã¹ãã³ã¹ã«ã¯è¤æ°ã® WWW-Authenticate ãããã¼ã許ããã¾ãã
ãµã¼ãã¼ã¯ãä»ã®ã¬ã¹ãã³ã¹ã¡ãã»ã¼ã¸ã« WWW-Authenticate ãããã¼ãå«ãããã¨ã§ãè³æ ¼æ
å ±ãæä¾ãããã¨ãã¬ã¹ãã³ã¹ã«å½±é¿ãä¸ããå¯è½æ§ããããã¨ã示ããã¨ãã§ãã¾ãã
WWW-Authenticate ãããã¼ãåãåã£ãå¾ãã¯ã©ã¤ã¢ã³ãã¯é常ãã¦ã¼ã¶ã¼ã«è³æ ¼æ
å ±ãæ±ããããã³ããã表示ãããªã½ã¼ã¹ãåãªã¯ã¨ã¹ããã¾ãã
ãã®æ°ãããªã¯ã¨ã¹ã㯠Authorization ãããã¼ã使ç¨ãã¦ã鏿ãããããã£ã¬ã³ã¸ãã®èªè¨¼æ¹æ³ã«å¿ãã¦é©åã«ã¨ã³ã³ã¼ããããè³æ ¼æ
å ±ããµã¼ãã¼ã«æä¾ãã¾ãã
ã¯ã©ã¤ã¢ã³ãã¯ã対å¿ãã¦ãããã£ã¬ã³ã¸ã®ãã¡ãæãå®å
¨ãªãã®ã鏿ãããã¨ãæå¾
ããã¾ãï¼ãªãããæãå®å
¨ãªãæ¹æ³ã«ã¤ãã¦ã¯è°è«ã®ä½å°ãããå ´åãããã¾ãï¼ã
| ãããã¼ç¨®å¥ | ã¬ã¹ãã³ã¹ãããã¼ |
|---|---|
| ç¦æ¢ãªã¯ã¨ã¹ããããã¼ | ããã |
æ§æ
WWW-Authenticate: <challenge>
<challenge> ã <auth-scheme> ã§æ§æããããã®å¾ã«ãªãã·ã§ã³ã® <token68> ã¾ãã¯ã«ã³ãã§åºåããã <auth-params> ã®ãªã¹ããç¶ãå ´åã
challenge = <auth-scheme> <auth-param>, â¦, <auth-paramN> challenge = <auth-scheme> <token68>
ä¾ãã°ã
WWW-Authenticate: <auth-scheme>
WWW-Authenticate: <auth-scheme> token68
WWW-Authenticate: <auth-scheme> auth-param1=param-token1
WWW-Authenticate: <auth-scheme> auth-param1=param-token1, â¦, auth-paramN=param-tokenN
token68 ã¾ãã¯èªè¨¼å¼æ°ã®æç¡ã¯ã鏿ãã <auth-scheme> ã«ãã£ã¦ç°ãªãã¾ãã
ä¾ãã°ã Basic èªè¨¼ã§ã¯ <realm> ãè¦æ±ããããªãã·ã§ã³ã§ charset ãã¼ã使ç¨ã§ãã¾ããã token68 ã¯å¯¾å¿ãã¦ãã¾ããã
WWW-Authenticate: Basic realm="Dev", charset="UTF-8"
è¤æ°ã®ãã£ã¬ã³ã¸ããã«ã³ãã§åºåã£ããªã¹ãã§éä¿¡ãããã¨ãã§ãã¾ãã
WWW-Authenticate: <challenge>, â¦, <challengeN>
è¤æ°ã®ãããã¼ãåä¸ã®ã¬ã¹ãã³ã¹ã§éä¿¡ãããã¨ãã§ãã¾ãã
WWW-Authenticate: <challenge>
WWW-Authenticate: <challengeN>
ãã£ã¬ã¯ãã£ã
<auth-scheme>-
使ç¨ãããèªè¨¼æ¹å¼ã示ãã大æåå°æåã®åºå¥ã®ãªããã¼ã¯ã³ã§ãã æåãªãã®ã¨ãã¦ã¯ã
BasicãDigestãNegotiateãAWS4-HMAC-SHA256ãªã©ãããã¾ãã IANA ã¯èªè¨¼æ¹å¼ã®ãªã¹ãã管çãã¦ãã¾ããããã¹ããµã¼ãã¹ã«ãã£ã¦æä¾ããã¦ããæ¹å¼ã¯ãã以å¤ã«ãããã¾ãã <auth-param>çç¥å¯-
<auth-scheme>ã«ãã£ã¦æ±ºã¾ãå½¢ã®èªè¨¼å¼æ°ã§ãã<realm>ã¯ãå¤ãã®èªè¨¼æ¹å¼ã§å ±éã®èªè¨¼å¼æ°ã§ãããããä¸è¨ã§èª¬æãã¾ãã<realm>çç¥å¯-
æåå
realmã«=ã¨ãä¿è·é åãè¨è¿°ããå¼ç¨ç¬¦ã§å²ã¾ããæååãç¶ãã¾ããä¾ãã°ãrealm="staging environment"ã®ããã«è¨è¿°ãã¾ãã realm ãæå®ããã¨ããµã¼ãã¼ã¯ä¿è·ããé åãåºåãããã¨ãã§ãã¾ã ï¼ãã®ãããªåºåã許å¯ããæ¹å¼ã«å¯¾å¿ãã¦ããå ´åï¼ã ä¸é¨ã®ã¯ã©ã¤ã¢ã³ãã¯ããã®å¤ãã¦ã¼ã¶ã¼ã«è¡¨ç¤ºãã¦ãå ·ä½çãªè³æ ¼æ å ±ãè¦æ±ããã¦ãããã¨ãç¥ããã¾ãããã ããã»ã¨ãã©ã®ãã©ã¦ã¶ã¼ã¯ããã£ãã·ã³ã°å¯¾çã®ããã«ãã®è¡¨ç¤ºã廿¢ãã¦ãã¾ãã ãã®å¤ã確å®ã«å¯¾å¿ãã¦ããæåã»ããã¯ãus-asciiã ãã§ãã realm ãæå®ããã¦ããªãå ´åãã¯ã©ã¤ã¢ã³ãã¯å¤ãã®å ´åãæ¸å¼åããããã¹ãåã表示ãã¾ãã
<token68>çç¥å¯-
ä¸é¨ã®æ¹å¼ã§å½¹ç«ã¤å¯è½æ§ã®ãããã¼ã¯ã³ã§ãã ãã®ãã¼ã¯ã³ã§ã¯ã 66 種é¡ã®äºç´ããã¦ããªã URI æåã«å ãã¦ãããã¤ãã®æåã使ç¨ã§ãã¾ãã base64ãbase64urlãbase32ãbase16 ï¼16 鲿°ï¼ã®åã¨ã³ã³ã¼ãæ¹å¼ã®ããããããããã£ã³ã°ã®æç¡ã«ãããããããã¯ã¤ãã¹ãã¼ã¹ãé¤ãã¦ä¿æãããã¨ãã§ãã¾ãã å¤ãèªè¨¼æ¹å¼ã¨ã®æ´åæ§ãä¿ã¤ããã auth-param ãªã¹ãã®ä»£æ¿ã¨ã㦠token68 ã対å¿ãã¦ãã¾ãã
é常ãããããã® <auth-scheme> ã«å¿
è¦ãªèªè¨¼å¼æ°ã«ã¤ãã¦ã¯ãé¢é£ãã仿§ã確èªããå¿
è¦ãããã¾ãã
次ã®ç¯ã§ã¯ãããã¤ãã®ä¸è¬çãªèªè¨¼æ¹å¼ã®ãã¼ã¯ã³ããã³èªè¨¼å¼æ°ã«ã¤ãã¦èª¬æãã¾ãã
Basic èªè¨¼ã®ãã£ã¬ã¯ãã£ã
<realm>-
<realm>ã§åè¿°ã®éãã§ãã ãªãã realm ã¯Basicèªè¨¼ã§ã¯å¿ é ã§ãã charset="UTF-8"çç¥å¯-
ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ããéä¿¡ããã¨ãã®ãµã¼ãã¼ãåªå ããã¨ã³ã³ã¼ãæ¹å¼ãã¯ã©ã¤ã¢ã³ãã«ä¼ãã¾ãã æåå
UTF-8ã ãã許å¯ããã¦ããã大æåå°æåã®åºå¥ã¯ããã¾ããã ãã㯠realm æååã®ã¨ã³ã³ã¼ãæ¹å¼ã¨ã¯é¢ä¿ãããã¾ããã
Digest èªè¨¼ã®ãã£ã¬ã¯ãã£ã
<realm>çç¥å¯-
<realm>ã§åè¿°ã®éãã§ãããã©ã®ã¦ã¼ã¶ã¼å/ãã¹ã¯ã¼ãã使ç¨ãããã示ãã¾ãã å°ãªãã¨ããã¹ãåãå«ããå¿ è¦ãããã¾ãããã¢ã¯ã»ã¹æ¨©ãæã¤ã¦ã¼ã¶ã¼ãã°ã«ã¼ãã示ãå ´åãããã¾ãã domainçç¥å¯-
å¼ç¨ç¬¦ãä»ãã空ç½ã§åºåã£ã URL æ¥é è¾ã®ãªã¹ãã§ããã®è³æ ¼æ å ±ã使ç¨ãããã¹ã¦ã®å ´æãå®ç¾©ãã¾ãã ãã®ãã¼ãæå®ããã¦ããªãå ´åããã®è³æ ¼æ å ±ã¯ã¦ã§ãã«ã¼ã以ä¸ã®ã©ãã§ã使ç¨ã§ãã¾ãã
nonce-
ãµã¼ãã¼ãæå®ããå¼ç¨ç¬¦ã®ä»ããæååã§ãç¹å®ã®è³æ ¼æ å ±ãæå¹ã¨ã¿ãªãããæéãå¶å¾¡ããããã«ãµã¼ãã¼ã使ç¨ã§ãã¾ãã ããã¯ã401 ã¬ã¹ãã³ã¹ãè¡ããããã³ã«ä¸æã«çæãããªããã°ãªãããããã«é »ç¹ã«åçæãããå¯è½æ§ãããã¾ã (ãã¨ãã°ããã¤ã¸ã§ã¹ãã 1 åã ã使ç¨ã§ããããã«ãããªã©)ã 仿§æ¸ã«ã¯ããã®å¤ãçæããããã«å©ç¨å¯è½ãªã¢ã«ã´ãªãºã ã«é¢ããå©è¨ãå«ã¾ãã¦ãã¾ãã nonce ã®å¤ã¯ãã¯ã©ã¤ã¢ã³ãã«ã¯ä¸éæã§ãã
opaque-
ãµã¼ãã¼ãæå®ããå¼ç¨ç¬¦ã®ä»ããæååã§ã
Authorizationã§å¤æ´ãããã«è¿ãããã¹ããã®ã§ãã ããã¯ã¯ã©ã¤ã¢ã³ãã«ã¯ä¸éæã§ãããµã¼ãã¼ã¯ Base64 ã¾ã㯠16 鲿°ã®ãã¼ã¿ãå«ãããã¨ãæ¨å¥¨ãã¾ãã staleçç¥å¯-
大æåå°æåãåºå¥ããªããã©ã°ã§ãã¯ã©ã¤ã¢ã³ãããã®ååã®ãªã¯ã¨ã¹ããã使ç¨ããã
nonceãå¤ããã (stale) ããã«æå¦ããããã¨ã示ãã¾ãã ãããtrueã§ããã°ãæ°ããnonceã§æå·åãããåãã¦ã¼ã¶ã¼å/ãã¹ã¯ã¼ãã使ã£ã¦ãªã¯ã¨ã¹ããå試è¡ã§ãã¾ãã ãã以å¤ã®å¤ã®å ´åã¯ãã¦ã¼ã¶ã¼å/ãã¹ã¯ã¼ããç¡å¹ãªã®ã§ãã¦ã¼ã¶ã¼ã«å度ãªã¯ã¨ã¹ãããå¿ è¦ãããã¾ãã algorithmçç¥å¯-
ãã¤ã¸ã§ã¹ãã®çæã«ä½¿ç¨ããã¢ã«ã´ãªãºã ã§ãã ã»ãã·ã§ã³ä»¥å¤ã§ã®æå¹ãªå¤ã¯
MD5(æå®ããã¦ããªãå ´åã®æ¢å®å¤)ãSHA-256ãSHA-512ã§ãã ã»ãã·ã§ã³ã§æå¹ãªå¤ã¯MD5-sessãSHA-256-sessãSHA-512-sessã§ãã qop-
å¼ç¨ç¬¦ã®ä»ããæååã§ããµã¼ãã¼ã対å¿ãã¦ããä¿è·ã®å質ã示ãã¾ããããã¯å¿ ãæå®ããªããã°ãªãããèªèã§ããªããªãã·ã§ã³ã¯ç¡è¦ããã¾ãã
"auth": èªè¨¼"auth-int": å®å ¨æ§ä¿è·ä»ãã®èªè¨¼
charset="UTF-8"çç¥å¯-
ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ããéä¿¡ããéã«ããµã¼ãã¼ãåªå ããã¨ã³ã³ã¼ãæ¹å¼ãã¯ã©ã¤ã¢ã³ãã«ä¼ãã¾ãã 大æåå°æåãåºå¥ããªãæåå "UTF-8" ã®ã¿ã許å¯ããã¾ãã
userhashçç¥å¯-
ãµã¼ãã¼ã
"true"ãæå®ãããã¨ã§ãã¦ã¼ã¶ã¼åã®ããã·ã¥åã«å¯¾å¿ãã¦ãããã¨ã示ããã¨ãã§ãã¾ãï¼æ¢å®å¤ã¯"false"ã§ãï¼ã
HTTP Origin-Bound Authentication (HOBA)
<challenge>-
<len>:<value>ã®å½¢å¼ã®ãã¢ã®ã»ãããé£çµãããã®ã§ãã¯ã©ã¤ã¢ã³ãã«æ¸¡ããã¾ãã ãã£ã¬ã³ã¸ã¯ããã³ã¹ãã¢ã«ã´ãªãºã ãçºä¿¡å ãrealmããã¼èå¥åãããã³ãã£ã¬ã³ã¸ã§æ§æããã¾ãã <max-age>-
ãã®ãã£ã¬ã³ã¸ã«å¯¾ããã¬ã¹ãã³ã¹ãåãå ¥ãããã¨ãã§ããã HTTP ã¬ã¹ãã³ã¹ãéä¿¡ãããæç¹ããã®ç§æ°ã§ãã
<realm>çç¥å¯-
åè¿°ã®ãã£ã¬ã¯ãã£ãã®ç¯ã«ããéãã§ãã
ä¾
>è¤æ°ã®èªè¨¼ãã£ã¬ã³ã¸ã®çºè¡
åä¸ã®ã¬ã¹ãã³ã¹ãããã¼ã§è¤æ°ã®ãã£ã¬ã³ã¸ãæå®ãããã¨ãã§ãã¾ãã
HTTP/1.1 401 Unauthorized
WWW-Authenticate: challenge1, â¦, challengeN
è¤æ°ã®ãã£ã¬ã³ã¸ããåãã¬ã¹ãã³ã¹å
ã®å¥åã® WWW-Authenticate ãããã¼ã§éä¿¡ãããã¨ãã§ãã¾ãã
HTTP/1.1 401 Unauthorized
WWW-Authenticate: challenge1
WWW-Authenticate: challengeN
Basic èªè¨¼
é常ãWWW-Authenticate ãããã¼ãå«ããµã¼ãã¼ã®ã¬ã¹ãã³ã¹ã¯ä»¥ä¸ã®ãããªãã®ã§ãã
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Basic realm="Staging server", charset="UTF-8"
ãã®ãããã¼ãåãåã£ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯ãã¾ãã¦ã¼ã¶ã¼ã«ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ãã®å
¥åãæ±ãããããããªã½ã¼ã¹ãåãªã¯ã¨ã¹ããã¾ãããã®ã¨ãã Authorization ãããã¼ã«ã¨ã³ã³ã¼ããããè³æ ¼æ
å ±ãå«ãã¾ãã
Authorization ãããã¼ã¯æ¬¡ã®ããã«ãªãã¾ãã
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
Basic èªè¨¼ã§ã¯ãè³æ ¼æ
å ±ã¯ã¾ããã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ããã³ãã³ã§çµåã (aladdin:opensesame)ããã®çµæã®æååã base64 ã§ã¨ã³ã³ã¼ããããã¨ã§æ§ç¯ãã¾ãï¼YWxhZGRpbjpvcGVuc2VzYW1lï¼ã
ã¡ã¢: Apache ã nginx ãµã¼ãã¼ã§ HTTP ã® Basic èªè¨¼ã使ç¨ãã¦ãµã¤ããä¿è·ããæ¹æ³ã®ä¾ã«ã¤ãã¦ã¯ã HTTP èªè¨¼ãåç §ãã¦ãã ããã
SHA-256 㨠MD5 ã使ç¨ãã Digest èªè¨¼
ã¡ã¢:
ãã®ä¾ã¯ãRFC 7616 "HTTP Digest Access Authentication" ããå¼ç¨ãã¦ãã¾ã (ãã®ä»æ§æ¸ã®ä»ã®ä¾ã§ã¯ãSHA-512ãcharsetãuserhash ã®ä½¿ç¨æ¹æ³ã示ãã¦ãã¾ã)ã
ã¯ã©ã¤ã¢ã³ãã¯ãDigest èªè¨¼ã§ä¿è·ããã URI http://www.example.org/dir/index.html ã®ææ¸ã«ã¢ã¯ã»ã¹ãããã¨ãã¦ãã¾ãã
ãã®ææ¸ã®ã¦ã¼ã¶ã¼å㯠"Mufasa" ã§ããã¹ã¯ã¼ã㯠"Circle of Life" ã§ã (ååèªã®éã«ã¹ãã¼ã¹ããããã¨ã«æ³¨æãã¦ãã ãã)ã
ã¯ã©ã¤ã¢ã³ããåãã¦ææ¸ããªã¯ã¨ã¹ãããã¨ããAuthorization ãããã¼ãã£ã¼ã«ãã¯éä¿¡ããã¾ããã
ããã§ãµã¼ãã¼ã¯ã対å¿ãã¦ããåãã¤ã¸ã§ã¹ãã¢ã«ã´ãªãºã ã®ãã£ã¬ã³ã¸ãå«ã HTTP 401 ã¡ãã»ã¼ã¸ã§ã¬ã¹ãã³ã¹ãã¾ãï¼SHA256ãMD5 ã®é ï¼ã
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest
realm="http-auth@example.org",
qop="auth, auth-int",
algorithm=SHA-256,
nonce="7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v",
opaque="FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS"
WWW-Authenticate: Digest
realm="http-auth@example.org",
qop="auth, auth-int",
algorithm=MD5,
nonce="7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v",
opaque="FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS"
ã¯ã©ã¤ã¢ã³ãã¯ã¦ã¼ã¶ã¼åã¨ãã¹ã¯ã¼ãã®å
¥åãã¦ã¼ã¶ã¼ã«ä¿ãããããã Authorization ãããã¼ãã£ã¼ã«ãã«è³æ ¼æ
å ±ãã¨ã³ã³ã¼ããã¦å
¥ãã¾ãã
ã¯ã©ã¤ã¢ã³ãã MD5 ãã¤ã¸ã§ã¹ãã鏿ããå ´åãAuthorization ãããã¼ãã£ã¼ã«ãã¯æ¬¡ã®ããã«ãªãã¾ãã
Authorization: Digest username="Mufasa",
realm="http-auth@example.org",
uri="/dir/index.html",
algorithm=MD5,
nonce="7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v",
nc=00000001,
cnonce="f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ",
qop=auth,
response="8ca523f5e9506fed4657c9700eebdbec",
opaque="FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS"
ã¯ã©ã¤ã¢ã³ãã SHA-256 ãã¤ã¸ã§ã¹ãã鏿ããå ´åã¯ã Authorization ãããã¼ãã£ã¼ã«ãã¯æ¬¡ã®ããã«ãªãã¾ãã
Authorization: Digest username="Mufasa",
realm="http-auth@example.org",
uri="/dir/index.html",
algorithm=SHA-256,
nonce="7ypf/xlj9XXwfDPEoM4URrv/xwf94BcCAzFZH4GiTo0v",
nc=00000001,
cnonce="f2/wE4q74E6zIJEtWaHKaf5wv/H5QzzpXusqGemxURZJ",
qop=auth,
response="753927fa0e85d155564e2e272a28d1802ca10daf449
6794697cf8db5856cb6c1",
opaque="FQhe/qaU925kfnzjCev0ciny7QMkPqMAFRtzCUYo5tdS"
HOBA èªè¨¼
HOBA èªè¨¼ã«å¯¾å¿ãã¦ãããµã¼ãã¼ã¯ã次ã®ãã㪠WWW-Authenticate ã¬ã¹ãã³ã¹ãããã¼ãå
¥ãããã¨ãã§ãã¾ãã
HTTP/1.1 401 Unauthorized
WWW-Authenticate: HOBA max-age="180", challenge="16:MTEyMzEyMzEyMw==1:028:https://www.example.com:8080:3:MTI48:NjgxNDdjOTctNDYxYi00MzEwLWJlOWItNGM3MDcyMzdhYjUz"
ç½²åããã¦ãããã® blob ãã£ã¬ã³ã¸ã®æ§æè¦ç´ ã¯ã www.example.com ã¯ãã¼ã 8080 ã使ç¨ãããã³ã¹ã¯ 1123123123ãç½²åç¨ã®ã¢ã«ã´ãªãºã 㯠RSA-SHA256ããã¼èå¥å㯠123ãããã¦æå¾ã«ãã£ã¬ã³ã¸ã¯ 68147c97-461b-4310-be9b-4c707237ab53 ã§ãã
ã¯ã©ã¤ã¢ã³ãã¯ããã®ãããã¼ãåä¿¡ãããã£ã¬ã³ã¸ãæ½åºããRSA-SHA256 ã使ç¨ãã¦ããã®ä¾ã§ã¯ãã¼èå¥å 123 ã«å¯¾å¿ããç§å¯éµã§ç½²åãããã®çµæããããã§åºåã£ããã¼ IDããã£ã¬ã³ã¸ããã³ã¹ãããã³ç½²åã¨ã㦠Authorization ãããã¼ã§éä¿¡ãã¾ãã
Authorization: 123.16:MTEyMzEyMzEyMw==1:028:https://www.example.com:8080:3:MTI48:NjgxNDdjOTctNDYxYi00MzEwLWJlOWItNGM3MDcyMzdhYjUz.1123123123.<signature-of-challenge>
仿§æ¸
| 仿§æ¸ |
|---|
| HTTP Semantics > # field.www-authenticate > |