/
442.txt
59 lines (41 loc) · 2.8 KB
/
442.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
* 仕様書
[REFS[
- [3] '''[CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-3.4>'''
- [19] [CITE@en[RFC 7616 - HTTP Digest Access Authentication]] ([TIME[2015-11-10 07:05:08 +09:00]] 版) <https://tools.ietf.org/html/rfc7616#section-4>
]REFS]
* 意味
[4] 指定された [CODE(HTTP)@en[[[realm]]]] における[[利用者]]の名前を表します [SRC[>>3]]。
* 構文
[5] [CODE[[[username]]]] [[引数]]には、[[引用文字列]]として、
[[利用者]]の名前を[[平文]]で、または[[ハッシュ値]]を[[十六進数字]]列で記述できます
[SRC[>>3]]。 [[引用文字列]]ではなく[[字句]]を[[生成]]しては[['''なりません''']] [SRC[>>3]]。
[8] [[非ASCII文字]]を含む場合には、 [CODE[[[username*]]]] [[引数]]を使えます [SRC[>>19]]。
;; [[引数 (HTTP)]] を参照。
[12] 値は、次のように決定しなければ[['''なりません''']] [SRC[>>3]]。
[FIG(steps)[
= [13] [VAR[利用者名]]を、適切な[[利用者名]]に設定します。
= [14] [[credentials]] の [CODE(HTTP)@en[[[userhash]]]]
[[引数]]の値が [CODE[[[true]]]] なら、
== [11] [VAR[realm]] を、 [CODE(HTTP)@en[[[realm]]]] [[引数]]の値
([[引用文字列]]の表す値) に設定します。
== [15] [VAR[値]]を、 [VAR[利用者名]]、[CODE[[[:]]]]、[VAR[realm]]
を連結したものに設定します。
== [16] [VAR[利用者名]]を、 [CODE[[VAR[[[H]]]] ([VAR[値]])]] に設定します。
= [17] [VAR[利用者名]]を返します。
]FIG]
;; [18] [CODE[[VAR[[[H]]]]]] の[[引数]]に[[非ASCII文字]]が含まれることがありますが、
[[UTF-8]] [[バイト列]]を使うと解釈するのが適当そうです。
[CODE[[[charset]]]] [[引数]]の指定があれば、それに従います [SRC[>>19]]。
* 文脈
[10] [[ダイジェスト認証]]の [[credentials]] の [CODE(ABNF)@en[[[auth-param]]]] として使うことができます [SRC[>>3]]。
[6] [CODE[[[username*]]]] [[引数]]は、[[引用文字列]]で使えない[[文字]]を含む時、
使うことができます [SRC[>>3]]。
* 処理
[7] [CODE[[[username]]]] と [CODE[[[username*]]]] を同時に使っていたら、
[[誤り]]としなければ[['''なりません''']] [SRC[>>3]]。
* 歴史
[REFS[
- [1] [CITE@en[RFC 2069 - An Extension to HTTP : Digest Access Authentication]] ([TIME[2012-02-26 10:05:21 +09:00]] 版) <http://tools.ietf.org/html/rfc2069#page-7>
- [2] [CITE@en[RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication]] ([TIME[2012-01-09 21:04:30 +09:00]] 版) <http://tools.ietf.org/html/rfc2617#section-3.2.2>
]REFS]
[9] [CODE[[[username*]]]] 構文 ([[RFC 5987]] 拡張) は [[RFC 7616]] で追加されました。