Changeset 2564 for draft-ietf-httpbis/orig/rfc2617.xml
- Timestamp:
- 20/01/14 07:43:53 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/orig/rfc2617.xml
r1500 r2564 169 169 scheme. 170 170 </t> 171 <figure><artwork type="abnf2616"><iref item="auth-scheme" primary="true" 172 /> auth-scheme = token 173 <iref item="auth-param" primary="true" 174 /> auth-param = token "=" ( token | quoted-string ) 171 <figure><artwork type="abnf2616"><iref item="auth-scheme" primary="true"/><iref item="auth-param" primary="true"/> 172 auth-scheme = token 173 auth-param = token "=" ( token | quoted-string ) 175 174 </artwork></figure> 176 175 <t> … … 184 183 applicable to the proxy for the requested resource. 185 184 </t> 186 <figure><artwork type="abnf2616"><iref item="challenge" primary="true" 187 />challenge = auth-scheme 1*SP 1#auth-param185 <figure><artwork type="abnf2616"><iref item="challenge" primary="true"/> 186 challenge = auth-scheme 1*SP 1#auth-param 188 187 </artwork></figure> 189 188 <t> … … 198 197 schemes: 199 198 </t> 200 <figure><artwork type="abnf2616"><iref item="realm" primary="true" 201 /> realm = "realm" "=" realm-value 202 <iref item="realm-value" primary="true" 203 /> realm-value = quoted-string 199 <figure><artwork type="abnf2616"><iref item="realm" primary="true"/><iref item="realm-value" primary="true"/> 200 realm = "realm" "=" realm-value 201 realm-value = quoted-string 204 202 </artwork></figure> 205 203 <t> … … 220 218 A user agent that wishes to authenticate itself with an origin 221 219 server--usually, but not necessarily, after receiving a 401 222 (Unauthorized)-- MAYdo so by including an Authorization header field220 (Unauthorized)--&MAY; do so by including an Authorization header field 223 221 with the request. A client that wishes to authenticate itself with a 224 222 proxy--usually, but not necessarily, after receiving a 407 (Proxy 225 Authentication Required)-- MAYdo so by including a Proxy-Authorization223 Authentication Required)--&MAY; do so by including a Proxy-Authorization 226 224 header field with the request. Both the Authorization 227 225 field value and the Proxy-Authorization field value consist of … … 232 230 challenge. 233 231 </t> 234 <figure><artwork type="abnf2616"><iref item="credentials" primary="true" 235 />credentials = auth-scheme #auth-param232 <figure><artwork type="abnf2616"><iref item="credentials" primary="true"/> 233 credentials = auth-scheme #auth-param 236 234 </artwork></figure> 237 235 <t> … … 294 292 For Basic, the framework above is utilized as follows: 295 293 </t> 296 <figure><artwork type="abnf2616"><iref item="challenge" 297 /> challenge = "Basic" realm 298 <iref item="credentials" 299 /> credentials = "Basic" basic-credentials 294 <figure><artwork type="abnf2616"><iref item="challenge"/><iref item="credentials"/> 295 challenge = "Basic" realm 296 credentials = "Basic" basic-credentials 300 297 </artwork></figure> 301 298 <t> … … 305 302 </t> 306 303 <figure><artwork type="example"> 307 304 WWW-Authenticate: Basic realm="WallyWorld" 308 305 </artwork></figure> 309 306 <t> … … 318 315 </t> 319 316 <figure><artwork type="abnf2616"><iref item="basic-credentials" primary="true" 320 /> basic-credentials = base64-user-pass321 <iref item="base64-user-pass" primary="true"322 /> base64-user-pass = <base64 [4] encoding of user-pass,323 except not limited to 76 char/line>324 <iref item="user-pass" primary="true" 325 /> user-pass = userid ":" password 326 <iref item="userid" primary="true" 327 /> userid = *<TEXT excluding ":"> 328 <iref item="password" primary="true" 329 />password = *TEXT317 /><iref item="base64-user-pass" primary="true" 318 /><iref item="user-pass" primary="true" 319 /><iref item="userid" primary="true" 320 /><iref item="password" primary="true"/> 321 basic-credentials = base64-user-pass 322 base64-user-pass = <base64 <xref target="RFC2045"/> encoding of user-pass, 323 except not limited to 76 char/line> 324 user-pass = userid ":" password 325 userid = *<TEXT excluding ":"> 326 password = *TEXT 330 327 </artwork></figure> 331 328 <t> … … 337 334 </t> 338 335 <figure><artwork type="example"> 339 336 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 340 337 </artwork></figure> 341 338 <t> … … 445 442 utilized as follows: 446 443 </t> 447 <figure><artwork type="abnf2616"> 448 <iref item="challenge" 449 /> challenge = "Digest" digest-challenge 450 451 <iref item="digest-challenge" primary="true" 452 /> digest-challenge = 1#( realm | [ domain ] | nonce | 453 [ opaque ] |[ stale ] | [ algorithm ] | 454 [ qop-options ] | [auth-param] ) 455 456 457 <iref item="domain" primary="true" 458 /> domain = "domain" "=" <"> URI ( 1*SP URI ) <"> 459 <iref item="URI" primary="true" 460 /> URI = absoluteURI | abs_path 461 <iref item="nonce" primary="true" 462 /> nonce = "nonce" "=" nonce-value 463 <iref item="nonce-value" primary="true" 464 /> nonce-value = quoted-string 465 <iref item="opaque" primary="true" 466 /> opaque = "opaque" "=" quoted-string 467 <iref item="stale" primary="true" 468 /> stale = "stale" "=" ( "true" | "false" ) 469 <iref item="algorithm" primary="true" 470 /> algorithm = "algorithm" "=" ( "MD5" | "MD5-sess" | 471 token ) 472 <iref item="qop-options" primary="true" 473 /> qop-options = "qop" "=" <"> 1#qop-value <"> 474 <iref item="qop-value" primary="true" 475 /> qop-value = "auth" | "auth-int" | token 444 <figure><artwork type="abnf2616"><iref item="challenge"/><iref item="digest-challenge" primary="true" 445 /><iref item="domain" primary="true" 446 /><iref item="URI" primary="true" 447 /><iref item="nonce" primary="true" 448 /><iref item="nonce-value" primary="true" 449 /><iref item="opaque" primary="true" 450 /><iref item="stale" primary="true" 451 /><iref item="algorithm" primary="true" 452 /><iref item="qop-options" primary="true" 453 /><iref item="qop-value" primary="true"/> 454 challenge = "Digest" digest-challenge 455 456 digest-challenge = 1#( realm | [ domain ] | nonce | 457 [ opaque ] |[ stale ] | [ algorithm ] | 458 [ qop-options ] | [auth-param] ) 459 460 461 domain = "domain" "=" <"> URI ( 1*SP URI ) <"> 462 URI = absoluteURI | abs_path 463 nonce = "nonce" "=" nonce-value 464 nonce-value = quoted-string 465 opaque = "opaque" "=" quoted-string 466 stale = "stale" "=" ( "true" | "false" ) 467 algorithm = "algorithm" "=" ( "MD5" | "MD5-sess" | 468 token ) 469 qop-options = "qop" "=" <"> 1#qop-value <"> 470 qop-value = "auth" | "auth-int" | token 476 471 </artwork></figure> 477 472 <t> … … 522 517 example, be constructed as the base 64 encoding of 523 518 </t> 524 <t><figure><artwork type="code" >525 526 519 <t><figure><artwork type="code" x:indent-with=" "> 520 time-stamp H(time-stamp ":" ETag ":" private-key) 521 </artwork></figure></t> 527 522 <t> 528 523 where time-stamp is a server-generated time or other non-repeating … … 596 591 For the "MD5" and "MD5-sess" algorithms 597 592 </t> 598 <t><figure><artwork type="code" >599 600 593 <t><figure><artwork type="code" x:indent-with=" "> 594 H(data) = MD5(data) 595 </artwork></figure></t> 601 596 <t> 602 597 and 603 598 </t> 604 <t><figure><artwork type="code" >605 606 599 <t><figure><artwork type="code" x:indent-with=" "> 600 KD(secret, data) = H(concat(secret, ":", data)) 601 </artwork></figure></t> 607 602 <t> 608 603 i.e., the digest is the MD5 of the secret concatenated with a colon … … 644 639 utilized as follows. 645 640 </t> 646 <figure><artwork type="abnf2616"> 647 <iref item="credentials" 648 /> credentials = "Digest" digest-response 649 <iref item="digest-response" primary="true" 650 /> digest-response = 1#( username | realm | nonce | digest-uri 651 | response | [ algorithm ] | [cnonce] | 652 [opaque] | [message-qop] | 653 [nonce-count] | [auth-param] ) 654 655 <iref item="username" primary="true" 656 /> username = "username" "=" username-value 657 <iref item="username-value" primary="true" 658 /> username-value = quoted-string 659 <iref item="digest-uri" primary="true" 660 /> digest-uri = "uri" "=" digest-uri-value 661 <iref item="digest-uri-value" primary="true" 662 /> digest-uri-value = request-uri ; As specified by HTTP/1.1 663 <iref item="message-qop" primary="true" 664 /> message-qop = "qop" "=" qop-value 665 <iref item="cnonce" primary="true" 666 /> cnonce = "cnonce" "=" cnonce-value 667 <iref item="cnonce-value" primary="true" 668 /> cnonce-value = nonce-value 669 <iref item="nonce-count" primary="true" 670 /> nonce-count = "nc" "=" nc-value 671 <iref item="nc-value" primary="true" 672 /> nc-value = 8LHEX 673 <iref item="response" primary="true" 674 /> response = "response" "=" request-digest 675 <iref item="request-digest" primary="true" 676 /> request-digest = <"> 32LHEX <"> 677 <iref item="LHEX" primary="true" 678 /> LHEX = "0" | "1" | "2" | "3" | 679 "4" | "5" | "6" | "7" | 680 "8" | "9" | "a" | "b" | 681 "c" | "d" | "e" | "f" 641 <figure><artwork type="abnf2616"><iref item="credentials" 642 /><iref item="digest-response" primary="true" 643 /><iref item="username" primary="true" 644 /><iref item="username-value" primary="true" 645 /><iref item="digest-uri" primary="true" 646 /><iref item="digest-uri-value" primary="true" 647 /><iref item="message-qop" primary="true" 648 /><iref item="cnonce" primary="true" 649 /><iref item="cnonce-value" primary="true" 650 /><iref item="nonce-count" primary="true" 651 /><iref item="nc-value" primary="true" 652 /><iref item="response" primary="true" 653 /><iref item="request-digest" primary="true" 654 /><iref item="LHEX" primary="true"/> 655 credentials = "Digest" digest-response 656 digest-response = 1#( username | realm | nonce | digest-uri 657 | response | [ algorithm ] | [cnonce] | 658 [opaque] | [message-qop] | 659 [nonce-count] | [auth-param] ) 660 661 username = "username" "=" username-value 662 username-value = quoted-string 663 digest-uri = "uri" "=" digest-uri-value 664 digest-uri-value = request-uri ; As specified by HTTP/1.1 665 message-qop = "qop" "=" qop-value 666 cnonce = "cnonce" "=" cnonce-value 667 cnonce-value = nonce-value 668 nonce-count = "nc" "=" nc-value 669 nc-value = 8LHEX 670 response = "response" "=" request-digest 671 request-digest = <"> 32LHEX <"> 672 LHEX = "0" | "1" | "2" | "3" | 673 "4" | "5" | "6" | "7" | 674 "8" | "9" | "a" | "b" | 675 "c" | "d" | "e" | "f" 682 676 </artwork></figure> 683 677 <t> … … 774 768 </t> 775 769 <figure><artwork type="abnf2616"> 776 777 778 779 780 781 770 request-digest = <"> < KD ( H(A1), unq(nonce-value) 771 ":" nc-value 772 ":" unq(cnonce-value) 773 ":" unq(qop-value) 774 ":" H(A2) 775 ) <"> 782 776 </artwork></figure> 783 777 <t> … … 786 780 </t> 787 781 <figure><artwork type="abnf2616"> 788 789 790 782 request-digest = 783 <"> < KD ( H(A1), unq(nonce-value) ":" H(A2) ) > 784 <"> 791 785 </artwork></figure> 792 786 <t> … … 801 795 </t> 802 796 <figure><artwork type="abnf2616"> 803 797 A1 = unq(username-value) ":" unq(realm-value) ":" passwd 804 798 </artwork></figure> 805 799 <t> … … 807 801 </t> 808 802 <figure><artwork type="abnf2616"> 809 803 passwd = < user's password > 810 804 </artwork></figure> 811 805 <t> … … 817 811 </t> 818 812 <figure><artwork type="abnf2616"> 819 820 821 813 A1 = H( unq(username-value) ":" unq(realm-value) 814 ":" passwd ) 815 ":" unq(nonce-value) ":" unq(cnonce-value) 822 816 </artwork></figure> 823 817 <t> … … 841 835 </t> 842 836 <figure><artwork type="abnf2616"> 843 837 A2 = Method ":" digest-uri-value 844 838 </artwork></figure> 845 839 <t> … … 847 841 </t> 848 842 <figure><artwork type="abnf2616"> 849 843 A2 = Method ":" digest-uri-value ":" H(entity-body) 850 844 </artwork></figure> 851 845 </section> … … 860 854 </t> 861 855 <figure><artwork type="example"> 862 856 username="Mufasa", realm=myhost@testrealm.com 863 857 </artwork></figure> 864 858 <t> … … 874 868 </t> 875 869 <figure><artwork type="example"> 876 870 Mufasa:myhost@testrealm.com:Circle Of Life 877 871 </artwork></figure> 878 872 <t> … … 944 938 </t> 945 939 <figure><artwork type="abnf2616"><iref item="Authentication-Info" primary="true" 946 /> AuthenticationInfo = "Authentication-Info" ":" auth-info947 <iref item="auth-info" primary="true"948 /> auth-info = 1#(nextnonce | [ message-qop ]949 | [ response-auth ] | [ cnonce ] 950 | [nonce-count] )951 <iref item="nextnonce" primary="true" 952 /> nextnonce = "nextnonce" "=" nonce-value 953 <iref item="response-auth" primary="true" 954 /> response-auth = "rspauth" "=" response-digest 955 <iref item="response-digest" primary="true" 956 />response-digest = <"> *LHEX <">940 /><iref item="auth-info" primary="true" 941 /><iref item="nextnonce" primary="true" 942 /><iref item="response-auth" primary="true" 943 /><iref item="response-digest" primary="true"/> 944 AuthenticationInfo = "Authentication-Info" ":" auth-info 945 auth-info = 1#(nextnonce | [ message-qop ] 946 | [ response-auth ] | [ cnonce ] 947 | [nonce-count] ) 948 nextnonce = "nextnonce" "=" nonce-value 949 response-auth = "rspauth" "=" response-digest 950 response-digest = <"> *LHEX <"> 957 951 </artwork></figure> 958 952 <t> … … 1000 994 </t> 1001 995 <figure><artwork type="abnf2616"> 1002 996 A2 = ":" digest-uri-value 1003 997 </artwork></figure> 1004 998 <t> … … 1006 1000 </t> 1007 1001 <figure><artwork type="abnf2616"> 1008 1002 A2 = ":" digest-uri-value ":" H(entity-body) 1009 1003 </artwork></figure> 1010 1004 <t> … … 1108 1102 </t> 1109 1103 <figure><artwork type='message/http; msgytpe="response"'> 1110 1111 1112 1113 1114 1115 1104 HTTP/1.1 401 Unauthorized 1105 WWW-Authenticate: Digest 1106 realm="testrealm@host.com", 1107 qop="auth,auth-int", 1108 nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", 1109 opaque="5ccc069c403ebaf9f0171e9517f40e41" 1116 1110 </artwork></figure> 1117 1111 <t> … … 1121 1115 </t> 1122 1116 <figure><artwork type="example"> 1123 1124 1125 1126 1127 1128 1129 1130 1131 1117 Authorization: Digest username="Mufasa", 1118 realm="testrealm@host.com", 1119 nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", 1120 uri="/dir/index.html", 1121 qop=auth, 1122 nc=00000001, 1123 cnonce="0a4f113b", 1124 response="6629fae49393a05397450978507c4ef1", 1125 opaque="5ccc069c403ebaf9f0171e9517f40e41" 1132 1126 </artwork></figure> 1133 1127 </section>
Note: See TracChangeset
for help on using the changeset viewer.